MGLib v0.3.0

Details

  • Filename
    MGLib.jar
  • Uploaded by
  • Uploaded
    Sep 10, 2014
  • Size
    133.21 KB
  • Downloads
    1,849
  • MD5
    11d39ea54f5d46dc1da134274252e00a

Supported Bukkit Versions

  • CB 1.7.9-R0.2
  • CB 1.7.2-R0.3
  • CB 1.6.4-R2.0

Changelog

After 90 snapshots, I'm proud to present to you MGLib 0.3.0. Major bugs have been fixed, and exciting new features added. But most importantly, the development stage has been bumped to release and it is now safe to use the library in production.

Note: This will be the last update to support Bukkit. Future builds will be designed for use with Sponge instead, though MGLib's API will remain the same.

New Features

  • Add support for disabling "friendly fire" (team killing)
  • Implement localization support for the library
  • Allow override of vanilla PlayerDeathEvent with custom MGPlayerDeathEvent
  • Allow for sequential spawning as opposed to random
  • Implement automatic rollback of physics events and explosions (only if triggered/placed by a player)
  • Replace countdown with stopwatch-esque timer on lobby signs with infinite time (it counts up)
  • Add option to use separate chat channels for arenas/teams
  • Add /mglib command for informational purposes
  • Add advance support for vanilla spectator gamemode (not guaranteed to work perfectly; a patch may be necessary)
  • Make arena names case-insensitive when joining or creating lobby signs
  • Add optional chat separation for spectators

API Additions

  • Add metadata support for MGPlayer and Round objects
  • Implement basic team support and API for MGPlayer objects
  • Add localization API
  • Add PlayerHitArenaBorderEvent
  • Add LobbyClickEvent
  • Add MGPlayerDeathEvent
  • Add JoinResult enum as return value for PlayerJoinMinigameRoundEvent
  • Add optional spawn argument to Round#addPlayer() so that a spawn number may be manually specified
  • Add a bunch of new config options (see Javadocs for more info)
  • Add toggle for cleanly freezing players
  • Add toggle for disabling FoodLevelChangeEvents
  • Add method to ArenaFactory for setting custom arena metadata (copied into round objects upon creation)
  • Add logging methods so that messages may be filtered by level as defined by MGLib's config.yml
  • Add Location2D and Location3D classes
  • Add toggles for mob spawning/targeting in arena-containing worlds
  • Add toggles for hanging entity and item frame breaking
  • Add method spawning a player into a round

API Removals

  • Remove Minigame#log(String, int) in favor of Minigame#log(String, LogLevel)

Bug Fixes

  • Fix a bunch of NullPointerExceptions
  • Fix ArenaExistsException never being thrown
  • Fix round being started if minimum player count is 0
  • Modify exception handling while creating/fetching ArenaFactories
  • Fix events being sent to all minigame plugins instead of just the one they pertain to
  • Fix PlayerLeaveMinigameRoundEvent firing after the player was already removed and reset
  • Fix lobby signs not always being properly updated
  • Correct event priorities
  • Fix worlds not being properly loaded upon round creation
  • Fix metadata being set statically (same for all instances of implementing class)
  • Fix entities targeting spectators
  • Fix forced generation of normal level for worlds containing only a nether or end world

Internal Changes

  • Minor refactoring of non-API classes
  • Optimize NMS utility methods
  • Optimize backend
  • Documentation fixes
  • Replace arbitrary build number in snapshots with Jenkins build number (e.g. from 0.3.0-dev10 to 0.3.0-SNAPSHOT-jnks77)
  • Build against Bukkit 1.7.10-R0.1-SNAPSHOT

Potential memory leak on round end (may be vanilla Minecraft issue)