Compatibility with newer versions through Spigot mappings
Big news! The Core now uses Spigot's mappings to map methods of versions 1.18 and higher. This means that unless a method/constructor changes parameters or its logic an update to the Core shouldn't be necessary to keep it functioning with the new version. This requires an internet connection as they are pulled from a website, a way to feed the mappings as a file will be added in the future.
The ProGuard Mappings parser will be made open-source Soon™.
The
Wiki is also coming Soon™.
If you notice any bugs, hiccups or anything out of place feel free to PM me or to report it in the Discussion page.
Now the boring changelog:
Added a way to force game mode (on-join and on-reload, possibly not allowing gamemode change without permission in the future).
Now registers inventories as listeners when opened using InventoryManager#openInventory() and unregisters them as needed if they implement the Core Inventory class.
+ CPacketPlayInUseEntity
+ PlayerInfoAction enum
+ CPacketPlayOutEntity
+ CPacketPlayOutEntityHeadRotation
+ CPacket#addPacket() - this method lets you add your own CPacket that will overwrite any existing CPacket with this name. Your class' name MUST follow this format: one character and the packet name (e.g.: APacketPlayOutKeepAlive, BPacketPlayOutKeepAlive)
* Made #sendPacketToAll(CPacket packet, Object[]) public
+ CoreItemStack #addHideFlag(ItemFlag... itemFlags) - adds `ItemFlag`s to a CoreItemStack
+ CoreItemStack #fillArray(ItemStack[] array, boolean unique) - fills an ItemStack array with this item. If `unique` is on a `random` NBT will be set to a random string, making each item unique. This can be used to prevent picking all the items at once by double-clicking.
+ CoreItemStack #setLoreColoured(List<String> lore) - sets the item's lore with color formatting
+ ItemMeta #getItemMeta()
+ CoreItemStack #setItemMeta(ItemMeta meta)
+ `ArmorStandSerialization` class which allows for ArmorStands serialization and de-serialization
+ `DeserializedArmorStand` class, which is returned by `ArmorStandSerialization#deserialize(String, World, Location, FacingType)`
+ Entity Entities#getEntityByUuid(World, UUID)
* Now rain and thunderstorm is only going to be prevented if turned on within the EventManager (off by default)