Releases: funkemunky/Atlas
Fixes FlatfileDatabase bug
- Fixes error when saving FileSEt to FlatfileDatabase.
Fixed 1.7.10 bugs and updated ProjectCarbon to 2.0
- Fixed incompatibilities with 1.7.10 based spigots.
- Updated ProjectCarbon to 2.0. This will break any old implementation, but it is 100% worth it. It fixes many flaws of the original design. Better documentation for it is coming soon.
If you need the old project carbon, shade it into your own project from https://github.com/funkemunky/ProjectCarbon
Major Update
Preface
There was a lot of changes in this update, and most of them were for the better. You may have to change a lot, a little, or nothing at all, depending on how your plugin is structured. I also decided just to start adding many utilities I like from other developers since I don't think I could have done it much better. Thanks @DeprecatedLuke for not killing me!
Changelog
- Added the ability to check if the spigot being used is PaperSpigot with ProtocolVersion#isPaper. This should help plugin developers work around the mess that is Paper.
- Added WrappedInCustomPayload packet wrapper for PacketPlayInCustomPayload.
- Added WrappedInPacketDataSerializer for the PacketDataSerializer object that is in most packet classes.
- Added the ConfigDefault utility for cleaner code when generating configuration fields without the use of Atlas's lovely annotation system.
- Updated the AtlasExample module for better examples.
- Added CLIENT_COMMAND and STEER_VEHICLE enums to Packet.Client. Apparently they were never there even though wrappers existed.
- Added thread shutdown for AtlasBungee (oops).
- Added WrappedOutEntityHeadRotation packet wrapper for PacketPlayOutEntityHeadRotation packet.
- Added the VariableValue<>() object for clean logical checking that will return a specific value. Useful for on the fly version checking.
- Added MinecraftReflection#getMainThread() to grab the current Thread Minecraft/Bukkit/Spigot is using. This is useful for async checking or just changing the Thread.
- Added CraftReflection#getMinecraftServer() method for grabbing the MinecraftServer instance.
- Improved WrappedWatchableObject compatibility and function.
- Added constructor requiring no arguments to Tuple.
- Added new RayCollision class (from @DeprecatedLuke).
- Added MiscUtils#drawRay(args) (from @DeprecatedLuke).
- Cleaned up code in JsonMessage class.
- Added MinecraftReflection#getItemAnimation(ItemStack stack) method to get the current animation of an item. Useful for checking if the item is being used.
- Added new WrappedStringRange.
- Added new WrappedSuggestions.
- Added new WrappedSuggestion.
- Added an option for parsing Vec3D into the NMS Vec3D.
- Added the ability to wrap WrappedOutVelocityPacket into the vanilla object for sending to players (I have no clue why this was not a thing before).
- Added new RunUtils#callLater(Future, long, Consumer) method.
- Added new RunUtils#call(Future, Consumer) method.
- Added MathUtils#getMode(Collection) method for getting the mode of a collection of Numbers.
- Added WrappedOutSpawnEntityPacket packet wrapper for PacketPlayOutSpawnEntity.
- Added ProtocolVersion#isOrBelow(ProtocolVersion) method.
- Made BungeeAPI methods static.
- Added BungeeAPI#getPlayerVersion(Player) method that returns the player version grabbed from AtlasBungee in the form of an int.
- Added BungeeAPI#sendCommand to run commands in Bungee.
- Added new ItemBuilder utility.
- Added new KLocation object (the same custom location object I use in Kauri).
- Added new Materials object (credits to @DeprecatedLuke).
- Added new MiscUtils#drawCuboid(args) method (credits to @DeprecatedLuke)
- Added new Step utility (credits to @DeprecatedLuke).
- Added new CollisionBox system by @DeprecatedLuke.
- Added new Material2 object for Material instances that don't exist in all versions (credits to @DeprecatedLuke).
- Added MinecraftReflection#canDestroyBlock(Player, Object) method.
- Changed return object of BoundingBox#toAxisAlignedBB from just Object to a dynamic "T" variant.
- Added MathUtils#sqrt(double) method for a much lighter squaring math util.
- Added new BiSupplier<> object for lambda use.
- Added new MathUtils#cbrt(double) method for a much lighter cube root algorithm.
- Added MaxDouble, MaxLong, MaxInteger, and MaxFloat objects.
- Added TabHandler object for implementing tab completions.
- Fixed some weird glitches with certain Bungee implementations with ForgeHandler and BungeeAPI.
- Fixed concurrency problems with the Profiler system.
- Improved performance of EventManager#callEvent method slightly.
- Fixed bug in WrappedMethod(Method) that would error if the method was not accessible.
- Removed bloated and deprecated functionality from Atlas#initializeScanner and improved performance.
- Improved performance of BoundingBox#getCollidingBlocks(World) method.
- Fixed any erroring in versions 1.12 and later with MinecraftReflection#getCollidingBoxes.
- Fixed bug in EventManager that caused events that do not implement the Cancellable interface to not be called.
- Fixed math inaccuracies in Interval class.
- Fixed a potential bug that may be the cause for players getting randomly kicked when plugins using ProtocolLib cancel packets (See TinyProtocolHandler changes).
- Removed NMSObject#setPacketArg(String, Object) and NMSObject#setPacket(String, Object) methods.
- Revamped GeneralWrapper to a much simpler and cleaner wrapper for better functionality and ease of use (with new GeneralField class)
- Fixed weird command glitches in CommandManager class for FunkeCommand commands.
- Patched NegativeArraySizeException error in RayCollision object.
- CraftReflection class is now verified to work with versions 1.7.10-1.14.4.
- Cleaned up more code and fixed other minor bugs.
Very Minor Revisions
- Added new animation tools in MinecraftReflection.
- Added new MiscUtils#trimEnd(String) util.
- Removed useless classes that should be unused by resources since they are unfinished and likely had many bugs or just didn't work.
- Added WrappedOutChatPacket wrapper (untested).
- Cleaned up CommandManager class.
- Removed unused imports for faster compiling.
- Fixed minor bugs and cleaned up code.
Added Message Config API and Other New Features
- Added MessageConfig and MessageHandler for easy message language configuration management. Documentation will be released soon.
- Updated ProjectCarbon to fix Flatfile and Mongo problems.
- Fixed shading of dependencies to prevent possible interference with other plugins.
- Added WrappedPacketPlayOutWorldParticle as an official packet wrapper.
- Added the ability to wrap two boundingbox objects into one large boundingbox.
- Improved a few utils' performance.
- Fixed errors inside of MinecraftReflection#getCollidingBoxes in versions lower than 1.12.
Updated ProjectCarbon
This update includes v1.2.4 of ProjectCarbon. This fixes a bug that prevents logging into password protected Mongo databases. All other database types are functional.
Fixed configuration bug
- This should fix any startup errors or other miscellaneous errors.
- Made the jar package size a lot smaller.
Fixed some minor bugs
- Updated ProjectCarbon to 1.2.3.
- Remapped some dependencies to prevent interference with other plugins.
- Implemented new encrypted fields to databases.
- Improved performance and fixed other minor bugs.
Database Update and General Improvements
- Reverted to TinyProtocol for extra functionality and increased accuracy (credits to @DeprecatedLuke for parts of it).
- Decreased file sizes of Atlas and AtlasBungee drastically.
- Updated Profiler with new functionality and increased accuracy in its math.
- Added Tuple<K, V> object. Allows for objects to put in collections that are paired together.
- Added ProtocolVersion checking to 1.7.10.
- Now defaults to ViaVersion if the plugin is installed to provide the real protocol id before it modifies it so Minecraft doesn't kick the player for being an incorrect version.
TODO:
- Added the ProtocolSupport API since it has its own thing too and not all people use ViaVersion/ViaRewind.
- Add a better way to check if ViaVersion is installed that would cause less lag and potential screw-ups (using a try and catch is the current way to do it nice job Luke).
Database Information:
Read the README @ https://github.com/funkemunky/ProjectCarbon for information on how to use the new system.
New JavaDocs:
You can view the java-docs for Atlas @ https://funkemunky.github.io/Atlas.
Prerelease for Kauri Users
1.6.2-PRE Fixed bug with imports and increased updater identifier by 1