MGLib v0.4.0
Details
-
FilenameMGLib.jar
-
Uploaded by
-
UploadedFeb 27, 2015
-
Size150.53 KB
-
Downloads1,315
-
MD5cd4cd06b58aa0aa91f38cbe3fab4b358
Supported Bukkit Versions
- 1.8.1
Changelog
MGLib v0.4.0 adds a few small API features, addresses some minor issues found in version 0.3.0 of the library, and deprecates several methods which will be removed in the future.
This version of the library should be fully compatible with plugins built for 0.3.0, but if you notice any issues, please create an issue.
New Features
MinigameRoundStageChangeEvent
is now cancellable- Changing a round's stage now resets its timer by default
- Players in rounds now only see players in the same round in their tablist, and are removed from other players' tablists
- Fully locallize German; partially localize Dutch and Korean
API Additions
- Add optional parameter to
Round#setStage()
to reset timer (true by default) - Add
Round#isTicking()
method - Add vararg parameter to
Locale#getMessage()
, used to automatically replace placeholder sequences (%1
,%2
, etc.)
API Changes
- Rename
ConfigManager#setBlockBurningAllowed(boolean)
toConfigManager#setBlockBurnAllowed(boolean)
- Rename
ConfigManager#isBlockPhysicsAllowed()
toConfigManager#areBlockPhysicsAllowed()
- Rename
ConfigManager#isEntityExplosionsAllowed()
toConfigManager#areEntityExplosionsAllowed()
- Locale API now expects
.properties
files (backwards compatibility for.csv
files is still present) setDefaultExit()
methods now retain orientation
(Method refactors are non-breaking, albeit the old methods are now deprecated)
API Removals
- Deprecate
ConfigManager#setPlayerClass(Class)
in favor of metadata - Deprecate
ConfigManager#setRoundClass(Class)
in favor of metadata - Deprecate
Round#hasEnded()
in favor ofRound#getStage() == Stage.RESETTING
- Deprecate all API methods whose signatures include Bukkit classes (some have alternatives as denoted by the doc)
Bug Fixes
- Better integrate vanilla spectator support
- Correct stage always being reset to
PLAYING
when aMinigameRoundEndEvent
is cancelled - Correct player gamemode not being reset to its previous value upon round exit
- Correct
Round#addPlayer(String, int)
ignoring the second parameter - Correct
Round#start()
throwing anIllegalStateException
if the round's stage isPREPARING
, contrary to its documentation - Correct messages not defined in configured locale not being loaded from the default
- Fix packet manipulation when running against Minecraft 1.8
MGUtil#sendPlayerInfoPacket()
now gracefully fails
Internal Changes (kind of boring, feel free to skip)
- Use Gradle as a build system for the project
- Protect
uninitialize()
methods from being called inappropriately - Optimize instantiation of
MGPlayer
/Round
classes when not overridden - Optimize reflection code (death overrider and player list manipulator)
- Remove unused methods in
MGUtil
- Move NMS utility methods to new NmsUtil class
- Use native YAML for inventory serialization
- Use .properties files internally in the locale implementation instead of pipe-separated .csv files
- Move all hardcoded messages to locale file
- Refactor locale keys to be more concise
- Reformat documentation within code
- Version suffix for snapshots now includes Git commit (if applicable)
- Potential memory leak on round end (may be vanilla Minecraft issue)
- Players may become invisible to each other after a series of teleports