Compare commits

...
Author SHA1 Message Date
Irmo van den Berge f1379401f7 Park these files for now if I ever want to go this route...
Signed-off-by: Irmo van den Berge <irmo.vandenberge@mailbox.org>
2025-10-14 01:00:23 +02:00
Irmo van den Berge 4f5752a20c [Cloud] Fix help menu no longer working
Signed-off-by: Irmo van den Berge <irmo.vandenberge@mailbox.org>
2025-10-14 00:59:49 +02:00
Irmo van den Berge c6ba52f798 Bump cloud-minecraft to fix warning on paper
Signed-off-by: Irmo van den Berge <irmo.vandenberge@mailbox.org>
2025-10-12 12:35:07 +02:00
Irmo van den Berge 0075578446 Replace all use of CommonUtil with LogicUtil where appropriate
Signed-off-by: Irmo van den Berge <irmo.vandenberge@mailbox.org>
2025-10-10 21:00:22 +02:00
Irmo van den Berge dbd131a284 Properly fix EntityTag ItemMeta deserializing when id is missing
Signed-off-by: Irmo van den Berge <irmo.vandenberge@mailbox.org>
2025-10-10 20:49:52 +02:00
Irmo van den Berge 0a2ba5ecfa Fix incorrect getFireImmuneTicks remapping pre-1.11
Signed-off-by: Irmo van den Berge <irmo.vandenberge@mailbox.org>
2025-10-10 20:49:02 +02:00
Irmo van den Berge 151115439a Add tryCast to LogicUtil which makes a lot more sense
Signed-off-by: Irmo van den Berge <irmo.vandenberge@mailbox.org>
2025-10-10 20:48:08 +02:00
Irmo van den Berge bd04571298 Should not have been committed
Signed-off-by: Irmo van den Berge <irmo.vandenberge@mailbox.org>
2025-10-10 16:26:39 +02:00
Irmo van den Berge 74deb277e3 Working towards 1.21.10-v1: Support MC 1.21.10
Signed-off-by: Irmo van den Berge <irmo.vandenberge@mailbox.org>
2025-10-10 16:22:03 +02:00
Irmo van den Berge cdb56e56df Fix issues pre-1.21.9
Signed-off-by: Irmo van den Berge <irmo.vandenberge@mailbox.org>
2025-10-07 21:14:20 +02:00
Irmo van den Berge 88deb63e3c Bump cloud-related libraries to fix brigadier error
Signed-off-by: Irmo van den Berge <irmo.vandenberge@mailbox.org>
2025-10-07 20:40:23 +02:00
Irmo van den Berge dfdeedffdb Get rid of now-broken player data loading api
Signed-off-by: Irmo van den Berge <irmo.vandenberge@mailbox.org>
2025-10-07 18:03:56 +02:00
Irmo van den Berge 86926378e8 [1.21.9] Fix CraftBlock error on paper
Signed-off-by: Irmo van den Berge <irmo.vandenberge@mailbox.org>
2025-10-07 17:19:05 +02:00
Irmo van den Berge 6571400d83 Make attach entity packet slightly less stinky ass
Signed-off-by: Irmo van den Berge <irmo.vandenberge@mailbox.org>
2025-10-06 23:27:11 +02:00
Irmo van den Berge e3fa7ecdda [1.21.9] Fix issue with null motion vector field in spawn packets
Signed-off-by: Irmo van den Berge <irmo.vandenberge@mailbox.org>
2025-10-06 23:04:35 +02:00
Irmo van den Berge 08c752e71f [1.21.9] Initial support for new player data handler changes
Signed-off-by: Irmo van den Berge <irmo.vandenberge@mailbox.org>
2025-10-06 22:13:29 +02:00
Irmo van den Berge 9d6b3b2838 [1.21.9] Forgot one
Signed-off-by: Irmo van den Berge <irmo.vandenberge@mailbox.org>
2025-10-06 22:13:00 +02:00
Irmo van den Berge 624e878eea [1.21.9] Some custom data access mishaps
Signed-off-by: Irmo van den Berge <irmo.vandenberge@mailbox.org>
2025-10-06 22:06:24 +02:00
Irmo van den Berge 90511f21ba [1.21.9] Handle entity tracker packet consumer field being gone now
Signed-off-by: Irmo van den Berge <irmo.vandenberge@mailbox.org>
2025-10-06 22:06:00 +02:00
Irmo van den Berge 63e8f45a12 [1.21.9] Fix item material issues
Signed-off-by: Irmo van den Berge <irmo.vandenberge@mailbox.org>
2025-10-06 21:08:47 +02:00
Irmo van den Berge 5b56354abb [1.21.9] Support the immutable GameProfile
Signed-off-by: Irmo van den Berge <irmo.vandenberge@mailbox.org>
2025-10-06 21:01:06 +02:00
Irmo van den Berge f2ef4b5a11 [1.21.9] Support new data format in ItemStack deserializer
Signed-off-by: Irmo van den Berge <irmo.vandenberge@mailbox.org>
2025-10-06 21:00:49 +02:00
Irmo van den Berge 218593b1c6 [1.21.9] Fix templates
Signed-off-by: Irmo van den Berge <irmo.vandenberge@mailbox.org>
2025-10-06 19:32:10 +02:00
Irmo van den Berge 79dff13f5c [1.21.9] Use the respawn config in the spawn packet for api simplicity
Signed-off-by: Irmo van den Berge <irmo.vandenberge@mailbox.org>
2025-10-06 18:47:40 +02:00
Irmo van den Berge 8a60631651 [1.21.9] Add support for respawn point changes, supporting pitch angles
Signed-off-by: Irmo van den Berge <irmo.vandenberge@mailbox.org>
2025-10-06 18:31:41 +02:00
Irmo van den Berge b62913f90d Working towards 1.21.9-v1: Initial round of template fixes
Signed-off-by: Irmo van den Berge <irmo.vandenberge@mailbox.org>
2025-10-06 18:08:58 +02:00
Irmo van den Berge 9a1326b4bf [Cloud] Add helper method to get the quoted argument parser from a parser
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-08-20 20:53:48 +02:00
Irmo van den Berge e550736821 Fix test errors
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-08-20 20:38:23 +02:00
Irmo van den Berge ff1b858a70 [Yaml] Fix serialization issue with painting items with invalid entity tag
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-08-20 20:19:56 +02:00
Irmo van den Berge 74b0cf9a5e Handle private field problem on 1.21.8
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-08-16 21:00:06 +02:00
Irmo van den Berge 7c27ea276a [Yaml] Perform proper cleanup in copyToParent, fix remove(int) incorrect return value
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-08-12 00:42:52 +02:00
Irmo van den Berge 57f9aaeb55 [Yaml] Add check guards for disposed entries being used still
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-08-11 21:09:46 +02:00
Irmo van den Berge 62f31c6921 Support datawatcher custom field type on arclight
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-08-06 00:14:05 +02:00
Irmo van den Berge 6bf50e89b7 Bump mountiplex to reduce method-modifier-difference logging
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-08-06 00:05:06 +02:00
Irmo van den Berge 6137c57b2e Fix end platform spawning in the wrong position
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-08-02 17:49:23 +02:00
Irmo van den Berge eecd9e4a59 Fix template error on 1.21.5
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-08-02 17:13:09 +02:00
Irmo van den Berge 1bda25ef76 Add option to use not protocollib for packets
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-07-20 14:26:09 +02:00
Irmo van den Berge e0044f1a00 Working towards 1.21.8-v1: Add support for 1.21.8
No real changes

Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-07-18 19:58:13 +02:00
Irmo van den Berge 7d4527c058 Bump Mountiplex to 3.28 to fix graalvm compat issue
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-07-07 21:14:19 +02:00
Irmo van den Berge bfa0e6282e [Resource Pack] Fix errors when parsing a complex when for a select case
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-07-04 23:47:48 +02:00
Irmo van den Berge 42c8fc1f9e [Resource Pack] Properly handle multi-formatted description text
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-07-04 23:24:28 +02:00
Irmo van den Berge 86a557ac45 Add support for ArcLight 1.21
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-07-04 23:06:46 +02:00
Irmo van den Berge 1a127c1562 [Forge] [OfflineWorld] WorldInit event doesnt fire, so handle WorldLoad too
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-07-04 23:06:14 +02:00
Irmo van den Berge a5da3a2372 Add guard for EntityHook to avoid infinite recursing die handling
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-07-04 23:05:50 +02:00
Irmo van den Berge 49f4972b97 Fix critical error stack traces no longer being logged
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-07-04 23:04:44 +02:00
Irmo van den Berge 395e66fb84 Move entity fire remapping rules to the entity remappings file
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-07-04 21:54:49 +02:00
Irmo van den Berge ef53e831e8 This template is wrong
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-07-04 21:36:39 +02:00
Irmo van den Berge fe5d1e1c79 [Resource Pack] Fix asList missing method issue
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-07-02 16:05:00 +02:00
Irmo van den Berge d44d429520 Working towards 1.21.7-v1: Bump supported version to 1.21.7
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-06-30 17:59:31 +02:00
Irmo van den Berge 7f9a75506a Fix incorrect chunk load ticket level being specified
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-06-29 18:30:42 +02:00
Irmo van den Berge 1a64f6f154 Optimize isBurnArea, eliminating jdk stream api causing lag
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-06-29 14:40:45 +02:00
Irmo van den Berge ea2f7cd6ba Fix templates errors pre-1.21.6
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-06-29 14:40:32 +02:00
Irmo van den Berge 27c11df76c Fix issues with non-existing worlds for respawn points
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-06-25 21:07:09 +02:00
Irmo van den Berge 2fadb3a481 Fix some template errors that are logged pre-1.21.6
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-06-23 23:45:44 +02:00
Irmo van den Berge 23732af8f2 [1.21.6] Add proper support for Paper in the player file data handler
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-06-23 23:36:17 +02:00
Irmo van den Berge 0fe2ea6007 Fix a spigot 1.20.5+ bug that ItemStack setType bricks the components patch map
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-06-23 22:57:13 +02:00
Irmo van den Berge 630be93a7d Switch to our own scoped ProblemReporter due to incompatible logger
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-06-23 21:14:05 +02:00
Irmo van den Berge a67ea23c9c [1.21.6] Support the changes for the player file data handler
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-06-23 19:57:31 +02:00
Irmo van den Berge eedaea6e0a Split the player file data hook per data handler
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-06-23 18:13:42 +02:00
Irmo van den Berge fdec6d9317 [1.21.6] Update itemstack deserializer
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-06-23 17:54:17 +02:00
Irmo van den Berge 828ae45034 [1.21.6] Update id to material mappings
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-06-22 22:07:55 +02:00
Irmo van den Berge 6a8f113376 [1.21.6] Attempted fix for queue packet listener type change
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-06-22 21:58:44 +02:00
Irmo van den Berge b8c90bb50d Update mountiplex so that global remap rules can apply to class hooks
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-06-22 21:41:01 +02:00
Irmo van den Berge 0a4be7f153 Rewrite collision logic to use canCollideWith
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-06-22 21:40:23 +02:00
Irmo van den Berge fb523dbfcc [1.21.6] More ValueInputOutput migrations
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-06-22 18:29:20 +02:00
Irmo van den Berge a8fe2e22a5 [1.21.6] Support chat serializer migration
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-06-22 18:05:36 +02:00
Irmo van den Berge 1921c56910 Move ChatSerializer static methods to IChatBaseComponent
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-06-22 17:32:17 +02:00
Irmo van den Berge 64d6f0a1f5 [1.21.6] Migrate loading and saving code to use the ValueInputOutput API
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-06-22 17:32:02 +02:00
Irmo van den Berge 15c1922b30 Working towards 1.21.6-v1
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-06-22 14:51:33 +02:00
Irmo van den Berge 06a55a7a50 Track pending entity add events per-world with more async guards
Important for Leaf server compatibility

Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-06-12 17:56:22 +02:00
Irmo van den Berge 0ff21a3928 Fix movement input api for minecarts, which is now odd
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-06-12 17:19:53 +02:00
Irmo van den Berge 2313da4108 Update region change tracker to maybe fix zip file closed issues
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-06-07 12:10:53 +02:00
Irmo van den Berge 7e446fad6d Attempted fix for Leaf server
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-06-06 21:36:39 +02:00
Irmo van den Berge 5bf8546579 [Yaml] Actually properly fix it this time. Man I hate this code.
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-05-26 22:19:17 +02:00
Irmo van den Berge c33eb67c1d [Yaml] Fix list-in-list bug when writing out yaml text
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-05-26 21:57:11 +02:00
Irmo van den Berge e5f746f711 [JSON] Handle null itemstacks gracefully
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-05-26 20:50:18 +02:00
Irmo van den Berge 4a51e50e64 [Octree] Improve performance of coordinate calculations
Affects performance of cuboid iteration

Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-05-23 20:03:23 +02:00
Irmo van den Berge f4d525510a [Octree] Add support for IntCuboid as arg, add fuzz testing
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-05-23 17:56:49 +02:00
Irmo van den Berge ce2f390bdd Copy typo
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-05-15 21:25:27 +02:00
Irmo van den Berge c185e2dca8 [CommonItemStack] Add a addGlint API
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-05-15 21:15:23 +02:00
Irmo van den Berge cf71965938 Use the new MinecraftKeyHandle helper methods
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-05-15 18:39:10 +02:00
Irmo van den Berge fcdf992557 Stop using field reflection for MinecraftKey name and namespace
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-05-15 18:36:20 +02:00
Irmo van den Berge 727c215f9d Disable the setters for MinecraftKey, this isn't supported at all
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-05-15 18:18:41 +02:00
Irmo van den Berge c327d6f72b [CommonItemStack] Add mimicAsType API
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-05-15 18:17:28 +02:00
Irmo van den Berge c8ac83787a Add migrations to bukkit for a set custom name
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-05-15 17:14:54 +02:00
Irmo van den Berge f15a98df37 [Resource Pack] Properly render items with an item model override set
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-05-15 16:17:25 +02:00
Irmo van den Berge 18b3843015 Migrate the item-model data component to bukkit too
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-05-15 08:33:16 +02:00
Irmo van den Berge 6fa05ed2c7 Why was this committed? :(
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-05-15 02:48:20 +02:00
Irmo van den Berge 4b004b6fc7 Get rid of odd wood block fallback in itemstack deserialization
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-05-15 02:39:18 +02:00
Irmo van den Berge 013a7e8a7d Implement Paper NBT parser for Spigot 1.21.5+
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-05-15 02:37:58 +02:00
Irmo van den Berge 3f584a1767 Rename PaperNBT to NBT in preparation for spigot nbt parsing
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-05-15 01:29:19 +02:00
Irmo van den Berge 3051a487a6 Slight refactoring of the item paper nbt deserialization
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-05-15 01:25:59 +02:00
Irmo van den Berge ece9e19877 [NBT] Write a proper SNBT parser API for all snbt formats, not just compounds
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-05-15 00:32:14 +02:00
Irmo van den Berge f8f170adf5 Fix iron nugget not existing pre-1.11
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-05-14 23:26:19 +02:00
Irmo van den Berge d7f5194651 [SNBTDeserializer] Add mode for deserializing to CommonTag
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-05-14 21:23:35 +02:00
Irmo van den Berge 8d586d5724 Add capability for the ItemModel getter/setter
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-05-14 19:36:48 +02:00
Irmo van den Berge ceb637a059 Fix test, as it now picks up item models in the pack properly
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-05-14 19:12:53 +02:00
Irmo van den Berge 6f84815da7 Don't list deep or namespaces for legacy formatted resource packs
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-05-14 19:11:56 +02:00
Irmo van den Berge b984785c57 Add full support for item_model data component in resource pack listing
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-05-14 18:59:28 +02:00
Irmo van den Berge 63cb6d8e4e Avoid generating id-to-material mappings before 1.21.5
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-05-14 16:13:42 +02:00
Irmo van den Berge 7102e2bc81 [1.21.4+5] Massive ItemStack deserialization fixes
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-05-13 23:50:11 +02:00
Irmo van den Berge 7499e1c1f4 Split SpigotMappings versioned mapping file off into a separate api
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-05-12 20:33:59 +02:00
Irmo van den Berge 9bfc546418 Integrate the new RegionFlagTracker library
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-05-11 23:52:51 +02:00
Irmo van den Berge 3e0286464a [Common ItemStack] Fix hide tooltip adding way too much metadata
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-05-05 00:49:33 +02:00
Irmo van den Berge 11d438ebd1 Fix template error in 1.21.2+
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-05-04 11:54:13 +02:00
Irmo van den Berge 445d08d90b Fix some support issues with Mohist 1.20
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-28 20:35:00 +02:00
Irmo van den Berge b73daf6531 Working towards 1.21.5-v2: Class Loading fix for ClassHook in Mountiplex
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-28 18:47:48 +02:00
Irmo van den Berge a22d82a306 Mark for final 1.21.5-v1 release
Let's try this again

Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-27 19:17:59 +02:00
Irmo van den Berge e45e331901 Fix this equipment slot issue for paper too, old paper builds are bugged
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-27 19:17:27 +02:00
Irmo van den Berge 5ef27ba90d Update SoftDependency to 1.05
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-27 03:16:53 +02:00
Irmo van den Berge 14f4ca3f7c [Map Display] Fix map markers duplicating in weird ways
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-26 20:43:36 +02:00
Irmo van den Berge fbc6a7455b [Map Display] Also store coordinates here
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-26 20:43:22 +02:00
Irmo van den Berge 08a44cd3e1 Add helper of method for IntVector2
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-26 20:43:08 +02:00
Irmo van den Berge 4aa0494fc7 [ChatText] Eliminate unneeded empty parent component from spigots ass code
It reeks in here

Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-26 19:26:48 +02:00
Irmo van den Berge 825c0e0cb7 [1.21.5] Implement NBT to and from ChatText serialization
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-26 19:05:19 +02:00
Irmo van den Berge d98bdc4046 Fix SADDLE equipment slot being recognized as valid for players
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-24 18:27:13 +02:00
Irmo van den Berge 9eaa65f122 [Reset Attributes] Re-add this logic as it is required
Added testing instructions

Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-24 18:27:01 +02:00
Irmo van den Berge bac5155ba2 Fix template error on older MC versions
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-24 17:20:04 +02:00
Irmo van den Berge d2a05a1f8a Allow null nbt data in loadEquipment as well
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-23 23:40:50 +02:00
Irmo van den Berge c0420d1e9a Allow null here because Bukkit API is chaotic
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-23 23:32:41 +02:00
Irmo van den Berge c8279a73ad Typo
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-23 23:30:25 +02:00
Irmo van den Berge 7e8cba3644 Bugfix for equipment loading/saving, add capability for it
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-23 23:29:57 +02:00
Irmo van den Berge 4b021b8cd7 Add equipment loading and saving functions (untested)
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-23 23:12:30 +02:00
Irmo van den Berge 0626ee2282 Disable this for now until we have a proper fix
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-22 21:23:13 +02:00
Irmo van den Berge 23080adb85 [Resource Packs] Add supporting logic for supported_formats
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-22 21:14:24 +02:00
Irmo van den Berge 0f35a2b4e6 [Gradle] Make sure it can see cloud types under test
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-22 21:12:42 +02:00
Irmo van den Berge a5921c1b80 [Item Models] Improve toString
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-22 21:08:23 +02:00
Irmo van den Berge f8ef988820 [1.21.5] Paper compat for changes to ticket logic
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-21 15:58:08 +02:00
Irmo van den Berge 5f9e6648e2 [1.21.5] Add workaround for broken paper minecart type matching
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-21 15:57:53 +02:00
Irmo van den Berge 0a1b158e79 [1.21.5] Paper compat for setFlags name change
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-21 15:57:25 +02:00
Irmo van den Berge 3c1268b8c1 [1.21.5] Replace deprecated method with CraftRegistry one
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-21 15:25:01 +02:00
Irmo van den Berge 08ee588b10 [1.21.5] Paper compat fixes
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-21 15:24:42 +02:00
Irmo van den Berge 3b6aa49a1f [1.21.5] This logic was wrong
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-21 14:50:50 +02:00
Irmo van den Berge ce04ec3589 [1.21.5] Support data version
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-21 14:42:01 +02:00
Irmo van den Berge bc0d8992b8 [1.21.5] Template fixes
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-21 14:41:44 +02:00
Irmo van den Berge 6368da9fe0 [1.21.5] Fix goat horn instrument variant list
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-21 14:24:11 +02:00
Irmo van den Berge 3c16fc212a [1.21.5] Templates now all compile POG
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-20 19:37:48 +02:00
Irmo van den Berge 767dbbb413 [1.21.5] Add support for changed minecart displayed block meta key
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-20 19:29:09 +02:00
Irmo van den Berge fa54226c7d [1.21.5] Support the findSafeSpawn api change
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-20 18:55:55 +02:00
Irmo van den Berge 0962fb4de7 [1.21.5] Support the new chunk load ticket api
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-20 18:38:56 +02:00
Irmo van den Berge faaab15329 [1.21.5] Template fixes
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-20 18:28:31 +02:00
Irmo van den Berge cd9c97fa43 [1.21.5] Disable the in window click carried item field for now
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-20 17:46:38 +02:00
Irmo van den Berge e9aafd99e3 [1.21.5] Fix the re-applying attributes logic
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-20 13:59:13 +02:00
Irmo van den Berge 54cbdc5096 [1.21.5] Fix scoreboard team packet
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-20 13:50:17 +02:00
Irmo van den Berge 3b3fe09036 [1.21.5] More template fixes woo
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-20 00:28:04 +02:00
Irmo van den Berge 5457d9a89f [1.21.5] Work around the biome mob spawning logic changes
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-19 23:38:35 +02:00
Irmo van den Berge 66fc488f3e Fix template errors in previous commits
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-19 23:37:54 +02:00
Irmo van den Berge 71c311f619 [1.21.5] More template fixes
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-19 19:08:09 +02:00
Irmo van den Berge 6285c3f153 [RespawnPoint] Ensure key is removed from NBT when none
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-19 18:36:11 +02:00
Irmo van den Berge 2b4131fab4 [1.21.5] Rewrite respawn point logic to support server changes
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-19 18:19:26 +02:00
Irmo van den Berge e0bfaefc69 [Test] Ensure server loaded worlds field is initialized
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-19 18:19:26 +02:00
Irmo van den Berge c73d337461 [NBT] Add proper toPrettyString for arrays
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-19 18:19:26 +02:00
Irmo van den Berge 2c1c0953bf Merge pull request #175 from Tyfcho/master
Added build.gradle documentation
2025-04-18 16:53:13 +02:00
Tycho fc6beb3481 Update CLOUD_HOWTO.md
Java library added in correct syntax(?)
2025-04-18 16:51:33 +02:00
Tycho ae8cb74af0 Update CLOUD_HOWTO.md
Now with proper heading
2025-04-18 16:46:47 +02:00
Tycho 3217c349b4 Merge branch 'bergerhealer:master' into master 2025-04-18 08:29:40 +02:00
Tycho 9599bd1636 Updated the CLOUD_HOWTO 2025-04-18 08:29:14 +02:00
Irmo van den Berge 17358af49e Working towards 1.21.5-v1: Initial template fixes
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-12 22:09:59 +02:00
Irmo van den Berge 42308910b9 [Item Models] Fix custom model data range dispatch not implemented
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-08 23:31:44 +02:00
Irmo van den Berge b213efa245 [Item Models] Support potion model overrides properly
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-08 23:31:26 +02:00
Irmo van den Berge 58aefbbb1f [BlockData] Fix fromString no longer returning null when name is invalid
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-08 17:13:07 +02:00
Irmo van den Berge 45f9006be2 Fix error in custom payload packet on newer paper
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-06 17:19:04 +02:00
Irmo van den Berge 934275b57b Add support for paper changes to exact recipe itemstacks
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-04 03:40:44 +02:00
Irmo van den Berge 9dd81f7653 Add support for changed custom payload packet
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-04-04 03:40:31 +02:00
Irmo van den Berge b6b220fab6 Add capability for new ItemModel API
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-03-23 13:30:38 +01:00
Irmo van den Berge 02ef80886e [Resource Pack] Finish the ItemModel API
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-03-23 13:30:29 +01:00
Irmo van den Berge 33b604d3e2 [Resource Pack] Make ItemStack automatically available for item model overrides
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-03-23 01:21:37 +01:00
Irmo van den Berge 369ae9c0b9 Revamp the model name lookup to also enable reverse-by-name lookup
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-03-23 01:20:54 +01:00
Irmo van den Berge 2c3959eecd [Resource Pack] Fully implement the ItemModel predicate system
Holy-

Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-03-18 20:51:40 +01:00
Irmo van den Berge d01ed60c18 [Resource Packs] Parse legacy predicate system using the new ItemModel api
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-03-17 18:03:59 +01:00
Irmo van den Berge 20ffeeecba [Resource Packs] Add support for custom model data strings, floats and flags
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-03-17 11:14:09 +01:00
Irmo van den Berge 4309f3e272 [CommonItemStack] Add custom model data components API
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-03-17 09:53:52 +01:00
Irmo van den Berge 4a55026487 Remove bad import
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-03-17 09:52:41 +01:00
Irmo van den Berge 24e1052176 [Resource Pack] Begin implementing a deserializer for the new format
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-03-16 21:40:18 +01:00
Irmo van den Berge 035270de31 Add IndentedStringBuilder API
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-03-16 21:39:25 +01:00
Irmo van den Berge d8505053f6 [Resource Pack] This isnt committed yet
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-03-16 18:16:32 +01:00
Irmo van den Berge f26cccf312 [Resource Pack] This was wrong
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-03-16 18:15:25 +01:00
Irmo van den Berge 3b91d5445a [Resource Pack] Read pack metadata, use it for listing overrided item model names
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-03-16 18:13:18 +01:00
Irmo van den Berge f23cb5f91a [Map Displays] Fix bug causing glitchy map items in creative mode
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-02-13 22:43:10 +01:00
Irmo van den Berge e568dfc3ac [Map Controller] Use setPacket instead of recursive receivePacket here
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-02-12 17:31:49 +01:00
Irmo van den Berge 485339cd30 Add support for paper changes in light api
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-01-21 17:37:17 +01:00
Irmo van den Berge d88c65b0e9 Add feature flag API for worlds
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-01-16 19:28:09 +01:00
Irmo van den Berge 608975173c Add new MoveMinecart packet api
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-01-16 16:41:53 +01:00
Irmo van den Berge cc3ffef49d Add support for Azurite where possible
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-01-10 17:37:18 +01:00
Irmo van den Berge d6a2058b28 A start of supporting the new items folder in Minecraft
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-01-04 00:54:59 +01:00
Irmo van den Berge 60e73b40ed Add capability for this new feature
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-01-03 18:31:38 +01:00
Irmo van den Berge 4091c6b4b5 Add packet api to change out the packet during listening
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2025-01-03 18:15:55 +01:00
Irmo van den Berge e3a6bf3075 Merge pull request #172 from Snabeldier/patch-1
docs: correct two spelling errors
2024-12-30 16:02:17 +01:00
Vincent B. 1637bb1b42 overwritten -> overridden 2024-12-30 04:06:15 +01:00
Vincent B. 9a0306a8b5 fix two mistakes 2024-12-30 01:03:02 +01:00
Irmo van den Berge 3f1c767577 Support recent changes in paper
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-12-27 16:02:58 +01:00
Irmo van den Berge d9c12b8830 Another fix
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-12-21 15:51:43 +01:00
Irmo van den Berge f29b88d8e1 Fix InventoryView backwards compatibility bug
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-12-21 15:24:06 +01:00
Irmo van den Berge 4792d93341 Fix bug that caused item transfers to an empty item to not work
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-12-20 18:34:21 +01:00
Irmo van den Berge e10d7518c5 Support paper's change from List to Set in recipes
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-12-08 14:50:31 +01:00
Irmo van den Berge 9652615d27 [1.21.4] Further support fixes
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-12-03 22:38:29 +01:00
Irmo van den Berge e70a611bb0 Working towards 1.21.4-v1: Basic template fixes for 1.21.4
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-12-03 22:10:09 +01:00
Irmo van den Berge 3901403e0b Use InputDialogAnvil in MapWidgetAnvil to avoid code duplication
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-12-01 17:00:18 +01:00
Irmo van den Berge a6279bc8b3 Fix anvil menu troubles for the input dialog
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-12-01 13:45:04 +01:00
Irmo van den Berge ed111d1b49 Anvil fix the growing whitespace
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-11-22 19:57:14 +01:00
Irmo van den Berge 7c22863b18 An attempt to fix the anvil menu, again
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-11-22 19:29:19 +01:00
Irmo van den Berge 2e9a458786 Avoid text resetting while typing in anvil dialogs
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-11-22 18:59:02 +01:00
Irmo van den Berge 942a6a4978 Fix held map input not being received properly
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-11-22 17:56:16 +01:00
Irmo van den Berge d76f0374ac [Teleport] Refer to the sync packet for teleports
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-11-14 19:20:28 +01:00
Irmo van den Berge 56b914f6c0 [Vehicle Steer Packet] Add isSprint and add packet constructor
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-11-14 18:45:49 +01:00
Irmo van den Berge 6be4ca3ad6 Fix support for older Minecraft versions that broke due to changes
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-11-07 19:43:43 +01:00
Irmo van den Berge 4b8381cc5a Separate PlayerRespawnPoint into separate implementations, add forced support
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-11-07 00:11:36 +01:00
Irmo van den Berge f58c07abb4 Add support for Paper with the block data wrapper hook stuff
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-11-06 22:29:30 +01:00
Irmo van den Berge 9be38ece95 Add support for paper moonlight light engine changes
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-11-06 21:34:15 +01:00
Irmo van den Berge b86311f7b5 Add support for 1.21.3 moonlight changes
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-11-06 21:17:32 +01:00
Irmo van den Berge 68c8756e31 [1.21.2/3] Fix onDamageEntity hook not working
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-11-05 20:50:46 +01:00
Irmo van den Berge 3bf53ad663 Working towards 1.21.3-v1: Add MC 1.21.3 support
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-11-05 20:50:46 +01:00
Irmo van den Berge 333bdd78cd Weird how this got mixed up without a test failing
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-11-05 20:50:46 +01:00
Irmo van den Berge 3cf5147d05 [1.21.2] Fix InteractionResult API
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-11-05 20:50:46 +01:00
Irmo van den Berge fc7dc79343 [1.21.2] Add support for new material types in deserializer
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-11-05 20:50:46 +01:00
Irmo van den Berge d303b4ffe3 Fix relative flags api
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-11-05 20:50:46 +01:00
Irmo van den Berge 8720c10777 [Yaml] Always quote when using chat colors or single quotes in value 2024-11-05 10:39:37 +01:00
Irmo van den Berge e3a58917c5 [1.21.2] Add pale oak material type
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-11-04 22:44:11 +01:00
Irmo van den Berge 153496032f [1.21.2] Fix cases of calling IRegistry get instead of getValue
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-11-04 03:33:38 +01:00
Irmo van den Berge ec2bdd62cf [1.21.2] Internal logic fixes
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-11-02 23:24:39 +01:00
Irmo van den Berge ea5018e690 [1.21.2] Fix entity type class detection
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-11-02 23:05:59 +01:00
Irmo van den Berge 8fa2289ea1 [1.21.2] Fix recipe templates and logic
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-11-02 22:54:21 +01:00
Irmo van den Berge ecc609d616 [1.21.2] Fix BlockData deserializion
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-11-02 21:26:05 +01:00
Irmo van den Berge 0eb0eacb15 [1.21.2] Final template fixes
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-11-02 21:21:07 +01:00
Irmo van den Berge 836c0404d9 [1.21.2] More template fixes, but Im tired now, more tomorrow
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-10-31 19:53:12 +01:00
Irmo van den Berge e24e9a00f4 [1.21.2] More template fixes woo so much fun :D
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-10-31 19:33:18 +01:00
Irmo van den Berge f5c1d2d899 [1.21.2] Support test server initialization (fingers crossed)
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-10-31 18:51:42 +01:00
Irmo van den Berge 758cbced56 [1.21.2] Fix light engine thread schedule function
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-10-31 17:46:56 +01:00
Irmo van den Berge 8e7d5f42a4 I don't think I ever used this?
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-10-31 17:40:50 +01:00
Irmo van den Berge 3730f200f7 [1.21.2] Rewrite of teleport packet to support big changes
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-10-31 17:35:48 +01:00
Irmo van den Berge 1933615d07 Add extra createNew overload for specifying delta xyz
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-10-31 14:57:10 +01:00
Irmo van den Berge 7429648ea2 [1.21.2] Rewrite of the out player position packet with new relative flags
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-10-31 12:55:43 +01:00
Irmo van den Berge 583ae5e636 Fix steer packet left/right to float being inverted
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-10-27 00:28:03 +02:00
Irmo van den Berge 317d8534cb Template fixes of previous 1.21.2 commits
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-10-27 00:13:05 +02:00
Irmo van den Berge 271c579bbd [1.21.2] Support changes to the vehicle steer packet
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-10-27 00:04:36 +02:00
Irmo van den Berge e084b31fc5 [1.21.2] Support entity tracker rot prot int -> byte change
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-10-23 18:35:25 +02:00
Irmo van den Berge 0a75a528d6 [1.21.2] Second round of template fixes
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-10-23 18:15:59 +02:00
Irmo van den Berge 499dfde8d0 [1.21.2] First round of template fixes
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-10-23 17:41:20 +02:00
Irmo van den Berge 49dc56e9c5 Working towards 1.21.2-v1: Switch versions
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-10-23 17:41:08 +02:00
Irmo van den Berge 0d7b75af9d Handle paper's own opensign event for detecting sign edits
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-10-16 17:24:12 +02:00
Irmo van den Berge 6aee79ab40 Add support for leaf server 1.20
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-10-10 15:57:39 +02:00
Irmo van den Berge 4578bc5d41 [Yaml] Fix deserialization of invalid profile names causing errors
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-10-06 23:03:42 +02:00
Irmo van den Berge 1684cd70d9 Add support for 1.21 Leaf server changes
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-10-05 19:25:15 +02:00
Irmo van den Berge 0515bd83c3 Fix ChatSerializer broken import in generated code
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-10-05 19:13:17 +02:00
Irmo van den Berge 94e2467513 Add SignEditTextEvent
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-10-01 22:35:16 +02:00
Irmo van den Berge da199cb6ab [ChatText] Add isEmpty method
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-10-01 22:30:49 +02:00
Irmo van den Berge 650cd628c7 [Sign] Move line getter and setter methods to an interface
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-10-01 22:30:15 +02:00
Irmo van den Berge f7e17ad9c9 [NBT] Fix rare deadlock due to static initialization of toStringFallback
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-09-30 21:05:39 +02:00
Irmo van den Berge 2e69527175 [Yaml] Escape strings that contain special characters
Fixes encoding errors or ambiguity in some text editors

Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-09-30 19:09:50 +02:00
Irmo van den Berge 3db69e3225 Fix deadlock issue in conversion system, add test for detecting it
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-09-29 23:25:57 +02:00
Irmo van den Berge ce6317e36d [DebugUtil] Add a logStackTraces method without delay
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-09-29 23:19:45 +02:00
Irmo van den Berge e4d2b59837 [NBT] Fix initialization class loading deadlock issue
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-09-29 23:19:21 +02:00
Irmo van den Berge cdbd004a97 Implement PlayerInstancePhase API and use it in place of isValid()
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-09-28 01:07:48 +02:00
Irmo van den Berge bac73d3868 [SortedIdentityCache] Make sync methods generic type more relaxed
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-09-28 00:16:17 +02:00
Irmo van den Berge d0ecce88ce [Spigot-7780] Only do chunk caching if bug actually exists
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-09-27 20:41:18 +02:00
Irmo van den Berge e5c09aeccf Working towards 1.21.1-v2: Also support bare CraftBukkit jar
For testing a craftbukkit PR this was needed

Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-09-25 21:24:50 +02:00
Irmo van den Berge 38a9742d71 Mark for final 1.21.1-v1 release
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-09-21 16:06:15 +02:00
Irmo van den Berge 4b9b83cc13 Cache chunk handles to work around Spigot issue [SPIGOT-7780]
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-09-18 19:36:26 +02:00
Irmo van den Berge 80ad435e1c Fix log message
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-09-10 18:59:05 +02:00
Irmo van den Berge 0decfbfc26 [Player Data] Add onLoadOffline API to controller
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-09-10 18:51:08 +02:00
Irmo van den Berge 81540fdef6 Bump softdependency lib to v1.04 to fix plugin self-disabling bug
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-09-07 21:25:50 +02:00
Irmo van den Berge 388ddb046c Add missing yaw/pitch API to Block Place packet
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-08-28 18:04:27 +02:00
Irmo van den Berge 8827f6835d [Paper] Fix chunk entities seen as loaded before chunk is actually loaded
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-08-28 16:47:46 +02:00
Irmo van den Berge 655213ac70 Fix getOpacity() error on some servers
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-08-27 18:24:16 +02:00
Irmo van den Berge 127ea8da6c Bump Mountiplex to add support for Java 22
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-08-27 17:44:13 +02:00
Irmo van den Berge b64bfafdbe Add missing fastutil remapping rule for old spigot server
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-08-26 00:41:32 +02:00
Irmo van den Berge 09d8e523b6 [1.21] Fix issues of incomplete entity hooking
Caused many bugs
2024-08-25 12:24:44 +02:00
Irmo van den Berge 4eb79f62fc Fix missing getBaseValue method error pre-1.14.4
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-08-25 12:24:08 +02:00
Irmo van den Berge 59a00e89fa [Implicit Sharing] Use atomic reference to fix race condition in close()
Not really an issue but its a todo so lets fix it
2024-08-12 19:13:11 +02:00
Irmo van den Berge 5301878f72 Working towards 1.21.1-v1: Add Minecraft 1.21.1 support
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-08-12 19:12:31 +02:00
Irmo van den Berge a1b158c308 Fix ItemMeta deserialization not working with new format due to GSON doubles
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-08-08 16:34:51 +02:00
Irmo van den Berge 48d1055aa9 This test wasn't needed
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-08-07 23:42:04 +02:00
Irmo van den Berge 6b6b698eb3 Attempted itemstack json serialization fixes
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-08-07 22:50:47 +02:00
Irmo van den Berge 31b6e17257 Fix ItemStack json deserialization not supporting metadata (player heads)
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-08-07 18:04:58 +02:00
Irmo van den Berge f8d81ed905 Instead of excluding service files, merge/remap them
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-08-06 19:33:38 +02:00
Irmo van den Berge 4976780639 Omit cloud services files in final jar to avoid errors
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-08-06 18:25:16 +02:00
Irmo van den Berge 19d4bd279b Fix portal teleportation delay not working due to processor reset
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-08-06 17:39:51 +02:00
Irmo van den Berge e7a96d95f7 Fix anvil menu error on 1.21
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-07-29 19:34:43 +02:00
Irmo van den Berge fbf2823bca Forgot cast
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-07-27 15:52:13 +02:00
Irmo van den Berge 7d5f13f396 Add entity type handler fallback + type name logging on failure
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-07-27 15:37:44 +02:00
Irmo van den Berge 30e7e3a1ad Merge pull request #170 from Hellaweird/master
Added player skin customization fields in template.
2024-07-18 13:19:30 +02:00
xxminersx 23fef40ea2 Added bitmask for the flags, so its easier to set them. 2024-07-18 13:16:35 +02:00
xxminersx 1e976b15a6 Updated Common.java to add "Common:Player:SetSkinMetadata", for future TC versions. 2024-07-18 12:41:44 +02:00
xxminersx 2710e4efc2 Merge remote-tracking branch 'origin/master' 2024-07-18 12:32:01 +02:00
xxminersx bbe4cd3932 Updated EntityHuman template, adding the DATA_PLAYER_MODE_CUSTOMISATION field.
This field allows for change of players skin layer.
2024-07-18 12:31:50 +02:00
xxminersx 87b451f0d5 Updated EntityHuman template, adding the DATA_PLAYER_MODE_CUSTOMISATION field.
This field allows for change of players skin layer.
2024-07-18 12:28:53 +02:00
Irmo van den Berge cd26b8f21c [Cloud] Add QuotedLinesParser helper parser (from TCC)
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-07-16 20:43:41 +02:00
Irmo van den Berge d829285b30 Include server name in version command
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-07-15 22:51:02 +02:00
Irmo van den Berge 5658818936 Fix attributes value api, add remove modifiers api
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-07-15 22:00:23 +02:00
Irmo van den Berge 9a44393c07 Fix CommonItemStack hideAllAttributes, add hideTooltip method
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-07-14 02:25:22 +02:00
Irmo van den Berge 43e74f9ed1 Fix missing method error on 1.12.2
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-07-14 02:25:08 +02:00
Irmo van den Berge 565f43c813 Forgot to remove debug
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-07-12 22:36:39 +02:00
Irmo van den Berge babbbe699a Fix entity tracker onTick no longer being handled on new Paper, causing bugs
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-07-12 22:36:06 +02:00
Irmo van den Berge 356de838ad [Yaml] Add getDeepYamlKeys() API
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-07-10 23:11:39 +02:00
Irmo van den Berge bd0771132e [Yaml] Mode value and key iterators to a common iterator class
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-07-10 22:02:52 +02:00
Irmo van den Berge 8b5428e8bf [Yaml] Add YamlPath based APIs
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-07-10 21:34:03 +02:00
Irmo van den Berge e472303e25 More InventoryView related fixes
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-07-05 14:11:53 +02:00
Irmo van den Berge f948eac755 Fix issue with calling InventoryView getPlayer() due to class change
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-07-05 13:49:25 +02:00
Irmo van den Berge 640f0edb33 Use isValid() instead of isOnline()
The isOnline() method is broken on spigot and does not detect when a player instance is stale

Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-07-03 20:04:09 +02:00
Irmo van den Berge f4f8dda776 [Cloud] Add optional strict mode for the quoted argument parser
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-07-03 20:03:08 +02:00
Irmo van den Berge 0413bd298f [1.21 paper] Fix entity not replaced in by-id and by-uuid lookups
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-07-02 17:48:12 +02:00
Irmo van den Berge cdeadf66a3 Add setter for sign type to sign edit dialog
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-07-01 08:33:51 +02:00
Irmo van den Berge 2f20d26cb4 Keep both types of fastutil maps I guess
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-07-01 08:01:33 +02:00
Irmo van den Berge c790591662 Some attempted fixes for imanityspigot
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-07-01 07:59:40 +02:00
Irmo van den Berge da76f2ecc7 Fix issues when passing non-item materials to recipe util functions
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-06-25 23:51:50 +02:00
Irmo van den Berge 1557acdc24 [1.21] Add support for Paper 1.21 and spottedleafs refactoring
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-06-25 23:17:34 +02:00
Irmo van den Berge 8d64ae8162 [1.21] Forgot return value here
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-06-15 23:11:49 +02:00
Irmo van den Berge e81445eac1 [1.21] Update cloud to support MC 1.21
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-06-15 23:11:38 +02:00
Irmo van den Berge 088c1a4a62 [1.21] Handle item deserialization
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-06-15 22:48:30 +02:00
Irmo van den Berge d88498e580 [1.21] More logic template fixes
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-06-15 22:40:35 +02:00
Irmo van den Berge b4780bb3b1 [1.21] Fix find safe respawn position method
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-06-15 22:15:28 +02:00
Irmo van den Berge 9540c09065 [1.21] This spawn entity constructor is no longer useful
Use the EntityTrackerEntryState getSpawnPacket() API instead

Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-06-15 22:06:36 +02:00
Irmo van den Berge 1f8fb2ebdc [1.21] Make portal related entity methods work again (mostly)
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-06-15 21:59:12 +02:00
Irmo van den Berge a01532d724 Working towards 1.21-v1: Initial template support fixes
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-06-15 16:00:27 +02:00
Irmo van den Berge 0d53dbbabe Mark for final 1.20.6-v1 release
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-06-13 22:43:11 +02:00
Irmo van den Berge d01af6c15e Eliminate cached Sign BlockState handle, barely used
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-06-08 22:35:20 +02:00
Irmo van den Berge 3dc092d926 Move isEquipmentSupported to work for all entities because bukkit a shit
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-06-06 21:18:45 +02:00
Irmo van den Berge 46de91484b Add isEquipmentSlotSupported, avoid the error bukkit now forces
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-06-06 20:35:18 +02:00
Irmo van den Berge ef6413014c [Sign Tracker] Cache String lines ourselves to fix Paper performance issue
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-06-04 20:34:50 +02:00
Irmo van den Berge 13b71571ac [Sign Tracker] Move common stuff to resetTileEntity()
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-06-04 19:49:03 +02:00
Irmo van den Berge 6d4605bb99 Chat to message optimization for common no-format case
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-06-04 19:11:32 +02:00
Irmo van den Berge d9361f58a1 Migrate chat text conversion functions to a global macro file
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-06-04 18:13:38 +02:00
Irmo van den Berge e6cc623b30 Migrate some version-specific remappings to the chat remappings file
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-06-04 17:28:19 +02:00
Irmo van den Berge e8e2d5ce8e More gracefully handle other plugins that mess with netty
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-06-03 20:21:04 +02:00
Irmo van den Berge 5a48c77d63 How did this import happen?
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-31 16:05:48 +02:00
Irmo van den Berge 7ccce6c0c1 Switch to new viaversion api
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-31 16:05:39 +02:00
Irmo van den Berge 325a577771 Fix incorrect gradle dependency info in cloud howto docs
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-28 13:55:50 +02:00
Irmo van den Berge 3580c9ba09 Add a couple more meta options
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-25 21:31:41 +02:00
Irmo van den Berge 4530884842 Restore item parser meta rule logic for NBT and damage
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-25 21:21:22 +02:00
Irmo van den Berge 15ab7f65b0 Add info to cloud howto to help people avoid troubleshooting
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-25 19:02:22 +02:00
Irmo van den Berge 6fa045cccb Merge pull request #166 from bergerhealer/cloud-v2
Migrate to Cloud v2
2024-05-25 18:08:56 +02:00
Irmo van den Berge 2883c846c4 [Cloud] Add a comment about where incendo hosts the jars
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-25 18:01:51 +02:00
Irmo van den Berge 5cc058fa7b [Cloud] Clarify doc code highlighting
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-25 17:48:06 +02:00
Irmo van den Berge fa1aae7111 [CLoud] Add repositories parent tag for maven pom
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-25 17:44:14 +02:00
Irmo van den Berge 73e5ec7bd7 [Cloud] Update documentation with new dependency howtos
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-25 17:42:18 +02:00
Irmo van den Berge ccef030997 [Cloud] Looks like this snapshot repo is no longer needed, as we use beta/rc
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-25 17:10:01 +02:00
Irmo van den Berge 429b3db54b [Cloud] Add createParser method
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-25 16:51:28 +02:00
Irmo van den Berge ff52130810 [Cloud] Best to also escape when theres quotes
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-25 16:51:28 +02:00
Irmo van den Berge 4bd73350ef [Cloud] Show sensible suggestions for quote-escaped input
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-25 16:51:28 +02:00
Irmo van den Berge 9f439c2582 [Cloud] Add QuotedArgumentParser
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-25 16:51:28 +02:00
Irmo van den Berge 5493325d06 [Cloud] Minor tweaks and fixes
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-25 16:51:28 +02:00
Irmo van den Berge 2d56c547d7 [Cloud] Fix command framework relocation and library versions
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-25 16:51:28 +02:00
56738 62d2900123 WIP: Update to cloud v2 2024-05-25 16:51:28 +02:00
Irmo van den Berge 701dc063f8 [DataWatcher] Typo on old 1.8 server
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-25 16:51:17 +02:00
Irmo van den Berge de1bb4b5b1 Add a dedicated player profile migration method instead
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-24 01:52:04 +02:00
Irmo van den Berge 3a90cf3ad8 Fix player data loading breaking due to missing data migration handling
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-23 18:08:37 +02:00
Irmo van den Berge e01df91369 Some attempt to support older modified spigot 1.8 clones
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-23 14:03:46 +02:00
Irmo van den Berge 4601554c47 Try to see what happens if I include bkcl itself in the bom
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-21 23:22:46 +02:00
Irmo van den Berge 452bbe6226 Make cloud version part of the BKCommonLib bom
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-21 22:36:56 +02:00
Irmo van den Berge 403f705728 Move group id and version to gradle.properties
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-21 20:57:19 +02:00
Irmo van den Berge cc91389a49 Let's try this again shall we
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-21 20:48:06 +02:00
Irmo van den Berge 38856d7433 Add publishing section for the bom
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-21 20:42:26 +02:00
Irmo van den Berge 0b40bd0de3 Test: add BKCommonLib-bom sub-project
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-21 20:34:35 +02:00
Irmo van den Berge 806af005c4 Bump region change tracker to 1.3 to maybe fix issues
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-19 14:18:12 +02:00
Irmo van den Berge 682012dd91 Fix map packet issue on pre-1.17
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-19 12:54:57 +02:00
Irmo van den Berge c3b7ca3699 [NBT] Fix facepalm moment
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-19 01:27:52 +02:00
Irmo van den Berge 03eedca000 Don't fail critical startup failure logging if command lookup fails
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-19 01:18:00 +02:00
Irmo van den Berge 236f63d22e [CommonItemStack] Add getDisplayName API to fix backwards-compatibility
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-19 01:17:41 +02:00
Irmo van den Berge 46cb3ef3fa [Map Display] Guard text drawing calls against null
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-19 00:30:57 +02:00
Irmo van den Berge c7526dfb96 Fix empty constructor of PacketPlayOutBlockChange
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-18 11:41:08 +02:00
Irmo van den Berge d34e6a94df [DataWatcher] This is ever so slightly more efficient
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-15 16:47:24 +02:00
Irmo van den Berge 584d38263a [DataWatcher] Better handle double-registering when using setClientDefault
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-15 16:27:00 +02:00
Irmo van den Berge 064222d0a5 [DataWatcher] Support Papers datawatcher modifications in 1.20
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-15 01:19:55 +02:00
Irmo van den Berge 55c4e2f01d [DataWatcher] Fix clone() undoing the unset datawatcher item singletons
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-15 00:17:09 +02:00
Irmo van den Berge ec3450545d [DataWatcher] Have watch() just call set() to mimic the original behavior
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-15 00:08:39 +02:00
Irmo van den Berge adf02d3573 Fix player file data handler onLoad not being called (MyWorlds)
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-14 19:41:02 +02:00
Irmo van den Berge c6cf519425 [DataWatcher] Make an unset datawatcher item singleton with error flow control
This prevents misuse internally, and as well slightly helps performance

Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-14 19:11:34 +02:00
Irmo van den Berge 322dcd64da [DataWatcher] Fix packNonDefault serialization error
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-14 17:44:25 +02:00
Irmo van den Berge e3b1aa6963 Add DataWatcher Prototype with builder API
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-14 15:19:37 +02:00
Irmo van den Berge ce10239322 Move DataWatcher Serializer registry code to its own class file
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-14 14:40:06 +02:00
Irmo van den Berge 0dddf041f6 Use getNonDefaultValues for metadata packet now the logic is fixed
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-14 13:40:13 +02:00
Irmo van den Berge aa04474158 Move datawatcher key value conversion to wrapper
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-14 13:27:36 +02:00
Irmo van den Berge 84d953d096 Use Default DataWatcher set implementation, only use custom code in fallback
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-14 13:21:40 +02:00
Irmo van den Berge 8677a93582 Rewrite datawatcher to more properly handle unset defaults
The handling of lazy registering moved to internal implementation

Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-14 12:30:31 +02:00
Irmo van den Berge a780c6d15a Merge implementations of datawatcher set and forceSet
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-14 11:27:04 +02:00
Irmo van den Berge fc035ed96e Fix issues on 1.8 - 1.10.2
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-13 19:08:13 +02:00
Irmo van den Berge 41bb5cb028 Update Mountiplex to fix incompatibility with jdk8
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-13 16:05:32 +02:00
Irmo van den Berge 9c6d7a43db Fix NBT put remapping mistake (returns nbtbase after some version)
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-13 16:05:19 +02:00
Irmo van den Berge 8d3461dbdb [Pre-1.20.5] Template fixes to restore compatibility
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-13 15:31:01 +02:00
Irmo van den Berge bdb153986b [1.20.6] Fix block data getBoundingBox error
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-13 10:49:25 +02:00
Irmo van den Berge 6b49f4af87 [1.20.6] Fix Item setMaxStackSize
Some stuff is now client-sided and cannot be fixed :(

Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-12 19:12:00 +02:00
Irmo van den Berge 751deaa83b Fix onPush related error
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-12 17:45:27 +02:00
Irmo van den Berge 08aeb5259a [1.20.6] Fix player data handler
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-12 17:42:52 +02:00
Irmo van den Berge f0707cca0d [1.20.6] Fix broken creative slot handling with maps
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-11 00:57:17 +02:00
Irmo van den Berge f7b04bdee1 Fix DataWatcher disabled entity still having logic, causing issues
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-11 00:23:00 +02:00
Irmo van den Berge e99be29acb [CommonItemStack] Add method to look up item render options
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-10 23:55:30 +02:00
Irmo van den Berge 3db091dff1 Add overloads to MapDisplay to create common items
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-10 23:51:36 +02:00
Irmo van den Berge 16dcad28ab [1.20.6] Compatibility fixes
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-10 13:15:44 +02:00
Irmo van den Berge d795b82108 Probably cleaner to return the actual world name
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-10 00:45:10 +02:00
Irmo van den Berge e0b6543ed6 Handle getName in blockstateconversion
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-10 00:41:45 +02:00
Irmo van den Berge ab2d8f5192 Compatibility fixes for pre-1.20.4
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-09 23:46:49 +02:00
Irmo van den Berge 0f76512e9a [CommonItemStack] Add helper transfer-to-item method
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-09 23:01:34 +02:00
Irmo van den Berge 96d3576fa3 Add EMPTY_MAP and STICK item material constants
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-09 22:40:08 +02:00
Irmo van den Berge fadd81d116 [CommonItemStack] Add Bukkit addUnsafeEnchantment proxy method
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-09 22:11:28 +02:00
Irmo van den Berge 9016c479de [CommonItemStack] Add Bukkit proxy addEnchantment method
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-09 21:31:06 +02:00
Irmo van den Berge 93bf15306d [CommonItemStack] Add addLoreLine helper method
Empty lores added as spacers is a frequent thing I do

Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-09 21:23:02 +02:00
Irmo van den Berge 345f6bd573 [CommonItemStack] Add setEmptyCustomName method
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-09 21:09:10 +02:00
Irmo van den Berge d82b7e0901 [CommonItemStack] Add ItemFlag Bukkit proxy methods
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-09 20:53:20 +02:00
Irmo van den Berge d478cc4fb1 Fix DataWatcher clone() not accurately cloning state
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-09 19:21:48 +02:00
Irmo van den Berge 2666c6e93e Bukkit broke Material isBlock(). Thanks!
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-09 16:44:26 +02:00
Irmo van den Berge 25de61e890 [1.20.6] Working towards 1.20.6-v1: 1.20.6 support
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-09 15:52:51 +02:00
Irmo van den Berge 5829ec8e21 Disable the COLOR_RGB meta key for now until we have a fix
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-09 15:43:40 +02:00
Irmo van den Berge 53f5e75b9f [1.20.5] Add support for entity effect color option
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-09 15:35:52 +02:00
Irmo van den Berge c119511760 [1.20.5] Very basic itemstack deserialization fixes
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-09 14:52:39 +02:00
Irmo van den Berge 262ccb396e [NBT] Add read-only getter methods for lists and compounds
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-09 14:44:02 +02:00
Irmo van den Berge 760a04cc41 [1.20.5] Fix itemstack yaml serialization bug
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-07 19:32:02 +02:00
Irmo van den Berge d5b96d66bf [1.20.5] Fix item variants
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-06 19:18:56 +02:00
Irmo van den Berge 8baf76842d Rename this living entity metadata field, wtf?
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-05 18:22:25 +02:00
Irmo van den Berge 1bb8bb68ad [1.20.5] Disable warning of this now unused class
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-05 18:13:00 +02:00
Irmo van den Berge 1656ac52ac [1.20.5] Fix custom payload packet based on whatever bukkit is doing
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-05 18:10:44 +02:00
Irmo van den Berge 7ff59b98ff [1.20.5] Fix issues with block data wrapper hook and packet type direction
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-05 17:31:57 +02:00
Irmo van den Berge ab36eb13b2 [1.20.5] Another round of template fixes!
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-05 16:52:41 +02:00
Irmo van den Berge 0b48ca783d Move marker applier to the packet api
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-05 14:05:04 +02:00
Irmo van den Berge 44732dfc6c Bump Mountiplex, which caused some newlines to disappear
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-05 14:04:04 +02:00
Irmo van den Berge 80e114e707 [1.20.5] Template and API fixes for Map Cursors and DataWatcher
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-05 01:24:15 +02:00
Irmo van den Berge efa0e1a823 [1.20.5] Fix final template warnings
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-02 21:08:34 +02:00
Irmo van den Berge 5ad2a7060a Delete old deprecated advancement rewards disabler logic
Its incompatible with 1.20.5 anyways

Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-02 20:50:46 +02:00
Irmo van den Berge 800dfaeed7 [1.20.5] More template fixes
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-01 20:58:16 +02:00
Irmo van den Berge be1c12f8cb [1.20.5] Rewrite the Map Packet API as it is now immutable
Added a Builder class

Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-05-01 18:50:49 +02:00
Irmo van den Berge 3dabe5853d [1.20.5] Needs to use proper 1.8 type here
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-04-30 19:33:10 +02:00
Irmo van den Berge 3891f38763 [1.20.5] Further template fixes all around
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-04-30 19:29:23 +02:00
Irmo van den Berge 9d10b67ac1 [1.20.5] New CommonItemStack API with 1.20.5 compatible getters and setters
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-04-30 02:25:03 +02:00
Irmo van den Berge 64dfbe0522 [1.20.5] Migrate NBT method names to the new remap template feature
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-04-30 02:21:09 +02:00
Irmo van den Berge 4702c3ace7 [1.20.5] BlockData compatibility fixes
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-04-30 02:19:05 +02:00
Irmo van den Berge 28a9235c07 [NBT] Add a read-only safety mode for NBT tags
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-04-28 01:24:49 +02:00
Irmo van den Berge 0d51bd1a64 Update gradle wrapper to v8.5
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-04-27 19:01:36 +02:00
Irmo van den Berge 5cc0188879 [1.20.5] Make the original DataWatcher API work
Slight hack, better API is still required

Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-04-27 17:01:34 +02:00
Irmo van den Berge b1cec4176c [1.20.5] Entity effect amplifier field change from byte to int
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-04-26 20:31:14 +02:00
Irmo van den Berge d5d8229bc6 [1.20.5] Support attribute holders, cleanup api from raw types
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-04-26 19:58:26 +02:00
Irmo van den Berge 5a11687e56 [1.20.5] Compatibility fixes for MobEffectList changed to Holder
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-04-26 19:28:42 +02:00
Irmo van den Berge ea176bd20d Working towards 1.20.5-v1: Initial compatibility fixes
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-04-24 20:44:27 +02:00
Irmo van den Berge a70395f6db Mark for final 1.20.4-v4 release
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-04-23 21:55:28 +02:00
Irmo van den Berge 46d0012f02 [Map Displays] Fix item frames not loading in for viewers sometimes
The server sometimes loads and unloads a chunk in the same tick, causing a weird desync to occur because there is no time for cleaning up.

Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-04-23 19:36:49 +02:00
Irmo van den Berge 28bdebac4a Add support for Papers entity push method change
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-04-21 16:16:20 +02:00
Irmo van den Berge d730bfac06 [Debug] Add support for a predicate-based search to instance searcher
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-04-21 16:04:52 +02:00
Irmo van den Berge b850088957 Add support for Paper MojangMap server
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-04-21 16:04:29 +02:00
Irmo van den Berge 3d2c0569c9 Fix stack overflow error due to previous commit
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-04-15 17:25:11 +02:00
Irmo van den Berge 2315d1e808 [Entity Controller] Fix onDie not being called anymore on recent bukkit
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-04-14 14:56:39 +02:00
Irmo van den Berge 060621f286 Maybe fix weird error?
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-04-12 23:00:24 +02:00
Irmo van den Berge efa9290731 Add text display style flag constants
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-04-12 16:00:41 +02:00
Irmo van den Berge baf7d522e4 Fix incompatibility with mods/plugins that alter the player instance type
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-04-09 20:44:24 +02:00
Irmo van den Berge a45721401c Fix incompatibility problem with Carbon 1.8
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-03-15 23:34:55 +01:00
Irmo van den Berge 7633cb3008 Fix world border min/max Y coordinate not correct
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-03-02 13:22:27 +01:00
Irmo van den Berge a45adf6310 Eliminate overhead of material type lookup to detect map items
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-02-20 20:39:00 +01:00
Irmo van den Berge 652030943c Eliminate use of the old SafeField API in block state conversion
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-02-20 20:18:14 +01:00
Irmo van den Berge 011eb434e4 [ClassMap] Cache get by type results, make multithread-safe
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-02-20 20:03:28 +01:00
Irmo van den Berge 44a6de35f0 Add capability for the position passengers feature
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-02-17 16:57:08 +01:00
Irmo van den Berge 31fb8ee1e1 Add EntityController onPositionPassenger API
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-02-17 16:16:52 +01:00
Irmo van den Berge 67dd8b39f2 Fix mistake in advancements criterion class name
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-02-17 16:09:37 +01:00
Irmo van den Berge 6ea6ea3f95 Add resetAwaitTeleport method to PlayerConnection
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-02-16 00:21:16 +01:00
Irmo van den Berge 70e580bce1 Don't use obfuscated method name here (has no effect at the moment)
Future proofing

Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-02-14 17:20:59 +01:00
Irmo van den Berge 1b55dc8080 Working towards 1.20.4-v4: Fix advancement progress handling bug on Spigot
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-02-06 21:56:15 +01:00
Irmo van den Berge a29fc26a02 Mark for final 1.20.4-v3 release
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-02-03 13:32:54 +01:00
Irmo van den Berge dbd0be8460 [Resource Pack] Spoof minecraft user agent because some resource pack hosts are shit
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-02-03 13:28:44 +01:00
Irmo van den Berge 07dcf7b26e [Signs] Add a formatted text getter and setter api
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-02-01 17:45:36 +01:00
Irmo van den Berge 16c3780e29 Fix checkFinite method not found error on very old versions of bukkit
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-02-01 17:33:28 +01:00
Irmo van den Berge 485f021cae Add getChunkViewers API
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-01-30 19:12:25 +01:00
Irmo van den Berge a46743bd0b Upgrade softdependency lib to 1.03
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-01-16 18:00:49 +01:00
Irmo van den Berge 5c5242775a Working towards 1.20.4-v3: Add yaml childWithName
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-01-09 18:43:00 +01:00
Irmo van den Berge 221edfcf2c Mark for final 1.20.4-v2 release
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-01-03 16:58:38 +01:00
Irmo van den Berge b7479375ee Move player advancements field to the hook for better backwards compatibility
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-01-03 16:56:16 +01:00
Irmo van den Berge de071f7390 [Advancements] Add PlayerAdvancementProgressEvent event to replace reward disabler
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-01-02 18:27:18 +01:00
Irmo van den Berge 9df3e93fba Working towards 1.20.4-v2: Fix broken advancement disabler
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2024-01-01 14:32:41 +01:00
Irmo van den Berge 70c335680a Mark for final 1.20.4-v1 release
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-12-17 17:30:40 +01:00
Irmo van den Berge e770016aa2 Update adventure platform with bugfix for 1.20.2/3
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-12-14 16:55:38 +01:00
Irmo van den Berge 735ce73fe9 [Yaml] Fix no yaml change event firing when removing an item from a list
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-12-12 01:55:27 +01:00
Irmo van den Berge 56ad5cbacd [Map Display] Make handleNavigation public - makes things easier
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-12-10 16:51:20 +01:00
Irmo van den Berge 511f6e68da Working towards 1.20.4-v1: Add Minecraft 1.20.4 support
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-12-08 02:03:55 +01:00
Irmo van den Berge 00744f04ab Avoid resolvers initializing on unsupported minecraft versions
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-12-06 01:00:46 +01:00
Irmo van den Berge c5d51bb34e Update readme for new version
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-12-05 22:20:45 +01:00
Irmo van den Berge ab7341e117 [1.20.3] This class should never have been generated
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-12-05 22:17:38 +01:00
Irmo van den Berge b96e005611 [1.20.3] Adjust chat test tests to take new chat json spec into account
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-12-05 22:12:01 +01:00
Irmo van den Berge 56ed56fd8f [1.20.3] More fixes
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-12-05 21:54:57 +01:00
Irmo van den Berge 3fedd7b6fd [1.20.3] Some more template fixes
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-12-05 21:29:33 +01:00
Irmo van den Berge c43d5c2a33 [1.20.3] NBT read compressed function fix
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-12-05 21:16:46 +01:00
Irmo van den Berge 20b26f918a [1.20.3] Disable Explosion packet constructor, too many annoying parameters
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-12-05 21:14:55 +01:00
Irmo van den Berge 474f4a06ad [1.20.3] Fix scoreboard score change and remove packets
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-12-05 21:14:22 +01:00
Irmo van den Berge 18a169576e [1.20.3] Fix resource pack send packets api
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-12-05 21:12:23 +01:00
Irmo van den Berge 2f987749ce [1.20.3] Fix advancement disabler api
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-12-05 20:27:12 +01:00
Irmo van den Berge b7c2e7705a Working towards 1.20.3-v1: Initial fixes for 1.20.3
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-12-05 19:46:57 +01:00
Irmo van den Berge e79be758bb [Map] Fix pixel spacing right of tiny font [ character
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-12-03 15:32:23 +01:00
Irmo van den Berge 015fc48e8e [Map] Make tiny font p and q smaller so they don't stick out so much
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-12-03 13:30:01 +01:00
Irmo van den Berge 1432c2adf4 [Map] Small change to tiny font small r
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-12-03 13:26:11 +01:00
Irmo van den Berge 353f9b351d [YAML] Add non-indexed node list function
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-12-03 13:02:04 +01:00
Irmo van den Berge bbaa7911b0 [Cloud] Parameter injector registry was moved
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-12-02 14:39:28 +01:00
Irmo van den Berge e4d277812e [Tiny Font] I really did not like the one
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-12-01 18:31:07 +01:00
Irmo van den Berge ba90cd8f61 Perform rgb to map color conversion with parallel processing
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-11-25 18:51:36 +01:00
Irmo van den Berge 264616aec3 Another fix for RGB images and SIMD
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-11-24 02:34:46 +01:00
Irmo van den Berge 36c4317fd1 Update color conversion lib to 1.01 to fix some issues
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-11-24 02:25:31 +01:00
Irmo van den Berge 4ac9faf0bb Working towards 1.20.2-v3: Improve performance of map image loading
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-11-23 19:48:14 +01:00
Irmo van den Berge 366ad3c13e Mark for final 1.20.2-v2 release
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-11-23 00:11:52 +01:00
Irmo van den Berge c5d7d87a90 Fix permission mode potentially not being detected
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-11-19 23:18:45 +01:00
Irmo van den Berge ee63003d13 Simplify paper world config default creation, fixes issue on purpur
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-11-19 13:12:34 +01:00
Irmo van den Berge 6760bedf87 [Map Display] Add non-null input validation to some fields in resource pack
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-11-15 22:11:25 +01:00
Irmo van den Berge 1a6eab9350 Fix blocks changed with setBlockFast not persisting
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-11-09 17:00:24 +01:00
Irmo van den Berge 08f901a630 Fix calling wrong detect()
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-11-09 01:04:25 +01:00
Irmo van den Berge 14648a8d28 Probably need to add tolowercase here
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-11-08 19:47:43 +01:00
Irmo van den Berge 933d8de6ad Performance fix for LuckPerms5 permission wildcard handling
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-11-08 19:42:57 +01:00
Irmo van den Berge 8658d8877b [Map Display] Turns out, the map palette field images were all wrong
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-10-28 22:11:35 +02:00
Irmo van den Berge 4d416ed124 Don't pull in a bukkit 1.13 dep from the vault api we use
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-10-15 00:08:06 +02:00
Irmo van den Berge a368a23aa8 [Map Display] Fix error when looking up displays on a Bukkit ItemStack
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-10-14 23:58:53 +02:00
Irmo van den Berge 6a9232c534 [Sound] Add an alternative constructor omitting World, deprecate old one
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-10-12 21:58:47 +02:00
Irmo van den Berge 085529db28 [Sound] Don't use World Random for this, it's not multithread safe
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-10-12 21:55:06 +02:00
Irmo van den Berge 793c3813c6 Working towards 1.20.2-v2: Fix incompatibility with spigot 1.20.1
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-10-11 19:49:54 +02:00
Irmo van den Berge 4d88cd3b76 Mark for final 1.20.2-v1 release
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-10-08 20:47:34 +02:00
Irmo van den Berge 1c7301f75f Bump SoftDependency lib to v1.02
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-10-08 18:21:35 +02:00
Irmo van den Berge 5f987e5565 [Map Displays] Fix setVisible() not recursively updating child widgets
Caused glitched display

Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-10-06 19:36:50 +02:00
Irmo van den Berge a7b87383c4 [1.20.2] Add support for papers network changes
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-10-03 18:42:26 +02:00
Irmo van den Berge 38b73c336a [Cloud] Implement sound effect suggestions for non-brigadier servers
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-10-03 00:39:49 +02:00
Irmo van den Berge 677a9dc03b [Cloud] Add a SoundEffect argument
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-10-02 20:28:07 +02:00
Irmo van den Berge fd4c1a5a72 Upgrade Cloud to 1.8.4
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-10-02 20:27:53 +02:00
Irmo van den Berge 0227510baf Re-add deprecated setState with the deprecated type
Broke API otherwise

Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-10-01 21:13:03 +02:00
Irmo van den Berge 25161c65aa Fix legacy deprecated BlockState not exposing correct generic type
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-10-01 21:06:56 +02:00
Irmo van den Berge 4b8a065a74 Add capability for this
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-10-01 20:49:19 +02:00
Irmo van den Berge 291999a6ec Add PacketPlayOutStopSound
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-10-01 20:47:40 +02:00
Irmo van den Berge 0024214abf Make the tiny font show slim characters with less width pixels
No more fat i

Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-09-28 00:27:04 +02:00
Irmo van den Berge 808cdd1ae1 I really hated some of these capitalized tiny font character sprites
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-09-27 23:33:32 +02:00
Irmo van den Berge ac7476bc8e [1.20.2] Fix broken display entity metadata fields
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-09-27 22:36:08 +02:00
Irmo van den Berge 42c18d8c2b [1.20.2] Fix new named entity spawn packet not working properly
PIGS

Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-09-27 18:56:27 +02:00
Irmo van den Berge 50a55e26d7 [Server] This is a little cleaner code
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-09-24 18:35:55 +02:00
Irmo van den Berge 51fd8ce538 This stuff is obviously important too
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-09-24 16:12:18 +02:00
Irmo van den Berge 4f2399bae6 Fix error in portal handler on MC 1.17
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-09-24 16:06:34 +02:00
Irmo van den Berge 0f04426670 Fix some templates issues on MC 1.16.1 and broken custom message getter
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-09-24 16:02:38 +02:00
Irmo van den Berge 2ed4747d8a Fix warning on MC 1.8
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-09-24 15:31:34 +02:00
Irmo van den Berge 7e4b97993a Add Advancement in front of this so we know what its even about
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-09-24 15:20:14 +02:00
Irmo van den Berge 66b4fdea18 Fix advancement reward disabler not working due to global callbacks
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-09-24 15:18:51 +02:00
Irmo van den Berge 1d5145d8c9 Add a capability for the advancement reward disabler
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-09-24 14:29:12 +02:00
Irmo van den Berge 52d675e38e Add advancement reward disabler API
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-09-24 14:28:20 +02:00
Irmo van den Berge 1a53777c46 Remove packet setters that simply don't work because of record classes
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-09-24 00:15:18 +02:00
Irmo van den Berge 65b3f1f331 Add a fallback PacketPlayOutCustomPayloadHandle so deps dont break
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-09-23 15:41:33 +02:00
Irmo van den Berge 74ebac0550 [1.20.2] The final fixes to make all tests pass!
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-09-23 15:08:58 +02:00
Irmo van den Berge be89cb3b2d Show test stdout output so we dont miss quiet failures
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-09-23 15:08:33 +02:00
Irmo van den Berge d866d62bfa [1.20.2] Properly support bukkit DisplaySlot in scoreboards
This API really shouldn't even be used but here we go...

Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-09-23 14:43:11 +02:00
Irmo van den Berge 6d28101287 [1.20.2] Fix broken packet flow direction detector
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-09-23 13:59:50 +02:00
Irmo van den Berge bd22800601 [1.20.2] Fix registry not bootstrapped in CraftRegistry
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-09-23 13:34:31 +02:00
Irmo van den Berge 2829cd6fab [1.20.2] Final remaining template issues are now fixed
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-09-22 22:32:45 +02:00
Irmo van den Berge 1f10dbf6ae [1.20.2] Fix custom payload packet logic
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-09-22 22:02:46 +02:00
Irmo van den Berge c4b72dc4f4 [1.20.2] More compatibility fixes
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-09-22 21:28:29 +02:00
Irmo van den Berge 3b6c62faee Bump Mountiplex to v2.97 to fix requirement chaining bug
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-09-22 21:05:46 +02:00
Irmo van den Berge c456787b7a [1.20.2] Deal with the refactoring of login/respawn and use of CommonPlayerSpawnInfo
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-09-22 20:41:22 +02:00
Irmo van den Berge 3e8ce09bc1 [1.20.2] Add support for some of the network protocol changes
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-09-22 20:00:27 +02:00
Irmo van den Berge 552d388a55 [1.20.2] Fix broken MobEffectList by-id functions
Its probable spigot devs just forgot to add them back. This keeps stuff working.

Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-09-22 18:01:11 +02:00
Irmo van den Berge 0545f77374 [1.20.2] Migrate more packets to the common namespace
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-09-22 17:46:36 +02:00
Irmo van den Berge 1ef2a5b502 [1.20.2] Few more compatibility fixes
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-09-22 16:54:01 +02:00
Irmo van den Berge 33bd3427b3 [1.20.2] Migrate the keep-alive packets to the new package and class names
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-09-22 16:41:08 +02:00
Irmo van den Berge e43b0e13c1 [1.20.2] First round of fixes
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-09-21 22:54:14 +02:00
Irmo van den Berge c8ba78e3b0 Working towards 1.20.2-v1: Initial setup for 1.20.2 support
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-09-21 22:22:18 +02:00
Irmo van den Berge 9f4bc8a4cf Mark for final 1.20.1-v3 release
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-09-21 21:57:14 +02:00
Irmo van den Berge 339549a377 Forgot javadoc return type
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-09-16 15:43:19 +02:00
Irmo van den Berge c6eae1915a Better to keep the API consistent I guess
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-09-16 15:39:17 +02:00
Irmo van den Berge b703aca16c Add some helper methods for building map items
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-09-16 15:23:57 +02:00
Irmo van den Berge 15e658f326 Make it BlockDataStateKey instead
More appropriate for how it is used

Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-09-11 20:46:34 +02:00
Irmo van den Berge 65fa379a5a MyWorlds ruined things, adding a temp BlockState back
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-09-11 20:23:41 +02:00
Irmo van den Berge 072ad58fdb Rename BlockState to BlockDataState as wished for in javadoc
This class wasn't used anywhere so this shouldn't break anything.

Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-09-11 20:10:37 +02:00
Irmo van den Berge 7ada021233 Rewrite updateDependency callback to avoid potential memory leak issues
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-09-11 08:36:15 +02:00
Irmo van den Berge eb9d9dc8dc Fix issue with raw slot conversion < 1.13 when a single row is used
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-09-11 08:35:38 +02:00
Irmo van den Berge 363831f95d Bump SoftDependency lib to v1.01
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-09-07 19:17:57 +02:00
Irmo van den Berge 656d55e007 Include the SoftDependency library
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-09-06 23:34:02 +02:00
Irmo van den Berge f72bef828e [YAML] Move this one down just to be safe
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-09-03 01:52:50 +02:00
Irmo van den Berge 9adf12fba1 [YAML] Todays fix was made possible thanks to DJ PartyPackage and DJ Polar
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-09-03 01:49:52 +02:00
Irmo van den Berge c55290d39a [YAML] Fix cloning yaml into yaml breaking with List overflow
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-08-30 17:22:49 +02:00
Irmo van den Berge 773978715a Fix typo in WorldBorder calculations
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-08-22 17:09:40 +02:00
Irmo van den Berge 9869b30eaa Working towards 1.20.1-v3: Added ImageFrame patch to avoid wiped map displays
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-08-21 20:37:14 +02:00
Irmo van den Berge e60e387991 Mark for final 1.20.1-v2 release
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-08-07 22:01:11 +02:00
Irmo van den Berge d5cc3612e5 Fix unsupported op exception when serializing objects with nested objects
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-08-06 15:59:37 +02:00
Irmo van den Berge 5e17e63759 This fix is needed to prevent errors teleporting cross-world on Paper
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-07-30 19:33:12 +02:00
Irmo van den Berge 6b5b5fa9b2 Fix incorrect HAND enum field used
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-07-30 15:00:37 +02:00
Irmo van den Berge 102b667932 Add a capability for what we just added
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-07-24 22:48:16 +02:00
Irmo van den Berge 422fcd2de6 Add an API to the Equipment packet to fix broken serialization on 1.8
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-07-24 22:43:14 +02:00
Irmo van den Berge a81df651d2 Fix NPE initializing 'heatable' item metadata on MC 1.8 (up to maybe 1.12)
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-07-24 17:10:48 +02:00
Irmo van den Berge 27fc5c7946 [EntityTypes] Read generic field information to avoid creating entities
Hopefully avoids errors due to the use of the dummy world

Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-07-15 11:44:09 +02:00
Irmo van den Berge 42e6d3db15 Working towards 1.20.1-v2: Fix sign edit dialog insta-closing on 1.20+
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-06-27 10:10:51 +02:00
Irmo van den Berge e979be21cd Mark for final 1.20.1-v1 release
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-06-21 15:05:28 +02:00
Irmo van den Berge 022a5f0210 [Anvil Dialog] Fix title not set error on spigot (didn't happen on paper)
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-06-20 21:41:54 +02:00
Irmo van den Berge df3bf2fc88 Make SignChangeTracker isRemoved() checks more helpful
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-06-19 09:53:26 +02:00
Irmo van den Berge 5acd936fbc [Map Displays] Optimize the MapTexture fill function
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-06-18 13:40:41 +02:00
Irmo van den Berge eeb844a6e6 Make gson parsing errors less ugly
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-06-16 19:18:02 +02:00
Irmo van den Berge 6a7dbdd20b Make sure these metrics always exist so custom forks don't go missing
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-06-16 19:09:33 +02:00
Irmo van den Berge e9cb6bf743 Add pluginBuildVersion drilldown metric
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-06-16 00:24:39 +02:00
Irmo van den Berge 19b649e46e Enable bstats metrics for BKCommonLib
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-06-15 21:43:26 +02:00
Irmo van den Berge 8514e9d740 Swap out ancient mcstats Metrics for bstats Metrics v3.0.2
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-06-15 21:43:13 +02:00
56738 df30b6f27c Mark processResources variables as task inputs
Fixes the task being considered up to date even if the version or build number changed
2023-06-14 09:38:07 +02:00
56738 44a2ce639c Use version catalog for plugins 2023-06-14 09:38:07 +02:00
56738 6790e24aed Update to Gradle 8.1.1 2023-06-14 09:38:07 +02:00
Irmo van den Berge c02a12039e Also set libs.minecraft.version to 1.20.1 properly
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-06-14 00:32:17 +02:00
Irmo van den Berge be4afe9414 Working towards 1.20.1-v1: Add MC 1.20.1 support
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-06-13 18:38:47 +02:00
Irmo van den Berge 769eeb2142 I have actually no idea why this still exists in the source tree
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-06-13 18:25:39 +02:00
Irmo van den Berge aade1bc8b0 [1.20] Paper compatibility fixes
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-06-11 22:06:25 +02:00
Irmo van den Berge 1967397426 Add null guard for debugging
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-06-11 21:36:23 +02:00
Irmo van den Berge 9065936218 [1.20] Add support for hanging signs as valid SIGN type everywhere
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-06-11 21:19:56 +02:00
Irmo van den Berge de8950595b More SignSide APIs because damn is writing code annoying
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-06-11 16:57:41 +02:00
Irmo van den Berge 3e04ed35f2 Add SignSideMap for easier working with both-side fields
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-06-11 16:29:25 +02:00
Irmo van den Berge 76157d4f4c Some additional helper SignSide APIs
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-06-11 16:15:10 +02:00
Irmo van den Berge 1ccc76ca08 Add a SignSide enum like in bukkit for easier API usage
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-06-11 16:08:04 +02:00
Irmo van den Berge ddce3ed908 Avoid NPE due to other plugins sending garbage metadata packets
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-06-10 21:00:16 +02:00
Irmo van den Berge 6fcc56f0e3 Fix bug that caused chunks to be not seen as loaded even though they are
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-06-10 14:15:16 +02:00
Irmo van den Berge 1e4149e8f0 [1.20] Add an API for checking whether the sign change event is the front or back lines
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-06-09 21:13:45 +02:00
Irmo van den Berge 8f8d58bc02 Add an API around (tracking) the back text of signs
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-06-09 19:05:40 +02:00
Irmo van den Berge 579febeb32 [1.20] Add support for lighting engine changes (not working yet, but no errors)
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-06-09 18:13:47 +02:00
Irmo van den Berge 8ef1bfc37b [1.20] Replace level field with level() method call here
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-06-09 18:06:38 +02:00
Irmo van den Berge 46b21d4b5c [1.20] Fix portal handler
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-06-09 17:30:43 +02:00
Irmo van den Berge 82ee615e1d [1.20] Add calibrated sculk sensor as valid power source in test
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-06-09 17:23:32 +02:00
Irmo van den Berge 64ba5546d9 [1.20] Fix itemstack yaml deserialization problems
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-06-09 17:15:56 +02:00
Irmo van den Berge a3aac61e3f [1.20] Fix broken recipes due to using an EMPTY registry for them
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-06-09 16:59:29 +02:00
Irmo van den Berge 9d18c7fd9a [1.20] Update class name mappings
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-06-08 17:52:11 +02:00
Irmo van den Berge 6f18fbe8ae [1.20] Template compatibility fixes (sign back text, loot table, light engine)
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-06-08 00:58:07 +02:00
Irmo van den Berge 8b7fa96d4f Working towards 1.20-v1: Snakeyaml v2 version support
Signed-off-by: Irmo van den Berge <irmo.vandenberge@ziggo.nl>
2023-06-07 22:53:23 +02:00
607 changed files with 41468 additions and 10985 deletions

No files matched your search

+133 -19
View File
@@ -1,55 +1,72 @@
# Using Cloud Command Framework
BKCommonLib shades in a custom fork of the [Cloud Command Framework](https://github.com/bergerhealer/cloud "Cloud Command Framework") library so that depending plugins can use it. If you are new to Cloud, look through their [documentation](https://incendo.github.io/cloud/ "documentation") first.
BKCommonLib shades in the [Cloud Command Framework](https://github.com/Incendo/cloud "Cloud Command Framework") library so that depending plugins can use it. If you are new to Cloud, look through their [documentation](https://cloud.incendo.org/ "documentation") first.
### Technical
Cloud is shaded at a different package path (to avoid conflicts), so using the integrated cloud requires remapping it using the maven shade or gradle shadow plugin. BKCommonLib has a BOM (Bill of materials) hosted on the same repository BKCommonLib is, that includes information about the cloud dependency and its version. The below maven and gradle configurations make use of this.
Incendo Cloud jars can be found on the maven central repository, so they should be available automatically. The ci.mg-dev.eu repository proxies and caches the Cloud dependencies too.
### Version
Currently the 1.6.0 release of Cloud is included.
Currently the 2.0.0 beta/release-candidate of Cloud is included.
### Maven
The bergerhealer cloud fork is hosted on the same repository as BKCommonLib:
BKCommonLib has a BOM (Bill of materials) hosted on the same repository BKCommonLib is, that includes information about the cloud dependency and its version. The below snippets are for your project's `pom.xml`.
Begin by adding the repository where BKCommonLib is hosted:
```xml
<repository>
<id>MG-Dev Jenkins CI Maven Repository</id>
<url>https://ci.mg-dev.eu/plugin/repository/everything</url>
</repository>
<repositories>
<repository>
<id>MG-Dev Jenkins CI Maven Repository</id>
<url>https://ci.mg-dev.eu/plugin/repository/everything</url>
</repository>
</repositories>
```
Depend on BKCommonLib and the (fork) cloud command framework libraries:
Next, add BKCommonLib-bom under **dependencyManagement** (!). This automatically loads the information about what cloud version and its dependencies are used for a particular version of BKCommonLib. Next just add all the dependencies without specifying the version. The version is taken from the bom.
```xml
<properties>
<project.bkcommonlib.version>1.19.2-v2</project.bkcommonlib.version>
<project.cloud.version>1.8.0-SNAPSHOT</project.cloud.version>
<project.bkcommonlib.version>1.21.1-v1</project.bkcommonlib.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.bergerkiller.bukkit</groupId>
<artifactId>BKCommonLib-bom</artifactId>
<version>${project.bkcommonlib.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>com.bergerkiller.bukkit</groupId>
<artifactId>BKCommonLib</artifactId>
<version>${project.bkcommonlib.version}</version>
<scope>provided</scope>
</dependency>
<!-- Cloud Command Framework -->
<dependency>
<groupId>org.bergerhealer.cloud.commandframework</groupId>
<groupId>org.incendo</groupId>
<artifactId>cloud-paper</artifactId>
<version>${project.cloud.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.bergerhealer.cloud.commandframework</groupId>
<groupId>org.incendo</groupId>
<artifactId>cloud-annotations</artifactId>
<version>${project.cloud.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.bergerhealer.cloud.commandframework</groupId>
<groupId>org.incendo</groupId>
<artifactId>cloud-minecraft-extras</artifactId>
<version>${project.cloud.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
```
However, the library and its dependencies are shaded in at a different package than normal. So, you will have to include the maven shade plugin in your project to relocate them. Not doing so will cause a failure at runtime.
```xml
<build>
<plugins>
<!-- Relocates references to the Cloud command framework to where they are in BKCommonLib -->
<plugin>
@@ -69,7 +86,7 @@ However, the library and its dependencies are shaded in at a different package t
<relocations>
<!-- BKCommonLib relocations of Cloud command framework -->
<relocation>
<pattern>cloud.commandframework</pattern>
<pattern>org.incendo.cloud</pattern>
<shadedPattern>com.bergerkiller.bukkit.common.dep.cloud</shadedPattern>
</relocation>
<relocation>
@@ -87,4 +104,101 @@ However, the library and its dependencies are shaded in at a different package t
</relocations>
</configuration>
</plugin>
</plugins>```
</plugins>
</build>
```
### Gradle (Kotlin)
Depending on BKCommonLib will automatically tell Gradle what versions of Cloud and its dependencies to use. The below configuration assumes kotlin gradle syntax, and are for your project's `build.gradle.kts` file.
This does not work well with older versions of Gradle. Make sure to use **gradle 8.5** at least.
Begin by adding the repository where BKCommonLib is hosted:
```kotlin
repositories {
maven("https://ci.mg-dev.eu/plugin/repository/everything/")
}
```
Next add the BKCommonLib dependency and the cloud dependencies. For cloud, no version has to be specified, which will be provided by BKCommonLib. It is recommended to make use of [version catalogs](https://docs.gradle.org/current/userguide/platforms.html#sub::toml-dependencies-format) to make this look cleaner, but this is optional.
```kotlin
dependencies {
compileOnlyApi("com.bergerkiller.bukkit:BKCommonLib:1.21.1-v1")
// Cloud integrated in BKCommonLib
compileOnly("org.incendo:cloud-paper")
compileOnly("org.incendo:cloud-annotations")
compileOnly("org.incendo:cloud-minecraft-extras")
}
```
Finally, make sure the cloud dependency is shaded correctly when compiling your plugin:
Also, don't forget to add the Java library.
```kotlin
plugins {
id("com.github.johnrengelman.shadow") version "8.1.1"
id("java-library")
}
tasks {
shadowJar {
val commonPrefix = "com.bergerkiller.bukkit.common.dep"
relocate("org.incendo.cloud", "$commonPrefix.cloud")
relocate("io.leangen.geantyref", "$commonPrefix.typetoken")
relocate("me.lucko.commodore", "$commonPrefix.me.lucko.commodore")
relocate("net.kyori", "$commonPrefix.net.kyori")
}
}
```
### Gradle (Groovy)
While using `build.gradle`, you will have a small difference in syntax.
Add the following plugins (`java` should be there already when creating your project):
```kotlin
plugins {
id "java"
id("com.github.johnrengelman.shadow") version "8.1.1"
id "java-library"
}
```
Then you will add the maven repository for BKCommonlib:
```kotlin
repositories {
mavenCentral()
maven {
url = "https://ci.mg-dev.eu/plugin/repository/everything"
}
}
```
Then add it to the dependencies:
```kotlin
dependencies {
// BKCommonLib
compileOnlyApi("com.bergerkiller.bukkit:BKCommonLib:1.21.1-v1")
// Cloud integrated in BKCommonLib
compileOnly("org.incendo:cloud-paper")
compileOnly("org.incendo:cloud-annotations")
compileOnly("org.incendo:cloud-minecraft-extras")
// Adventure MiniMessage
implementation("net.kyori:adventure-api:4.14.0")
implementation("net.kyori:adventure-text-minimessage:4.14.0")
}
```
Finally, you can shadow the imported plugins:
```kotlin
tasks {
shadowJar {
def commonPrefix = "com.bergerkiller.bukkit.common.dep"
relocate("org.incendo.cloud", "${commonPrefix}.cloud")
relocate("io.leangen.geantyref", "${commonPrefix}.typetoken")
relocate("me.lucko.commodore", "${commonPrefix}.me.lucko.commodore")
relocate("net.kyori", "${commonPrefix}.net.kyori")
}
}
+41 -13
View File
@@ -4,7 +4,7 @@
〚 [⤓ Modrinth](https://modrinth.com/plugin/bkcommonlib) / [⤓ Spigot](https://www.spigotmc.org/resources/bkcommonlib.39590/) / [⤓ Jenkins Dev Builds](https://ci.mg-dev.eu/job/BKCommonLib/) / [Source on GitHub](https://github.com/bergerhealer/BKCommonLib) / [Javadocs](https://ci.mg-dev.eu/javadocs/BKCommonLib/) / [Discord](https://discord.gg/wvU2rFgSnw) 〛
## About BKCommonLib
**BKCommonLib** is a Paper/Spigot/Bukkit server plugin and library which houses a large selection of utilities, API's, frameworks and performance-critical code. It was made to eliminate all use of Minecraft Server Code (aka NMS) from plugins themselves, improving their stability.
**BKCommonLib** is a Paper/Spigot/Bukkit server plugin and library which houses a large selection of utilities, APIs, frameworks and performance-critical code. It was made to eliminate all use of Minecraft Server Code (aka NMS) from plugins themselves, improving their stability.
It made it so that when Minecraft updates, only this library has to be updated. Plugins using it generally don't require updates anymore, except to stay compatible with BKCommonLib itself.
@@ -68,8 +68,8 @@ This means you don't have to compile different classes for every different permu
<summary>Includes Cloud Command Framework</summary>
#####
BKCommonLib includes the [**Cloud Command Framework**](https://github.com/bergerhealer/cloud). Write clean commands with annotations or builder pattern, complete with suggestions, permission handling and localization.
BKCommonLib adds a few default utilities to get set up for Paper/Spigot servers even faster.
BKCommonLib includes the [**Cloud Command Framework**](https://cloud.incendo.org/). Write clean commands with annotations or builder pattern, complete with suggestions, permission handling and localization.
BKCommonLib adds a few default utilities to get set up for Paper/Spigot servers even faster. [Dependency information is here](https://github.com/bergerhealer/BKCommonLib/blob/master/CLOUD_HOWTO.md).
******
</details>
<details>
@@ -97,6 +97,39 @@ BKCommonLib adds a few default utilities to get set up for Paper/Spigot servers
******
</details>
<details>
<summary>SoftDependency Library</summary>
#####
[SoftDependency](https://github.com/bergerhealer/SoftDependency) is a simple library that makes it easier to lazily handle third-party soft dependencies enabling and disabling.
See the Project GitHub page for more information. This library is included in BKCommonLib by default, no shading or relocating required. Dependency management is handled without having to call any methods from your _onEnable()_.
##### Example
```java
public class MyPlugin extends JavaPlugin {
private final SoftDependency<MyDependencyPlugin> myDependency = new SoftDependency<MyDependencyPlugin>(this, "my_dependency") {
@Override
protected MyDependencyPlugin initialize(Plugin plugin) {
return MyDependencyPlugin.class.cast(plugin);
}
@Override
protected void onEnable() {
getLogger().info("Support for MyDependency enabled!");
}
@Override
protected void onDisable() {
getLogger().info("Support for MyDependency disabled!");
}
};
// Can use myDependency.get() anywhere, returns non-null if enabled.
}
```
******
</details>
<details>
<summary>Server Events</summary>
#####
@@ -278,7 +311,7 @@ public void doWorkInChunk(Chunk chunk) {
#####
By extending server Entity classes at runtime, this API makes it possible to completely alter the behavior of entities on the server. This is core to how [TrainCarts](https://github.com/bergerhealer/TrainCarts) operates.
- The entity _onTick()_ can be overrided to run your own routines
- The entity _onTick()_ can be overridden to run your own routines
- Run entity _onMove()_ or omit it, handle block and entity collisions
- Hotswap existing entities at runtime with custom behavior while keeping data consistent
- Override entity network synchronization (packets)
@@ -365,7 +398,7 @@ There are many more features hidden inside utility classes. Look around.
## Dependency Information
Want to use BKCommonLib in your own projects? Use the following repository and dependency information. Remember to update the version as necessary.
Want to use the included [Cloud Command Framework](https://github.com/bergerhealer/cloud)? Follow [these instructions](https://github.com/bergerhealer/BKCommonLib/blob/master/CLOUD_HOWTO.md) to properly relocate your imports.
Want to use the included [Cloud Command Framework](https://cloud.incendo.org/)? Follow [these instructions](https://github.com/bergerhealer/BKCommonLib/blob/master/CLOUD_HOWTO.md) to properly relocate your imports.
<details open>
<summary>Maven</summary>
@@ -382,7 +415,7 @@ Want to use the included [Cloud Command Framework](https://github.com/bergerheal
<dependency>
<groupId>com.bergerkiller.bukkit</groupId>
<artifactId>BKCommonLib</artifactId>
<version>1.19.2-v2</version>
<version>1.20.4-v1</version>
<scope>provided</scope>
</dependency>
</dependencies>
@@ -395,16 +428,11 @@ Want to use the included [Cloud Command Framework](https://github.com/bergerheal
repositories {
maven {
url = 'https://ci.mg-dev.eu/plugin/repository/everything'
content {
includeGroup 'com.bergerkiller.bukkit'
includeGroup 'org.bergerhealer.cloud.commandframework'
includeGroup 'com.bergerkiller.mountiplex'
}
}
}
dependencies {
compileOnly 'com.bergerkiller.bukkit:BKCommonLib:1.19.2-v2'
compileOnly 'com.bergerkiller.bukkit:BKCommonLib:1.20.4-v1'
}
```
</details>
@@ -420,7 +448,7 @@ Bergerkiller, the project owner, is generally fine with people copy-pasting code
If you're unsure, ask in our Discord server.
BKCommonLib shades in/uses the following libraries, further License conditions may apply:
- [Cloud Command Framework](https://github.com/incendo/cloud) (custom fork)
- [Cloud Command Framework](https://github.com/incendo/cloud)
- [ASM](https://github.com/llbit/ow2-asm)
- [Javassist](https://github.com/jboss-javassist/javassist)
- [Objenesis](http://objenesis.org/)
+38
View File
@@ -0,0 +1,38 @@
plugins {
id("java-platform")
id("maven-publish")
}
publishing {
publications {
repositories {
maven("https://ci.mg-dev.eu/plugin/repository/everything") {
name = "MGDev"
credentials(PasswordCredentials::class)
authentication {
create<BasicAuthentication>("basic")
}
}
}
create<MavenPublication>("bom") {
from(components["javaPlatform"])
}
}
}
javaPlatform.allowDependencies()
dependencies {
api(platform(libs.cloud.core.bom))
api(platform(libs.cloud.minecraft.bom))
constraints {
// Adding BKCommonLib itself keeps maven happy. It's not needed with gradle.
// It's a bit of a strange circular thing though. Ugh.
api("$group:BKCommonLib:$version")
api(libs.adventure.api)
api(libs.adventure.platform.bukkit)
}
}
+72 -20
View File
@@ -1,24 +1,13 @@
plugins {
id("java-library")
id("com.bergerkiller.mountiplex") version "2.93"
id("com.github.johnrengelman.shadow") version "7.1.2"
id("maven-publish")
alias(libs.plugins.mountiplex)
alias(libs.plugins.shadow)
}
val buildNumber = System.getenv("BUILD_NUMBER") ?: "NO-CI"
group = "com.bergerkiller.bukkit"
version = "1.19.4-v2"
repositories {
mavenLocal {
// Used to access a server JAR for testing
// TODO Use Paperclip instead
content {
includeGroup("org.spigotmc")
includeGroup("com.mojang")
}
}
mavenCentral()
maven("https://hub.spigotmc.org/nexus/content/groups/public/")
@@ -28,6 +17,16 @@ repositories {
// - Aikar minecraft-timings
// - Myles ViaVersion
maven("https://ci.mg-dev.eu/plugin/repository/everything/")
// Used to access a server JAR for testing
// TODO Use Paperclip instead
mavenLocal {
content {
includeGroup("org.spigotmc")
includeGroup("com.mojang")
includeGroup("com.bergerkiller.mountiplex")
}
}
}
// Configuration for shaded dependencies which should not be added to the published Maven .pom
@@ -36,6 +35,9 @@ configurations {
compileOnly {
extendsFrom(internal)
}
testImplementation {
extendsFrom(internal)
}
}
dependencies {
@@ -51,6 +53,15 @@ dependencies {
compileOnly(libs.log4j.api)
compileOnly(libs.log4j.core)
//
// Publish a BKCommonLib-bom that tells projects using this library what versions of cloud to bring in
// These still require remapping done by the user, but having the version makes it easier for them to stay up to date
// This now allows specifying the cloud library without specifying a version
//
api(platform(project(":BKCommonLib-bom")))
internal(platform(project(":BKCommonLib-bom")))
//
// Dependencies shaded into the library for internal use
//
@@ -59,12 +70,20 @@ dependencies {
api(libs.mountiplex)
// Region change tracker is included in BKCommonLib for the region block change event
api(libs.regionchangetracker)
// Region flag tracker is included in BKCommonLib to allow other plugins to store region flags with WorldGuard
// We only expose the api to other plugins, but use the full core implementation ourselves for initialization.
api(libs.regionflagtracker.api)
internal(libs.regionflagtracker.core)
// SoftDependency lib is included in BKCommonLib for its handy API
api(libs.softdependency)
// Aikar's minecraft timings library, https://github.com/aikar/minecraft-timings
internal(libs.timings) {
isTransitive = false
}
// GSON isn't available in spigot versions prior to 1.8.1, shade it in order to keep 1.8 compatibility
internal(libs.gson)
// Color conversion helper library, https://github.com/bergerhealer/BKCommonLib-ColorConversionHelper
api(libs.colorconversionhelper)
//
// Optional provided dependencies that BKCommonLib can talk with
@@ -73,17 +92,22 @@ dependencies {
// ViaVersion API
compileOnly(libs.viaversion)
// Vault hook for special permissions handling
compileOnly(libs.vault)
compileOnly(libs.vault) {
exclude("org.bukkit", "bukkit")
}
compileOnly(libs.luckperms)
// ProtocolLib hook for protocol handling
compileOnly(libs.protocollib)
//
// Cloud command framework
// Is relocated - requires appropriate relocation in plugins using it
// Versions are part of BKCommonLib-bom and are made available automatically
//
internal(libs.cloud.paper)
internal(libs.cloud.annotations)
internal(libs.cloud.minecraft.extras)
internal("org.incendo:cloud-paper")
internal("org.incendo:cloud-annotations")
internal("org.incendo:cloud-minecraft-extras")
internal(libs.commodore) {
isTransitive = false
}
@@ -131,7 +155,7 @@ tasks {
generateTemplateHandles {
source.set("com/bergerkiller/templates/init.txt")
target.set("com/bergerkiller/generated")
variables.put("version", libs.versions.minecraft)
variables.put("version", libs.versions.template.minecraft.version);
}
assemble {
@@ -143,6 +167,30 @@ tasks {
targetCompatibility = "1.8"
}
withType<Test>().configureEach {
testLogging {
showStandardStreams = true
}
// Used to preload classes under test
systemProperty("main.classes.dir", sourceSets["main"].output.classesDirs.asPath)
// Uncomment to enable SIMD optimizations, to test performance of color conversion
//jvmArgs("--add-modules", "jdk.incubator.vector");
}
// This keeps calling testPreloadTemplatesDeadlock in new instances until it fails
// We use this to identify class loading deadlocks
register("testPreloadTemplatesDeadlock") {
doLast {
while (true) {
exec {
commandLine("./gradlew", "test", "--tests", "com.bergerkiller.bukkit.common.TemplateTest.testPreloadTemplatesDeadlock", "--rerun-tasks")
}
}
}
}
javadoc {
options.encoding = "UTF-8"
isFailOnError = true
@@ -150,6 +198,8 @@ tasks {
}
processResources {
inputs.property("version", version)
inputs.property("build", buildNumber)
from("src/main/templates")
filesMatching(listOf("plugin.yml", "paper-plugin.yml")) {
expand(
@@ -167,7 +217,7 @@ tasks {
relocate("com.google.gson", "$prefix.gson")
// Cloud command framework and its dependencies
relocate("cloud.commandframework", "$prefix.cloud")
relocate("org.incendo.cloud", "$prefix.cloud")
relocate("io.leangen.geantyref", "$prefix.typetoken")
relocate("me.lucko.commodore", "$prefix.me.lucko.commodore")
relocate("net.kyori", "$prefix.net.kyori")
@@ -185,7 +235,9 @@ tasks {
exclude(dependency("org.checkerframework:checker-qual"))
}
destinationDirectory.set(buildDir)
mergeServiceFiles()
destinationDirectory.set(layout.buildDirectory)
archiveFileName.set("${project.name}-${project.version}-$buildNumber.jar")
isPreserveFileTimestamps = false
+2
View File
@@ -0,0 +1,2 @@
group=com.bergerkiller.bukkit
version=1.21.10-v1-SNAPSHOT
+28 -13
View File
@@ -1,21 +1,28 @@
[versions]
minecraft = "1.19.4"
spigot = "1.19.4-R0.1-SNAPSHOT"
template-minecraft-version = "1.21.10"
spigot = "1.21.10-R0.1-SNAPSHOT"
netty = "4.1.42.Final"
log4j = "2.17.0"
mountiplex = "2.95"
regionchangetracker = "1.2"
mountiplex = "3.29"
regionchangetracker = "1.4"
regionflagtracker= "1.0"
colorconversionhelper = "1.03"
softdependencylib = "1.05"
timings = "1.0.4"
gson = "2.8.9"
viaversion = "3.2.1"
viaversion = "4.0.0"
vault = "1.7"
luckperms = "5.4"
protocollib = "4.4.0"
cloud = "1.8.0-SNAPSHOT"
commodore = "1.13"
adventure = "4.12.0"
adventure-platform-bukkit = "4.2.0"
cloud_core = "2.0.0-rc.2"
cloud_minecraft = "2.0.0-beta.13"
commodore = "2.2"
adventure = "4.25.0"
# Note: https://github.com/KyoriPowered/adventure-platform/pull/229
adventure-platform-bukkit = "4.4.2-PR229-fix"
mockito = "2.22.0"
junit = "4.13"
shadow = "8.1.1"
[libraries]
spigot = { module = "org.spigotmc:spigot", version.ref = "spigot" }
@@ -24,17 +31,25 @@ netty-all = { module = "io.netty:netty-all", version.ref = "netty" }
log4j-api = { module = "org.apache.logging.log4j:log4j-api", version.ref = "log4j" }
log4j-core = { module = "org.apache.logging.log4j:log4j-core", version.ref = "log4j" }
mountiplex = { module = "com.bergerkiller.mountiplex:Mountiplex", version.ref = "mountiplex" }
cloud-core-bom = { module = "org.incendo:cloud-bom", version.ref = "cloud_core" }
cloud-minecraft-bom = { module = "org.incendo:cloud-minecraft-bom", version.ref = "cloud_minecraft" }
regionchangetracker = { module = "com.bergerkiller.bukkit.regionchangetracker:BKCommonLib-RegionChangeTracker-Core", version.ref = "regionchangetracker" }
regionflagtracker-api = { module = "com.bergerkiller.bukkit.regionflagtracker:BKCommonLib-RegionFlagTracker-API", version.ref = "regionflagtracker" }
regionflagtracker-core = { module = "com.bergerkiller.bukkit.regionflagtracker:BKCommonLib-RegionFlagTracker-Core", version.ref = "regionflagtracker" }
colorconversionhelper = { module = "com.bergerkiller.bukkit.colorconversionhelper:BKCommonLib-ColorConversionHelper", version.ref = "colorconversionhelper" }
softdependency = { module = "com.bergerkiller.bukkit.softdependency:SoftDependency", version.ref = "softdependencylib" }
timings = { module = "co.aikar:minecraft-timings", version.ref = "timings" }
gson = { module = "com.google.code.gson:gson", version.ref = "gson" }
viaversion = { module = "us.myles:viaversion", version.ref = "viaversion" }
viaversion = { module = "com.viaversion:viaversion-api", version.ref = "viaversion" }
vault = { module = "com.github.MilkBowl:VaultAPI", version.ref = "vault" }
luckperms = { module = "net.luckperms:api", version.ref = "luckperms" }
protocollib = { module = "com.comphenix.protocol:ProtocolLib-API", version.ref = "protocollib" }
cloud-paper = { module = "org.bergerhealer.cloud.commandframework:cloud-paper", version.ref = "cloud" }
cloud-annotations = { module = "org.bergerhealer.cloud.commandframework:cloud-annotations", version.ref = "cloud" }
cloud-minecraft-extras = { module = "org.bergerhealer.cloud.commandframework:cloud-minecraft-extras", version.ref = "cloud" }
commodore = { module = "me.lucko:commodore", version.ref = "commodore" }
adventure-api = { module = "net.kyori:adventure-api", version.ref = "adventure" }
adventure-platform-bukkit = { module = "net.kyori:adventure-platform-bukkit", version.ref = "adventure-platform-bukkit" }
mockito-core = { module = "org.mockito:mockito-core", version.ref = "mockito" }
junit = { module = "junit:junit", version.ref = "junit" }
[plugins]
mountiplex = { id = "com.bergerkiller.mountiplex", version.ref = "mountiplex" }
shadow = { id = "com.github.johnrengelman.shadow", version.ref = "shadow" }
Binary file not shown.
+2 -1
View File
@@ -1,6 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Vendored
+17 -12
View File
@@ -83,10 +83,8 @@ done
# This is normally unused
# shellcheck disable=SC2034
APP_BASE_NAME=${0##*/}
APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD=maximum
@@ -133,10 +131,13 @@ location of your Java installation."
fi
else
JAVACMD=java
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
if ! command -v java >/dev/null 2>&1
then
die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
fi
# Increase the maximum file descriptors if we can.
@@ -144,7 +145,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
case $MAX_FD in #(
max*)
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
# shellcheck disable=SC3045
# shellcheck disable=SC2039,SC3045
MAX_FD=$( ulimit -H -n ) ||
warn "Could not query maximum file descriptor limit"
esac
@@ -152,7 +153,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
'' | soft) :;; #(
*)
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
# shellcheck disable=SC3045
# shellcheck disable=SC2039,SC3045
ulimit -n "$MAX_FD" ||
warn "Could not set maximum file descriptor limit to $MAX_FD"
esac
@@ -197,11 +198,15 @@ if "$cygwin" || "$msys" ; then
done
fi
# Collect all arguments for the java command;
# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
# shell script including quotes and variable substitutions, so put them in
# double quotes to make sure that they get re-expanded; and
# * put everything else in single quotes, so that it's not re-expanded.
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Collect all arguments for the java command:
# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
# and any embedded shellness will be escaped.
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
# treated as '${Hostname}' itself on the command line.
set -- \
"-Dorg.gradle.appname=$APP_BASE_NAME" \
-22
View File
@@ -1,22 +0,0 @@
#!/bin/bash
# This script is used to import jar files into this /lib local maven repository
# Please set the spigot build tools path accordingly
# Usage: add_server.sh [version]
# add_server.sh 1.12.1
# Make sure this is correct!
spigotbuild_dir=C:/Users/QT/Desktop/SpigotBuild
# Rest is (should be) magic
spigot_version=$1
#spigot_version=1.12.1
lib_version=${spigot_version}-R0.1-SNAPSHOT
mvn_dir=${spigotbuild_dir}/apache-maven-3.2.5/bin
spigot_lib_path=${spigotbuild_dir}/spigot-${spigot_version}.jar
repo_dir=$PWD
cd $mvn_dir
mvn org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file \
-Dfile=${spigot_lib_path} \
-DgroupId=org.spigotmc -DartifactId=spigot \
-Dversion=${lib_version} -Dpackaging=jar \
-DlocalRepositoryPath=${repo_dir}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1012 KiB

After

Width:  |  Height:  |  Size: 962 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 MiB

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 MiB

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 935 KiB

After

Width:  |  Height:  |  Size: 885 KiB

+8
View File
@@ -4,5 +4,13 @@ pluginManagement {
repositories {
gradlePluginPortal()
maven("https://ci.mg-dev.eu/plugin/repository/everything/")
mavenLocal {
content {
includeGroup("com.bergerkiller.mountiplex")
}
}
}
}
include(":bom")
project(":bom").name = "BKCommonLib-bom"
@@ -35,7 +35,6 @@ public abstract class LongHashSetHandle extends Template.Handle {
public abstract long[] toArray();
public abstract long[] popAll();
public abstract void trim();
public static LongHashSetHandle createNew() {
return createNew(16);
}
@@ -1,8 +1,8 @@
package com.bergerkiller.generated.com.mojang.authlib;
import com.bergerkiller.mountiplex.reflection.declarations.Template;
import com.bergerkiller.bukkit.common.nbt.CommonTagCompound;
import com.bergerkiller.generated.com.mojang.authlib.properties.PropertyHandle;
import com.google.common.collect.Multimap;
import java.util.Collection;
import java.util.Set;
import java.util.UUID;
@@ -22,24 +22,38 @@ public abstract class GameProfileHandle extends Template.Handle {
return T.createHandle(handleInstance);
}
public static final GameProfileHandle createNew(UUID uuid, String name) {
return T.constr_uuid_name.newInstance(uuid, name);
}
/* ============================================================================== */
public static GameProfileHandle deserialize(CommonTagCompound data) {
return T.deserialize.invoke(data);
public static GameProfileHandle createNew(UUID uuid, String name, Multimap<String, PropertyHandle> properties) {
return T.createNew.invoke(uuid, name, properties);
}
public abstract UUID getId();
public abstract String getName();
public abstract void clearProperties();
public abstract Set<String> getPropertyKeys();
public abstract Collection<PropertyHandle> getProperties(String key);
public abstract boolean putProperty(String key, PropertyHandle property);
public abstract void setAllProperties(GameProfileHandle profile);
public abstract CommonTagCompound serialize();
public abstract Multimap<String, PropertyHandle> getMutableProperties();
public static GameProfileHandle createNew(UUID uuid, String name) {
return createNew(uuid, name, com.google.common.collect.ImmutableMultimap.of());
}
public GameProfileHandle withProperties(Multimap<String, PropertyHandle> properties) {
return createNew(getId(), getName(), properties);
}
public GameProfileHandle withPropertiesOf(GameProfileHandle profile) {
return withProperties(profile.getMutableProperties());
}
public GameProfileHandle withPropertiesChanged(java.util.function.Consumer<Multimap<String, PropertyHandle>> mutator) {
Multimap<String, PropertyHandle> properties = getMutableProperties();
mutator.accept(properties);
return withProperties(properties);
}
public GameProfileHandle withPropertyPut(String key, PropertyHandle property) {
return withPropertiesChanged(p -> p.put(key, property));
}
public static GameProfileHandle getForPlayer(org.bukkit.entity.HumanEntity player) {
Object handle = com.bergerkiller.bukkit.common.conversion.type.HandleConversion.toEntityHandle(player);
@@ -50,18 +64,13 @@ public abstract class GameProfileHandle extends Template.Handle {
* Methods, fields, and constructors can be used without using Handle Objects.
*/
public static final class GameProfileClass extends Template.Class<GameProfileHandle> {
public final Template.Constructor.Converted<GameProfileHandle> constr_uuid_name = new Template.Constructor.Converted<GameProfileHandle>();
public final Template.StaticMethod.Converted<GameProfileHandle> deserialize = new Template.StaticMethod.Converted<GameProfileHandle>();
public final Template.StaticMethod.Converted<GameProfileHandle> createNew = new Template.StaticMethod.Converted<GameProfileHandle>();
public final Template.Method<UUID> getId = new Template.Method<UUID>();
public final Template.Method<String> getName = new Template.Method<String>();
public final Template.Method<Void> clearProperties = new Template.Method<Void>();
public final Template.Method<Set<String>> getPropertyKeys = new Template.Method<Set<String>>();
public final Template.Method.Converted<Collection<PropertyHandle>> getProperties = new Template.Method.Converted<Collection<PropertyHandle>>();
public final Template.Method.Converted<Boolean> putProperty = new Template.Method.Converted<Boolean>();
public final Template.Method.Converted<Void> setAllProperties = new Template.Method.Converted<Void>();
public final Template.Method.Converted<CommonTagCompound> serialize = new Template.Method.Converted<CommonTagCompound>();
public final Template.Method<Multimap<String, PropertyHandle>> getMutableProperties = new Template.Method<Multimap<String, PropertyHandle>>();
}
@@ -21,7 +21,6 @@ public abstract class EnumChatFormatHandle extends Template.Handle {
/* ============================================================================== */
public abstract int getId();
public static final Object[] RAW_VALUES = T.getType().getEnumConstants();
public static final EnumChatFormatHandle[] VALUES;
static {
@@ -0,0 +1,38 @@
package com.bergerkiller.generated.net.minecraft.advancements;
import com.bergerkiller.mountiplex.reflection.declarations.Template;
import org.bukkit.advancement.Advancement;
/**
* Instance wrapper handle for type <b>net.minecraft.advancements.Advancement</b>.
* To access members without creating a handle type, use the static {@link #T} member.
* New handles can be created from raw instances using {@link #createHandle(Object)}.
*/
@Template.Optional
@Template.InstanceType("net.minecraft.advancements.Advancement")
public abstract class AdvancementHandle extends Template.Handle {
/** @see AdvancementClass */
public static final AdvancementClass T = Template.Class.create(AdvancementClass.class, com.bergerkiller.bukkit.common.Common.TEMPLATE_RESOLVER);
/* ============================================================================== */
public static AdvancementHandle createHandle(Object handleInstance) {
return T.createHandle(handleInstance);
}
/* ============================================================================== */
public static Advancement toBukkit(Object advancement_or_holder) {
return T.toBukkit.invoker.invoke(null,advancement_or_holder);
}
/**
* Stores class members for <b>net.minecraft.advancements.Advancement</b>.
* Methods, fields, and constructors can be used without using Handle Objects.
*/
public static final class AdvancementClass extends Template.Class<AdvancementHandle> {
public final Template.StaticMethod<Advancement> toBukkit = new Template.StaticMethod<Advancement>();
}
}
@@ -33,7 +33,6 @@ public abstract class BlockPositionHandle extends BaseBlockPositionHandle {
return T.fromBukkitBlockRaw.invoker.invoke(null,block);
}
public static BlockPositionHandle fromIntVector3(com.bergerkiller.bukkit.common.bases.IntVector3 vector) {
return createHandle(fromIntVector3Raw(vector));
}
@@ -60,7 +60,6 @@ public abstract class EnumDirectionHandle extends Template.Handle {
/* ============================================================================== */
public int ordinal() {
return ((Enum<?>) getRaw()).ordinal();
}
@@ -32,8 +32,6 @@ public abstract class RegistryMaterialsHandle extends Template.Handle {
public final Template.Method.Converted<Object> get = new Template.Method.Converted<Object>();
public final Template.Method<Object> getKey = new Template.Method<Object>();
@Template.Optional
public final Template.Method<Object> rawSoundEffectResourceKeyToHolder = new Template.Method<Object>();
}
@@ -32,7 +32,6 @@ public abstract class Vector3fHandle extends Template.Handle {
public abstract float getY();
public abstract float getZ();
public abstract Vector toBukkit();
public static Vector3fHandle fromBukkit(org.bukkit.util.Vector vector) {
return createHandle(fromBukkitRaw(vector));
}
@@ -21,7 +21,6 @@ public abstract class NBTBaseHandle extends Template.Handle {
public abstract byte getTypeId();
public abstract Object raw_clone();
public com.bergerkiller.bukkit.common.nbt.CommonTag toCommonTag() {
return new com.bergerkiller.bukkit.common.nbt.CommonTag(this);
}
@@ -48,7 +47,35 @@ public abstract class NBTBaseHandle extends Template.Handle {
} else {
str.append(data.getClass().getSimpleName());
}
str.append(": ").append(data);
str.append(": ");
if (data instanceof byte[]) {
byte[] values = (byte[]) data;
str.append("[");
for (int i = 0; i < values.length; i++) {
if (i > 0) str.append(", ");
str.append(values[i]);
}
str.append("]");
} else if (data instanceof int[]) {
int[] values = (int[]) data;
str.append("[");
for (int i = 0; i < values.length; i++) {
if (i > 0) str.append(", ");
str.append(values[i]);
}
str.append("]");
} else if (data instanceof long[]) {
long[] values = (long[]) data;
str.append("[");
for (int i = 0; i < values.length; i++) {
if (i > 0) str.append(", ");
str.append(values[i]);
}
str.append("]");
} else {
str.append(data);
}
}
}
@@ -70,33 +97,76 @@ public abstract class NBTBaseHandle extends Template.Handle {
}
}
private static final com.bergerkiller.bukkit.common.collections.ClassMap<TypeInfo> typeInfoLookup = new com.bergerkiller.bukkit.common.collections.ClassMap<TypeInfo>();
private static final TypeInfo toStringFallbackTypeInfo = new TypeInfo(
String.class, NBTTagStringHandle.T,
data -> NBTTagStringHandle.T.create.raw.invoke(com.bergerkiller.bukkit.common.conversion.Conversion.toString.convert(data, "")),
java.util.function.Function.identity()
);
private static class TypeInfoLookup {
public final com.bergerkiller.bukkit.common.collections.ClassMap<TypeInfo> byType = new com.bergerkiller.bukkit.common.collections.ClassMap<TypeInfo>();
public final TypeInfo toStringFallback;
protected static void registerTypeInfo(Class<?> dataType,
Template.Class<? extends NBTBaseHandle> handleClass,
java.util.function.Function<Object, Object> constructor,
java.util.function.Function<Object, Object> get_data)
{
TypeInfo data_typeInfo = new TypeInfo(dataType, handleClass, constructor, java.util.function.Function.identity());
typeInfoLookup.put(dataType, data_typeInfo);
Class<?> boxedDataType = com.bergerkiller.mountiplex.reflection.util.BoxedType.getBoxedType(dataType);
if (boxedDataType != null) {
typeInfoLookup.put(boxedDataType, data_typeInfo);
public TypeInfoLookup() {
toStringFallback = new TypeInfo(
String.class, NBTTagStringHandle.T,
data -> NBTTagStringHandle.T.create.raw.invoke(com.bergerkiller.bukkit.common.conversion.Conversion.toString.convert(data, "")),
java.util.function.Function.identity()
);
registerTypeInfo(String.class, NBTTagStringHandle.T, NBTTagStringHandle.T.create.raw::invoke, NBTTagStringHandle.T.getData::invoke);
registerTypeInfo(byte.class, NBTTagByteHandle.T, NBTTagByteHandle.T.create.raw::invoke, NBTTagByteHandle.T.getByteData::invoke);
registerTypeInfo(short.class, NBTTagShortHandle.T, NBTTagShortHandle.T.create.raw::invoke, NBTTagShortHandle.T.getShortData::invoke);
registerTypeInfo(int.class, NBTTagIntHandle.T, NBTTagIntHandle.T.create.raw::invoke, NBTTagIntHandle.T.getIntegerData::invoke);
registerTypeInfo(long.class, NBTTagLongHandle.T, NBTTagLongHandle.T.create.raw::invoke, NBTTagLongHandle.T.getLongData::invoke);
registerTypeInfo(float.class, NBTTagFloatHandle.T, NBTTagFloatHandle.T.create.raw::invoke, NBTTagFloatHandle.T.getFloatData::invoke);
registerTypeInfo(double.class, NBTTagDoubleHandle.T, NBTTagDoubleHandle.T.create.raw::invoke, NBTTagDoubleHandle.T.getDoubleData::invoke);
registerTypeInfo(byte[].class, NBTTagByteArrayHandle.T, NBTTagByteArrayHandle.T.create.raw::invoke, NBTTagByteArrayHandle.T.getData::invoke);
registerTypeInfo(int[].class, NBTTagIntArrayHandle.T, NBTTagIntArrayHandle.T.create.raw::invoke, NBTTagIntArrayHandle.T.getData::invoke);
if (NBTTagLongArrayHandle.T.isAvailable()) {
registerTypeInfo(long[].class, NBTTagLongArrayHandle.T, NBTTagLongArrayHandle.T.create.raw::invoke, NBTTagLongArrayHandle.T.getData::invoke);
}
registerTypeInfo(java.util.Collection.class, NBTTagListHandle.T, NBTTagListHandle.T.create.raw::invoke, NBTTagListHandle.T.data.raw::get);
registerTypeInfo(java.util.Map.class, NBTTagCompoundHandle.T, NBTTagCompoundHandle.T.create.raw::invoke, NBTTagCompoundHandle.T.data.raw::get);
}
typeInfoLookup.put(handleClass.getType(), new TypeInfo(dataType, handleClass,
java.util.function.Function.identity(), get_data));
private void registerTypeInfo(
Class<?> dataType,
Template.Class<? extends NBTBaseHandle> handleClass,
java.util.function.Function<Object, Object> constructor,
java.util.function.Function<Object, Object> get_data)
{
TypeInfo data_typeInfo = new TypeInfo(dataType, handleClass, constructor, java.util.function.Function.identity());
byType.put(dataType, data_typeInfo);
Class<?> boxedDataType = com.bergerkiller.mountiplex.reflection.util.BoxedType.getBoxedType(dataType);
if (boxedDataType != null) {
byType.put(boxedDataType, data_typeInfo);
}
typeInfoLookup.put(handleClass.getHandleType(), new TypeInfo(dataType, handleClass,
handle -> ((Template.Handle) handle).getRaw(),
handle -> get_data.apply(((Template.Handle) handle).getRaw())));
byType.put(handleClass.getType(), new TypeInfo(dataType, handleClass,
java.util.function.Function.identity(), get_data));
handleClass.createHandle(null, true);
byType.put(handleClass.getHandleType(), new TypeInfo(dataType, handleClass,
handle -> ((Template.Handle) handle).getRaw(),
handle -> get_data.apply(((Template.Handle) handle).getRaw())));
handleClass.createHandle(null, true);
}
}
private static TypeInfoLookup lookup = null;
private static TypeInfoLookup lookup() {
TypeInfoLookup lookup;
if ((lookup = NBTBaseHandle.lookup) != null) {
return lookup;
}
synchronized (NBTBaseHandle.class) {
if ((lookup = NBTBaseHandle.lookup) != null) {
return lookup;
}
lookup = new TypeInfoLookup();
NBTBaseHandle.lookup = lookup;
return lookup;
}
}
private static TypeInfo findTypeInfo(Object data) {
@@ -104,7 +174,8 @@ public abstract class NBTBaseHandle extends Template.Handle {
throw new IllegalArgumentException("Can not find tag type information for null data");
}
TypeInfo info = typeInfoLookup.get(data.getClass());
TypeInfoLookup lookup = lookup();
TypeInfo info = lookup.byType.get(data.getClass());
if (info != null) {
return info;
}
@@ -116,11 +187,12 @@ public abstract class NBTBaseHandle extends Template.Handle {
tag -> handle_info.get_data.apply(((com.bergerkiller.bukkit.common.nbt.CommonTag) data).getRawHandle())
);
}
return toStringFallbackTypeInfo;
return lookup.toStringFallback;
}
public static boolean isDataSupportedNatively(Object data) {
return typeInfoLookup.get(data) != null || data instanceof com.bergerkiller.bukkit.common.nbt.CommonTag;
TypeInfoLookup lookup = lookup();
return lookup.byType.get(data) != null || data instanceof com.bergerkiller.bukkit.common.nbt.CommonTag;
}
public static Object getDataForHandle(Object handle) {
@@ -136,23 +208,12 @@ public abstract class NBTBaseHandle extends Template.Handle {
return info.handleClass.createHandle(info.constructor.apply(data));
}
static {
try {
Class.forName(NBTTagStringHandle.class.getName());
Class.forName(NBTTagByteHandle.class.getName());
Class.forName(NBTTagShortHandle.class.getName());
Class.forName(NBTTagIntHandle.class.getName());
Class.forName(NBTTagLongHandle.class.getName());
Class.forName(NBTTagFloatHandle.class.getName());
Class.forName(NBTTagDoubleHandle.class.getName());
Class.forName(NBTTagByteArrayHandle.class.getName());
Class.forName(NBTTagIntArrayHandle.class.getName());
Class.forName(NBTTagLongArrayHandle.class.getName());
Class.forName(NBTTagListHandle.class.getName());
Class.forName(NBTTagCompoundHandle.class.getName());
} catch (ClassNotFoundException e) {
com.bergerkiller.bukkit.common.Logging.LOGGER_NETWORK.log(java.util.logging.Level.SEVERE, "Failed to find core NBT class (corrupt jar?)", e);
}
public static java.util.function.Consumer<String> createPartialErrorLogger(Object nbtBase) {
return (s) -> {
String nbtToStr = (nbtBase == null) ? "[null]" : nbtBase.toString();
com.bergerkiller.bukkit.common.Logging.LOGGER.severe(
"Failed to read (" + nbtToStr + "): " + s);
};
}
/**
* Stores class members for <b>net.minecraft.nbt.NBTBase</b>.
@@ -189,11 +250,6 @@ public abstract class NBTBaseHandle extends Template.Handle {
}
public abstract String getData();
static {
registerTypeInfo(String.class, T, T.create.raw::invoke, T.getData::invoke);
}
public NBTBaseHandle.NBTTagStringHandle clone() {
return com.bergerkiller.bukkit.common.internal.CommonCapabilities.IMMUTABLE_NBT_PRIMITIVES ? this : createHandle(raw_clone());
}
@@ -233,11 +289,6 @@ public abstract class NBTBaseHandle extends Template.Handle {
}
public abstract byte getByteData();
static {
registerTypeInfo(byte.class, T, T.create.raw::invoke, T.getByteData::invoke);
}
public NBTBaseHandle.NBTTagByteHandle clone() {
return com.bergerkiller.bukkit.common.internal.CommonCapabilities.IMMUTABLE_NBT_PRIMITIVES ? this : createHandle(raw_clone());
}
@@ -278,11 +329,6 @@ public abstract class NBTBaseHandle extends Template.Handle {
}
public abstract short getShortData();
static {
registerTypeInfo(short.class, T, T.create.raw::invoke, T.getShortData::invoke);
}
public static Object createRaw(Object data) { return T.create.raw.invoke(data); }
public NBTBaseHandle.NBTTagShortHandle clone() {
return com.bergerkiller.bukkit.common.internal.CommonCapabilities.IMMUTABLE_NBT_PRIMITIVES ? this : createHandle(raw_clone());
@@ -324,11 +370,6 @@ public abstract class NBTBaseHandle extends Template.Handle {
}
public abstract int getIntegerData();
static {
registerTypeInfo(int.class, T, T.create.raw::invoke, T.getIntegerData::invoke);
}
public NBTBaseHandle.NBTTagIntHandle clone() {
return com.bergerkiller.bukkit.common.internal.CommonCapabilities.IMMUTABLE_NBT_PRIMITIVES ? this : createHandle(raw_clone());
}
@@ -369,11 +410,6 @@ public abstract class NBTBaseHandle extends Template.Handle {
}
public abstract long getLongData();
static {
registerTypeInfo(long.class, T, T.create.raw::invoke, T.getLongData::invoke);
}
public NBTBaseHandle.NBTTagLongHandle clone() {
return com.bergerkiller.bukkit.common.internal.CommonCapabilities.IMMUTABLE_NBT_PRIMITIVES ? this : createHandle(raw_clone());
}
@@ -414,11 +450,6 @@ public abstract class NBTBaseHandle extends Template.Handle {
}
public abstract float getFloatData();
static {
registerTypeInfo(float.class, T, T.create.raw::invoke, T.getFloatData::invoke);
}
public NBTBaseHandle.NBTTagFloatHandle clone() {
return com.bergerkiller.bukkit.common.internal.CommonCapabilities.IMMUTABLE_NBT_PRIMITIVES ? this : createHandle(raw_clone());
}
@@ -459,11 +490,6 @@ public abstract class NBTBaseHandle extends Template.Handle {
}
public abstract double getDoubleData();
static {
registerTypeInfo(double.class, T, T.create.raw::invoke, T.getDoubleData::invoke);
}
public NBTBaseHandle.NBTTagDoubleHandle clone() {
return com.bergerkiller.bukkit.common.internal.CommonCapabilities.IMMUTABLE_NBT_PRIMITIVES ? this : createHandle(raw_clone());
}
@@ -504,10 +530,6 @@ public abstract class NBTBaseHandle extends Template.Handle {
}
public abstract byte[] getData();
static {
registerTypeInfo(byte[].class, T, T.create.raw::invoke, T.getData::invoke);
}
/**
* Stores class members for <b>net.minecraft.nbt.NBTTagByteArray</b>.
* Methods, fields, and constructors can be used without using Handle Objects.
@@ -544,10 +566,6 @@ public abstract class NBTBaseHandle extends Template.Handle {
}
public abstract int[] getData();
static {
registerTypeInfo(int[].class, T, T.create.raw::invoke, T.getData::invoke);
}
/**
* Stores class members for <b>net.minecraft.nbt.NBTTagIntArray</b>.
* Methods, fields, and constructors can be used without using Handle Objects.
@@ -585,12 +603,6 @@ public abstract class NBTBaseHandle extends Template.Handle {
}
public abstract long[] getData();
static {
if (T.isAvailable()) {
registerTypeInfo(long[].class, T, T.create.raw::invoke, T.getData::invoke);
}
}
/**
* Stores class members for <b>net.minecraft.nbt.NBTTagLongArray</b>.
* Methods, fields, and constructors can be used without using Handle Objects.
@@ -23,6 +23,18 @@ public abstract class NBTCompressedStreamToolsHandle extends Template.Handle {
/* ============================================================================== */
public static NBTTagCompoundHandle parseTagCompoundFromSNBT(String snbtContent) {
return T.parseTagCompoundFromSNBT.invoke(snbtContent);
}
public static NBTBaseHandle parseTagFromSNBT(String snbtContent) {
return T.parseTagFromSNBT.invoke(snbtContent);
}
public static String handleSNBTParseError(String snbtContent, Throwable exception) {
return T.handleSNBTParseError.invoker.invoke(null,snbtContent, exception);
}
public static void uncompressed_writeTag(NBTBaseHandle nbtbase, DataOutput dataoutput) {
T.uncompressed_writeTag.invoke(nbtbase, dataoutput);
}
@@ -52,6 +64,9 @@ public abstract class NBTCompressedStreamToolsHandle extends Template.Handle {
* Methods, fields, and constructors can be used without using Handle Objects.
*/
public static final class NBTCompressedStreamToolsClass extends Template.Class<NBTCompressedStreamToolsHandle> {
public final Template.StaticMethod.Converted<NBTTagCompoundHandle> parseTagCompoundFromSNBT = new Template.StaticMethod.Converted<NBTTagCompoundHandle>();
public final Template.StaticMethod.Converted<NBTBaseHandle> parseTagFromSNBT = new Template.StaticMethod.Converted<NBTBaseHandle>();
public final Template.StaticMethod<String> handleSNBTParseError = new Template.StaticMethod<String>();
public final Template.StaticMethod.Converted<Void> uncompressed_writeTag = new Template.StaticMethod.Converted<Void>();
public final Template.StaticMethod.Converted<NBTBaseHandle> uncompressed_readTag = new Template.StaticMethod.Converted<NBTBaseHandle>();
public final Template.StaticMethod.Converted<Void> uncompressed_writeTagCompound = new Template.StaticMethod.Converted<Void>();
@@ -29,10 +29,6 @@ public abstract class NBTTagCompoundHandle extends NBTBaseHandle {
return T.create.invoke(map);
}
public static NBTBaseHandle fromMojangson(String mojangson) {
return T.fromMojangson.invoke(mojangson);
}
public abstract boolean isEmpty();
public abstract int size();
public abstract Set<String> getKeys();
@@ -40,16 +36,10 @@ public abstract class NBTTagCompoundHandle extends NBTBaseHandle {
public abstract NBTBaseHandle put(String key, NBTBaseHandle value);
public abstract NBTBaseHandle get(String key);
public abstract boolean containsKey(String key);
public NBTTagCompoundHandle clone() {
return createHandle(raw_clone());
}
static {
registerTypeInfo(java.util.Map.class, T, T.create.raw::invoke, T.data.raw::get);
}
public com.bergerkiller.bukkit.common.nbt.CommonTagCompound toCommonTag() {
return new com.bergerkiller.bukkit.common.nbt.CommonTagCompound(this);
}
@@ -91,7 +81,6 @@ public abstract class NBTTagCompoundHandle extends NBTBaseHandle {
public final Template.StaticMethod.Converted<NBTTagCompoundHandle> createEmpty = new Template.StaticMethod.Converted<NBTTagCompoundHandle>();
public final Template.StaticMethod.Converted<NBTTagCompoundHandle> create = new Template.StaticMethod.Converted<NBTTagCompoundHandle>();
public final Template.StaticMethod.Converted<NBTBaseHandle> fromMojangson = new Template.StaticMethod.Converted<NBTBaseHandle>();
public final Template.Method<Boolean> isEmpty = new Template.Method<Boolean>();
public final Template.Method<Integer> size = new Template.Method<Integer>();
@@ -38,16 +38,10 @@ public abstract class NBTTagListHandle extends NBTBaseHandle {
public abstract NBTBaseHandle remove_at(int index);
public abstract void add_at(int index, NBTBaseHandle value);
public abstract boolean add(NBTBaseHandle value);
public NBTTagListHandle clone() {
return createHandle(raw_clone());
}
static {
registerTypeInfo(java.util.Collection.class, T, T.create.raw::invoke, T.data.raw::get);
}
public com.bergerkiller.bukkit.common.nbt.CommonTagList toCommonTag() {
return new com.bergerkiller.bukkit.common.nbt.CommonTagList(this);
}
@@ -25,6 +25,7 @@ public abstract class NetworkManagerHandle extends Template.Handle {
}
public abstract boolean isConnected();
public abstract void queue_sendPacketImpl(Object packet, Object packetsendlistener, boolean flush);
public abstract Channel getChannel();
public abstract void setChannel(Channel value);
/**
@@ -37,6 +38,7 @@ public abstract class NetworkManagerHandle extends Template.Handle {
public final Template.StaticMethod.Converted<Boolean> queuePacketUnsafe = new Template.StaticMethod.Converted<Boolean>();
public final Template.Method<Boolean> isConnected = new Template.Method<Boolean>();
public final Template.Method.Converted<Void> queue_sendPacketImpl = new Template.Method.Converted<Void>();
}
@@ -1,6 +1,7 @@
package com.bergerkiller.generated.net.minecraft.network.chat;
import com.bergerkiller.mountiplex.reflection.declarations.Template;
import com.bergerkiller.bukkit.common.nbt.CommonTag;
import org.bukkit.ChatColor;
import java.util.Collection;
@@ -21,7 +22,36 @@ public abstract class IChatBaseComponentHandle extends Template.Handle {
/* ============================================================================== */
public static String chatComponentToJson(IChatBaseComponentHandle chatComponent) {
return T.chatComponentToJson.invoke(chatComponent);
}
public static IChatBaseComponentHandle jsonToChatComponent(String jsonString) {
return T.jsonToChatComponent.invoke(jsonString);
}
public static IChatBaseComponentHandle nbtToChatComponent(CommonTag nbt) {
return T.nbtToChatComponent.invoke(nbt);
}
public static CommonTag chatComponentToNBT(IChatBaseComponentHandle chatComponent) {
return T.chatComponentToNBT.invoke(chatComponent);
}
public static IChatBaseComponentHandle empty() {
return T.empty.invoke();
}
public static IChatBaseComponentHandle newLine() {
return T.newLine.invoke();
}
public static IChatBaseComponentHandle modifiersToComponent(Collection<ChatColor> colors) {
return T.modifiersToComponent.invoke(colors);
}
public abstract String getText();
public abstract boolean isEmpty();
public abstract IChatBaseComponentHandle addSibling(IChatBaseComponentHandle sibling);
public abstract boolean isMutable();
public abstract IChatBaseComponentHandle createCopy();
@@ -35,7 +65,16 @@ public abstract class IChatBaseComponentHandle extends Template.Handle {
* Methods, fields, and constructors can be used without using Handle Objects.
*/
public static final class IChatBaseComponentClass extends Template.Class<IChatBaseComponentHandle> {
public final Template.StaticMethod.Converted<String> chatComponentToJson = new Template.StaticMethod.Converted<String>();
public final Template.StaticMethod.Converted<IChatBaseComponentHandle> jsonToChatComponent = new Template.StaticMethod.Converted<IChatBaseComponentHandle>();
public final Template.StaticMethod.Converted<IChatBaseComponentHandle> nbtToChatComponent = new Template.StaticMethod.Converted<IChatBaseComponentHandle>();
public final Template.StaticMethod.Converted<CommonTag> chatComponentToNBT = new Template.StaticMethod.Converted<CommonTag>();
public final Template.StaticMethod.Converted<IChatBaseComponentHandle> empty = new Template.StaticMethod.Converted<IChatBaseComponentHandle>();
public final Template.StaticMethod.Converted<IChatBaseComponentHandle> newLine = new Template.StaticMethod.Converted<IChatBaseComponentHandle>();
public final Template.StaticMethod.Converted<IChatBaseComponentHandle> modifiersToComponent = new Template.StaticMethod.Converted<IChatBaseComponentHandle>();
public final Template.Method<String> getText = new Template.Method<String>();
public final Template.Method<Boolean> isEmpty = new Template.Method<Boolean>();
public final Template.Method.Converted<IChatBaseComponentHandle> addSibling = new Template.Method.Converted<IChatBaseComponentHandle>();
public final Template.Method<Boolean> isMutable = new Template.Method<Boolean>();
public final Template.Method.Converted<IChatBaseComponentHandle> createCopy = new Template.Method.Converted<IChatBaseComponentHandle>();
@@ -47,58 +86,5 @@ public abstract class IChatBaseComponentHandle extends Template.Handle {
}
/**
* Instance wrapper handle for type <b>net.minecraft.network.chat.IChatBaseComponent.ChatSerializer</b>.
* To access members without creating a handle type, use the static {@link #T} member.
* New handles can be created from raw instances using {@link #createHandle(Object)}.
*/
@Template.InstanceType("net.minecraft.network.chat.IChatBaseComponent.ChatSerializer")
public abstract static class ChatSerializerHandle extends Template.Handle {
/** @see ChatSerializerClass */
public static final ChatSerializerClass T = Template.Class.create(ChatSerializerClass.class, com.bergerkiller.bukkit.common.Common.TEMPLATE_RESOLVER);
/* ============================================================================== */
public static ChatSerializerHandle createHandle(Object handleInstance) {
return T.createHandle(handleInstance);
}
/* ============================================================================== */
public static String chatComponentToJson(IChatBaseComponentHandle chatComponent) {
return T.chatComponentToJson.invoke(chatComponent);
}
public static IChatBaseComponentHandle jsonToChatComponent(String jsonString) {
return T.jsonToChatComponent.invoke(jsonString);
}
public static IChatBaseComponentHandle empty() {
return T.empty.invoke();
}
public static IChatBaseComponentHandle newLine() {
return T.newLine.invoke();
}
public static IChatBaseComponentHandle modifiersToComponent(Collection<ChatColor> colors) {
return T.modifiersToComponent.invoke(colors);
}
/**
* Stores class members for <b>net.minecraft.network.chat.IChatBaseComponent.ChatSerializer</b>.
* Methods, fields, and constructors can be used without using Handle Objects.
*/
public static final class ChatSerializerClass extends Template.Class<ChatSerializerHandle> {
public final Template.StaticMethod.Converted<String> chatComponentToJson = new Template.StaticMethod.Converted<String>();
public final Template.StaticMethod.Converted<IChatBaseComponentHandle> jsonToChatComponent = new Template.StaticMethod.Converted<IChatBaseComponentHandle>();
public final Template.StaticMethod.Converted<IChatBaseComponentHandle> empty = new Template.StaticMethod.Converted<IChatBaseComponentHandle>();
public final Template.StaticMethod.Converted<IChatBaseComponentHandle> newLine = new Template.StaticMethod.Converted<IChatBaseComponentHandle>();
public final Template.StaticMethod.Converted<IChatBaseComponentHandle> modifiersToComponent = new Template.StaticMethod.Converted<IChatBaseComponentHandle>();
}
}
}
@@ -23,7 +23,6 @@ public abstract class PacketHandle extends Template.Handle {
return T.tryUnwrapBundlePacket.invoker.invoke(null,packet);
}
public com.bergerkiller.bukkit.common.protocol.CommonPacket toCommonPacket() {
return new com.bergerkiller.bukkit.common.protocol.CommonPacket(getRaw(), getPacketType());
}
@@ -32,7 +31,6 @@ public abstract class PacketHandle extends Template.Handle {
return com.bergerkiller.bukkit.common.protocol.PacketType.getType(getRaw());
}
protected final double getProtocolPosition(Template.Field.Byte field_1_8_8, Template.Field.Integer field_1_10_2) {
if (field_1_10_2.isAvailable()) {
return com.bergerkiller.bukkit.common.internal.logic.ProtocolMath.deserializePosition_1_10_2(field_1_10_2.getInteger(getRaw()));
@@ -0,0 +1,46 @@
package com.bergerkiller.generated.net.minecraft.network.protocol.common;
import com.bergerkiller.mountiplex.reflection.declarations.Template;
import com.bergerkiller.generated.net.minecraft.network.protocol.PacketHandle;
/**
* Instance wrapper handle for type <b>net.minecraft.network.protocol.common.ClientboundCustomPayloadPacket</b>.
* To access members without creating a handle type, use the static {@link #T} member.
* New handles can be created from raw instances using {@link #createHandle(Object)}.
*/
@Template.InstanceType("net.minecraft.network.protocol.common.ClientboundCustomPayloadPacket")
public abstract class ClientboundCustomPayloadPacketHandle extends PacketHandle {
/** @see ClientboundCustomPayloadPacketClass */
public static final ClientboundCustomPayloadPacketClass T = Template.Class.create(ClientboundCustomPayloadPacketClass.class, com.bergerkiller.bukkit.common.Common.TEMPLATE_RESOLVER);
/* ============================================================================== */
public static ClientboundCustomPayloadPacketHandle createHandle(Object handleInstance) {
return T.createHandle(handleInstance);
}
/* ============================================================================== */
public static ClientboundCustomPayloadPacketHandle createNew(String channel, byte[] message) {
return T.createNew.invoke(channel, message);
}
public abstract String getChannel();
public abstract byte[] getMessage();
@Override
public com.bergerkiller.bukkit.common.protocol.PacketType getPacketType() {
return com.bergerkiller.bukkit.common.protocol.PacketType.OUT_CUSTOM_PAYLOAD;
}
/**
* Stores class members for <b>net.minecraft.network.protocol.common.ClientboundCustomPayloadPacket</b>.
* Methods, fields, and constructors can be used without using Handle Objects.
*/
public static final class ClientboundCustomPayloadPacketClass extends Template.Class<ClientboundCustomPayloadPacketHandle> {
public final Template.StaticMethod.Converted<ClientboundCustomPayloadPacketHandle> createNew = new Template.StaticMethod.Converted<ClientboundCustomPayloadPacketHandle>();
public final Template.Method<String> getChannel = new Template.Method<String>();
public final Template.Method<byte[]> getMessage = new Template.Method<byte[]>();
}
}
@@ -1,21 +1,21 @@
package com.bergerkiller.generated.net.minecraft.network.protocol.game;
package com.bergerkiller.generated.net.minecraft.network.protocol.common;
import com.bergerkiller.mountiplex.reflection.declarations.Template;
import com.bergerkiller.bukkit.common.wrappers.ChatText;
import com.bergerkiller.generated.net.minecraft.network.protocol.PacketHandle;
/**
* Instance wrapper handle for type <b>net.minecraft.network.protocol.game.PacketPlayOutKickDisconnect</b>.
* Instance wrapper handle for type <b>net.minecraft.network.protocol.common.ClientboundDisconnectPacket</b>.
* To access members without creating a handle type, use the static {@link #T} member.
* New handles can be created from raw instances using {@link #createHandle(Object)}.
*/
@Template.InstanceType("net.minecraft.network.protocol.game.PacketPlayOutKickDisconnect")
public abstract class PacketPlayOutKickDisconnectHandle extends PacketHandle {
/** @see PacketPlayOutKickDisconnectClass */
public static final PacketPlayOutKickDisconnectClass T = Template.Class.create(PacketPlayOutKickDisconnectClass.class, com.bergerkiller.bukkit.common.Common.TEMPLATE_RESOLVER);
@Template.InstanceType("net.minecraft.network.protocol.common.ClientboundDisconnectPacket")
public abstract class ClientboundDisconnectPacketHandle extends PacketHandle {
/** @see ClientboundDisconnectPacketClass */
public static final ClientboundDisconnectPacketClass T = Template.Class.create(ClientboundDisconnectPacketClass.class, com.bergerkiller.bukkit.common.Common.TEMPLATE_RESOLVER);
/* ============================================================================== */
public static PacketPlayOutKickDisconnectHandle createHandle(Object handleInstance) {
public static ClientboundDisconnectPacketHandle createHandle(Object handleInstance) {
return T.createHandle(handleInstance);
}
@@ -24,10 +24,10 @@ public abstract class PacketPlayOutKickDisconnectHandle extends PacketHandle {
public abstract ChatText getReason();
public abstract void setReason(ChatText value);
/**
* Stores class members for <b>net.minecraft.network.protocol.game.PacketPlayOutKickDisconnect</b>.
* Stores class members for <b>net.minecraft.network.protocol.common.ClientboundDisconnectPacket</b>.
* Methods, fields, and constructors can be used without using Handle Objects.
*/
public static final class PacketPlayOutKickDisconnectClass extends Template.Class<PacketPlayOutKickDisconnectHandle> {
public static final class ClientboundDisconnectPacketClass extends Template.Class<ClientboundDisconnectPacketHandle> {
public final Template.Field.Converted<ChatText> reason = new Template.Field.Converted<ChatText>();
}
@@ -1,37 +1,37 @@
package com.bergerkiller.generated.net.minecraft.network.protocol.game;
package com.bergerkiller.generated.net.minecraft.network.protocol.common;
import com.bergerkiller.mountiplex.reflection.declarations.Template;
import com.bergerkiller.generated.net.minecraft.network.protocol.PacketHandle;
/**
* Instance wrapper handle for type <b>net.minecraft.network.protocol.game.PacketPlayOutKeepAlive</b>.
* Instance wrapper handle for type <b>net.minecraft.network.protocol.common.ClientboundKeepAlivePacket</b>.
* To access members without creating a handle type, use the static {@link #T} member.
* New handles can be created from raw instances using {@link #createHandle(Object)}.
*/
@Template.InstanceType("net.minecraft.network.protocol.game.PacketPlayOutKeepAlive")
public abstract class PacketPlayOutKeepAliveHandle extends PacketHandle {
/** @see PacketPlayOutKeepAliveClass */
public static final PacketPlayOutKeepAliveClass T = Template.Class.create(PacketPlayOutKeepAliveClass.class, com.bergerkiller.bukkit.common.Common.TEMPLATE_RESOLVER);
@Template.InstanceType("net.minecraft.network.protocol.common.ClientboundKeepAlivePacket")
public abstract class ClientboundKeepAlivePacketHandle extends PacketHandle {
/** @see ClientboundKeepAlivePacketClass */
public static final ClientboundKeepAlivePacketClass T = Template.Class.create(ClientboundKeepAlivePacketClass.class, com.bergerkiller.bukkit.common.Common.TEMPLATE_RESOLVER);
/* ============================================================================== */
public static PacketPlayOutKeepAliveHandle createHandle(Object handleInstance) {
public static ClientboundKeepAlivePacketHandle createHandle(Object handleInstance) {
return T.createHandle(handleInstance);
}
/* ============================================================================== */
public static PacketPlayOutKeepAliveHandle createNew(long key) {
public static ClientboundKeepAlivePacketHandle createNew(long key) {
return T.createNew.invoke(key);
}
public abstract long getKey();
public abstract void setKey(long key);
/**
* Stores class members for <b>net.minecraft.network.protocol.game.PacketPlayOutKeepAlive</b>.
* Stores class members for <b>net.minecraft.network.protocol.common.ClientboundKeepAlivePacket</b>.
* Methods, fields, and constructors can be used without using Handle Objects.
*/
public static final class PacketPlayOutKeepAliveClass extends Template.Class<PacketPlayOutKeepAliveHandle> {
public final Template.StaticMethod.Converted<PacketPlayOutKeepAliveHandle> createNew = new Template.StaticMethod.Converted<PacketPlayOutKeepAliveHandle>();
public static final class ClientboundKeepAlivePacketClass extends Template.Class<ClientboundKeepAlivePacketHandle> {
public final Template.StaticMethod.Converted<ClientboundKeepAlivePacketHandle> createNew = new Template.StaticMethod.Converted<ClientboundKeepAlivePacketHandle>();
public final Template.Method<Long> getKey = new Template.Method<Long>();
public final Template.Method<Void> setKey = new Template.Method<Void>();
@@ -0,0 +1,36 @@
package com.bergerkiller.generated.net.minecraft.network.protocol.common;
import com.bergerkiller.mountiplex.reflection.declarations.Template;
import java.util.Optional;
import java.util.UUID;
/**
* Instance wrapper handle for type <b>net.minecraft.network.protocol.common.ClientboundResourcePackPopPacket</b>.
* To access members without creating a handle type, use the static {@link #T} member.
* New handles can be created from raw instances using {@link #createHandle(Object)}.
*/
@Template.Optional
@Template.InstanceType("net.minecraft.network.protocol.common.ClientboundResourcePackPopPacket")
public abstract class ClientboundResourcePackPopPacketHandle extends Template.Handle {
/** @see ClientboundResourcePackPopPacketClass */
public static final ClientboundResourcePackPopPacketClass T = Template.Class.create(ClientboundResourcePackPopPacketClass.class, com.bergerkiller.bukkit.common.Common.TEMPLATE_RESOLVER);
/* ============================================================================== */
public static ClientboundResourcePackPopPacketHandle createHandle(Object handleInstance) {
return T.createHandle(handleInstance);
}
/* ============================================================================== */
public abstract Optional<UUID> getId();
/**
* Stores class members for <b>net.minecraft.network.protocol.common.ClientboundResourcePackPopPacket</b>.
* Methods, fields, and constructors can be used without using Handle Objects.
*/
public static final class ClientboundResourcePackPopPacketClass extends Template.Class<ClientboundResourcePackPopPacketHandle> {
public final Template.Method<Optional<UUID>> getId = new Template.Method<Optional<UUID>>();
}
}
@@ -1,21 +1,22 @@
package com.bergerkiller.generated.net.minecraft.network.protocol.game;
package com.bergerkiller.generated.net.minecraft.network.protocol.common;
import com.bergerkiller.mountiplex.reflection.declarations.Template;
import com.bergerkiller.bukkit.common.wrappers.ChatText;
import com.bergerkiller.generated.net.minecraft.network.protocol.PacketHandle;
import java.util.UUID;
/**
* Instance wrapper handle for type <b>net.minecraft.network.protocol.game.PacketPlayOutResourcePackSend</b>.
* Instance wrapper handle for type <b>net.minecraft.network.protocol.common.ClientboundResourcePackPushPacket</b>.
* To access members without creating a handle type, use the static {@link #T} member.
* New handles can be created from raw instances using {@link #createHandle(Object)}.
*/
@Template.InstanceType("net.minecraft.network.protocol.game.PacketPlayOutResourcePackSend")
public abstract class PacketPlayOutResourcePackSendHandle extends PacketHandle {
/** @see PacketPlayOutResourcePackSendClass */
public static final PacketPlayOutResourcePackSendClass T = Template.Class.create(PacketPlayOutResourcePackSendClass.class, com.bergerkiller.bukkit.common.Common.TEMPLATE_RESOLVER);
@Template.InstanceType("net.minecraft.network.protocol.common.ClientboundResourcePackPushPacket")
public abstract class ClientboundResourcePackPushPacketHandle extends PacketHandle {
/** @see ClientboundResourcePackPushPacketClass */
public static final ClientboundResourcePackPushPacketClass T = Template.Class.create(ClientboundResourcePackPushPacketClass.class, com.bergerkiller.bukkit.common.Common.TEMPLATE_RESOLVER);
/* ============================================================================== */
public static PacketPlayOutResourcePackSendHandle createHandle(Object handleInstance) {
public static ClientboundResourcePackPushPacketHandle createHandle(Object handleInstance) {
return T.createHandle(handleInstance);
}
@@ -25,15 +26,16 @@ public abstract class PacketPlayOutResourcePackSendHandle extends PacketHandle {
public abstract boolean isRequired();
public abstract void setPrompt(ChatText prompt);
public abstract ChatText getPrompt();
public abstract UUID getId();
public abstract String getUrl();
public abstract void setUrl(String value);
public abstract String getHash();
public abstract void setHash(String value);
/**
* Stores class members for <b>net.minecraft.network.protocol.game.PacketPlayOutResourcePackSend</b>.
* Stores class members for <b>net.minecraft.network.protocol.common.ClientboundResourcePackPushPacket</b>.
* Methods, fields, and constructors can be used without using Handle Objects.
*/
public static final class PacketPlayOutResourcePackSendClass extends Template.Class<PacketPlayOutResourcePackSendHandle> {
public static final class ClientboundResourcePackPushPacketClass extends Template.Class<ClientboundResourcePackPushPacketHandle> {
public final Template.Field<String> url = new Template.Field<String>();
public final Template.Field<String> hash = new Template.Field<String>();
@@ -41,6 +43,7 @@ public abstract class PacketPlayOutResourcePackSendHandle extends PacketHandle {
public final Template.Method<Boolean> isRequired = new Template.Method<Boolean>();
public final Template.Method.Converted<Void> setPrompt = new Template.Method.Converted<Void>();
public final Template.Method.Converted<ChatText> getPrompt = new Template.Method.Converted<ChatText>();
public final Template.Method<UUID> getId = new Template.Method<UUID>();
}
@@ -0,0 +1,45 @@
package com.bergerkiller.generated.net.minecraft.network.protocol.common;
import com.bergerkiller.mountiplex.reflection.declarations.Template;
import com.bergerkiller.bukkit.common.wrappers.HumanHand;
import com.bergerkiller.generated.net.minecraft.network.protocol.PacketHandle;
/**
* Instance wrapper handle for type <b>net.minecraft.network.protocol.common.ServerboundClientInformationPacket</b>.
* To access members without creating a handle type, use the static {@link #T} member.
* New handles can be created from raw instances using {@link #createHandle(Object)}.
*/
@Template.InstanceType("net.minecraft.network.protocol.common.ServerboundClientInformationPacket")
public abstract class ServerboundClientInformationPacketHandle extends PacketHandle {
/** @see ServerboundClientInformationPacketClass */
public static final ServerboundClientInformationPacketClass T = Template.Class.create(ServerboundClientInformationPacketClass.class, com.bergerkiller.bukkit.common.Common.TEMPLATE_RESOLVER);
/* ============================================================================== */
public static ServerboundClientInformationPacketHandle createHandle(Object handleInstance) {
return T.createHandle(handleInstance);
}
/* ============================================================================== */
public abstract String getLocale();
public abstract int getView();
public abstract Object getChatVisibility();
public abstract boolean getEnableColors();
public abstract int getModelPartFlags();
public abstract HumanHand getMainHand();
/**
* Stores class members for <b>net.minecraft.network.protocol.common.ServerboundClientInformationPacket</b>.
* Methods, fields, and constructors can be used without using Handle Objects.
*/
public static final class ServerboundClientInformationPacketClass extends Template.Class<ServerboundClientInformationPacketHandle> {
public final Template.Method<String> getLocale = new Template.Method<String>();
public final Template.Method<Integer> getView = new Template.Method<Integer>();
public final Template.Method<Object> getChatVisibility = new Template.Method<Object>();
public final Template.Method<Boolean> getEnableColors = new Template.Method<Boolean>();
public final Template.Method<Integer> getModelPartFlags = new Template.Method<Integer>();
public final Template.Method.Converted<HumanHand> getMainHand = new Template.Method.Converted<HumanHand>();
}
}
@@ -1,20 +1,20 @@
package com.bergerkiller.generated.net.minecraft.network.protocol.game;
package com.bergerkiller.generated.net.minecraft.network.protocol.common;
import com.bergerkiller.mountiplex.reflection.declarations.Template;
import com.bergerkiller.generated.net.minecraft.network.protocol.PacketHandle;
/**
* Instance wrapper handle for type <b>net.minecraft.network.protocol.game.PacketPlayInKeepAlive</b>.
* Instance wrapper handle for type <b>net.minecraft.network.protocol.common.ServerboundKeepAlivePacket</b>.
* To access members without creating a handle type, use the static {@link #T} member.
* New handles can be created from raw instances using {@link #createHandle(Object)}.
*/
@Template.InstanceType("net.minecraft.network.protocol.game.PacketPlayInKeepAlive")
public abstract class PacketPlayInKeepAliveHandle extends PacketHandle {
/** @see PacketPlayInKeepAliveClass */
public static final PacketPlayInKeepAliveClass T = Template.Class.create(PacketPlayInKeepAliveClass.class, com.bergerkiller.bukkit.common.Common.TEMPLATE_RESOLVER);
@Template.InstanceType("net.minecraft.network.protocol.common.ServerboundKeepAlivePacket")
public abstract class ServerboundKeepAlivePacketHandle extends PacketHandle {
/** @see ServerboundKeepAlivePacketClass */
public static final ServerboundKeepAlivePacketClass T = Template.Class.create(ServerboundKeepAlivePacketClass.class, com.bergerkiller.bukkit.common.Common.TEMPLATE_RESOLVER);
/* ============================================================================== */
public static PacketPlayInKeepAliveHandle createHandle(Object handleInstance) {
public static ServerboundKeepAlivePacketHandle createHandle(Object handleInstance) {
return T.createHandle(handleInstance);
}
@@ -23,10 +23,10 @@ public abstract class PacketPlayInKeepAliveHandle extends PacketHandle {
public abstract long getKey();
public abstract void setKey(long key);
/**
* Stores class members for <b>net.minecraft.network.protocol.game.PacketPlayInKeepAlive</b>.
* Stores class members for <b>net.minecraft.network.protocol.common.ServerboundKeepAlivePacket</b>.
* Methods, fields, and constructors can be used without using Handle Objects.
*/
public static final class PacketPlayInKeepAliveClass extends Template.Class<PacketPlayInKeepAliveHandle> {
public static final class ServerboundKeepAlivePacketClass extends Template.Class<ServerboundKeepAlivePacketHandle> {
public final Template.Method<Long> getKey = new Template.Method<Long>();
public final Template.Method<Void> setKey = new Template.Method<Void>();
@@ -1,20 +1,20 @@
package com.bergerkiller.generated.net.minecraft.network.protocol.game;
package com.bergerkiller.generated.net.minecraft.network.protocol.common;
import com.bergerkiller.mountiplex.reflection.declarations.Template;
import com.bergerkiller.generated.net.minecraft.network.protocol.PacketHandle;
/**
* Instance wrapper handle for type <b>net.minecraft.network.protocol.game.PacketPlayInResourcePackStatus</b>.
* Instance wrapper handle for type <b>net.minecraft.network.protocol.common.ServerboundResourcePackPacket</b>.
* To access members without creating a handle type, use the static {@link #T} member.
* New handles can be created from raw instances using {@link #createHandle(Object)}.
*/
@Template.InstanceType("net.minecraft.network.protocol.game.PacketPlayInResourcePackStatus")
public abstract class PacketPlayInResourcePackStatusHandle extends PacketHandle {
/** @see PacketPlayInResourcePackStatusClass */
public static final PacketPlayInResourcePackStatusClass T = Template.Class.create(PacketPlayInResourcePackStatusClass.class, com.bergerkiller.bukkit.common.Common.TEMPLATE_RESOLVER);
@Template.InstanceType("net.minecraft.network.protocol.common.ServerboundResourcePackPacket")
public abstract class ServerboundResourcePackPacketHandle extends PacketHandle {
/** @see ServerboundResourcePackPacketClass */
public static final ServerboundResourcePackPacketClass T = Template.Class.create(ServerboundResourcePackPacketClass.class, com.bergerkiller.bukkit.common.Common.TEMPLATE_RESOLVER);
/* ============================================================================== */
public static PacketPlayInResourcePackStatusHandle createHandle(Object handleInstance) {
public static ServerboundResourcePackPacketHandle createHandle(Object handleInstance) {
return T.createHandle(handleInstance);
}
@@ -23,10 +23,10 @@ public abstract class PacketPlayInResourcePackStatusHandle extends PacketHandle
public abstract Object getStatus();
public abstract void setStatus(Object value);
/**
* Stores class members for <b>net.minecraft.network.protocol.game.PacketPlayInResourcePackStatus</b>.
* Stores class members for <b>net.minecraft.network.protocol.common.ServerboundResourcePackPacket</b>.
* Methods, fields, and constructors can be used without using Handle Objects.
*/
public static final class PacketPlayInResourcePackStatusClass extends Template.Class<PacketPlayInResourcePackStatusHandle> {
public static final class ServerboundResourcePackPacketClass extends Template.Class<ServerboundResourcePackPacketHandle> {
@Template.Optional
public final Template.Field<String> message = new Template.Field<String>();
public final Template.Field.Converted<Object> status = new Template.Field.Converted<Object>();
@@ -0,0 +1,45 @@
package com.bergerkiller.generated.net.minecraft.network.protocol.game;
import com.bergerkiller.mountiplex.reflection.declarations.Template;
import com.bergerkiller.generated.net.minecraft.network.protocol.PacketHandle;
import com.bergerkiller.generated.net.minecraft.world.entity.vehicle.NewMinecartBehaviorHandle.LerpStepHandle;
import java.util.List;
/**
* Instance wrapper handle for type <b>net.minecraft.network.protocol.game.ClientboundMoveMinecartPacket</b>.
* To access members without creating a handle type, use the static {@link #T} member.
* New handles can be created from raw instances using {@link #createHandle(Object)}.
*/
@Template.Optional
@Template.InstanceType("net.minecraft.network.protocol.game.ClientboundMoveMinecartPacket")
public abstract class ClientboundMoveMinecartPacketHandle extends PacketHandle {
/** @see ClientboundMoveMinecartPacketClass */
public static final ClientboundMoveMinecartPacketClass T = Template.Class.create(ClientboundMoveMinecartPacketClass.class, com.bergerkiller.bukkit.common.Common.TEMPLATE_RESOLVER);
/* ============================================================================== */
public static ClientboundMoveMinecartPacketHandle createHandle(Object handleInstance) {
return T.createHandle(handleInstance);
}
/* ============================================================================== */
public static ClientboundMoveMinecartPacketHandle createNew(int entityId, List<LerpStepHandle> lerpSteps) {
return T.createNew.invoke(entityId, lerpSteps);
}
public abstract int getEntityId();
public abstract List<LerpStepHandle> getLerpSteps();
/**
* Stores class members for <b>net.minecraft.network.protocol.game.ClientboundMoveMinecartPacket</b>.
* Methods, fields, and constructors can be used without using Handle Objects.
*/
public static final class ClientboundMoveMinecartPacketClass extends Template.Class<ClientboundMoveMinecartPacketHandle> {
public final Template.StaticMethod.Converted<ClientboundMoveMinecartPacketHandle> createNew = new Template.StaticMethod.Converted<ClientboundMoveMinecartPacketHandle>();
public final Template.Method<Integer> getEntityId = new Template.Method<Integer>();
public final Template.Method.Converted<List<LerpStepHandle>> getLerpSteps = new Template.Method.Converted<List<LerpStepHandle>>();
}
}
@@ -80,7 +80,6 @@ public abstract class ClientboundPlayerInfoUpdatePacketHandle extends PacketHand
public abstract int getPing();
public abstract GameMode getGameMode();
public abstract ChatText getListName();
public static PlayerInfoDataHandle createNew(ClientboundPlayerInfoUpdatePacketHandle packet, GameProfileHandle profile, int ping, org.bukkit.GameMode gameMode, ChatText listName) {
return createNew(packet, profile, ping, gameMode, listName, true); // Listed like olden times
}
@@ -0,0 +1,44 @@
package com.bergerkiller.generated.net.minecraft.network.protocol.game;
import com.bergerkiller.mountiplex.reflection.declarations.Template;
import com.bergerkiller.generated.net.minecraft.network.protocol.PacketHandle;
/**
* Instance wrapper handle for type <b>net.minecraft.network.protocol.game.ClientboundResetScorePacket</b>.
* To access members without creating a handle type, use the static {@link #T} member.
* New handles can be created from raw instances using {@link #createHandle(Object)}.
*/
@Template.InstanceType("net.minecraft.network.protocol.game.ClientboundResetScorePacket")
public abstract class ClientboundResetScorePacketHandle extends PacketHandle {
/** @see ClientboundResetScorePacketClass */
public static final ClientboundResetScorePacketClass T = Template.Class.create(ClientboundResetScorePacketClass.class, com.bergerkiller.bukkit.common.Common.TEMPLATE_RESOLVER);
/* ============================================================================== */
public static ClientboundResetScorePacketHandle createHandle(Object handleInstance) {
return T.createHandle(handleInstance);
}
/* ============================================================================== */
public static ClientboundResetScorePacketHandle createNew(String name, String objectiveName) {
return T.createNew.invoke(name, objectiveName);
}
public abstract String getName();
public abstract void setName(String value);
public abstract String getObjName();
public abstract void setObjName(String value);
/**
* Stores class members for <b>net.minecraft.network.protocol.game.ClientboundResetScorePacket</b>.
* Methods, fields, and constructors can be used without using Handle Objects.
*/
public static final class ClientboundResetScorePacketClass extends Template.Class<ClientboundResetScorePacketHandle> {
public final Template.Field<String> name = new Template.Field<String>();
public final Template.Field<String> objName = new Template.Field<String>();
public final Template.StaticMethod.Converted<ClientboundResetScorePacketHandle> createNew = new Template.StaticMethod.Converted<ClientboundResetScorePacketHandle>();
}
}
@@ -20,7 +20,6 @@ public abstract class PacketPlayInArmAnimationHandle extends PacketHandle {
/* ============================================================================== */
public com.bergerkiller.bukkit.common.wrappers.HumanHand getHand(org.bukkit.entity.HumanEntity humanEntity) {
return internalGetHand(T.enumHand, humanEntity);
}
@@ -20,7 +20,10 @@ public abstract class PacketPlayInBlockPlaceHandle extends PacketHandle {
/* ============================================================================== */
public abstract float getYaw();
public abstract float getPitch();
public abstract void setYaw(float yaw);
public abstract void setPitch(float pitch);
@Override
public com.bergerkiller.bukkit.common.protocol.PacketType getPacketType() {
return com.bergerkiller.bukkit.common.protocol.PacketType.IN_BLOCK_PLACE;
@@ -49,6 +52,11 @@ public abstract class PacketPlayInBlockPlaceHandle extends PacketHandle {
@Template.Optional
public final Template.Field.Long timestamp = new Template.Field.Long();
public final Template.Method<Float> getYaw = new Template.Method<Float>();
public final Template.Method<Float> getPitch = new Template.Method<Float>();
public final Template.Method<Void> setYaw = new Template.Method<Void>();
public final Template.Method<Void> setPitch = new Template.Method<Void>();
}
}
@@ -0,0 +1,35 @@
package com.bergerkiller.generated.net.minecraft.network.protocol.game;
import com.bergerkiller.mountiplex.reflection.declarations.Template;
import com.bergerkiller.generated.net.minecraft.network.protocol.PacketHandle;
/**
* Instance wrapper handle for type <b>net.minecraft.network.protocol.game.PacketPlayInClientCommand</b>.
* To access members without creating a handle type, use the static {@link #T} member.
* New handles can be created from raw instances using {@link #createHandle(Object)}.
*/
@Template.InstanceType("net.minecraft.network.protocol.game.PacketPlayInClientCommand")
public abstract class PacketPlayInClientCommandHandle extends PacketHandle {
/** @see PacketPlayInClientCommandClass */
public static final PacketPlayInClientCommandClass T = Template.Class.create(PacketPlayInClientCommandClass.class, com.bergerkiller.bukkit.common.Common.TEMPLATE_RESOLVER);
/* ============================================================================== */
public static PacketPlayInClientCommandHandle createHandle(Object handleInstance) {
return T.createHandle(handleInstance);
}
/* ============================================================================== */
public abstract Object getAction();
public abstract void setAction(Object value);
/**
* Stores class members for <b>net.minecraft.network.protocol.game.PacketPlayInClientCommand</b>.
* Methods, fields, and constructors can be used without using Handle Objects.
*/
public static final class PacketPlayInClientCommandClass extends Template.Class<PacketPlayInClientCommandHandle> {
public final Template.Field.Converted<Object> action = new Template.Field.Converted<Object>();
}
}
@@ -21,17 +21,21 @@ public abstract class PacketPlayInSetCreativeSlotHandle extends PacketHandle {
/* ============================================================================== */
public abstract int getSlot();
public abstract void setSlot(int value);
public static PacketPlayInSetCreativeSlotHandle createNew(int slotIndex, ItemStack item) {
return T.createNew.invoke(slotIndex, item);
}
public abstract ItemStack getItem();
public abstract void setItem(ItemStack value);
public abstract int getSlotIndex();
/**
* Stores class members for <b>net.minecraft.network.protocol.game.PacketPlayInSetCreativeSlot</b>.
* Methods, fields, and constructors can be used without using Handle Objects.
*/
public static final class PacketPlayInSetCreativeSlotClass extends Template.Class<PacketPlayInSetCreativeSlotHandle> {
public final Template.Field.Integer slot = new Template.Field.Integer();
public final Template.Field.Converted<ItemStack> item = new Template.Field.Converted<ItemStack>();
public final Template.StaticMethod.Converted<PacketPlayInSetCreativeSlotHandle> createNew = new Template.StaticMethod.Converted<PacketPlayInSetCreativeSlotHandle>();
public final Template.Method.Converted<ItemStack> getItem = new Template.Method.Converted<ItemStack>();
public final Template.Method<Integer> getSlotIndex = new Template.Method<Integer>();
}
@@ -1,64 +0,0 @@
package com.bergerkiller.generated.net.minecraft.network.protocol.game;
import com.bergerkiller.mountiplex.reflection.declarations.Template;
import com.bergerkiller.bukkit.common.wrappers.HumanHand;
import com.bergerkiller.generated.net.minecraft.network.protocol.PacketHandle;
/**
* Instance wrapper handle for type <b>net.minecraft.network.protocol.game.PacketPlayInSettings</b>.
* To access members without creating a handle type, use the static {@link #T} member.
* New handles can be created from raw instances using {@link #createHandle(Object)}.
*/
@Template.InstanceType("net.minecraft.network.protocol.game.PacketPlayInSettings")
public abstract class PacketPlayInSettingsHandle extends PacketHandle {
/** @see PacketPlayInSettingsClass */
public static final PacketPlayInSettingsClass T = Template.Class.create(PacketPlayInSettingsClass.class, com.bergerkiller.bukkit.common.Common.TEMPLATE_RESOLVER);
/* ============================================================================== */
public static PacketPlayInSettingsHandle createHandle(Object handleInstance) {
return T.createHandle(handleInstance);
}
/* ============================================================================== */
public HumanHand getMainHand() {
if (T.mainHand.isAvailable()) {
return T.mainHand.get(getRaw());
} else {
return HumanHand.RIGHT;
}
}
public void setMainHand(HumanHand mainHand) {
if (T.mainHand.isAvailable()) {
T.mainHand.set(getRaw(), mainHand);
}
}
public abstract String getLocale();
public abstract void setLocale(String value);
public abstract int getView();
public abstract void setView(int value);
public abstract Object getChatVisibility();
public abstract void setChatVisibility(Object value);
public abstract boolean isEnableColors();
public abstract void setEnableColors(boolean value);
public abstract int getModelPartFlags();
public abstract void setModelPartFlags(int value);
/**
* Stores class members for <b>net.minecraft.network.protocol.game.PacketPlayInSettings</b>.
* Methods, fields, and constructors can be used without using Handle Objects.
*/
public static final class PacketPlayInSettingsClass extends Template.Class<PacketPlayInSettingsHandle> {
public final Template.Field<String> locale = new Template.Field<String>();
public final Template.Field.Integer view = new Template.Field.Integer();
public final Template.Field.Converted<Object> chatVisibility = new Template.Field.Converted<Object>();
public final Template.Field.Boolean enableColors = new Template.Field.Boolean();
public final Template.Field.Integer modelPartFlags = new Template.Field.Integer();
@Template.Optional
public final Template.Field.Converted<HumanHand> mainHand = new Template.Field.Converted<HumanHand>();
}
}
@@ -20,23 +20,35 @@ public abstract class PacketPlayInSteerVehicleHandle extends PacketHandle {
/* ============================================================================== */
public static PacketPlayInSteerVehicleHandle createNew(boolean isLeft, boolean isRight, boolean isForward, boolean isBackward, boolean isJump, boolean isUnmount, boolean isSprint) {
return T.createNew.invokeVA(isLeft, isRight, isForward, isBackward, isJump, isUnmount, isSprint);
}
public abstract boolean isLeft();
public abstract boolean isRight();
public abstract boolean isForward();
public abstract boolean isBackward();
public abstract float getSideways();
public abstract void setSideways(float value);
public abstract float getForwards();
public abstract void setForwards(float value);
public abstract boolean isJump();
public abstract void setJump(boolean value);
public abstract boolean isUnmount();
public abstract void setUnmount(boolean value);
public abstract boolean isSprint();
/**
* Stores class members for <b>net.minecraft.network.protocol.game.PacketPlayInSteerVehicle</b>.
* Methods, fields, and constructors can be used without using Handle Objects.
*/
public static final class PacketPlayInSteerVehicleClass extends Template.Class<PacketPlayInSteerVehicleHandle> {
public final Template.Field.Float sideways = new Template.Field.Float();
public final Template.Field.Float forwards = new Template.Field.Float();
public final Template.Field.Boolean jump = new Template.Field.Boolean();
public final Template.Field.Boolean unmount = new Template.Field.Boolean();
public final Template.StaticMethod.Converted<PacketPlayInSteerVehicleHandle> createNew = new Template.StaticMethod.Converted<PacketPlayInSteerVehicleHandle>();
public final Template.Method<Boolean> isLeft = new Template.Method<Boolean>();
public final Template.Method<Boolean> isRight = new Template.Method<Boolean>();
public final Template.Method<Boolean> isForward = new Template.Method<Boolean>();
public final Template.Method<Boolean> isBackward = new Template.Method<Boolean>();
public final Template.Method<Float> getSideways = new Template.Method<Float>();
public final Template.Method<Float> getForwards = new Template.Method<Float>();
public final Template.Method<Boolean> isJump = new Template.Method<Boolean>();
public final Template.Method<Boolean> isUnmount = new Template.Method<Boolean>();
public final Template.Method<Boolean> isSprint = new Template.Method<Boolean>();
}
@@ -38,7 +38,6 @@ public abstract class PacketPlayInUseItemHandle extends PacketHandle {
public abstract void setDeltaX(float dx);
public abstract void setDeltaY(float dy);
public abstract void setDeltaZ(float dz);
@Override
public com.bergerkiller.bukkit.common.protocol.PacketType getPacketType() {
return com.bergerkiller.bukkit.common.protocol.PacketType.IN_USE_ITEM;
@@ -21,26 +21,29 @@ public abstract class PacketPlayInVehicleMoveHandle extends PacketHandle {
/* ============================================================================== */
public static PacketPlayInVehicleMoveHandle createNew(double posX, double posY, double posZ, float yaw, float pitch, boolean onGround) {
return T.createNew.invokeVA(posX, posY, posZ, yaw, pitch, onGround);
}
public abstract double getPosX();
public abstract void setPosX(double value);
public abstract double getPosY();
public abstract void setPosY(double value);
public abstract double getPosZ();
public abstract void setPosZ(double value);
public abstract float getYaw();
public abstract void setYaw(float value);
public abstract float getPitch();
public abstract void setPitch(float value);
public abstract boolean isOnGround();
/**
* Stores class members for <b>net.minecraft.network.protocol.game.PacketPlayInVehicleMove</b>.
* Methods, fields, and constructors can be used without using Handle Objects.
*/
public static final class PacketPlayInVehicleMoveClass extends Template.Class<PacketPlayInVehicleMoveHandle> {
public final Template.Field.Double posX = new Template.Field.Double();
public final Template.Field.Double posY = new Template.Field.Double();
public final Template.Field.Double posZ = new Template.Field.Double();
public final Template.Field.Float yaw = new Template.Field.Float();
public final Template.Field.Float pitch = new Template.Field.Float();
public final Template.StaticMethod.Converted<PacketPlayInVehicleMoveHandle> createNew = new Template.StaticMethod.Converted<PacketPlayInVehicleMoveHandle>();
public final Template.Method<Double> getPosX = new Template.Method<Double>();
public final Template.Method<Double> getPosY = new Template.Method<Double>();
public final Template.Method<Double> getPosZ = new Template.Method<Double>();
public final Template.Method<Float> getYaw = new Template.Method<Float>();
public final Template.Method<Float> getPitch = new Template.Method<Float>();
public final Template.Method<Boolean> isOnGround = new Template.Method<Boolean>();
}
@@ -3,7 +3,6 @@ package com.bergerkiller.generated.net.minecraft.network.protocol.game;
import com.bergerkiller.mountiplex.reflection.declarations.Template;
import com.bergerkiller.bukkit.common.wrappers.InventoryClickType;
import com.bergerkiller.generated.net.minecraft.network.protocol.PacketHandle;
import org.bukkit.inventory.ItemStack;
/**
* Instance wrapper handle for type <b>net.minecraft.network.protocol.game.PacketPlayInWindowClick</b>.
@@ -24,12 +23,10 @@ public abstract class PacketPlayInWindowClickHandle extends PacketHandle {
public abstract int getWindowId();
public abstract void setWindowId(int value);
public abstract int getSlot();
public abstract void setSlot(int value);
public abstract int getButton();
public abstract void setButton(int value);
public abstract ItemStack getItem();
public abstract void setItem(ItemStack value);
public abstract short getSlot();
public abstract void setSlot(short value);
public abstract byte getButton();
public abstract void setButton(byte value);
public abstract InventoryClickType getMode();
public abstract void setMode(InventoryClickType value);
/**
@@ -38,9 +35,8 @@ public abstract class PacketPlayInWindowClickHandle extends PacketHandle {
*/
public static final class PacketPlayInWindowClickClass extends Template.Class<PacketPlayInWindowClickHandle> {
public final Template.Field.Integer windowId = new Template.Field.Integer();
public final Template.Field.Integer slot = new Template.Field.Integer();
public final Template.Field.Integer button = new Template.Field.Integer();
public final Template.Field.Converted<ItemStack> item = new Template.Field.Converted<ItemStack>();
public final Template.Field.Converted<Short> slot = new Template.Field.Converted<Short>();
public final Template.Field.Converted<Byte> button = new Template.Field.Converted<Byte>();
public final Template.Field.Converted<InventoryClickType> mode = new Template.Field.Converted<InventoryClickType>();
}
@@ -0,0 +1,38 @@
package com.bergerkiller.generated.net.minecraft.network.protocol.game;
import com.bergerkiller.mountiplex.reflection.declarations.Template;
import com.bergerkiller.generated.net.minecraft.network.protocol.PacketHandle;
/**
* Instance wrapper handle for type <b>net.minecraft.network.protocol.game.PacketPlayOutAnimation</b>.
* To access members without creating a handle type, use the static {@link #T} member.
* New handles can be created from raw instances using {@link #createHandle(Object)}.
*/
@Template.InstanceType("net.minecraft.network.protocol.game.PacketPlayOutAnimation")
public abstract class PacketPlayOutAnimationHandle extends PacketHandle {
/** @see PacketPlayOutAnimationClass */
public static final PacketPlayOutAnimationClass T = Template.Class.create(PacketPlayOutAnimationClass.class, com.bergerkiller.bukkit.common.Common.TEMPLATE_RESOLVER);
/* ============================================================================== */
public static PacketPlayOutAnimationHandle createHandle(Object handleInstance) {
return T.createHandle(handleInstance);
}
/* ============================================================================== */
public abstract int getEntityId();
public abstract void setEntityId(int value);
public abstract int getAction();
public abstract void setAction(int value);
/**
* Stores class members for <b>net.minecraft.network.protocol.game.PacketPlayOutAnimation</b>.
* Methods, fields, and constructors can be used without using Handle Objects.
*/
public static final class PacketPlayOutAnimationClass extends Template.Class<PacketPlayOutAnimationHandle> {
public final Template.Field.Integer entityId = new Template.Field.Integer();
public final Template.Field.Integer action = new Template.Field.Integer();
}
}
@@ -21,6 +21,10 @@ public abstract class PacketPlayOutAttachEntityHandle extends PacketHandle {
/* ============================================================================== */
public static PacketPlayOutAttachEntityHandle createNew() {
return T.createNew.invoke();
}
public static PacketPlayOutAttachEntityHandle createNewMount(Entity passengerEntity, Entity vehicleEntity) {
return T.createNewMount.invoke(passengerEntity, vehicleEntity);
}
@@ -31,9 +35,8 @@ public abstract class PacketPlayOutAttachEntityHandle extends PacketHandle {
public abstract boolean isLeash();
public abstract void setIsLeash(boolean isLeash);
public static PacketPlayOutAttachEntityHandle createNewLeash(int leashedEntityId, int holderEntityId) {
PacketPlayOutAttachEntityHandle packet = T.newHandleNull();
PacketPlayOutAttachEntityHandle packet = createNew();
packet.setVehicleId(holderEntityId);
packet.setPassengerId(leashedEntityId);
packet.setIsLeash(true);
@@ -44,7 +47,7 @@ public abstract class PacketPlayOutAttachEntityHandle extends PacketHandle {
if (!T.leashId.isAvailable()) {
throw new UnsupportedOperationException("Not supported >= MC 1.9, use Mount packet instead");
}
PacketPlayOutAttachEntityHandle packet = T.newHandleNull();
PacketPlayOutAttachEntityHandle packet = createNew();
packet.setVehicleId(vehicleEntityId);
packet.setPassengerId(passengerEntityId);
packet.setIsLeash(false);
@@ -64,6 +67,7 @@ public abstract class PacketPlayOutAttachEntityHandle extends PacketHandle {
public final Template.Field.Integer passengerId = new Template.Field.Integer();
public final Template.Field.Integer vehicleId = new Template.Field.Integer();
public final Template.StaticMethod.Converted<PacketPlayOutAttachEntityHandle> createNew = new Template.StaticMethod.Converted<PacketPlayOutAttachEntityHandle>();
public final Template.StaticMethod.Converted<PacketPlayOutAttachEntityHandle> createNewMount = new Template.StaticMethod.Converted<PacketPlayOutAttachEntityHandle>();
public final Template.StaticMethod.Converted<PacketPlayOutAttachEntityHandle> createNewLeash = new Template.StaticMethod.Converted<PacketPlayOutAttachEntityHandle>();
@@ -0,0 +1,40 @@
package com.bergerkiller.generated.net.minecraft.network.protocol.game;
import com.bergerkiller.mountiplex.reflection.declarations.Template;
import com.bergerkiller.bukkit.common.bases.IntVector3;
import com.bergerkiller.generated.net.minecraft.network.protocol.PacketHandle;
/**
* Instance wrapper handle for type <b>net.minecraft.network.protocol.game.PacketPlayOutBed</b>.
* To access members without creating a handle type, use the static {@link #T} member.
* New handles can be created from raw instances using {@link #createHandle(Object)}.
*/
@Template.Optional
@Template.InstanceType("net.minecraft.network.protocol.game.PacketPlayOutBed")
public abstract class PacketPlayOutBedHandle extends PacketHandle {
/** @see PacketPlayOutBedClass */
public static final PacketPlayOutBedClass T = Template.Class.create(PacketPlayOutBedClass.class, com.bergerkiller.bukkit.common.Common.TEMPLATE_RESOLVER);
/* ============================================================================== */
public static PacketPlayOutBedHandle createHandle(Object handleInstance) {
return T.createHandle(handleInstance);
}
/* ============================================================================== */
public abstract int getEntityId();
public abstract void setEntityId(int value);
public abstract IntVector3 getBedPosition();
public abstract void setBedPosition(IntVector3 value);
/**
* Stores class members for <b>net.minecraft.network.protocol.game.PacketPlayOutBed</b>.
* Methods, fields, and constructors can be used without using Handle Objects.
*/
public static final class PacketPlayOutBedClass extends Template.Class<PacketPlayOutBedHandle> {
public final Template.Field.Integer entityId = new Template.Field.Integer();
public final Template.Field.Converted<IntVector3> bedPosition = new Template.Field.Converted<IntVector3>();
}
}
@@ -22,6 +22,10 @@ public abstract class PacketPlayOutBlockChangeHandle extends PacketHandle {
/* ============================================================================== */
public static PacketPlayOutBlockChangeHandle createNewNull() {
return T.createNewNull.invoke();
}
public static PacketPlayOutBlockChangeHandle createNew(IntVector3 position, BlockData blockData) {
return T.createNew.invoke(position, blockData);
}
@@ -38,6 +42,7 @@ public abstract class PacketPlayOutBlockChangeHandle extends PacketHandle {
public final Template.Field.Converted<IntVector3> position = new Template.Field.Converted<IntVector3>();
public final Template.Field.Converted<BlockData> blockData = new Template.Field.Converted<BlockData>();
public final Template.StaticMethod.Converted<PacketPlayOutBlockChangeHandle> createNewNull = new Template.StaticMethod.Converted<PacketPlayOutBlockChangeHandle>();
public final Template.StaticMethod.Converted<PacketPlayOutBlockChangeHandle> createNew = new Template.StaticMethod.Converted<PacketPlayOutBlockChangeHandle>();
}
@@ -24,7 +24,6 @@ public abstract class PacketPlayOutCameraHandle extends PacketHandle {
return T.createNew.invoke();
}
public static PacketPlayOutCameraHandle createNew(int entityId) {
PacketPlayOutCameraHandle packet = createNew();
packet.setEntityId(entityId);
@@ -0,0 +1,35 @@
package com.bergerkiller.generated.net.minecraft.network.protocol.game;
import com.bergerkiller.mountiplex.reflection.declarations.Template;
import com.bergerkiller.generated.net.minecraft.network.protocol.PacketHandle;
/**
* Instance wrapper handle for type <b>net.minecraft.network.protocol.game.PacketPlayOutCloseWindow</b>.
* To access members without creating a handle type, use the static {@link #T} member.
* New handles can be created from raw instances using {@link #createHandle(Object)}.
*/
@Template.InstanceType("net.minecraft.network.protocol.game.PacketPlayOutCloseWindow")
public abstract class PacketPlayOutCloseWindowHandle extends PacketHandle {
/** @see PacketPlayOutCloseWindowClass */
public static final PacketPlayOutCloseWindowClass T = Template.Class.create(PacketPlayOutCloseWindowClass.class, com.bergerkiller.bukkit.common.Common.TEMPLATE_RESOLVER);
/* ============================================================================== */
public static PacketPlayOutCloseWindowHandle createHandle(Object handleInstance) {
return T.createHandle(handleInstance);
}
/* ============================================================================== */
public abstract int getWindowId();
public abstract void setWindowId(int value);
/**
* Stores class members for <b>net.minecraft.network.protocol.game.PacketPlayOutCloseWindow</b>.
* Methods, fields, and constructors can be used without using Handle Objects.
*/
public static final class PacketPlayOutCloseWindowClass extends Template.Class<PacketPlayOutCloseWindowHandle> {
public final Template.Field.Integer windowId = new Template.Field.Integer();
}
}
@@ -1,49 +1,26 @@
package com.bergerkiller.generated.net.minecraft.network.protocol.game;
import com.bergerkiller.mountiplex.reflection.declarations.Template;
import com.bergerkiller.generated.net.minecraft.network.protocol.PacketHandle;
/**
* Instance wrapper handle for type <b>net.minecraft.network.protocol.game.PacketPlayOutCustomPayload</b>.
* To access members without creating a handle type, use the static {@link #T} member.
* New handles can be created from raw instances using {@link #createHandle(Object)}.
* @deprecated This class is moved to {@link com.bergerkiller.generated.net.minecraft.network.protocol.common.ClientboundCustomPayloadPacketHandle}
*/
@Template.InstanceType("net.minecraft.network.protocol.game.PacketPlayOutCustomPayload")
public abstract class PacketPlayOutCustomPayloadHandle extends PacketHandle {
/** @see PacketPlayOutCustomPayloadClass */
public static final PacketPlayOutCustomPayloadClass T = Template.Class.create(PacketPlayOutCustomPayloadClass.class, com.bergerkiller.bukkit.common.Common.TEMPLATE_RESOLVER);
/* ============================================================================== */
@Deprecated
public class PacketPlayOutCustomPayloadHandle extends PacketHandle {
private final Object raw;
public static PacketPlayOutCustomPayloadHandle createHandle(Object handleInstance) {
return T.createHandle(handleInstance);
private PacketPlayOutCustomPayloadHandle(Object raw) {
this.raw = raw;
}
/* ============================================================================== */
public static PacketPlayOutCustomPayloadHandle createNew(String channel, byte[] message) {
return T.createNew.invoke(channel, message);
return new PacketPlayOutCustomPayloadHandle(
com.bergerkiller.generated.net.minecraft.network.protocol.common.ClientboundCustomPayloadPacketHandle.createNew(
channel, message).getRaw());
}
public abstract byte[] getMessage();
@Override
public com.bergerkiller.bukkit.common.protocol.PacketType getPacketType() {
return com.bergerkiller.bukkit.common.protocol.PacketType.OUT_CUSTOM_PAYLOAD;
public Object getRaw() {
return raw;
}
public abstract String getChannel();
public abstract void setChannel(String value);
/**
* Stores class members for <b>net.minecraft.network.protocol.game.PacketPlayOutCustomPayload</b>.
* Methods, fields, and constructors can be used without using Handle Objects.
*/
public static final class PacketPlayOutCustomPayloadClass extends Template.Class<PacketPlayOutCustomPayloadHandle> {
public final Template.Field.Converted<String> channel = new Template.Field.Converted<String>();
public final Template.StaticMethod.Converted<PacketPlayOutCustomPayloadHandle> createNew = new Template.StaticMethod.Converted<PacketPlayOutCustomPayloadHandle>();
public final Template.Method<byte[]> getMessage = new Template.Method<byte[]>();
}
}
@@ -39,14 +39,22 @@ public abstract class PacketPlayOutCustomSoundEffectHandle extends PacketHandle
public abstract long getRandomSeed();
public abstract void setRandomSeed(long seed);
public static final java.util.Random SOUND_RANDOM_SEED_SOURCE = new java.util.Random();
public static PacketPlayOutCustomSoundEffectHandle createNew(com.bergerkiller.bukkit.common.resources.ResourceKey<com.bergerkiller.bukkit.common.resources.SoundEffect> soundEffect, String category, org.bukkit.Location location, float volume, float pitch) {
return createNew(soundEffect, category, location.getWorld(), location.getX(), location.getY(), location.getZ(), volume, pitch);
return createNew(soundEffect, category, location.getX(), location.getY(), location.getZ(), volume, pitch);
}
public static PacketPlayOutCustomSoundEffectHandle createNew(com.bergerkiller.bukkit.common.resources.ResourceKey<com.bergerkiller.bukkit.common.resources.SoundEffect> soundEffect, String category, org.bukkit.World world, double x, double y, double z, float volume, float pitch) {
long randomSeed = com.bergerkiller.bukkit.common.utils.WorldUtil.getRandom(world).nextLong();
public static PacketPlayOutCustomSoundEffectHandle createNew(com.bergerkiller.bukkit.common.resources.ResourceKey<com.bergerkiller.bukkit.common.resources.SoundEffect> soundEffect, String category, double x, double y, double z, float volume, float pitch) {
long randomSeed = SOUND_RANDOM_SEED_SOURCE.nextLong();
return createNew(soundEffect, category, x, y, z, volume, pitch, randomSeed);
}
@Deprecated
public static PacketPlayOutCustomSoundEffectHandle createNew(com.bergerkiller.bukkit.common.resources.ResourceKey<com.bergerkiller.bukkit.common.resources.SoundEffect> soundEffect, String category, org.bukkit.World world, double x, double y, double z, float volume, float pitch) {
return createNew(soundEffect, category, x, y, z, volume, pitch);
}
public abstract ResourceKey<SoundEffect> getSound();
public abstract void setSound(ResourceKey<SoundEffect> value);
public abstract float getVolume();
@@ -34,7 +34,6 @@ public abstract class PacketPlayOutEntityDestroyHandle extends PacketHandle {
public abstract int[] getEntityIds();
public abstract void setSingleEntityId(int entityId);
public abstract void setMultipleEntityIds(int[] multipleEntityIds);
public static boolean canDestroyMultiple() {
return com.bergerkiller.bukkit.common.internal.CommonCapabilities.PACKET_DESTROY_MULTIPLE;
}
@@ -1,9 +1,10 @@
package com.bergerkiller.generated.net.minecraft.network.protocol.game;
import com.bergerkiller.mountiplex.reflection.declarations.Template;
import com.bergerkiller.bukkit.common.wrappers.Holder;
import com.bergerkiller.generated.net.minecraft.network.protocol.PacketHandle;
import com.bergerkiller.generated.net.minecraft.world.effect.MobEffectListHandle;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
/**
* Instance wrapper handle for type <b>net.minecraft.network.protocol.game.PacketPlayOutEntityEffect</b>.
@@ -20,22 +21,33 @@ public abstract class PacketPlayOutEntityEffectHandle extends PacketHandle {
return T.createHandle(handleInstance);
}
public static final PacketPlayOutEntityEffectHandle createNew(int entityId, PotionEffect mobeffect) {
return T.constr_entityId_mobeffect.newInstance(entityId, mobeffect);
}
/* ============================================================================== */
public abstract PotionEffectType getEffect();
public abstract void setEffect(PotionEffectType type);
public static PacketPlayOutEntityEffectHandle createNew(int entityId, PotionEffect effect, boolean blend) {
return T.createNew.invoke(entityId, effect, blend);
}
public abstract int getEffectAmplifier();
public abstract void setEffectAmplifier(int amplifier);
public abstract Holder<MobEffectListHandle> getEffect();
public abstract void setEffect(Holder<MobEffectListHandle> effect);
public static final int FLAG_AMBIENT = 1;
public static final int FLAG_VISIBLE = 2;
public static final int FLAG_SHOW_ICON = 4;
public org.bukkit.potion.PotionEffectType getPotionEffectType() {
return MobEffectListHandle.holderToBukkit(getEffect());
}
public void setPotionEffectType(org.bukkit.potion.PotionEffectType effectType) {
setEffect(MobEffectListHandle.holderFromBukkit(effectType));
}
public static PacketPlayOutEntityEffectHandle createNew(int entityId, org.bukkit.potion.PotionEffect effect) {
return createNew(entityId, effect, false);
}
public abstract int getEntityId();
public abstract void setEntityId(int value);
public abstract byte getEffectAmplifier();
public abstract void setEffectAmplifier(byte value);
public abstract int getEffectDurationTicks();
public abstract void setEffectDurationTicks(int value);
public abstract byte getFlags();
@@ -45,14 +57,15 @@ public abstract class PacketPlayOutEntityEffectHandle extends PacketHandle {
* Methods, fields, and constructors can be used without using Handle Objects.
*/
public static final class PacketPlayOutEntityEffectClass extends Template.Class<PacketPlayOutEntityEffectHandle> {
public final Template.Constructor.Converted<PacketPlayOutEntityEffectHandle> constr_entityId_mobeffect = new Template.Constructor.Converted<PacketPlayOutEntityEffectHandle>();
public final Template.Field.Integer entityId = new Template.Field.Integer();
public final Template.Field.Byte effectAmplifier = new Template.Field.Byte();
public final Template.Field.Integer effectDurationTicks = new Template.Field.Integer();
public final Template.Field.Byte flags = new Template.Field.Byte();
public final Template.Method.Converted<PotionEffectType> getEffect = new Template.Method.Converted<PotionEffectType>();
public final Template.StaticMethod.Converted<PacketPlayOutEntityEffectHandle> createNew = new Template.StaticMethod.Converted<PacketPlayOutEntityEffectHandle>();
public final Template.Method<Integer> getEffectAmplifier = new Template.Method<Integer>();
public final Template.Method<Void> setEffectAmplifier = new Template.Method<Void>();
public final Template.Method.Converted<Holder<MobEffectListHandle>> getEffect = new Template.Method.Converted<Holder<MobEffectListHandle>>();
public final Template.Method.Converted<Void> setEffect = new Template.Method.Converted<Void>();
}
@@ -22,15 +22,43 @@ public abstract class PacketPlayOutEntityEquipmentHandle extends PacketHandle {
/* ============================================================================== */
public static PacketPlayOutEntityEquipmentHandle createNew(int entityId, EquipmentSlot slot, ItemStack itemStack) {
return T.createNew.invoke(entityId, slot, itemStack);
public static PacketPlayOutEntityEquipmentHandle createNew(OwnerType ownerType, int entityId, EquipmentSlot slot, ItemStack itemStack) {
return T.createNew.invoke(ownerType, entityId, slot, itemStack);
}
public abstract int getSlotCount();
public abstract EquipmentSlot getEquipmentSlot(int index);
public abstract void setEquipmentSlot(int index, EquipmentSlot slot);
public abstract EquipmentSlot getEquipmentSlot(OwnerType ownerType, int index);
public abstract void setEquipmentSlot(OwnerType ownerType, int index, EquipmentSlot slot);
public abstract ItemStack getItemStack(int index);
public abstract void setItemStack(int index, ItemStack itemStack);
public enum OwnerType {
NON_PLAYER(false), PLAYER(true);
private final boolean isPlayer;
OwnerType(boolean isPlayer) {
this.isPlayer = isPlayer;
}
public boolean isPlayer() {
return isPlayer;
}
}
@Deprecated
public static PacketPlayOutEntityEquipmentHandle createNew(int entityId, org.bukkit.inventory.EquipmentSlot slot, org.bukkit.inventory.ItemStack itemStack) {
return createNew(OwnerType.NON_PLAYER, entityId, slot, itemStack);
}
@Deprecated
public org.bukkit.inventory.EquipmentSlot getEquipmentSlot(int index) {
return getEquipmentSlot(OwnerType.NON_PLAYER, index);
}
@Deprecated
public void setEquipmentSlot(int index, org.bukkit.inventory.EquipmentSlot slot) {
setEquipmentSlot(OwnerType.NON_PLAYER, index, slot);
}
public abstract int getEntityId();
public abstract void setEntityId(int value);
/**
@@ -31,7 +31,6 @@ public abstract class PacketPlayOutEntityHandle extends PacketHandle {
public abstract void setYaw(float yaw);
public abstract void setPitch(float pitch);
@Deprecated
public float getDeltaYaw() {
return getYaw();
@@ -101,7 +100,6 @@ public abstract class PacketPlayOutEntityHandle extends PacketHandle {
return T.createNew.invoke();
}
@Override
public com.bergerkiller.bukkit.common.protocol.PacketType getPacketType() {
return com.bergerkiller.bukkit.common.protocol.PacketType.OUT_ENTITY_LOOK;
@@ -148,7 +146,6 @@ public abstract class PacketPlayOutEntityHandle extends PacketHandle {
return T.createNew.invoke();
}
@Override
public com.bergerkiller.bukkit.common.protocol.PacketType getPacketType() {
return com.bergerkiller.bukkit.common.protocol.PacketType.OUT_ENTITY_MOVE;
@@ -196,7 +193,6 @@ public abstract class PacketPlayOutEntityHandle extends PacketHandle {
return T.createNew.invoke();
}
@Override
public com.bergerkiller.bukkit.common.protocol.PacketType getPacketType() {
return com.bergerkiller.bukkit.common.protocol.PacketType.OUT_ENTITY_MOVE_LOOK;
@@ -27,7 +27,6 @@ public abstract class PacketPlayOutEntityHeadRotationHandle extends PacketHandle
public abstract float getHeadYaw();
public abstract void setHeadYaw(float headYaw);
public static PacketPlayOutEntityHeadRotationHandle createNew() {
return T.createNewEmpty.invoke();
}
@@ -31,7 +31,6 @@ public abstract class PacketPlayOutEntityMetadataHandle extends PacketHandle {
return T.createForChanges.invoke(entityId, datawatcher);
}
public static PacketPlayOutEntityMetadataHandle createNew(int entityId, DataWatcher datawatcher, boolean includeUnchangedData) {
if (includeUnchangedData) {
return createForSpawn(entityId, datawatcher);
@@ -0,0 +1,38 @@
package com.bergerkiller.generated.net.minecraft.network.protocol.game;
import com.bergerkiller.mountiplex.reflection.declarations.Template;
import com.bergerkiller.generated.net.minecraft.network.protocol.PacketHandle;
/**
* Instance wrapper handle for type <b>net.minecraft.network.protocol.game.PacketPlayOutEntityStatus</b>.
* To access members without creating a handle type, use the static {@link #T} member.
* New handles can be created from raw instances using {@link #createHandle(Object)}.
*/
@Template.InstanceType("net.minecraft.network.protocol.game.PacketPlayOutEntityStatus")
public abstract class PacketPlayOutEntityStatusHandle extends PacketHandle {
/** @see PacketPlayOutEntityStatusClass */
public static final PacketPlayOutEntityStatusClass T = Template.Class.create(PacketPlayOutEntityStatusClass.class, com.bergerkiller.bukkit.common.Common.TEMPLATE_RESOLVER);
/* ============================================================================== */
public static PacketPlayOutEntityStatusHandle createHandle(Object handleInstance) {
return T.createHandle(handleInstance);
}
/* ============================================================================== */
public abstract int getEntityId();
public abstract void setEntityId(int value);
public abstract byte getEventId();
public abstract void setEventId(byte value);
/**
* Stores class members for <b>net.minecraft.network.protocol.game.PacketPlayOutEntityStatus</b>.
* Methods, fields, and constructors can be used without using Handle Objects.
*/
public static final class PacketPlayOutEntityStatusClass extends Template.Class<PacketPlayOutEntityStatusHandle> {
public final Template.Field.Integer entityId = new Template.Field.Integer();
public final Template.Field.Byte eventId = new Template.Field.Byte();
}
}
@@ -19,105 +19,91 @@ public abstract class PacketPlayOutEntityTeleportHandle extends PacketHandle {
return T.createHandle(handleInstance);
}
public static final PacketPlayOutEntityTeleportHandle createNew(Entity entity) {
return T.constr_entity.newInstance(entity);
}
/* ============================================================================== */
public static PacketPlayOutEntityTeleportHandle createNew() {
return T.createNew.invoke();
public static PacketPlayOutEntityTeleportHandle createNewForEntity(Entity entity) {
return T.createNewForEntity.invoke(entity);
}
public static PacketPlayOutEntityTeleportHandle createNew(int entityId, double posX, double posY, double posZ, float yaw, float pitch, boolean onGround) {
return T.createNew.invokeVA(entityId, posX, posY, posZ, yaw, pitch, onGround);
}
public abstract int getEntityId();
public abstract double getPosX();
public abstract double getPosY();
public abstract double getPosZ();
public abstract float getYaw();
public abstract float getPitch();
public abstract boolean isOnGround();
public abstract int getEncodedPosX();
public abstract int getEncodedPosY();
public abstract int getEncodedPosZ();
public abstract int getEncodedYaw();
public abstract int getEncodedPitch();
@Override
public com.bergerkiller.bukkit.common.protocol.PacketType getPacketType() {
return com.bergerkiller.bukkit.common.protocol.PacketType.OUT_ENTITY_TELEPORT;
}
public static PacketPlayOutEntityTeleportHandle createNew(int entityId, double posX, double posY, double posZ, float yaw, float pitch, boolean onGround) {
PacketPlayOutEntityTeleportHandle handle = createNew();
handle.setEntityId(entityId);
handle.setPosX(posX);
handle.setPosY(posY);
handle.setPosZ(posZ);
handle.setYaw(yaw);
handle.setPitch(pitch);
handle.setOnGround(onGround);
return handle;
public static Builder builder() {
return new Builder();
}
public double getPosX() {
return getProtocolPosition(T.posX_1_8_8, T.posX_1_10_2);
}
public static class Builder {
private int entityId;
private double posX, posY, posZ;
private float yaw, pitch;
private boolean onGround;
public double getPosY() {
return getProtocolPosition(T.posY_1_8_8, T.posY_1_10_2);
}
public Builder entityId(int entityId) { this.entityId = entityId; return this; }
public Builder posX(double posX) { this.posX = posX; return this; }
public Builder posY(double posY) { this.posY = posY; return this; }
public Builder posZ(double posZ) { this.posZ = posZ; return this; }
public Builder position(org.bukkit.util.Vector position) {
return position(position.getX(), position.getY(), position.getZ());
}
public Builder position(double x, double y, double z) {
this.posX = x;
this.posY = y;
this.posZ = z;
return this;
}
public Builder yaw(float yaw) { this.yaw = yaw; return this; }
public Builder pitch(float pitch) { this.pitch = pitch; return this; }
public Builder rotation(float yaw, float pitch) {
this.yaw = yaw;
this.pitch = pitch;
return this;
}
public Builder onGround(boolean onGround) { this.onGround = onGround; return this; }
public double getPosZ() {
return getProtocolPosition(T.posZ_1_8_8, T.posZ_1_10_2);
public PacketPlayOutEntityTeleportHandle create() {
return PacketPlayOutEntityTeleportHandle.createNew(entityId, posX, posY, posZ, yaw, pitch, onGround);
}
}
public void setPosX(double posX) {
setProtocolPosition(T.posX_1_8_8, T.posX_1_10_2, posX);
}
public void setPosY(double posY) {
setProtocolPosition(T.posY_1_8_8, T.posY_1_10_2, posY);
}
public void setPosZ(double posZ) {
setProtocolPosition(T.posZ_1_8_8, T.posZ_1_10_2, posZ);
}
public float getYaw() {
return getProtocolRotation(T.yaw_raw);
}
public float getPitch() {
return getProtocolRotation(T.pitch_raw);
}
public void setYaw(float yaw) {
setProtocolRotation(T.yaw_raw, yaw);
}
public void setPitch(float pitch) {
setProtocolRotation(T.pitch_raw, pitch);
}
public abstract int getEntityId();
public abstract void setEntityId(int value);
public abstract boolean isOnGround();
public abstract void setOnGround(boolean value);
/**
* Stores class members for <b>net.minecraft.network.protocol.game.PacketPlayOutEntityTeleport</b>.
* Methods, fields, and constructors can be used without using Handle Objects.
*/
public static final class PacketPlayOutEntityTeleportClass extends Template.Class<PacketPlayOutEntityTeleportHandle> {
public final Template.Constructor.Converted<PacketPlayOutEntityTeleportHandle> constr_entity = new Template.Constructor.Converted<PacketPlayOutEntityTeleportHandle>();
public final Template.Field.Integer entityId = new Template.Field.Integer();
@Template.Optional
public final Template.Field.Integer posX_1_8_8 = new Template.Field.Integer();
@Template.Optional
public final Template.Field.Integer posY_1_8_8 = new Template.Field.Integer();
@Template.Optional
public final Template.Field.Integer posZ_1_8_8 = new Template.Field.Integer();
@Template.Optional
public final Template.Field.Double posX_1_10_2 = new Template.Field.Double();
@Template.Optional
public final Template.Field.Double posY_1_10_2 = new Template.Field.Double();
@Template.Optional
public final Template.Field.Double posZ_1_10_2 = new Template.Field.Double();
@Template.Optional
public final Template.Field.Byte yaw_raw = new Template.Field.Byte();
@Template.Optional
public final Template.Field.Byte pitch_raw = new Template.Field.Byte();
public final Template.Field.Boolean onGround = new Template.Field.Boolean();
public final Template.StaticMethod.Converted<PacketPlayOutEntityTeleportHandle> createNewForEntity = new Template.StaticMethod.Converted<PacketPlayOutEntityTeleportHandle>();
public final Template.StaticMethod.Converted<PacketPlayOutEntityTeleportHandle> createNew = new Template.StaticMethod.Converted<PacketPlayOutEntityTeleportHandle>();
public final Template.Method<Integer> getEntityId = new Template.Method<Integer>();
public final Template.Method<Double> getPosX = new Template.Method<Double>();
public final Template.Method<Double> getPosY = new Template.Method<Double>();
public final Template.Method<Double> getPosZ = new Template.Method<Double>();
public final Template.Method<Float> getYaw = new Template.Method<Float>();
public final Template.Method<Float> getPitch = new Template.Method<Float>();
public final Template.Method<Boolean> isOnGround = new Template.Method<Boolean>();
public final Template.Method<Integer> getEncodedPosX = new Template.Method<Integer>();
public final Template.Method<Integer> getEncodedPosY = new Template.Method<Integer>();
public final Template.Method<Integer> getEncodedPosZ = new Template.Method<Integer>();
public final Template.Method<Integer> getEncodedYaw = new Template.Method<Integer>();
public final Template.Method<Integer> getEncodedPitch = new Template.Method<Integer>();
}
}
@@ -3,6 +3,7 @@ package com.bergerkiller.generated.net.minecraft.network.protocol.game;
import com.bergerkiller.mountiplex.reflection.declarations.Template;
import com.bergerkiller.generated.net.minecraft.network.protocol.PacketHandle;
import org.bukkit.entity.Entity;
import org.bukkit.util.Vector;
/**
* Instance wrapper handle for type <b>net.minecraft.network.protocol.game.PacketPlayOutEntityVelocity</b>.
@@ -29,43 +30,20 @@ public abstract class PacketPlayOutEntityVelocityHandle extends PacketHandle {
return T.createNew.invoke(entityId, motX, motY, motZ);
}
public abstract Vector getMotVector();
public abstract void setMotVector(Vector movement);
public abstract double getMotX();
public abstract double getMotY();
public abstract double getMotZ();
public abstract void setMotX(double x);
public abstract void setMotY(double y);
public abstract void setMotZ(double z);
@Override
public com.bergerkiller.bukkit.common.protocol.PacketType getPacketType() {
return com.bergerkiller.bukkit.common.protocol.PacketType.OUT_ENTITY_VELOCITY;
}
public double getMotX() {
return com.bergerkiller.bukkit.common.internal.logic.ProtocolMath.deserializeVelocity(T.motX_raw.getInteger(getRaw()));
}
public double getMotY() {
return com.bergerkiller.bukkit.common.internal.logic.ProtocolMath.deserializeVelocity(T.motY_raw.getInteger(getRaw()));
}
public double getMotZ() {
return com.bergerkiller.bukkit.common.internal.logic.ProtocolMath.deserializeVelocity(T.motZ_raw.getInteger(getRaw()));
}
public void setMotX(double motX) {
T.motX_raw.setInteger(getRaw(), com.bergerkiller.bukkit.common.internal.logic.ProtocolMath.serializeVelocity(motX));
}
public void setMotY(double motY) {
T.motY_raw.setInteger(getRaw(), com.bergerkiller.bukkit.common.internal.logic.ProtocolMath.serializeVelocity(motY));
}
public void setMotZ(double motZ) {
T.motZ_raw.setInteger(getRaw(), com.bergerkiller.bukkit.common.internal.logic.ProtocolMath.serializeVelocity(motZ));
}
public abstract int getEntityId();
public abstract void setEntityId(int value);
public abstract int getMotX_raw();
public abstract void setMotX_raw(int value);
public abstract int getMotY_raw();
public abstract void setMotY_raw(int value);
public abstract int getMotZ_raw();
public abstract void setMotZ_raw(int value);
/**
* Stores class members for <b>net.minecraft.network.protocol.game.PacketPlayOutEntityVelocity</b>.
* Methods, fields, and constructors can be used without using Handle Objects.
@@ -74,12 +52,18 @@ public abstract class PacketPlayOutEntityVelocityHandle extends PacketHandle {
public final Template.Constructor.Converted<PacketPlayOutEntityVelocityHandle> constr_entity = new Template.Constructor.Converted<PacketPlayOutEntityVelocityHandle>();
public final Template.Field.Integer entityId = new Template.Field.Integer();
public final Template.Field.Integer motX_raw = new Template.Field.Integer();
public final Template.Field.Integer motY_raw = new Template.Field.Integer();
public final Template.Field.Integer motZ_raw = new Template.Field.Integer();
public final Template.StaticMethod.Converted<PacketPlayOutEntityVelocityHandle> createNew = new Template.StaticMethod.Converted<PacketPlayOutEntityVelocityHandle>();
public final Template.Method.Converted<Vector> getMotVector = new Template.Method.Converted<Vector>();
public final Template.Method.Converted<Void> setMotVector = new Template.Method.Converted<Void>();
public final Template.Method<Double> getMotX = new Template.Method<Double>();
public final Template.Method<Double> getMotY = new Template.Method<Double>();
public final Template.Method<Double> getMotZ = new Template.Method<Double>();
public final Template.Method<Void> setMotX = new Template.Method<Void>();
public final Template.Method<Void> setMotY = new Template.Method<Void>();
public final Template.Method<Void> setMotZ = new Template.Method<Void>();
}
}
@@ -0,0 +1,41 @@
package com.bergerkiller.generated.net.minecraft.network.protocol.game;
import com.bergerkiller.mountiplex.reflection.declarations.Template;
import com.bergerkiller.generated.net.minecraft.network.protocol.PacketHandle;
/**
* Instance wrapper handle for type <b>net.minecraft.network.protocol.game.PacketPlayOutExperience</b>.
* To access members without creating a handle type, use the static {@link #T} member.
* New handles can be created from raw instances using {@link #createHandle(Object)}.
*/
@Template.InstanceType("net.minecraft.network.protocol.game.PacketPlayOutExperience")
public abstract class PacketPlayOutExperienceHandle extends PacketHandle {
/** @see PacketPlayOutExperienceClass */
public static final PacketPlayOutExperienceClass T = Template.Class.create(PacketPlayOutExperienceClass.class, com.bergerkiller.bukkit.common.Common.TEMPLATE_RESOLVER);
/* ============================================================================== */
public static PacketPlayOutExperienceHandle createHandle(Object handleInstance) {
return T.createHandle(handleInstance);
}
/* ============================================================================== */
public abstract float getExperienceProgress();
public abstract void setExperienceProgress(float value);
public abstract int getTotalExperience();
public abstract void setTotalExperience(int value);
public abstract int getExperienceLevel();
public abstract void setExperienceLevel(int value);
/**
* Stores class members for <b>net.minecraft.network.protocol.game.PacketPlayOutExperience</b>.
* Methods, fields, and constructors can be used without using Handle Objects.
*/
public static final class PacketPlayOutExperienceClass extends Template.Class<PacketPlayOutExperienceHandle> {
public final Template.Field.Float experienceProgress = new Template.Field.Float();
public final Template.Field.Integer totalExperience = new Template.Field.Integer();
public final Template.Field.Integer experienceLevel = new Template.Field.Integer();
}
}
@@ -1,65 +0,0 @@
package com.bergerkiller.generated.net.minecraft.network.protocol.game;
import com.bergerkiller.mountiplex.reflection.declarations.Template;
import com.bergerkiller.bukkit.common.bases.IntVector3;
import com.bergerkiller.generated.net.minecraft.network.protocol.PacketHandle;
import org.bukkit.util.Vector;
import java.util.List;
/**
* Instance wrapper handle for type <b>net.minecraft.network.protocol.game.PacketPlayOutExplosion</b>.
* To access members without creating a handle type, use the static {@link #T} member.
* New handles can be created from raw instances using {@link #createHandle(Object)}.
*/
@Template.InstanceType("net.minecraft.network.protocol.game.PacketPlayOutExplosion")
public abstract class PacketPlayOutExplosionHandle extends PacketHandle {
/** @see PacketPlayOutExplosionClass */
public static final PacketPlayOutExplosionClass T = Template.Class.create(PacketPlayOutExplosionClass.class, com.bergerkiller.bukkit.common.Common.TEMPLATE_RESOLVER);
/* ============================================================================== */
public static PacketPlayOutExplosionHandle createHandle(Object handleInstance) {
return T.createHandle(handleInstance);
}
public static final PacketPlayOutExplosionHandle createNew(double x, double y, double z, float power, List<IntVector3> blocks, Vector knockback) {
return T.constr_x_y_z_power_blocks_knockback.newInstanceVA(x, y, z, power, blocks, knockback);
}
/* ============================================================================== */
public abstract double getX();
public abstract void setX(double value);
public abstract double getY();
public abstract void setY(double value);
public abstract double getZ();
public abstract void setZ(double value);
public abstract float getPower();
public abstract void setPower(float value);
public abstract List<IntVector3> getBlocks();
public abstract void setBlocks(List<IntVector3> value);
public abstract float getKnockbackX();
public abstract void setKnockbackX(float value);
public abstract float getKnockbackY();
public abstract void setKnockbackY(float value);
public abstract float getKnockbackZ();
public abstract void setKnockbackZ(float value);
/**
* Stores class members for <b>net.minecraft.network.protocol.game.PacketPlayOutExplosion</b>.
* Methods, fields, and constructors can be used without using Handle Objects.
*/
public static final class PacketPlayOutExplosionClass extends Template.Class<PacketPlayOutExplosionHandle> {
public final Template.Constructor.Converted<PacketPlayOutExplosionHandle> constr_x_y_z_power_blocks_knockback = new Template.Constructor.Converted<PacketPlayOutExplosionHandle>();
public final Template.Field.Double x = new Template.Field.Double();
public final Template.Field.Double y = new Template.Field.Double();
public final Template.Field.Double z = new Template.Field.Double();
public final Template.Field.Float power = new Template.Field.Float();
public final Template.Field.Converted<List<IntVector3>> blocks = new Template.Field.Converted<List<IntVector3>>();
public final Template.Field.Float knockbackX = new Template.Field.Float();
public final Template.Field.Float knockbackY = new Template.Field.Float();
public final Template.Field.Float knockbackZ = new Template.Field.Float();
}
}
@@ -0,0 +1,35 @@
package com.bergerkiller.generated.net.minecraft.network.protocol.game;
import com.bergerkiller.mountiplex.reflection.declarations.Template;
import com.bergerkiller.generated.net.minecraft.network.protocol.PacketHandle;
/**
* Instance wrapper handle for type <b>net.minecraft.network.protocol.game.PacketPlayOutHeldItemSlot</b>.
* To access members without creating a handle type, use the static {@link #T} member.
* New handles can be created from raw instances using {@link #createHandle(Object)}.
*/
@Template.InstanceType("net.minecraft.network.protocol.game.PacketPlayOutHeldItemSlot")
public abstract class PacketPlayOutHeldItemSlotHandle extends PacketHandle {
/** @see PacketPlayOutHeldItemSlotClass */
public static final PacketPlayOutHeldItemSlotClass T = Template.Class.create(PacketPlayOutHeldItemSlotClass.class, com.bergerkiller.bukkit.common.Common.TEMPLATE_RESOLVER);
/* ============================================================================== */
public static PacketPlayOutHeldItemSlotHandle createHandle(Object handleInstance) {
return T.createHandle(handleInstance);
}
/* ============================================================================== */
public abstract int getItemInHandIndex();
public abstract void setItemInHandIndex(int value);
/**
* Stores class members for <b>net.minecraft.network.protocol.game.PacketPlayOutHeldItemSlot</b>.
* Methods, fields, and constructors can be used without using Handle Objects.
*/
public static final class PacketPlayOutHeldItemSlotClass extends Template.Class<PacketPlayOutHeldItemSlotHandle> {
public final Template.Field.Integer itemInHandIndex = new Template.Field.Integer();
}
}
@@ -5,7 +5,6 @@ import com.bergerkiller.bukkit.common.resources.DimensionType;
import com.bergerkiller.generated.net.minecraft.network.protocol.PacketHandle;
import org.bukkit.Difficulty;
import org.bukkit.GameMode;
import org.bukkit.World;
/**
* Instance wrapper handle for type <b>net.minecraft.network.protocol.game.PacketPlayOutLogin</b>.
@@ -24,40 +23,30 @@ public abstract class PacketPlayOutLoginHandle extends PacketHandle {
/* ============================================================================== */
public abstract GameMode getPreviousGameMode();
public abstract void setPreviousGameMode(GameMode gameMode);
public abstract void setEncryptedWorldSeed(World world);
public abstract int getPlayerId();
public abstract void setPlayerId(int value);
public abstract boolean isHardcore();
public abstract void setHardcore(boolean value);
public abstract GameMode getGameMode();
public abstract void setGameMode(GameMode value);
public abstract DimensionType getDimensionType();
public abstract void setDimensionType(DimensionType value);
public abstract int getMaxPlayers();
public abstract void setMaxPlayers(int value);
public abstract int getViewDistance();
public abstract boolean isReducedDebugInfo();
public abstract void setReducedDebugInfo(boolean value);
public abstract GameMode getGameMode();
public abstract DimensionType getDimensionType();
public abstract GameMode getPreviousGameMode();
/**
* Stores class members for <b>net.minecraft.network.protocol.game.PacketPlayOutLogin</b>.
* Methods, fields, and constructors can be used without using Handle Objects.
*/
public static final class PacketPlayOutLoginClass extends Template.Class<PacketPlayOutLoginHandle> {
public final Template.Field.Integer playerId = new Template.Field.Integer();
public final Template.Field.Boolean hardcore = new Template.Field.Boolean();
public final Template.Field.Converted<GameMode> gameMode = new Template.Field.Converted<GameMode>();
public final Template.Field.Converted<DimensionType> dimensionType = new Template.Field.Converted<DimensionType>();
@Template.Optional
public final Template.Field.Converted<Difficulty> difficulty = new Template.Field.Converted<Difficulty>();
public final Template.Field.Integer maxPlayers = new Template.Field.Integer();
@Template.Optional
public final Template.Field.Integer viewDistance = new Template.Field.Integer();
public final Template.Field.Boolean reducedDebugInfo = new Template.Field.Boolean();
public final Template.Method<Integer> getPlayerId = new Template.Method<Integer>();
public final Template.Method<Boolean> isHardcore = new Template.Method<Boolean>();
public final Template.Method<Integer> getMaxPlayers = new Template.Method<Integer>();
public final Template.Method<Integer> getViewDistance = new Template.Method<Integer>();
public final Template.Method<Boolean> isReducedDebugInfo = new Template.Method<Boolean>();
public final Template.Method.Converted<GameMode> getGameMode = new Template.Method.Converted<GameMode>();
public final Template.Method.Converted<DimensionType> getDimensionType = new Template.Method.Converted<DimensionType>();
public final Template.Method.Converted<GameMode> getPreviousGameMode = new Template.Method.Converted<GameMode>();
public final Template.Method.Converted<Void> setPreviousGameMode = new Template.Method.Converted<Void>();
public final Template.Method.Converted<Void> setEncryptedWorldSeed = new Template.Method.Converted<Void>();
}
@@ -32,7 +32,6 @@ public abstract class PacketPlayOutMapChunkHandle extends PacketHandle {
public abstract byte[] getBuffer();
public abstract void setBuffer(byte[] buffer);
public abstract List<BlockStateChange> getBlockStates();
public void setBlockStates(List<BlockStateChange> states) {
List<BlockStateChange> baseStates = this.getBlockStates();
int count = states.size();
@@ -1,9 +1,12 @@
package com.bergerkiller.generated.net.minecraft.network.protocol.game;
import com.bergerkiller.mountiplex.reflection.declarations.Template;
import com.bergerkiller.generated.net.minecraft.network.protocol.PacketHandle;
import org.bukkit.map.MapCursor;
import com.bergerkiller.generated.net.minecraft.world.level.saveddata.maps.MapIconHandle;
import com.bergerkiller.mountiplex.conversion.type.DuplexConverter;
import com.bergerkiller.mountiplex.conversion.util.ConvertingList;
import com.bergerkiller.mountiplex.reflection.declarations.Template;
import java.util.List;
import org.bukkit.map.MapCursor;
/**
* Instance wrapper handle for type <b>net.minecraft.network.protocol.game.PacketPlayOutMap</b>.
@@ -22,57 +25,206 @@ public abstract class PacketPlayOutMapHandle extends PacketHandle {
/* ============================================================================== */
public static PacketPlayOutMapHandle createNew() {
return T.createNew.invoke();
public static PacketPlayOutMapHandle createNew(Builder builder) {
return T.createNew.invoke(builder);
}
public abstract int getStartX();
public abstract void setStartX(int startx);
public abstract int getStartY();
public abstract void setStartY(int starty);
public abstract int getWidth();
public abstract void setWidth(int width);
public abstract int getHeight();
public abstract void setHeight(int height);
public abstract byte[] getPixels();
public abstract void setPixels(byte[] pixels);
public abstract void setPixelData(int startX, int startY, int width, int height, byte[] pixels);
public abstract boolean isLocked();
public abstract void setLocked(boolean locked);
public abstract boolean isTrack();
public abstract void setTrack(boolean track);
public abstract int getMapId();
public abstract void setMapId(int value);
public abstract byte getScale();
public abstract void setScale(byte value);
public abstract boolean isLocked();
public abstract boolean hasCursors();
public abstract List<MapCursor> getCursors();
public abstract void setCursors(List<MapCursor> value);
public abstract int getStartX();
public abstract int getStartY();
public abstract int getWidth();
public abstract int getHeight();
public abstract boolean hasPixels();
public abstract byte[] getPixels();
public static class Builder implements Cloneable {
private int mapId = 0;
private byte scale = (byte) 1;
private boolean locked = false;
private java.util.Optional<java.util.List<MapIconHandle>> mapIcons = java.util.Optional.empty();
private boolean hasData = false;
private int startX, startY;
private int width, height;
private byte[] colors = null;
private static final DuplexConverter<MapIconHandle, MapCursor> mapCursorHandleConversion = new DuplexConverter<MapIconHandle, MapCursor>(MapIconHandle.class, MapCursor.class) {
@Override
public MapCursor convertInput(MapIconHandle mapIconHandle) {
return mapIconHandle.toCursor();
}
@Override
public MapIconHandle convertOutput(MapCursor mapCursor) {
return MapIconHandle.fromCursor(mapCursor);
}
};
private Builder() {
}
public int get_mapId() {
return this.mapId;
}
public byte get_scale() {
return scale;
}
public boolean get_locked() {
return locked;
}
public java.util.Optional<java.util.List<org.bukkit.map.MapCursor>> get_cursors() {
return mapIcons.map(list -> new ConvertingList<>(list, mapCursorHandleConversion));
}
public java.util.Optional<java.util.List<MapIconHandle>> get_cursors_nms() {
return mapIcons;
}
public boolean has_data() {
return hasData;
}
public int get_data_startX() {
return startX;
}
public int get_data_startY() {
return startY;
}
public int get_data_width() {
return width;
}
public int get_data_height() {
return height;
}
public byte[] get_data_colors() {
return colors;
}
public Builder mapId(int mapId) {
this.mapId = mapId;
return this;
}
public Builder scale(byte scale) {
this.scale = scale;
return this;
}
public Builder locked(boolean locked) {
this.locked = locked;
return this;
}
private List<MapIconHandle> convertCursors(java.util.List<org.bukkit.map.MapCursor> cursors) {
return new ConvertingList<>(cursors, mapCursorHandleConversion.reverse());
}
public Builder no_cursors() {
return this.cursors_nms(java.util.Collections.emptyList());
}
public Builder cursors(java.util.List<org.bukkit.map.MapCursor> cursors) {
return this.cursors_nms(convertCursors(cursors));
}
public Builder cursors_nms(java.util.List<MapIconHandle> rawCursors) {
this.mapIcons = java.util.Optional.ofNullable(rawCursors);
return this;
}
public Builder add_cursors(java.util.List<org.bukkit.map.MapCursor> cursors) {
return add_cursors_nms(convertCursors(cursors));
}
public Builder add_cursors_nms(java.util.List<MapIconHandle> rawCursors) {
if (!this.mapIcons.isPresent()) {
this.cursors_nms(rawCursors);
} else if (rawCursors != null && !rawCursors.isEmpty()) {
java.util.List<MapIconHandle> existing = this.mapIcons.get();
java.util.List<MapIconHandle> newList = new java.util.ArrayList<>(existing.size() + rawCursors.size());
newList.addAll(existing);
newList.addAll(rawCursors);
this.mapIcons = java.util.Optional.of(newList);
}
return this;
}
public Builder data(int startX, int startY, int width, int height, byte[] colors) {
this.startX = startX;
this.startY = startY;
this.width = width;
this.height = height;
this.colors = colors;
this.hasData = true;
return this;
}
@Override
public Builder clone() {
Builder copy = new Builder();
copy.mapId = this.mapId;
copy.scale = this.scale;
copy.locked = this.locked;
copy.mapIcons = this.mapIcons;
copy.startX = this.startX;
copy.startY = this.startY;
copy.width = this.width;
copy.height = this.height;
copy.colors = this.colors;
copy.hasData = this.hasData;
return copy;
}
public PacketPlayOutMapHandle create() {
return createNew(this);
}
}
public static Builder build() {
return new Builder();
}
public Builder mutable() {
Builder b = build()
.mapId(getMapId())
.scale(getScale())
.locked(isLocked());
if (hasCursors()) {
b.cursors(getCursors());
}
if (hasPixels()) {
b.data(getStartX(), getStartY(), getWidth(), getHeight(), getPixels());
}
return b;
}
/**
* Stores class members for <b>net.minecraft.network.protocol.game.PacketPlayOutMap</b>.
* Methods, fields, and constructors can be used without using Handle Objects.
*/
public static final class PacketPlayOutMapClass extends Template.Class<PacketPlayOutMapHandle> {
public final Template.Field.Integer mapId = new Template.Field.Integer();
public final Template.Field.Byte scale = new Template.Field.Byte();
public final Template.Field.Converted<List<MapCursor>> cursors = new Template.Field.Converted<List<MapCursor>>();
public final Template.StaticMethod.Converted<PacketPlayOutMapHandle> createNew = new Template.StaticMethod.Converted<PacketPlayOutMapHandle>();
public final Template.Method<Integer> getStartX = new Template.Method<Integer>();
public final Template.Method<Void> setStartX = new Template.Method<Void>();
public final Template.Method<Integer> getStartY = new Template.Method<Integer>();
public final Template.Method<Void> setStartY = new Template.Method<Void>();
public final Template.Method<Integer> getWidth = new Template.Method<Integer>();
public final Template.Method<Void> setWidth = new Template.Method<Void>();
public final Template.Method<Integer> getHeight = new Template.Method<Integer>();
public final Template.Method<Void> setHeight = new Template.Method<Void>();
public final Template.Method<byte[]> getPixels = new Template.Method<byte[]>();
public final Template.Method<Void> setPixels = new Template.Method<Void>();
public final Template.Method<Void> setPixelData = new Template.Method<Void>();
public final Template.Method<Integer> getMapId = new Template.Method<Integer>();
public final Template.Method<Byte> getScale = new Template.Method<Byte>();
public final Template.Method<Boolean> isLocked = new Template.Method<Boolean>();
public final Template.Method<Void> setLocked = new Template.Method<Void>();
public final Template.Method<Boolean> isTrack = new Template.Method<Boolean>();
public final Template.Method<Void> setTrack = new Template.Method<Void>();
public final Template.Method<Boolean> hasCursors = new Template.Method<Boolean>();
public final Template.Method.Converted<List<MapCursor>> getCursors = new Template.Method.Converted<List<MapCursor>>();
public final Template.Method<Integer> getStartX = new Template.Method<Integer>();
public final Template.Method<Integer> getStartY = new Template.Method<Integer>();
public final Template.Method<Integer> getWidth = new Template.Method<Integer>();
public final Template.Method<Integer> getHeight = new Template.Method<Integer>();
public final Template.Method<Boolean> hasPixels = new Template.Method<Boolean>();
public final Template.Method<byte[]> getPixels = new Template.Method<byte[]>();
}
@@ -25,7 +25,6 @@ public abstract class PacketPlayOutMountHandle extends PacketHandle {
return T.createNew.invoke();
}
public void addMountedEntityId(int entityId) {
int[] oldIds = this.getMountedEntityIds();
if (oldIds == null || oldIds.length == 0) {
@@ -27,7 +27,6 @@ public abstract class PacketPlayOutNamedEntitySpawnHandle extends PacketHandle {
return T.createNew.invoke();
}
public boolean hasDataWatcherSupport() {
return T.opt_dataWatcher.isAvailable();
}
@@ -22,7 +22,6 @@ public abstract class PacketPlayOutNamedSoundEffectHandle extends PacketHandle {
/* ============================================================================== */
public float getPitch() {
if (T.pitch_1_10_2.isAvailable()) {
return T.pitch_1_10_2.getFloat(getRaw());
@@ -39,7 +38,6 @@ public abstract class PacketPlayOutNamedSoundEffectHandle extends PacketHandle {
}
}
public String getCategory() {
if (T.category_1_10_2.isAvailable()) {
return T.category_1_10_2.get(getRaw());
@@ -21,6 +21,15 @@ public abstract class PacketPlayOutOpenSignEditorHandle extends PacketHandle {
/* ============================================================================== */
public static PacketPlayOutOpenSignEditorHandle createNew(IntVector3 signPosition, boolean isFrontText) {
return T.createNew.invoke(signPosition, isFrontText);
}
public abstract boolean isFrontText();
public abstract void setFrontText(boolean front);
public static PacketPlayOutOpenSignEditorHandle createNew(IntVector3 signPosition) {
return createNew(signPosition, true);
}
public abstract IntVector3 getSignPosition();
public abstract void setSignPosition(IntVector3 value);
/**
@@ -30,6 +39,11 @@ public abstract class PacketPlayOutOpenSignEditorHandle extends PacketHandle {
public static final class PacketPlayOutOpenSignEditorClass extends Template.Class<PacketPlayOutOpenSignEditorHandle> {
public final Template.Field.Converted<IntVector3> signPosition = new Template.Field.Converted<IntVector3>();
public final Template.StaticMethod.Converted<PacketPlayOutOpenSignEditorHandle> createNew = new Template.StaticMethod.Converted<PacketPlayOutOpenSignEditorHandle>();
public final Template.Method<Boolean> isFrontText = new Template.Method<Boolean>();
public final Template.Method<Void> setFrontText = new Template.Method<Void>();
}
}
@@ -1,9 +1,8 @@
package com.bergerkiller.generated.net.minecraft.network.protocol.game;
import com.bergerkiller.mountiplex.reflection.declarations.Template;
import com.bergerkiller.bukkit.common.wrappers.RelativeFlags;
import com.bergerkiller.generated.net.minecraft.network.protocol.PacketHandle;
import com.bergerkiller.generated.net.minecraft.world.entity.RelativeMovementHandle;
import java.util.Set;
/**
* Instance wrapper handle for type <b>net.minecraft.network.protocol.game.PacketPlayOutPosition</b>.
@@ -22,85 +21,50 @@ public abstract class PacketPlayOutPositionHandle extends PacketHandle {
/* ============================================================================== */
public static PacketPlayOutPositionHandle createNew(double x, double y, double z, float yaw, float pitch, double deltaX, double deltaY, double deltaZ, RelativeFlags relativeFlags, int teleportWaitTimer) {
return T.createNew.invokeVA(x, y, z, yaw, pitch, deltaX, deltaY, deltaZ, relativeFlags, teleportWaitTimer);
}
public abstract double getX();
public abstract double getY();
public abstract double getZ();
public abstract float getYaw();
public abstract float getPitch();
public abstract RelativeFlags getRelativeFlags();
public abstract int getTeleportWaitTimer();
public static PacketPlayOutPositionHandle createNew(double x, double y, double z, float yaw, float pitch, double deltaX, double deltaY, double deltaZ, RelativeFlags relativeFlags) {
return createNew(x, y, z, yaw, pitch, deltaX, deltaY, deltaZ, relativeFlags, 0);
}
public static PacketPlayOutPositionHandle createNew(double x, double y, double z, float yaw, float pitch, RelativeFlags relativeFlags) {
return createNew(x, y, z, yaw, pitch, 0.0, 0.0, 0.0, relativeFlags, 0);
}
public static PacketPlayOutPositionHandle createRelative(double dx, double dy, double dz, float dyaw, float dpitch) {
return T.createRelative.invoke(dx, dy, dz, dyaw, dpitch);
return createNew(dx, dy, dz, dyaw, dpitch, RelativeFlags.RELATIVE_POSITION_ROTATION);
}
public static PacketPlayOutPositionHandle createAbsolute(double x, double y, double z, float yaw, float pitch) {
return T.createAbsolute.invoke(x, y, z, yaw, pitch);
}
public int getTeleportWaitTimer() {
if (T.teleportWaitTimer.isAvailable()) {
return T.teleportWaitTimer.getInteger(getRaw());
} else {
return 0;
}
}
public void setTeleportWaitTimer(int ticks) {
if (T.teleportWaitTimer.isAvailable()) {
T.teleportWaitTimer.setInteger(getRaw(), ticks);
}
}
public void setRotationRelative(boolean relative) {
Set<RelativeMovementHandle> flags = getTeleportFlags();
if (relative) {
flags.add(RelativeMovementHandle.Y_ROT);
flags.add(RelativeMovementHandle.X_ROT);
} else {
flags.remove(RelativeMovementHandle.Y_ROT);
flags.remove(RelativeMovementHandle.X_ROT);
}
}
public void setPositionRelative(boolean relative) {
Set<RelativeMovementHandle> flags = getTeleportFlags();
if (relative) {
flags.add(RelativeMovementHandle.X);
flags.add(RelativeMovementHandle.Y);
flags.add(RelativeMovementHandle.Z);
} else {
flags.remove(RelativeMovementHandle.X);
flags.remove(RelativeMovementHandle.Y);
flags.remove(RelativeMovementHandle.Z);
}
}
public static PacketPlayOutPositionHandle createAbsolute(org.bukkit.Location location) {
return createAbsolute(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch());
}
public abstract double getX();
public abstract void setX(double value);
public abstract double getY();
public abstract void setY(double value);
public abstract double getZ();
public abstract void setZ(double value);
public abstract float getYaw();
public abstract void setYaw(float value);
public abstract float getPitch();
public abstract void setPitch(float value);
public abstract Set<RelativeMovementHandle> getTeleportFlags();
public abstract void setTeleportFlags(Set<RelativeMovementHandle> value);
public static PacketPlayOutPositionHandle createAbsolute(double x, double y, double z, float yaw, float pitch) {
return createNew(x, y, z, yaw, pitch, RelativeFlags.ABSOLUTE_POSITION);
}
/**
* Stores class members for <b>net.minecraft.network.protocol.game.PacketPlayOutPosition</b>.
* Methods, fields, and constructors can be used without using Handle Objects.
*/
public static final class PacketPlayOutPositionClass extends Template.Class<PacketPlayOutPositionHandle> {
public final Template.Field.Double x = new Template.Field.Double();
public final Template.Field.Double y = new Template.Field.Double();
public final Template.Field.Double z = new Template.Field.Double();
public final Template.Field.Float yaw = new Template.Field.Float();
public final Template.Field.Float pitch = new Template.Field.Float();
public final Template.Field.Converted<Set<RelativeMovementHandle>> teleportFlags = new Template.Field.Converted<Set<RelativeMovementHandle>>();
@Template.Optional
public final Template.Field.Integer teleportWaitTimer = new Template.Field.Integer();
public final Template.StaticMethod.Converted<PacketPlayOutPositionHandle> createNew = new Template.StaticMethod.Converted<PacketPlayOutPositionHandle>();
public final Template.StaticMethod.Converted<PacketPlayOutPositionHandle> createRelative = new Template.StaticMethod.Converted<PacketPlayOutPositionHandle>();
public final Template.StaticMethod.Converted<PacketPlayOutPositionHandle> createAbsolute = new Template.StaticMethod.Converted<PacketPlayOutPositionHandle>();
public final Template.Method<Double> getX = new Template.Method<Double>();
public final Template.Method<Double> getY = new Template.Method<Double>();
public final Template.Method<Double> getZ = new Template.Method<Double>();
public final Template.Method<Float> getYaw = new Template.Method<Float>();
public final Template.Method<Float> getPitch = new Template.Method<Float>();
public final Template.Method.Converted<RelativeFlags> getRelativeFlags = new Template.Method.Converted<RelativeFlags>();
public final Template.Method<Integer> getTeleportWaitTimer = new Template.Method<Integer>();
}
@@ -1,6 +1,7 @@
package com.bergerkiller.generated.net.minecraft.network.protocol.game;
import com.bergerkiller.mountiplex.reflection.declarations.Template;
import com.bergerkiller.bukkit.common.wrappers.Holder;
import com.bergerkiller.generated.net.minecraft.network.protocol.PacketHandle;
import com.bergerkiller.generated.net.minecraft.world.effect.MobEffectListHandle;
@@ -21,31 +22,29 @@ public abstract class PacketPlayOutRemoveEntityEffectHandle extends PacketHandle
/* ============================================================================== */
public static PacketPlayOutRemoveEntityEffectHandle createNew() {
return T.createNew.invoke();
public static PacketPlayOutRemoveEntityEffectHandle createNew(int entityId, Holder<MobEffectListHandle> effect) {
return T.createNew.invoke(entityId, effect);
}
public static PacketPlayOutRemoveEntityEffectHandle createNew(int entityId, MobEffectListHandle mobEffectList) {
PacketPlayOutRemoveEntityEffectHandle handle = createNew();
handle.setEntityId(entityId);
handle.setEffectList(mobEffectList);
return handle;
}
public abstract int getEntityId();
public abstract void setEntityId(int value);
public abstract MobEffectListHandle getEffectList();
public abstract void setEffectList(MobEffectListHandle value);
public abstract Holder<MobEffectListHandle> getEffect();
public org.bukkit.potion.PotionEffectType getPotionEffectType() {
return MobEffectListHandle.holderToBukkit(getEffect());
}
public static PacketPlayOutRemoveEntityEffectHandle createNew(int entityId, org.bukkit.potion.PotionEffectType effectType) {
return createNew(entityId, MobEffectListHandle.holderFromBukkit(effectType));
}
/**
* Stores class members for <b>net.minecraft.network.protocol.game.PacketPlayOutRemoveEntityEffect</b>.
* Methods, fields, and constructors can be used without using Handle Objects.
*/
public static final class PacketPlayOutRemoveEntityEffectClass extends Template.Class<PacketPlayOutRemoveEntityEffectHandle> {
public final Template.Field.Integer entityId = new Template.Field.Integer();
public final Template.Field.Converted<MobEffectListHandle> effectList = new Template.Field.Converted<MobEffectListHandle>();
public final Template.StaticMethod.Converted<PacketPlayOutRemoveEntityEffectHandle> createNew = new Template.StaticMethod.Converted<PacketPlayOutRemoveEntityEffectHandle>();
public final Template.Method<Integer> getEntityId = new Template.Method<Integer>();
public final Template.Method.Converted<Holder<MobEffectListHandle>> getEffect = new Template.Method.Converted<Holder<MobEffectListHandle>>();
}
}
@@ -25,30 +25,22 @@ public abstract class PacketPlayOutRespawnHandle extends PacketHandle {
/* ============================================================================== */
public abstract ResourceKey<World> getWorldName();
public abstract void setWorldName(ResourceKey<World> worldType);
public abstract GameMode getPreviousGameMode();
public abstract void setPreviousGameMode(GameMode gameMode);
public abstract void setEncryptedWorldSeed(World world);
public abstract DimensionType getDimensionType();
public abstract void setDimensionType(DimensionType value);
public abstract GameMode getGamemode();
public abstract void setGamemode(GameMode value);
public abstract ResourceKey<World> getWorldName();
public abstract GameMode getPreviousGameMode();
/**
* Stores class members for <b>net.minecraft.network.protocol.game.PacketPlayOutRespawn</b>.
* Methods, fields, and constructors can be used without using Handle Objects.
*/
public static final class PacketPlayOutRespawnClass extends Template.Class<PacketPlayOutRespawnHandle> {
public final Template.Field.Converted<DimensionType> dimensionType = new Template.Field.Converted<DimensionType>();
@Template.Optional
public final Template.Field.Converted<Difficulty> difficulty = new Template.Field.Converted<Difficulty>();
public final Template.Field.Converted<GameMode> gamemode = new Template.Field.Converted<GameMode>();
public final Template.Method.Converted<DimensionType> getDimensionType = new Template.Method.Converted<DimensionType>();
public final Template.Method.Converted<GameMode> getGamemode = new Template.Method.Converted<GameMode>();
public final Template.Method.Converted<ResourceKey<World>> getWorldName = new Template.Method.Converted<ResourceKey<World>>();
public final Template.Method.Converted<Void> setWorldName = new Template.Method.Converted<Void>();
public final Template.Method.Converted<GameMode> getPreviousGameMode = new Template.Method.Converted<GameMode>();
public final Template.Method.Converted<Void> setPreviousGameMode = new Template.Method.Converted<Void>();
public final Template.Method.Converted<Void> setEncryptedWorldSeed = new Template.Method.Converted<Void>();
}
@@ -0,0 +1,39 @@
package com.bergerkiller.generated.net.minecraft.network.protocol.game;
import com.bergerkiller.mountiplex.reflection.declarations.Template;
import com.bergerkiller.generated.net.minecraft.network.protocol.PacketHandle;
import org.bukkit.scoreboard.DisplaySlot;
/**
* Instance wrapper handle for type <b>net.minecraft.network.protocol.game.PacketPlayOutScoreboardDisplayObjective</b>.
* To access members without creating a handle type, use the static {@link #T} member.
* New handles can be created from raw instances using {@link #createHandle(Object)}.
*/
@Template.InstanceType("net.minecraft.network.protocol.game.PacketPlayOutScoreboardDisplayObjective")
public abstract class PacketPlayOutScoreboardDisplayObjectiveHandle extends PacketHandle {
/** @see PacketPlayOutScoreboardDisplayObjectiveClass */
public static final PacketPlayOutScoreboardDisplayObjectiveClass T = Template.Class.create(PacketPlayOutScoreboardDisplayObjectiveClass.class, com.bergerkiller.bukkit.common.Common.TEMPLATE_RESOLVER);
/* ============================================================================== */
public static PacketPlayOutScoreboardDisplayObjectiveHandle createHandle(Object handleInstance) {
return T.createHandle(handleInstance);
}
/* ============================================================================== */
public abstract DisplaySlot getDisplay();
public abstract void setDisplay(DisplaySlot value);
public abstract String getName();
public abstract void setName(String value);
/**
* Stores class members for <b>net.minecraft.network.protocol.game.PacketPlayOutScoreboardDisplayObjective</b>.
* Methods, fields, and constructors can be used without using Handle Objects.
*/
public static final class PacketPlayOutScoreboardDisplayObjectiveClass extends Template.Class<PacketPlayOutScoreboardDisplayObjectiveHandle> {
public final Template.Field.Converted<DisplaySlot> display = new Template.Field.Converted<DisplaySlot>();
public final Template.Field<String> name = new Template.Field<String>();
}
}
@@ -1,7 +1,6 @@
package com.bergerkiller.generated.net.minecraft.network.protocol.game;
import com.bergerkiller.mountiplex.reflection.declarations.Template;
import com.bergerkiller.bukkit.common.wrappers.ScoreboardAction;
import com.bergerkiller.generated.net.minecraft.network.protocol.PacketHandle;
/**
@@ -21,14 +20,16 @@ public abstract class PacketPlayOutScoreboardScoreHandle extends PacketHandle {
/* ============================================================================== */
public static PacketPlayOutScoreboardScoreHandle createNew(String name, String objectiveName, int score) {
return T.createNew.invoke(name, objectiveName, score);
}
public abstract String getName();
public abstract void setName(String value);
public abstract String getObjName();
public abstract void setObjName(String value);
public abstract int getValue();
public abstract void setValue(int value);
public abstract ScoreboardAction getAction();
public abstract void setAction(ScoreboardAction value);
/**
* Stores class members for <b>net.minecraft.network.protocol.game.PacketPlayOutScoreboardScore</b>.
* Methods, fields, and constructors can be used without using Handle Objects.
@@ -37,39 +38,8 @@ public abstract class PacketPlayOutScoreboardScoreHandle extends PacketHandle {
public final Template.Field<String> name = new Template.Field<String>();
public final Template.Field<String> objName = new Template.Field<String>();
public final Template.Field.Integer value = new Template.Field.Integer();
public final Template.Field.Converted<ScoreboardAction> action = new Template.Field.Converted<ScoreboardAction>();
}
/**
* Instance wrapper handle for type <b>net.minecraft.network.protocol.game.PacketPlayOutScoreboardScore.EnumScoreboardAction</b>.
* To access members without creating a handle type, use the static {@link #T} member.
* New handles can be created from raw instances using {@link #createHandle(Object)}.
*/
@Template.InstanceType("net.minecraft.network.protocol.game.PacketPlayOutScoreboardScore.EnumScoreboardAction")
public abstract static class EnumScoreboardActionHandle extends Template.Handle {
/** @see EnumScoreboardActionClass */
public static final EnumScoreboardActionClass T = Template.Class.create(EnumScoreboardActionClass.class, com.bergerkiller.bukkit.common.Common.TEMPLATE_RESOLVER);
public static final EnumScoreboardActionHandle CHANGE = T.CHANGE.getSafe();
public static final EnumScoreboardActionHandle REMOVE = T.REMOVE.getSafe();
/* ============================================================================== */
public static EnumScoreboardActionHandle createHandle(Object handleInstance) {
return T.createHandle(handleInstance);
}
/* ============================================================================== */
/**
* Stores class members for <b>net.minecraft.network.protocol.game.PacketPlayOutScoreboardScore.EnumScoreboardAction</b>.
* Methods, fields, and constructors can be used without using Handle Objects.
*/
public static final class EnumScoreboardActionClass extends Template.Class<EnumScoreboardActionHandle> {
public final Template.EnumConstant.Converted<EnumScoreboardActionHandle> CHANGE = new Template.EnumConstant.Converted<EnumScoreboardActionHandle>();
public final Template.EnumConstant.Converted<EnumScoreboardActionHandle> REMOVE = new Template.EnumConstant.Converted<EnumScoreboardActionHandle>();
}
public final Template.StaticMethod.Converted<PacketPlayOutScoreboardScoreHandle> createNew = new Template.StaticMethod.Converted<PacketPlayOutScoreboardScoreHandle>();
}
@@ -41,7 +41,6 @@ public abstract class PacketPlayOutScoreboardTeamHandle extends PacketHandle {
public abstract void setColor(ChatColor color);
public abstract int getTeamOptionFlags();
public abstract void setTeamOptionFlags(int teamOptionFlags);
public static final int METHOD_ADD = 0;
public static final int METHOD_REMOVE = 1;
public static final int METHOD_CHANGE = 2;
@@ -0,0 +1,39 @@
package com.bergerkiller.generated.net.minecraft.network.protocol.game;
import com.bergerkiller.mountiplex.reflection.declarations.Template;
import com.bergerkiller.generated.net.minecraft.network.protocol.PacketHandle;
import org.bukkit.Difficulty;
/**
* Instance wrapper handle for type <b>net.minecraft.network.protocol.game.PacketPlayOutServerDifficulty</b>.
* To access members without creating a handle type, use the static {@link #T} member.
* New handles can be created from raw instances using {@link #createHandle(Object)}.
*/
@Template.InstanceType("net.minecraft.network.protocol.game.PacketPlayOutServerDifficulty")
public abstract class PacketPlayOutServerDifficultyHandle extends PacketHandle {
/** @see PacketPlayOutServerDifficultyClass */
public static final PacketPlayOutServerDifficultyClass T = Template.Class.create(PacketPlayOutServerDifficultyClass.class, com.bergerkiller.bukkit.common.Common.TEMPLATE_RESOLVER);
/* ============================================================================== */
public static PacketPlayOutServerDifficultyHandle createHandle(Object handleInstance) {
return T.createHandle(handleInstance);
}
/* ============================================================================== */
public abstract Difficulty getDifficulty();
public abstract void setDifficulty(Difficulty value);
public abstract boolean isHardcore();
public abstract void setHardcore(boolean value);
/**
* Stores class members for <b>net.minecraft.network.protocol.game.PacketPlayOutServerDifficulty</b>.
* Methods, fields, and constructors can be used without using Handle Objects.
*/
public static final class PacketPlayOutServerDifficultyClass extends Template.Class<PacketPlayOutServerDifficultyHandle> {
public final Template.Field.Converted<Difficulty> difficulty = new Template.Field.Converted<Difficulty>();
public final Template.Field.Boolean hardcore = new Template.Field.Boolean();
}
}
@@ -2,7 +2,6 @@ package com.bergerkiller.generated.net.minecraft.network.protocol.game;
import com.bergerkiller.mountiplex.reflection.declarations.Template;
import com.bergerkiller.generated.net.minecraft.network.protocol.PacketHandle;
import org.bukkit.Material;
/**
* Instance wrapper handle for type <b>net.minecraft.network.protocol.game.PacketPlayOutSetCooldown</b>.
@@ -22,8 +21,6 @@ public abstract class PacketPlayOutSetCooldownHandle extends PacketHandle {
/* ============================================================================== */
public abstract Material getMaterial();
public abstract void setMaterial(Material value);
public abstract int getCooldown();
public abstract void setCooldown(int value);
/**
@@ -31,7 +28,6 @@ public abstract class PacketPlayOutSetCooldownHandle extends PacketHandle {
* Methods, fields, and constructors can be used without using Handle Objects.
*/
public static final class PacketPlayOutSetCooldownClass extends Template.Class<PacketPlayOutSetCooldownHandle> {
public final Template.Field.Converted<Material> material = new Template.Field.Converted<Material>();
public final Template.Field.Integer cooldown = new Template.Field.Integer();
}
@@ -8,6 +8,7 @@ import com.bergerkiller.generated.net.minecraft.network.protocol.PacketHandle;
* To access members without creating a handle type, use the static {@link #T} member.
* New handles can be created from raw instances using {@link #createHandle(Object)}.
*/
@Template.Optional
@Template.InstanceType("net.minecraft.network.protocol.game.PacketPlayOutSpawnEntityExperienceOrb")
public abstract class PacketPlayOutSpawnEntityExperienceOrbHandle extends PacketHandle {
/** @see PacketPlayOutSpawnEntityExperienceOrbClass */
@@ -20,7 +21,6 @@ public abstract class PacketPlayOutSpawnEntityExperienceOrbHandle extends Packet
/* ============================================================================== */
public double getPosX() {
return getProtocolPosition(T.posX_1_8_8, T.posX_1_10_2);
}
@@ -3,6 +3,7 @@ package com.bergerkiller.generated.net.minecraft.network.protocol.game;
import com.bergerkiller.mountiplex.reflection.declarations.Template;
import com.bergerkiller.generated.net.minecraft.network.protocol.PacketHandle;
import com.bergerkiller.generated.net.minecraft.world.entity.EntityTypesHandle;
import org.bukkit.util.Vector;
import java.util.UUID;
/**
@@ -30,7 +31,14 @@ public abstract class PacketPlayOutSpawnEntityHandle extends PacketHandle {
public abstract float getPitch();
public abstract void setYaw(float yaw);
public abstract void setPitch(float pitch);
public abstract Vector getMotVector();
public abstract void setMotVector(Vector motVector);
public abstract double getMotX();
public abstract double getMotY();
public abstract double getMotZ();
public abstract void setMotX(double motX);
public abstract void setMotY(double motY);
public abstract void setMotZ(double motZ);
@Override
public com.bergerkiller.bukkit.common.protocol.PacketType getPacketType() {
return com.bergerkiller.bukkit.common.protocol.PacketType.OUT_ENTITY_SPAWN;
@@ -139,30 +147,6 @@ public abstract class PacketPlayOutSpawnEntityHandle extends PacketHandle {
public void setPosZ(double posZ) {
setProtocolPosition(T.posZ_1_8_8, T.posZ_1_10_2, posZ);
}
public double getMotX() {
return com.bergerkiller.bukkit.common.internal.logic.ProtocolMath.deserializeVelocity(T.motX_raw.getInteger(getRaw()));
}
public double getMotY() {
return com.bergerkiller.bukkit.common.internal.logic.ProtocolMath.deserializeVelocity(T.motY_raw.getInteger(getRaw()));
}
public double getMotZ() {
return com.bergerkiller.bukkit.common.internal.logic.ProtocolMath.deserializeVelocity(T.motZ_raw.getInteger(getRaw()));
}
public void setMotX(double motX) {
T.motX_raw.setInteger(getRaw(), com.bergerkiller.bukkit.common.internal.logic.ProtocolMath.serializeVelocity(motX));
}
public void setMotY(double motY) {
T.motY_raw.setInteger(getRaw(), com.bergerkiller.bukkit.common.internal.logic.ProtocolMath.serializeVelocity(motY));
}
public void setMotZ(double motZ) {
T.motZ_raw.setInteger(getRaw(), com.bergerkiller.bukkit.common.internal.logic.ProtocolMath.serializeVelocity(motZ));
}
public abstract int getEntityId();
public abstract void setEntityId(int value);
public abstract int getExtraData();
@@ -190,12 +174,6 @@ public abstract class PacketPlayOutSpawnEntityHandle extends PacketHandle {
@Template.Optional
public final Template.Field.Double posZ_1_10_2 = new Template.Field.Double();
@Template.Optional
public final Template.Field.Integer motX_raw = new Template.Field.Integer();
@Template.Optional
public final Template.Field.Integer motY_raw = new Template.Field.Integer();
@Template.Optional
public final Template.Field.Integer motZ_raw = new Template.Field.Integer();
@Template.Optional
public final Template.Field.Integer opt_entityTypeId = new Template.Field.Integer();
public final Template.Field.Integer extraData = new Template.Field.Integer();
@@ -205,6 +183,14 @@ public abstract class PacketPlayOutSpawnEntityHandle extends PacketHandle {
public final Template.Method<Float> getPitch = new Template.Method<Float>();
public final Template.Method<Void> setYaw = new Template.Method<Void>();
public final Template.Method<Void> setPitch = new Template.Method<Void>();
public final Template.Method.Converted<Vector> getMotVector = new Template.Method.Converted<Vector>();
public final Template.Method.Converted<Void> setMotVector = new Template.Method.Converted<Void>();
public final Template.Method<Double> getMotX = new Template.Method<Double>();
public final Template.Method<Double> getMotY = new Template.Method<Double>();
public final Template.Method<Double> getMotZ = new Template.Method<Double>();
public final Template.Method<Void> setMotX = new Template.Method<Void>();
public final Template.Method<Void> setMotY = new Template.Method<Void>();
public final Template.Method<Void> setMotZ = new Template.Method<Void>();
}
@@ -4,7 +4,7 @@ import com.bergerkiller.mountiplex.reflection.declarations.Template;
import com.bergerkiller.bukkit.common.entity.CommonEntityType;
import com.bergerkiller.bukkit.common.wrappers.DataWatcher;
import com.bergerkiller.generated.net.minecraft.network.protocol.PacketHandle;
import org.bukkit.entity.LivingEntity;
import org.bukkit.util.Vector;
import java.util.UUID;
/**
@@ -22,10 +22,6 @@ public abstract class PacketPlayOutSpawnEntityLivingHandle extends PacketHandle
return T.createHandle(handleInstance);
}
public static final PacketPlayOutSpawnEntityLivingHandle createNew(LivingEntity entity) {
return T.constr_entity.newInstance(entity);
}
/* ============================================================================== */
public static PacketPlayOutSpawnEntityLivingHandle createNew() {
@@ -40,7 +36,14 @@ public abstract class PacketPlayOutSpawnEntityLivingHandle extends PacketHandle
public abstract void setPosX(double x);
public abstract void setPosY(double y);
public abstract void setPosZ(double z);
public abstract Vector getMotVector();
public abstract void setMotVector(Vector motVector);
public abstract double getMotX();
public abstract double getMotY();
public abstract double getMotZ();
public abstract void setMotX(double motX);
public abstract void setMotY(double motY);
public abstract void setMotZ(double motZ);
public boolean hasDataWatcherSupport() {
return T.opt_dataWatcher.isAvailable();
}
@@ -91,30 +94,6 @@ public abstract class PacketPlayOutSpawnEntityLivingHandle extends PacketHandle
return getCommonEntityType().entityType;
}
public double getMotX() {
return com.bergerkiller.bukkit.common.internal.logic.ProtocolMath.deserializeVelocity(T.motX_raw.getInteger(getRaw()));
}
public double getMotY() {
return com.bergerkiller.bukkit.common.internal.logic.ProtocolMath.deserializeVelocity(T.motY_raw.getInteger(getRaw()));
}
public double getMotZ() {
return com.bergerkiller.bukkit.common.internal.logic.ProtocolMath.deserializeVelocity(T.motZ_raw.getInteger(getRaw()));
}
public void setMotX(double motX) {
T.motX_raw.setInteger(getRaw(), com.bergerkiller.bukkit.common.internal.logic.ProtocolMath.serializeVelocity(motX));
}
public void setMotY(double motY) {
T.motY_raw.setInteger(getRaw(), com.bergerkiller.bukkit.common.internal.logic.ProtocolMath.serializeVelocity(motY));
}
public void setMotZ(double motZ) {
T.motZ_raw.setInteger(getRaw(), com.bergerkiller.bukkit.common.internal.logic.ProtocolMath.serializeVelocity(motZ));
}
public float getYaw() {
return getProtocolRotation(T.yaw_raw);
}
@@ -145,18 +124,10 @@ public abstract class PacketPlayOutSpawnEntityLivingHandle extends PacketHandle
* Methods, fields, and constructors can be used without using Handle Objects.
*/
public static final class PacketPlayOutSpawnEntityLivingClass extends Template.Class<PacketPlayOutSpawnEntityLivingHandle> {
public final Template.Constructor.Converted<PacketPlayOutSpawnEntityLivingHandle> constr_entity = new Template.Constructor.Converted<PacketPlayOutSpawnEntityLivingHandle>();
public final Template.Field.Integer entityId = new Template.Field.Integer();
@Template.Optional
public final Template.Field<UUID> entityUUID = new Template.Field<UUID>();
@Template.Optional
public final Template.Field.Integer motX_raw = new Template.Field.Integer();
@Template.Optional
public final Template.Field.Integer motY_raw = new Template.Field.Integer();
@Template.Optional
public final Template.Field.Integer motZ_raw = new Template.Field.Integer();
@Template.Optional
public final Template.Field.Byte pitch_raw = new Template.Field.Byte();
@Template.Optional
public final Template.Field.Byte yaw_raw = new Template.Field.Byte();
@@ -175,6 +146,14 @@ public abstract class PacketPlayOutSpawnEntityLivingHandle extends PacketHandle
public final Template.Method<Void> setPosX = new Template.Method<Void>();
public final Template.Method<Void> setPosY = new Template.Method<Void>();
public final Template.Method<Void> setPosZ = new Template.Method<Void>();
public final Template.Method.Converted<Vector> getMotVector = new Template.Method.Converted<Vector>();
public final Template.Method.Converted<Void> setMotVector = new Template.Method.Converted<Void>();
public final Template.Method<Double> getMotX = new Template.Method<Double>();
public final Template.Method<Double> getMotY = new Template.Method<Double>();
public final Template.Method<Double> getMotZ = new Template.Method<Double>();
public final Template.Method<Void> setMotX = new Template.Method<Void>();
public final Template.Method<Void> setMotY = new Template.Method<Void>();
public final Template.Method<Void> setMotZ = new Template.Method<Void>();
}
@@ -21,7 +21,6 @@ public abstract class PacketPlayOutSpawnEntityWeatherHandle extends PacketHandle
/* ============================================================================== */
public double getPosX() {
return getProtocolPosition(T.posX_1_8_8, T.posX_1_10_2);
}
@@ -1,8 +1,8 @@
package com.bergerkiller.generated.net.minecraft.network.protocol.game;
import com.bergerkiller.mountiplex.reflection.declarations.Template;
import com.bergerkiller.bukkit.common.bases.IntVector3;
import com.bergerkiller.generated.net.minecraft.network.protocol.PacketHandle;
import com.bergerkiller.generated.net.minecraft.server.level.EntityPlayerHandle.RespawnConfigHandle;
/**
* Instance wrapper handle for type <b>net.minecraft.network.protocol.game.PacketPlayOutSpawnPosition</b>.
@@ -21,19 +21,19 @@ public abstract class PacketPlayOutSpawnPositionHandle extends PacketHandle {
/* ============================================================================== */
public abstract void setAngle(float angle);
public abstract float getAngle();
public abstract IntVector3 getPosition();
public abstract void setPosition(IntVector3 value);
public static PacketPlayOutSpawnPositionHandle createNew(RespawnConfigHandle spawnConfig) {
return T.createNew.invoke(spawnConfig);
}
public abstract RespawnConfigHandle getSpawn();
/**
* Stores class members for <b>net.minecraft.network.protocol.game.PacketPlayOutSpawnPosition</b>.
* Methods, fields, and constructors can be used without using Handle Objects.
*/
public static final class PacketPlayOutSpawnPositionClass extends Template.Class<PacketPlayOutSpawnPositionHandle> {
public final Template.Field.Converted<IntVector3> position = new Template.Field.Converted<IntVector3>();
public final Template.StaticMethod.Converted<PacketPlayOutSpawnPositionHandle> createNew = new Template.StaticMethod.Converted<PacketPlayOutSpawnPositionHandle>();
public final Template.Method<Void> setAngle = new Template.Method<Void>();
public final Template.Method<Float> getAngle = new Template.Method<Float>();
public final Template.Method.Converted<RespawnConfigHandle> getSpawn = new Template.Method.Converted<RespawnConfigHandle>();
}
@@ -0,0 +1,39 @@
package com.bergerkiller.generated.net.minecraft.network.protocol.game;
import com.bergerkiller.mountiplex.reflection.declarations.Template;
import com.bergerkiller.bukkit.common.resources.ResourceKey;
import com.bergerkiller.bukkit.common.resources.SoundEffect;
import com.bergerkiller.generated.net.minecraft.network.protocol.PacketHandle;
/**
* Instance wrapper handle for type <b>net.minecraft.network.protocol.game.PacketPlayOutStopSound</b>.
* To access members without creating a handle type, use the static {@link #T} member.
* New handles can be created from raw instances using {@link #createHandle(Object)}.
*/
@Template.InstanceType("net.minecraft.network.protocol.game.PacketPlayOutStopSound")
public abstract class PacketPlayOutStopSoundHandle extends PacketHandle {
/** @see PacketPlayOutStopSoundClass */
public static final PacketPlayOutStopSoundClass T = Template.Class.create(PacketPlayOutStopSoundClass.class, com.bergerkiller.bukkit.common.Common.TEMPLATE_RESOLVER);
/* ============================================================================== */
public static PacketPlayOutStopSoundHandle createHandle(Object handleInstance) {
return T.createHandle(handleInstance);
}
/* ============================================================================== */
public static PacketPlayOutStopSoundHandle createNew(ResourceKey<SoundEffect> soundEffect, String category) {
return T.createNew.invoke(soundEffect, category);
}
/**
* Stores class members for <b>net.minecraft.network.protocol.game.PacketPlayOutStopSound</b>.
* Methods, fields, and constructors can be used without using Handle Objects.
*/
public static final class PacketPlayOutStopSoundClass extends Template.Class<PacketPlayOutStopSoundHandle> {
public final Template.StaticMethod.Converted<PacketPlayOutStopSoundHandle> createNew = new Template.StaticMethod.Converted<PacketPlayOutStopSoundHandle>();
}
}
@@ -22,16 +22,22 @@ public abstract class PacketPlayOutUnloadChunkHandle extends PacketHandle {
/* ============================================================================== */
public abstract int getCx();
public abstract void setCx(int value);
public abstract int getCz();
public abstract void setCz(int value);
public abstract void setChunk(int cx, int cz);
public void setCx(int cx) {
setChunk(cx, getCz());
}
public void setCz(int cz) {
setChunk(getCx(), cz);
}
/**
* Stores class members for <b>net.minecraft.network.protocol.game.PacketPlayOutUnloadChunk</b>.
* Methods, fields, and constructors can be used without using Handle Objects.
*/
public static final class PacketPlayOutUnloadChunkClass extends Template.Class<PacketPlayOutUnloadChunkHandle> {
public final Template.Field.Integer cx = new Template.Field.Integer();
public final Template.Field.Integer cz = new Template.Field.Integer();
public final Template.Method<Integer> getCx = new Template.Method<Integer>();
public final Template.Method<Integer> getCz = new Template.Method<Integer>();
public final Template.Method<Void> setChunk = new Template.Method<Void>();
}
@@ -0,0 +1,41 @@
package com.bergerkiller.generated.net.minecraft.network.protocol.game;
import com.bergerkiller.mountiplex.reflection.declarations.Template;
import com.bergerkiller.generated.net.minecraft.network.protocol.PacketHandle;
/**
* Instance wrapper handle for type <b>net.minecraft.network.protocol.game.PacketPlayOutUpdateHealth</b>.
* To access members without creating a handle type, use the static {@link #T} member.
* New handles can be created from raw instances using {@link #createHandle(Object)}.
*/
@Template.InstanceType("net.minecraft.network.protocol.game.PacketPlayOutUpdateHealth")
public abstract class PacketPlayOutUpdateHealthHandle extends PacketHandle {
/** @see PacketPlayOutUpdateHealthClass */
public static final PacketPlayOutUpdateHealthClass T = Template.Class.create(PacketPlayOutUpdateHealthClass.class, com.bergerkiller.bukkit.common.Common.TEMPLATE_RESOLVER);
/* ============================================================================== */
public static PacketPlayOutUpdateHealthHandle createHandle(Object handleInstance) {
return T.createHandle(handleInstance);
}
/* ============================================================================== */
public abstract float getHealth();
public abstract void setHealth(float value);
public abstract int getFood();
public abstract void setFood(int value);
public abstract float getFoodSaturation();
public abstract void setFoodSaturation(float value);
/**
* Stores class members for <b>net.minecraft.network.protocol.game.PacketPlayOutUpdateHealth</b>.
* Methods, fields, and constructors can be used without using Handle Objects.
*/
public static final class PacketPlayOutUpdateHealthClass extends Template.Class<PacketPlayOutUpdateHealthHandle> {
public final Template.Field.Float health = new Template.Field.Float();
public final Template.Field.Integer food = new Template.Field.Integer();
public final Template.Field.Float foodSaturation = new Template.Field.Float();
}
}
@@ -0,0 +1,38 @@
package com.bergerkiller.generated.net.minecraft.network.protocol.game;
import com.bergerkiller.mountiplex.reflection.declarations.Template;
import com.bergerkiller.generated.net.minecraft.network.protocol.PacketHandle;
/**
* Instance wrapper handle for type <b>net.minecraft.network.protocol.game.PacketPlayOutUpdateTime</b>.
* To access members without creating a handle type, use the static {@link #T} member.
* New handles can be created from raw instances using {@link #createHandle(Object)}.
*/
@Template.InstanceType("net.minecraft.network.protocol.game.PacketPlayOutUpdateTime")
public abstract class PacketPlayOutUpdateTimeHandle extends PacketHandle {
/** @see PacketPlayOutUpdateTimeClass */
public static final PacketPlayOutUpdateTimeClass T = Template.Class.create(PacketPlayOutUpdateTimeClass.class, com.bergerkiller.bukkit.common.Common.TEMPLATE_RESOLVER);
/* ============================================================================== */
public static PacketPlayOutUpdateTimeHandle createHandle(Object handleInstance) {
return T.createHandle(handleInstance);
}
/* ============================================================================== */
public abstract long getGameTime();
public abstract void setGameTime(long value);
public abstract long getDayTime();
public abstract void setDayTime(long value);
/**
* Stores class members for <b>net.minecraft.network.protocol.game.PacketPlayOutUpdateTime</b>.
* Methods, fields, and constructors can be used without using Handle Objects.
*/
public static final class PacketPlayOutUpdateTimeClass extends Template.Class<PacketPlayOutUpdateTimeHandle> {
public final Template.Field.Long gameTime = new Template.Field.Long();
public final Template.Field.Long dayTime = new Template.Field.Long();
}
}
@@ -21,26 +21,27 @@ public abstract class PacketPlayOutVehicleMoveHandle extends PacketHandle {
/* ============================================================================== */
public static PacketPlayOutVehicleMoveHandle createNew(double posX, double posY, double posZ, float yaw, float pitch) {
return T.createNew.invoke(posX, posY, posZ, yaw, pitch);
}
public abstract double getPosX();
public abstract void setPosX(double value);
public abstract double getPosY();
public abstract void setPosY(double value);
public abstract double getPosZ();
public abstract void setPosZ(double value);
public abstract float getYaw();
public abstract void setYaw(float value);
public abstract float getPitch();
public abstract void setPitch(float value);
/**
* Stores class members for <b>net.minecraft.network.protocol.game.PacketPlayOutVehicleMove</b>.
* Methods, fields, and constructors can be used without using Handle Objects.
*/
public static final class PacketPlayOutVehicleMoveClass extends Template.Class<PacketPlayOutVehicleMoveHandle> {
public final Template.Field.Double posX = new Template.Field.Double();
public final Template.Field.Double posY = new Template.Field.Double();
public final Template.Field.Double posZ = new Template.Field.Double();
public final Template.Field.Float yaw = new Template.Field.Float();
public final Template.Field.Float pitch = new Template.Field.Float();
public final Template.StaticMethod.Converted<PacketPlayOutVehicleMoveHandle> createNew = new Template.StaticMethod.Converted<PacketPlayOutVehicleMoveHandle>();
public final Template.Method<Double> getPosX = new Template.Method<Double>();
public final Template.Method<Double> getPosY = new Template.Method<Double>();
public final Template.Method<Double> getPosZ = new Template.Method<Double>();
public final Template.Method<Float> getYaw = new Template.Method<Float>();
public final Template.Method<Float> getPitch = new Template.Method<Float>();
}
@@ -0,0 +1,41 @@
package com.bergerkiller.generated.net.minecraft.network.protocol.game;
import com.bergerkiller.mountiplex.reflection.declarations.Template;
import com.bergerkiller.generated.net.minecraft.network.protocol.PacketHandle;
/**
* Instance wrapper handle for type <b>net.minecraft.network.protocol.game.PacketPlayOutWindowData</b>.
* To access members without creating a handle type, use the static {@link #T} member.
* New handles can be created from raw instances using {@link #createHandle(Object)}.
*/
@Template.InstanceType("net.minecraft.network.protocol.game.PacketPlayOutWindowData")
public abstract class PacketPlayOutWindowDataHandle extends PacketHandle {
/** @see PacketPlayOutWindowDataClass */
public static final PacketPlayOutWindowDataClass T = Template.Class.create(PacketPlayOutWindowDataClass.class, com.bergerkiller.bukkit.common.Common.TEMPLATE_RESOLVER);
/* ============================================================================== */
public static PacketPlayOutWindowDataHandle createHandle(Object handleInstance) {
return T.createHandle(handleInstance);
}
/* ============================================================================== */
public abstract int getWindowId();
public abstract void setWindowId(int value);
public abstract int getId();
public abstract void setId(int value);
public abstract int getValue();
public abstract void setValue(int value);
/**
* Stores class members for <b>net.minecraft.network.protocol.game.PacketPlayOutWindowData</b>.
* Methods, fields, and constructors can be used without using Handle Objects.
*/
public static final class PacketPlayOutWindowDataClass extends Template.Class<PacketPlayOutWindowDataHandle> {
public final Template.Field.Integer windowId = new Template.Field.Integer();
public final Template.Field.Integer id = new Template.Field.Integer();
public final Template.Field.Integer value = new Template.Field.Integer();
}
}
@@ -32,7 +32,6 @@ public abstract class PacketPlayOutWorldParticlesHandle extends PacketHandle {
public abstract void setPosX(double x);
public abstract void setPosY(double y);
public abstract void setPosZ(double z);
public void setParticle(com.bergerkiller.bukkit.common.resources.ParticleType<Void> particleType) {
setParticle(particleType, null);
}
@@ -41,7 +40,6 @@ public abstract class PacketPlayOutWorldParticlesHandle extends PacketHandle {
T.setParticle.invoker.invoke(getRaw(), particleType.getRawHandle(), value);
}
public void setPos(double x, double y, double z) {
setPosX(x);
setPosY(y);
@@ -22,46 +22,47 @@ public abstract class DataWatcherHandle extends Template.Handle {
return T.createHandle(handleInstance);
}
public static final DataWatcherHandle createNew(EntityHandle owner) {
return T.constr_owner.newInstance(owner);
}
/* ============================================================================== */
public static DataWatcherHandle createNew(EntityHandle owner) {
return T.createNew.invoke(owner);
}
public abstract EntityHandle getOwner();
public abstract void setOwner(EntityHandle owner);
public abstract DataWatcherHandle cloneWithOwner(EntityHandle owner);
public abstract List<PackedItem<?>> packChanges();
public abstract List<PackedItem<?>> packNonDefaults();
public abstract List<PackedItem<?>> packAll();
public abstract List<Item<?>> getCopyOfAllItems();
public abstract Item<Object> read(Key<?> key);
public abstract void register(Key<?> key, Object defaultValue);
public abstract void set(Key<?> key, Object value);
public abstract void forceSet(Key<?> key, Object value);
public abstract void setRawDefault(Key<?> dwo, Object rawDefaultValue);
public abstract void setRaw(Key<?> dwo, Object rawValue, boolean force);
public abstract Object get(Key<?> key);
public abstract boolean isChanged();
public abstract boolean isEmpty();
public static final Object UNSET_MARKER_VALUE = com.bergerkiller.bukkit.common.internal.logic.UnsetDataWatcherItemInit.UNSET_MARKER_VALUE;
public static DataWatcherHandle createNew(org.bukkit.entity.Entity owner) {
return createHandle(T.constr_owner.raw.newInstance(com.bergerkiller.bukkit.common.conversion.type.HandleConversion.toEntityHandle(owner)));
return createHandle(T.createNew.raw.invoke(com.bergerkiller.bukkit.common.conversion.type.HandleConversion.toEntityHandle(owner)));
}
public abstract EntityHandle getOwner();
public abstract void setOwner(EntityHandle value);
/**
* Stores class members for <b>net.minecraft.network.syncher.DataWatcher</b>.
* Methods, fields, and constructors can be used without using Handle Objects.
*/
public static final class DataWatcherClass extends Template.Class<DataWatcherHandle> {
public final Template.Constructor.Converted<DataWatcherHandle> constr_owner = new Template.Constructor.Converted<DataWatcherHandle>();
public final Template.Field.Converted<EntityHandle> owner = new Template.Field.Converted<EntityHandle>();
public final Template.StaticMethod.Converted<DataWatcherHandle> createNew = new Template.StaticMethod.Converted<DataWatcherHandle>();
public final Template.Method.Converted<EntityHandle> getOwner = new Template.Method.Converted<EntityHandle>();
public final Template.Method.Converted<Void> setOwner = new Template.Method.Converted<Void>();
public final Template.Method.Converted<DataWatcherHandle> cloneWithOwner = new Template.Method.Converted<DataWatcherHandle>();
public final Template.Method.Converted<List<PackedItem<?>>> packChanges = new Template.Method.Converted<List<PackedItem<?>>>();
public final Template.Method.Converted<List<PackedItem<?>>> packNonDefaults = new Template.Method.Converted<List<PackedItem<?>>>();
public final Template.Method.Converted<List<PackedItem<?>>> packAll = new Template.Method.Converted<List<PackedItem<?>>>();
public final Template.Method.Converted<List<Item<?>>> getCopyOfAllItems = new Template.Method.Converted<List<Item<?>>>();
public final Template.Method.Converted<Item<Object>> read = new Template.Method.Converted<Item<Object>>();
public final Template.Method<Void> register = new Template.Method<Void>();
public final Template.Method<Void> set = new Template.Method<Void>();
public final Template.Method<Void> forceSet = new Template.Method<Void>();
public final Template.Method.Converted<Void> setRawDefault = new Template.Method.Converted<Void>();
public final Template.Method.Converted<Void> setRaw = new Template.Method.Converted<Void>();
public final Template.Method<Object> get = new Template.Method<Object>();
public final Template.Method<Boolean> isChanged = new Template.Method<Boolean>();
public final Template.Method<Boolean> isEmpty = new Template.Method<Boolean>();
@@ -86,11 +87,11 @@ public abstract class DataWatcherHandle extends Template.Handle {
/* ============================================================================== */
public abstract void setChanged(boolean changed);
public abstract boolean isChanged();
public abstract Object getValue();
public abstract void setValue(Object value);
public abstract PackedItemHandle pack();
public abstract boolean isChanged();
public abstract void setChanged(boolean value);
/**
* Stores class members for <b>net.minecraft.network.syncher.DataWatcher.Item</b>.
* Methods, fields, and constructors can be used without using Handle Objects.
@@ -102,10 +103,9 @@ public abstract class DataWatcherHandle extends Template.Handle {
public final Template.Field.Integer keyId = new Template.Field.Integer();
@Template.Optional
public final Template.Field.Converted<Key<?>> key = new Template.Field.Converted<Key<?>>();
@Template.Optional
public final Template.Field<Object> value = new Template.Field<Object>();
public final Template.Field.Boolean changed = new Template.Field.Boolean();
public final Template.Method<Void> setChanged = new Template.Method<Void>();
public final Template.Method<Boolean> isChanged = new Template.Method<Boolean>();
public final Template.Method<Object> getValue = new Template.Method<Object>();
public final Template.Method<Void> setValue = new Template.Method<Void>();
public final Template.Method.Converted<PackedItemHandle> pack = new Template.Method.Converted<PackedItemHandle>();
Loaded 100 of 607 files, more files were not shown because too many files have changed in this diff. Show more