From 9315a1ac1a4b6df3e7e9df1713265ae9e18f6591 Mon Sep 17 00:00:00 2001 From: MATRIX-feather Date: Tue, 12 Dec 2023 13:59:02 +0800 Subject: [PATCH] misc: 1.20.4 --- gradle.properties | 10 +++---- .../morph/abilities/impl/FlyAbility.java | 2 +- .../impl/HealsFromEntityAbility.java | 2 +- .../impl/onAttack/ExtraKnockbackAbility.java | 2 +- .../morph/events/RevealingEventProcessor.java | 2 +- .../morph/misc/BlockDestroyHandler.java | 6 ++-- .../xiamomc/morph/misc/NilCommandSource.java | 2 +- .../java/xiamomc/morph/misc/NmsRecord.java | 6 ++-- .../morph/misc/PlayerOperationSimulator.java | 6 ++-- .../morph/providers/DisguiseProvider.java | 2 +- .../providers/VanillaDisguiseProvider.java | 7 ++--- .../morph/skills/impl/ExplodeMorphSkill.java | 4 +-- .../skills/impl/SonicBoomMorphSkill.java | 2 +- .../xiamomc/morph/updates/UpdateHandler.java | 2 +- .../utilities/EntityTargetingHelper.java | 2 +- .../morph/utilities/EntityTypeUtils.java | 4 +-- .../xiamomc/morph/utilities/ItemUtils.java | 2 +- .../xiamomc/morph/utilities/MapMetaUtils.java | 2 +- .../xiamomc/morph/utilities/NbtUtils.java | 2 +- .../xiamomc/morph/utilities/NmsUtils.java | 29 +++++++++++++++++++ 20 files changed, 61 insertions(+), 35 deletions(-) create mode 100644 src/main/java/xiamomc/morph/utilities/NmsUtils.java diff --git a/gradle.properties b/gradle.properties index bf2bbb4a..855d664c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,15 +1,15 @@ -project_version=0.13.5 +project_version=0.14.0 # FM Protocols protocols_version=09b2b0a077 protocols_use_local_build=false protocols_local_version=0.13.2 -minecraft_version=1.20.2-R0.1-SNAPSHOT +minecraft_version=1.20.4-R0.1-SNAPSHOT # Dependencies ld_version=10.0.33 pluginbase_version=306d580 -gsit_version=1.4.1 -papi_version=2.11.3 -bstats_version=3.0.1 +gsit_version=1.6.0 +papi_version=2.11.5 +bstats_version=3.0.2 diff --git a/src/main/java/xiamomc/morph/abilities/impl/FlyAbility.java b/src/main/java/xiamomc/morph/abilities/impl/FlyAbility.java index f85293ee..f0e45670 100644 --- a/src/main/java/xiamomc/morph/abilities/impl/FlyAbility.java +++ b/src/main/java/xiamomc/morph/abilities/impl/FlyAbility.java @@ -6,7 +6,7 @@ import org.bukkit.GameEvent; import org.bukkit.GameMode; import org.bukkit.NamespacedKey; -import org.bukkit.craftbukkit.v1_20_R2.entity.CraftPlayer; +import org.bukkit.craftbukkit.v1_20_R3.entity.CraftPlayer; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.player.PlayerGameModeChangeEvent; diff --git a/src/main/java/xiamomc/morph/abilities/impl/HealsFromEntityAbility.java b/src/main/java/xiamomc/morph/abilities/impl/HealsFromEntityAbility.java index 1f5595e3..3412f0db 100644 --- a/src/main/java/xiamomc/morph/abilities/impl/HealsFromEntityAbility.java +++ b/src/main/java/xiamomc/morph/abilities/impl/HealsFromEntityAbility.java @@ -7,7 +7,7 @@ import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; import org.bukkit.NamespacedKey; -import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_20_R3.entity.CraftEntity; import org.bukkit.entity.Player; import org.bukkit.entity.Projectile; import org.bukkit.event.entity.EntityDamageByEntityEvent; diff --git a/src/main/java/xiamomc/morph/abilities/impl/onAttack/ExtraKnockbackAbility.java b/src/main/java/xiamomc/morph/abilities/impl/onAttack/ExtraKnockbackAbility.java index 744ebbb2..18bd1e35 100644 --- a/src/main/java/xiamomc/morph/abilities/impl/onAttack/ExtraKnockbackAbility.java +++ b/src/main/java/xiamomc/morph/abilities/impl/onAttack/ExtraKnockbackAbility.java @@ -3,7 +3,7 @@ import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.ai.attributes.Attributes; import org.bukkit.NamespacedKey; -import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_20_R3.entity.CraftEntity; import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import xiamomc.morph.MorphManager; diff --git a/src/main/java/xiamomc/morph/events/RevealingEventProcessor.java b/src/main/java/xiamomc/morph/events/RevealingEventProcessor.java index 7fd055fb..613139d9 100644 --- a/src/main/java/xiamomc/morph/events/RevealingEventProcessor.java +++ b/src/main/java/xiamomc/morph/events/RevealingEventProcessor.java @@ -1,6 +1,6 @@ package xiamomc.morph.events; -import org.bukkit.craftbukkit.v1_20_R2.entity.CraftMob; +import org.bukkit.craftbukkit.v1_20_R3.entity.CraftMob; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; diff --git a/src/main/java/xiamomc/morph/misc/BlockDestroyHandler.java b/src/main/java/xiamomc/morph/misc/BlockDestroyHandler.java index c75a36c9..f27052eb 100644 --- a/src/main/java/xiamomc/morph/misc/BlockDestroyHandler.java +++ b/src/main/java/xiamomc/morph/misc/BlockDestroyHandler.java @@ -4,9 +4,9 @@ import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.level.block.state.BlockState; import org.bukkit.block.Block; -import org.bukkit.craftbukkit.v1_20_R2.CraftWorld; -import org.bukkit.craftbukkit.v1_20_R2.block.CraftBlock; -import org.bukkit.craftbukkit.v1_20_R2.entity.CraftPlayer; +import org.bukkit.craftbukkit.v1_20_R3.CraftWorld; +import org.bukkit.craftbukkit.v1_20_R3.block.CraftBlock; +import org.bukkit.craftbukkit.v1_20_R3.entity.CraftPlayer; import org.bukkit.entity.Player; import org.jetbrains.annotations.Nullable; diff --git a/src/main/java/xiamomc/morph/misc/NilCommandSource.java b/src/main/java/xiamomc/morph/misc/NilCommandSource.java index 7532f72d..76f22afc 100644 --- a/src/main/java/xiamomc/morph/misc/NilCommandSource.java +++ b/src/main/java/xiamomc/morph/misc/NilCommandSource.java @@ -1,7 +1,7 @@ package xiamomc.morph.misc; import net.kyori.adventure.text.Component; -import org.bukkit.craftbukkit.v1_20_R2.command.ServerCommandSender; +import org.bukkit.craftbukkit.v1_20_R3.command.ServerCommandSender; import org.jetbrains.annotations.NotNull; public final class NilCommandSource extends ServerCommandSender diff --git a/src/main/java/xiamomc/morph/misc/NmsRecord.java b/src/main/java/xiamomc/morph/misc/NmsRecord.java index 8666d065..286ed37b 100644 --- a/src/main/java/xiamomc/morph/misc/NmsRecord.java +++ b/src/main/java/xiamomc/morph/misc/NmsRecord.java @@ -3,9 +3,9 @@ import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayerGameMode; -import org.bukkit.craftbukkit.v1_20_R2.CraftWorld; -import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_20_R2.entity.CraftPlayer; +import org.bukkit.craftbukkit.v1_20_R3.CraftWorld; +import org.bukkit.craftbukkit.v1_20_R3.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_20_R3.entity.CraftPlayer; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; import org.jetbrains.annotations.Nullable; diff --git a/src/main/java/xiamomc/morph/misc/PlayerOperationSimulator.java b/src/main/java/xiamomc/morph/misc/PlayerOperationSimulator.java index 59817b50..dec9fa5b 100644 --- a/src/main/java/xiamomc/morph/misc/PlayerOperationSimulator.java +++ b/src/main/java/xiamomc/morph/misc/PlayerOperationSimulator.java @@ -10,9 +10,9 @@ import org.bukkit.FluidCollisionMode; import org.bukkit.GameMode; import org.bukkit.block.BlockFace; -import org.bukkit.craftbukkit.v1_20_R2.block.CraftBlock; -import org.bukkit.craftbukkit.v1_20_R2.entity.CraftPlayer; -import org.bukkit.craftbukkit.v1_20_R2.inventory.CraftItemStack; +import org.bukkit.craftbukkit.v1_20_R3.block.CraftBlock; +import org.bukkit.craftbukkit.v1_20_R3.entity.CraftPlayer; +import org.bukkit.craftbukkit.v1_20_R3.inventory.CraftItemStack; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; import org.bukkit.event.Event; diff --git a/src/main/java/xiamomc/morph/providers/DisguiseProvider.java b/src/main/java/xiamomc/morph/providers/DisguiseProvider.java index 24ef7af8..e99c9509 100644 --- a/src/main/java/xiamomc/morph/providers/DisguiseProvider.java +++ b/src/main/java/xiamomc/morph/providers/DisguiseProvider.java @@ -3,7 +3,7 @@ import it.unimi.dsi.fastutil.objects.ObjectArrayList; import net.kyori.adventure.text.Component; import net.minecraft.nbt.CompoundTag; -import org.bukkit.craftbukkit.v1_20_R2.entity.CraftLivingEntity; +import org.bukkit.craftbukkit.v1_20_R3.entity.CraftLivingEntity; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/xiamomc/morph/providers/VanillaDisguiseProvider.java b/src/main/java/xiamomc/morph/providers/VanillaDisguiseProvider.java index c94560ac..9a1b9411 100644 --- a/src/main/java/xiamomc/morph/providers/VanillaDisguiseProvider.java +++ b/src/main/java/xiamomc/morph/providers/VanillaDisguiseProvider.java @@ -26,10 +26,7 @@ import xiamomc.morph.misc.DisguiseState; import xiamomc.morph.misc.DisguiseTypes; import xiamomc.morph.misc.NmsRecord; -import xiamomc.morph.utilities.EntityTargetingHelper; -import xiamomc.morph.utilities.EntityTypeUtils; -import xiamomc.morph.utilities.NbtUtils; -import xiamomc.morph.utilities.ReflectionUtils; +import xiamomc.morph.utilities.*; import xiamomc.pluginbase.Annotations.Initializer; import xiamomc.pluginbase.Annotations.Resolved; import xiamomc.pluginbase.Bindables.Bindable; @@ -216,7 +213,7 @@ public void postConstructDisguise(DisguiseState state, @Nullable Entity targetEn var entityClazz = state.getEntityType().getEntityClass(); if (entityClazz != null) { - var entity = state.getPlayer().getWorld().spawn(loc, entityClazz, CreatureSpawnEvent.SpawnReason.CUSTOM); + var entity = NmsUtils.spawnEntity(state.getEntityType(), state.getPlayer().getWorld(), loc); if (entity instanceof LivingEntity living) { diff --git a/src/main/java/xiamomc/morph/skills/impl/ExplodeMorphSkill.java b/src/main/java/xiamomc/morph/skills/impl/ExplodeMorphSkill.java index 73a3c2bf..d12fe455 100644 --- a/src/main/java/xiamomc/morph/skills/impl/ExplodeMorphSkill.java +++ b/src/main/java/xiamomc/morph/skills/impl/ExplodeMorphSkill.java @@ -5,8 +5,8 @@ import org.bukkit.GameMode; import org.bukkit.GameRule; import org.bukkit.NamespacedKey; -import org.bukkit.craftbukkit.v1_20_R2.CraftWorld; -import org.bukkit.craftbukkit.v1_20_R2.entity.CraftPlayer; +import org.bukkit.craftbukkit.v1_20_R3.CraftWorld; +import org.bukkit.craftbukkit.v1_20_R3.entity.CraftPlayer; import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/xiamomc/morph/skills/impl/SonicBoomMorphSkill.java b/src/main/java/xiamomc/morph/skills/impl/SonicBoomMorphSkill.java index c36a2a82..e1e1bee3 100644 --- a/src/main/java/xiamomc/morph/skills/impl/SonicBoomMorphSkill.java +++ b/src/main/java/xiamomc/morph/skills/impl/SonicBoomMorphSkill.java @@ -6,7 +6,7 @@ import net.minecraft.world.entity.ai.attributes.Attributes; import org.bukkit.NamespacedKey; import org.bukkit.Particle; -import org.bukkit.craftbukkit.v1_20_R2.entity.CraftLivingEntity; +import org.bukkit.craftbukkit.v1_20_R3.entity.CraftLivingEntity; import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import xiamomc.morph.misc.DisguiseState; diff --git a/src/main/java/xiamomc/morph/updates/UpdateHandler.java b/src/main/java/xiamomc/morph/updates/UpdateHandler.java index 33be86cc..02a2ffdc 100644 --- a/src/main/java/xiamomc/morph/updates/UpdateHandler.java +++ b/src/main/java/xiamomc/morph/updates/UpdateHandler.java @@ -11,7 +11,7 @@ import org.bukkit.Bukkit; import org.bukkit.command.CommandSender; import org.bukkit.command.ConsoleCommandSender; -import org.bukkit.craftbukkit.v1_20_R2.command.ServerCommandSender; +import org.bukkit.craftbukkit.v1_20_R3.command.ServerCommandSender; import org.jetbrains.annotations.Nullable; import xiamomc.morph.MorphPlugin; import xiamomc.morph.MorphPluginObject; diff --git a/src/main/java/xiamomc/morph/utilities/EntityTargetingHelper.java b/src/main/java/xiamomc/morph/utilities/EntityTargetingHelper.java index b2c0b372..341818d7 100644 --- a/src/main/java/xiamomc/morph/utilities/EntityTargetingHelper.java +++ b/src/main/java/xiamomc/morph/utilities/EntityTargetingHelper.java @@ -9,7 +9,7 @@ import net.minecraft.world.entity.ai.goal.WrappedGoal; import net.minecraft.world.entity.ai.targeting.TargetingConditions; import net.minecraft.world.entity.player.Player; -import org.bukkit.craftbukkit.v1_20_R2.entity.CraftMob; +import org.bukkit.craftbukkit.v1_20_R3.entity.CraftMob; import org.bukkit.entity.Entity; import org.bukkit.entity.EntityType; import org.bukkit.entity.Mob; diff --git a/src/main/java/xiamomc/morph/utilities/EntityTypeUtils.java b/src/main/java/xiamomc/morph/utilities/EntityTypeUtils.java index 219ac175..9a6d1daf 100644 --- a/src/main/java/xiamomc/morph/utilities/EntityTypeUtils.java +++ b/src/main/java/xiamomc/morph/utilities/EntityTypeUtils.java @@ -13,8 +13,8 @@ import net.minecraft.world.entity.player.Player; import org.bukkit.Bukkit; import org.bukkit.Location; -import org.bukkit.craftbukkit.v1_20_R2.CraftWorld; -import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_20_R3.CraftWorld; +import org.bukkit.craftbukkit.v1_20_R3.entity.CraftEntity; import org.bukkit.entity.Enemy; import org.bukkit.entity.EntityType; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/xiamomc/morph/utilities/ItemUtils.java b/src/main/java/xiamomc/morph/utilities/ItemUtils.java index 29ba7d3f..7ee25669 100644 --- a/src/main/java/xiamomc/morph/utilities/ItemUtils.java +++ b/src/main/java/xiamomc/morph/utilities/ItemUtils.java @@ -4,7 +4,7 @@ import com.google.gson.GsonBuilder; import com.mojang.serialization.JsonOps; import org.bukkit.Material; -import org.bukkit.craftbukkit.v1_20_R2.inventory.CraftItemStack; +import org.bukkit.craftbukkit.v1_20_R3.inventory.CraftItemStack; import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/xiamomc/morph/utilities/MapMetaUtils.java b/src/main/java/xiamomc/morph/utilities/MapMetaUtils.java index 9e3f85da..5174fb4e 100644 --- a/src/main/java/xiamomc/morph/utilities/MapMetaUtils.java +++ b/src/main/java/xiamomc/morph/utilities/MapMetaUtils.java @@ -1,7 +1,7 @@ package xiamomc.morph.utilities; import it.unimi.dsi.fastutil.objects.ObjectArrayList; -import org.bukkit.craftbukkit.v1_20_R2.inventory.CraftItemStack; +import org.bukkit.craftbukkit.v1_20_R3.inventory.CraftItemStack; import org.bukkit.inventory.EntityEquipment; import org.bukkit.inventory.ItemStack; import org.slf4j.ILoggerFactory; diff --git a/src/main/java/xiamomc/morph/utilities/NbtUtils.java b/src/main/java/xiamomc/morph/utilities/NbtUtils.java index 6b892e98..8563e3b7 100644 --- a/src/main/java/xiamomc/morph/utilities/NbtUtils.java +++ b/src/main/java/xiamomc/morph/utilities/NbtUtils.java @@ -4,7 +4,7 @@ import net.minecraft.nbt.StringTagVisitor; import net.minecraft.nbt.TagParser; import net.minecraft.server.commands.data.EntityDataAccessor; -import org.bukkit.craftbukkit.v1_20_R2.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_20_R3.entity.CraftEntity; import org.bukkit.entity.Entity; import org.bukkit.entity.EntityType; import org.jetbrains.annotations.Contract; diff --git a/src/main/java/xiamomc/morph/utilities/NmsUtils.java b/src/main/java/xiamomc/morph/utilities/NmsUtils.java new file mode 100644 index 00000000..6ade2421 --- /dev/null +++ b/src/main/java/xiamomc/morph/utilities/NmsUtils.java @@ -0,0 +1,29 @@ +package xiamomc.morph.utilities; + +import net.minecraft.world.phys.Vec3; +import org.bukkit.Location; +import org.bukkit.World; +import org.bukkit.craftbukkit.v1_20_R3.CraftWorld; +import org.bukkit.entity.Entity; +import org.bukkit.entity.EntityType; + +public class NmsUtils +{ + public static Entity spawnEntity(EntityType bukkitType, World targetWorld, Location location) + { + var nmsType = EntityTypeUtils.getNmsType(bukkitType); + + if (nmsType == null) + throw new IllegalArgumentException("No NMS EntityType for bukkit type '%s'".formatted(bukkitType)); + + var nmsWorld = ((CraftWorld) targetWorld).getHandle(); + var nmsEntity = nmsType.create(nmsWorld); + + if (nmsEntity == null) + throw new IllegalArgumentException("Unable to spawn entity"); + + nmsEntity.setPos(new Vec3(location.x(), location.y(), location.z())); + + return nmsEntity.getBukkitEntity(); + } +}