From 0e0be185dcd6f8ee432e59a15906008fbb8a8fe0 Mon Sep 17 00:00:00 2001 From: Sage M Date: Mon, 6 Dec 2021 21:35:30 -0600 Subject: [PATCH] Modulization of NMS versions for 1.18+ --- plugin/pom.xml | 173 ++++++++ .../libraryaddict/disguise/DisguiseAPI.java | 0 .../disguise/DisguiseConfig.java | 0 .../libraryaddict/disguise/LibsDisguises.java | 0 .../commands/DisguiseBaseCommand.java | 0 .../commands/LibsDisguisesCommand.java | 0 .../commands/disguise/DisguiseCommand.java | 0 .../disguise/DisguiseEntityCommand.java | 0 .../disguise/DisguisePlayerCommand.java | 0 .../disguise/DisguiseRadiusCommand.java | 0 .../interactions/CopyDisguiseInteraction.java | 0 .../DisguiseCloneInteraction.java | 0 .../DisguiseEntityInteraction.java | 0 .../DisguiseModifyInteraction.java | 0 .../UndisguiseEntityInteraction.java | 0 .../commands/libsdisguises/LDChangelog.java | 0 .../commands/libsdisguises/LDCommand.java | 0 .../commands/libsdisguises/LDConfig.java | 0 .../commands/libsdisguises/LDCount.java | 0 .../libsdisguises/LDDebugMineSkin.java | 0 .../commands/libsdisguises/LDDebugPlayer.java | 0 .../commands/libsdisguises/LDHelp.java | 0 .../commands/libsdisguises/LDJson.java | 0 .../commands/libsdisguises/LDMetaInfo.java | 0 .../commands/libsdisguises/LDMods.java | 0 .../commands/libsdisguises/LDPermTest.java | 0 .../commands/libsdisguises/LDReload.java | 0 .../commands/libsdisguises/LDScoreboard.java | 0 .../commands/libsdisguises/LDUpdate.java | 0 .../libsdisguises/LDUpdateProtocolLib.java | 0 .../commands/libsdisguises/LDUploadLogs.java | 0 .../modify/DisguiseModifyCommand.java | 0 .../modify/DisguiseModifyEntityCommand.java | 0 .../modify/DisguiseModifyPlayerCommand.java | 0 .../modify/DisguiseModifyRadiusCommand.java | 0 .../undisguise/UndisguiseCommand.java | 0 .../undisguise/UndisguiseEntityCommand.java | 0 .../undisguise/UndisguisePlayerCommand.java | 0 .../undisguise/UndisguiseRadiusCommand.java | 0 .../commands/utils/CopyDisguiseCommand.java | 0 .../commands/utils/DisguiseCloneCommand.java | 0 .../commands/utils/DisguiseHelpCommand.java | 0 .../utils/DisguiseViewBarCommand.java | 0 .../utils/DisguiseViewSelfCommand.java | 0 .../commands/utils/GrabHeadCommand.java | 0 .../commands/utils/GrabSkinCommand.java | 0 .../commands/utils/SaveDisguiseCommand.java | 0 .../disguise/disguisetypes/AnimalColor.java | 0 .../disguise/disguisetypes/Disguise.java | 0 .../disguisetypes/DisguiseRunnable.java | 0 .../disguise/disguisetypes/DisguiseType.java | 0 .../disguise/disguisetypes/EntityPose.java | 0 .../disguise/disguisetypes/FlagWatcher.java | 0 .../disguise/disguisetypes/GolemCrack.java | 0 .../disguise/disguisetypes/LibsEquipment.java | 0 .../disguise/disguisetypes/MetaIndex.java | 0 .../disguise/disguisetypes/MiscDisguise.java | 0 .../disguise/disguisetypes/MobDisguise.java | 0 .../disguisetypes/ModdedDisguise.java | 0 .../disguisetypes/PlayerDisguise.java | 0 .../disguise/disguisetypes/RabbitType.java | 0 .../disguisetypes/TargetedDisguise.java | 0 .../disguise/disguisetypes/VillagerData.java | 0 .../watchers/AbstractHorseWatcher.java | 0 .../watchers/AbstractSkeletonWatcher.java | 0 .../watchers/AbstractVillagerWatcher.java | 0 .../watchers/AgeableWatcher.java | 0 .../watchers/AreaEffectCloudWatcher.java | 0 .../watchers/ArmorStandWatcher.java | 0 .../disguisetypes/watchers/ArrowWatcher.java | 0 .../watchers/AxolotlWatcher.java | 0 .../disguisetypes/watchers/BatWatcher.java | 0 .../disguisetypes/watchers/BeeWatcher.java | 0 .../disguisetypes/watchers/BlazeWatcher.java | 0 .../disguisetypes/watchers/BoatWatcher.java | 0 .../disguisetypes/watchers/CatWatcher.java | 0 .../watchers/ChestedHorseWatcher.java | 0 .../watchers/CreeperWatcher.java | 0 .../watchers/DolphinWatcher.java | 0 .../disguisetypes/watchers/DonkeyWatcher.java | 0 .../watchers/DroppedItemWatcher.java | 0 .../disguisetypes/watchers/EggWatcher.java | 0 .../watchers/EnderCrystalWatcher.java | 0 .../watchers/EnderDragonWatcher.java | 0 .../watchers/EnderPearlWatcher.java | 0 .../watchers/EnderSignalWatcher.java | 0 .../watchers/EndermanWatcher.java | 0 .../watchers/FallingBlockWatcher.java | 0 .../watchers/FireballWatcher.java | 0 .../watchers/FireworkWatcher.java | 0 .../disguisetypes/watchers/FishWatcher.java | 0 .../watchers/FishingHookWatcher.java | 0 .../disguisetypes/watchers/FoxWatcher.java | 0 .../disguisetypes/watchers/GhastWatcher.java | 0 .../watchers/GlowSquidWatcher.java | 0 .../disguisetypes/watchers/GoatWatcher.java | 0 .../watchers/GuardianWatcher.java | 0 .../disguisetypes/watchers/HoglinWatcher.java | 0 .../disguisetypes/watchers/HorseWatcher.java | 0 .../watchers/IllagerWatcher.java | 0 .../watchers/IllagerWizardWatcher.java | 0 .../watchers/InsentientWatcher.java | 0 .../watchers/IronGolemWatcher.java | 0 .../watchers/ItemFrameWatcher.java | 0 .../disguisetypes/watchers/LivingWatcher.java | 0 .../disguisetypes/watchers/LlamaWatcher.java | 0 .../watchers/MinecartCommandWatcher.java | 0 .../watchers/MinecartFurnaceWatcher.java | 0 .../watchers/MinecartWatcher.java | 0 .../disguisetypes/watchers/ModdedWatcher.java | 0 .../disguisetypes/watchers/MuleWatcher.java | 0 .../watchers/MushroomCowWatcher.java | 0 .../disguisetypes/watchers/OcelotWatcher.java | 0 .../watchers/PaintingWatcher.java | 0 .../disguisetypes/watchers/PandaWatcher.java | 0 .../disguisetypes/watchers/ParrotWatcher.java | 0 .../watchers/PhantomWatcher.java | 0 .../disguisetypes/watchers/PigWatcher.java | 0 .../watchers/PiglinAbstractWatcher.java | 0 .../watchers/PiglinBruteWatcher.java | 0 .../disguisetypes/watchers/PiglinWatcher.java | 0 .../watchers/PillagerWatcher.java | 0 .../disguisetypes/watchers/PlayerWatcher.java | 0 .../watchers/PolarBearWatcher.java | 0 .../watchers/PufferFishWatcher.java | 0 .../disguisetypes/watchers/RabbitWatcher.java | 0 .../disguisetypes/watchers/RaiderWatcher.java | 0 .../watchers/RavagerWatcher.java | 0 .../disguisetypes/watchers/SheepWatcher.java | 0 .../watchers/ShulkerWatcher.java | 0 .../watchers/SkeletonHorseWatcher.java | 0 .../watchers/SkeletonWatcher.java | 0 .../disguisetypes/watchers/SlimeWatcher.java | 0 .../watchers/SmallFireballWatcher.java | 0 .../watchers/SnowballWatcher.java | 0 .../watchers/SnowmanWatcher.java | 0 .../disguisetypes/watchers/SpiderWatcher.java | 0 .../watchers/SplashPotionWatcher.java | 0 .../disguisetypes/watchers/SquidWatcher.java | 0 .../disguisetypes/watchers/StrayWatcher.java | 0 .../watchers/StriderWatcher.java | 0 .../disguisetypes/watchers/TNTWatcher.java | 0 .../watchers/TameableWatcher.java | 0 .../watchers/ThrowableWatcher.java | 0 .../watchers/ThrownExpBottleWatcher.java | 0 .../watchers/TippedArrowWatcher.java | 0 .../watchers/TraderLlamaWatcher.java | 0 .../watchers/TridentWatcher.java | 0 .../watchers/TropicalFishWatcher.java | 0 .../disguisetypes/watchers/TurtleWatcher.java | 0 .../disguisetypes/watchers/VexWatcher.java | 0 .../watchers/VillagerWatcher.java | 0 .../watchers/VindicatorWatcher.java | 0 .../watchers/WanderingTraderWatcher.java | 0 .../disguisetypes/watchers/WitchWatcher.java | 0 .../watchers/WitherSkeletonWatcher.java | 0 .../watchers/WitherSkullWatcher.java | 0 .../disguisetypes/watchers/WitherWatcher.java | 0 .../disguisetypes/watchers/WolfWatcher.java | 0 .../disguisetypes/watchers/ZoglinWatcher.java | 0 .../watchers/ZombieHorseWatcher.java | 0 .../watchers/ZombieVillagerWatcher.java | 0 .../disguisetypes/watchers/ZombieWatcher.java | 0 .../disguise/events/DisguiseEvent.java | 0 .../events/DisguiseInteractEvent.java | 0 .../disguise/events/UndisguiseEvent.java | 0 .../disguise/utilities/DisguiseUtilities.java | 0 .../disguise/utilities/DisguiseValues.java | 0 .../utilities/LibsEntityInteract.java | 0 .../disguise/utilities/LibsPremium.java | 0 .../disguise/utilities/SkinUtils.java | 0 .../utilities/config/ConfigLoader.java | 0 .../config/DisguiseCommandConfig.java | 0 .../utilities/json/SerializerBlockData.java | 0 .../json/SerializerChatComponent.java | 0 .../utilities/json/SerializerDisguise.java | 0 .../utilities/json/SerializerFlagWatcher.java | 0 .../utilities/json/SerializerGameProfile.java | 0 .../utilities/json/SerializerItemStack.java | 0 .../utilities/json/SerializerMetaIndex.java | 0 .../utilities/json/SerializerParticle.java | 0 .../json/SerializerWrappedBlockData.java | 0 .../utilities/listeners/DisguiseListener.java | 0 .../utilities/listeners/ModdedListener.java | 0 .../listeners/PaperDisguiseListener.java | 0 .../listeners/PlayerSkinHandler.java | 0 .../disguise/utilities/metrics/Metrics.java | 0 .../utilities/metrics/MetricsInitalizer.java | 0 .../utilities/mineskin/MineSkinAPI.java | 0 .../utilities/mineskin/MineSkinResponse.java | 0 .../utilities/modded/ModdedEntity.java | 0 .../utilities/modded/ModdedManager.java | 0 .../utilities/packets/IPacketHandler.java | 0 .../utilities/packets/LibsPackets.java | 0 .../utilities/packets/PacketsHandler.java | 0 .../utilities/packets/PacketsManager.java | 0 .../PacketHandlerAnimation.java | 0 .../PacketHandlerAttachEntity.java | 0 .../PacketHandlerAttributes.java | 0 .../packethandlers/PacketHandlerCollect.java | 0 .../PacketHandlerEntityStatus.java | 0 .../PacketHandlerEquipment.java | 0 .../PacketHandlerHeadRotation.java | 0 .../packethandlers/PacketHandlerMetadata.java | 0 .../packethandlers/PacketHandlerMovement.java | 0 .../packethandlers/PacketHandlerSpawn.java | 0 .../packethandlers/PacketHandlerVelocity.java | 0 .../PacketListenerClientCustomPayload.java | 0 .../PacketListenerClientInteract.java | 0 .../PacketListenerEntityDestroy.java | 0 .../PacketListenerInventory.java | 0 .../packetlisteners/PacketListenerMain.java | 0 .../PacketListenerModdedClient.java | 0 .../PacketListenerScoreboardTeam.java | 0 .../packetlisteners/PacketListenerSounds.java | 0 .../PacketListenerTabList.java | 0 .../PacketListenerViewSelfDisguise.java | 0 .../disguise/utilities/params/ParamInfo.java | 0 .../utilities/params/ParamInfoManager.java | 0 .../utilities/params/ParamInfoTypes.java | 0 .../utilities/params/types/ParamInfoEnum.java | 0 .../params/types/base/ParamInfoBoolean.java | 0 .../params/types/base/ParamInfoDouble.java | 0 .../params/types/base/ParamInfoFloat.java | 0 .../types/base/ParamInfoFloatNullable.java | 0 .../params/types/base/ParamInfoInteger.java | 0 .../params/types/base/ParamInfoString.java | 0 .../types/custom/ParamInfoBlockData.java | 0 .../types/custom/ParamInfoBlockPosition.java | 0 .../types/custom/ParamInfoChatColor.java | 0 .../params/types/custom/ParamInfoColor.java | 0 .../types/custom/ParamInfoEulerAngle.java | 0 .../types/custom/ParamInfoGameProfile.java | 0 .../types/custom/ParamInfoItemBlock.java | 0 .../types/custom/ParamInfoItemStack.java | 0 .../types/custom/ParamInfoItemStackArray.java | 0 .../types/custom/ParamInfoParticle.java | 0 .../types/custom/ParamInfoPotionEffect.java | 0 .../types/custom/ParamInfoSoundGroup.java | 0 .../params/types/custom/ParamInfoTime.java | 0 .../parser/DisguiseParseException.java | 0 .../utilities/parser/DisguiseParser.java | 0 .../utilities/parser/DisguisePerm.java | 0 .../utilities/parser/DisguisePermissions.java | 0 .../utilities/parser/ParsedDisguise.java | 0 .../utilities/parser/RandomDefaultValue.java | 0 .../utilities/parser/WatcherMethod.java | 0 .../utilities/plugin/BisectHosting.java | 0 .../utilities/plugin/PluginInformation.java | 0 .../utilities/reflection/ClassGetter.java | 0 .../utilities/reflection/FakeBoundingBox.java | 0 .../reflection/LibsProfileLookup.java | 0 .../reflection/LibsProfileLookupCaller.java | 0 .../utilities/reflection/NmsAddedIn.java | 0 .../utilities/reflection/NmsRemovedIn.java | 0 .../utilities/reflection/NmsVersion.java | 3 +- .../reflection/ReflectionManager.java | 265 ++++++++++- .../utilities/reflection/WatcherInfo.java | 0 .../utilities/sounds/DisguiseSoundEnums.java | 0 .../disguise/utilities/sounds/SoundGroup.java | 0 .../utilities/sounds/SoundManager.java | 0 .../utilities/translations/LibsMsg.java | 0 .../translations/TranslateFiller.java | 0 .../utilities/translations/TranslateType.java | 0 .../utilities/updates/DisguiseUpdate.java | 0 .../disguise/utilities/updates/LDGithub.java | 0 .../disguise/utilities/updates/LDJenkins.java | 0 .../utilities/updates/UpdateChecker.java | 0 .../utilities/watchers/CompileMethods.java | 2 + .../utilities/watchers/DisguiseMethods.java | 0 .../src}/main/resources/configs/combat.yml | 0 .../src}/main/resources/configs/commands.yml | 0 .../src}/main/resources/configs/disguises.yml | 0 .../src}/main/resources/configs/features.yml | 0 .../main/resources/configs/libsdisguises.yml | 0 .../src}/main/resources/configs/nametags.yml | 0 .../src}/main/resources/configs/players.yml | 0 .../src}/main/resources/configs/protocol.yml | 0 .../src}/main/resources/configs/sanity.yml | 0 .../src}/main/resources/configs/sounds.yml | 0 .../src}/main/resources/internal.yml | 0 {src => plugin/src}/main/resources/plugin.yml | 0 .../disguisetypes/DisguiseCloneTest.java | 0 .../disguise/utilities/DisguiseTypesTest.java | 0 .../utilities/DisguiseUtilitiesTest.java | 0 .../parser/DisguisePermissionsTest.java | 0 pom.xml | 176 ++------ shared/pom.xml | 29 ++ .../reflection/ReflectionManagerAbstract.java | 140 ++++++ v1_18_R1/pom.xml | 79 ++++ .../reflection/ReflectionManager.java | 414 ++++++++++++++++++ 291 files changed, 1119 insertions(+), 162 deletions(-) create mode 100644 plugin/pom.xml rename {src => plugin/src}/main/java/me/libraryaddict/disguise/DisguiseAPI.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/DisguiseConfig.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/LibsDisguises.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/commands/DisguiseBaseCommand.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/commands/LibsDisguisesCommand.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/commands/disguise/DisguiseCommand.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/commands/disguise/DisguiseEntityCommand.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/commands/disguise/DisguisePlayerCommand.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/commands/disguise/DisguiseRadiusCommand.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/commands/interactions/CopyDisguiseInteraction.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/commands/interactions/DisguiseCloneInteraction.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/commands/interactions/DisguiseEntityInteraction.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/commands/interactions/DisguiseModifyInteraction.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/commands/interactions/UndisguiseEntityInteraction.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDChangelog.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDCommand.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDConfig.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDCount.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDDebugMineSkin.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDDebugPlayer.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDHelp.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDJson.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDMetaInfo.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDMods.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDPermTest.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDReload.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDScoreboard.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDUpdate.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDUpdateProtocolLib.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDUploadLogs.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/commands/modify/DisguiseModifyCommand.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/commands/modify/DisguiseModifyEntityCommand.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/commands/modify/DisguiseModifyPlayerCommand.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/commands/modify/DisguiseModifyRadiusCommand.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/commands/undisguise/UndisguiseCommand.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/commands/undisguise/UndisguiseEntityCommand.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/commands/undisguise/UndisguisePlayerCommand.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/commands/undisguise/UndisguiseRadiusCommand.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/commands/utils/CopyDisguiseCommand.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/commands/utils/DisguiseCloneCommand.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/commands/utils/DisguiseHelpCommand.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/commands/utils/DisguiseViewBarCommand.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/commands/utils/DisguiseViewSelfCommand.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/commands/utils/GrabHeadCommand.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/commands/utils/GrabSkinCommand.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/commands/utils/SaveDisguiseCommand.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/AnimalColor.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/Disguise.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/DisguiseRunnable.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/DisguiseType.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/EntityPose.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/FlagWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/GolemCrack.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/LibsEquipment.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/MetaIndex.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/MiscDisguise.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/MobDisguise.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/ModdedDisguise.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/PlayerDisguise.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/RabbitType.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/TargetedDisguise.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/VillagerData.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/AbstractHorseWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/AbstractSkeletonWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/AbstractVillagerWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/AgeableWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/AreaEffectCloudWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ArmorStandWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ArrowWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/AxolotlWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/BatWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/BeeWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/BlazeWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/BoatWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/CatWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ChestedHorseWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/CreeperWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/DolphinWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/DonkeyWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/DroppedItemWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/EggWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/EnderCrystalWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/EnderDragonWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/EnderPearlWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/EnderSignalWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/EndermanWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/FallingBlockWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/FireballWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/FireworkWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/FishWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/FishingHookWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/FoxWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/GhastWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/GlowSquidWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/GoatWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/GuardianWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/HoglinWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/HorseWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/IllagerWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/IllagerWizardWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/InsentientWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/IronGolemWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ItemFrameWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/LivingWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/LlamaWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/MinecartCommandWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/MinecartFurnaceWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/MinecartWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ModdedWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/MuleWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/MushroomCowWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/OcelotWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PaintingWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PandaWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ParrotWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PhantomWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PigWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PiglinAbstractWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PiglinBruteWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PiglinWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PillagerWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PlayerWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PolarBearWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PufferFishWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/RabbitWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/RaiderWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/RavagerWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/SheepWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ShulkerWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/SkeletonHorseWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/SkeletonWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/SlimeWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/SmallFireballWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/SnowballWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/SnowmanWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/SpiderWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/SplashPotionWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/SquidWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/StrayWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/StriderWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/TNTWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/TameableWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ThrowableWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ThrownExpBottleWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/TippedArrowWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/TraderLlamaWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/TridentWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/TropicalFishWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/TurtleWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/VexWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/VillagerWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/VindicatorWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/WanderingTraderWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/WitchWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/WitherSkeletonWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/WitherSkullWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/WitherWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/WolfWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ZoglinWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ZombieHorseWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ZombieVillagerWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ZombieWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/events/DisguiseEvent.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/events/DisguiseInteractEvent.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/events/UndisguiseEvent.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/DisguiseUtilities.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/DisguiseValues.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/LibsEntityInteract.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/LibsPremium.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/SkinUtils.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/config/ConfigLoader.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/config/DisguiseCommandConfig.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/json/SerializerBlockData.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/json/SerializerChatComponent.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/json/SerializerDisguise.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/json/SerializerFlagWatcher.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/json/SerializerGameProfile.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/json/SerializerItemStack.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/json/SerializerMetaIndex.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/json/SerializerParticle.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/json/SerializerWrappedBlockData.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/listeners/DisguiseListener.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/listeners/ModdedListener.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/listeners/PaperDisguiseListener.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/listeners/PlayerSkinHandler.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/metrics/Metrics.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/metrics/MetricsInitalizer.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/mineskin/MineSkinAPI.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/mineskin/MineSkinResponse.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/modded/ModdedEntity.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/modded/ModdedManager.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/packets/IPacketHandler.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/packets/LibsPackets.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/packets/PacketsHandler.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/packets/PacketsManager.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerAnimation.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerAttachEntity.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerAttributes.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerCollect.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerEntityStatus.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerEquipment.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerHeadRotation.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerMetadata.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerMovement.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerSpawn.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerVelocity.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/packets/packetlisteners/PacketListenerClientCustomPayload.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/packets/packetlisteners/PacketListenerClientInteract.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/packets/packetlisteners/PacketListenerEntityDestroy.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/packets/packetlisteners/PacketListenerInventory.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/packets/packetlisteners/PacketListenerMain.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/packets/packetlisteners/PacketListenerModdedClient.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/packets/packetlisteners/PacketListenerScoreboardTeam.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/packets/packetlisteners/PacketListenerSounds.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/packets/packetlisteners/PacketListenerTabList.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/packets/packetlisteners/PacketListenerViewSelfDisguise.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/params/ParamInfo.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/params/ParamInfoManager.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/params/ParamInfoTypes.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/params/types/ParamInfoEnum.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/params/types/base/ParamInfoBoolean.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/params/types/base/ParamInfoDouble.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/params/types/base/ParamInfoFloat.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/params/types/base/ParamInfoFloatNullable.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/params/types/base/ParamInfoInteger.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/params/types/base/ParamInfoString.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoBlockData.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoBlockPosition.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoChatColor.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoColor.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoEulerAngle.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoGameProfile.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoItemBlock.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoItemStack.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoItemStackArray.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoParticle.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoPotionEffect.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoSoundGroup.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoTime.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/parser/DisguiseParseException.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/parser/DisguiseParser.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/parser/DisguisePerm.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/parser/DisguisePermissions.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/parser/ParsedDisguise.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/parser/RandomDefaultValue.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/parser/WatcherMethod.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/plugin/BisectHosting.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/plugin/PluginInformation.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/reflection/ClassGetter.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/reflection/FakeBoundingBox.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/reflection/LibsProfileLookup.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/reflection/LibsProfileLookupCaller.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/reflection/NmsAddedIn.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/reflection/NmsRemovedIn.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/reflection/NmsVersion.java (95%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/reflection/ReflectionManager.java (89%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/reflection/WatcherInfo.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/sounds/DisguiseSoundEnums.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/sounds/SoundGroup.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/sounds/SoundManager.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/translations/LibsMsg.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/translations/TranslateFiller.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/translations/TranslateType.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/updates/DisguiseUpdate.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/updates/LDGithub.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/updates/LDJenkins.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/updates/UpdateChecker.java (100%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/watchers/CompileMethods.java (98%) rename {src => plugin/src}/main/java/me/libraryaddict/disguise/utilities/watchers/DisguiseMethods.java (100%) rename {src => plugin/src}/main/resources/configs/combat.yml (100%) rename {src => plugin/src}/main/resources/configs/commands.yml (100%) rename {src => plugin/src}/main/resources/configs/disguises.yml (100%) rename {src => plugin/src}/main/resources/configs/features.yml (100%) rename {src => plugin/src}/main/resources/configs/libsdisguises.yml (100%) rename {src => plugin/src}/main/resources/configs/nametags.yml (100%) rename {src => plugin/src}/main/resources/configs/players.yml (100%) rename {src => plugin/src}/main/resources/configs/protocol.yml (100%) rename {src => plugin/src}/main/resources/configs/sanity.yml (100%) rename {src => plugin/src}/main/resources/configs/sounds.yml (100%) rename {src => plugin/src}/main/resources/internal.yml (100%) rename {src => plugin/src}/main/resources/plugin.yml (100%) rename {src => plugin/src}/test/java/me/libraryaddict/disguise/disguisetypes/DisguiseCloneTest.java (100%) rename {src => plugin/src}/test/java/me/libraryaddict/disguise/utilities/DisguiseTypesTest.java (100%) rename {src => plugin/src}/test/java/me/libraryaddict/disguise/utilities/DisguiseUtilitiesTest.java (100%) rename {src => plugin/src}/test/java/me/libraryaddict/disguise/utilities/parser/DisguisePermissionsTest.java (100%) create mode 100644 shared/pom.xml create mode 100644 shared/src/main/java/me/libraryaddict/disguise/utilities/reflection/ReflectionManagerAbstract.java create mode 100644 v1_18_R1/pom.xml create mode 100644 v1_18_R1/src/main/java/me/libraryaddict/disguise/v1_18/utilities/reflection/ReflectionManager.java diff --git a/plugin/pom.xml b/plugin/pom.xml new file mode 100644 index 00000000..a3ae6844 --- /dev/null +++ b/plugin/pom.xml @@ -0,0 +1,173 @@ + + + + LibsDisguises + LibsDisguises + 10.0.26-SNAPSHOT + + 4.0.0 + + plugin + + + exec:java clean install + LibsDisguises + + + + src/main/resources + true + + plugin.yml + + + + src/main/resources + false + + **/* + + + + ${project.basedir} + + README.md + + + + + + maven-surefire-plugin + 3.0.0-M5 + + + org.codehaus.mojo + exec-maven-plugin + 3.0.0 + + + + my-execution + compile + + java + + + + + true + me.libraryaddict.disguise.utilities.watchers.CompileMethods + + + + org.apache.maven.plugins + maven-shade-plugin + 3.2.4 + + + package + + shade + + + + + true + + + net.kyori:* + LibsDisguises:* + + + + + net.kyori + ld-shaded.net.kyori + + + + + + + + + + org.projectlombok + lombok + ${lombok.version} + true + + + com.comphenix.protocol + ProtocolLib + + + org.spigotmc + spigot-api + + + org.spigotmc + spigot + + + + junit + junit + ${junit.version} + test + true + + + com.destroystokyo.paper + paper-api + ${paper-api.version} + provided + true + + + net.md-5 + bungeecord-chat + ${bungeecord-chat.version} + true + + + net.kyori + adventure-text-minimessage + ${adventure-minimessage.version} + compile + true + + + net.kyori + adventure-text-serializer-gson + ${adventure-serializer.version} + compile + true + + + net.kyori + adventure-api + ${adventure-api.version} + compile + true + + + + LibsDisguises + shared + ${project.version} + compile + true + + + LibsDisguises + v1_18_R1 + ${project.version} + compile + true + + + + \ No newline at end of file diff --git a/src/main/java/me/libraryaddict/disguise/DisguiseAPI.java b/plugin/src/main/java/me/libraryaddict/disguise/DisguiseAPI.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/DisguiseAPI.java rename to plugin/src/main/java/me/libraryaddict/disguise/DisguiseAPI.java diff --git a/src/main/java/me/libraryaddict/disguise/DisguiseConfig.java b/plugin/src/main/java/me/libraryaddict/disguise/DisguiseConfig.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/DisguiseConfig.java rename to plugin/src/main/java/me/libraryaddict/disguise/DisguiseConfig.java diff --git a/src/main/java/me/libraryaddict/disguise/LibsDisguises.java b/plugin/src/main/java/me/libraryaddict/disguise/LibsDisguises.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/LibsDisguises.java rename to plugin/src/main/java/me/libraryaddict/disguise/LibsDisguises.java diff --git a/src/main/java/me/libraryaddict/disguise/commands/DisguiseBaseCommand.java b/plugin/src/main/java/me/libraryaddict/disguise/commands/DisguiseBaseCommand.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/commands/DisguiseBaseCommand.java rename to plugin/src/main/java/me/libraryaddict/disguise/commands/DisguiseBaseCommand.java diff --git a/src/main/java/me/libraryaddict/disguise/commands/LibsDisguisesCommand.java b/plugin/src/main/java/me/libraryaddict/disguise/commands/LibsDisguisesCommand.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/commands/LibsDisguisesCommand.java rename to plugin/src/main/java/me/libraryaddict/disguise/commands/LibsDisguisesCommand.java diff --git a/src/main/java/me/libraryaddict/disguise/commands/disguise/DisguiseCommand.java b/plugin/src/main/java/me/libraryaddict/disguise/commands/disguise/DisguiseCommand.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/commands/disguise/DisguiseCommand.java rename to plugin/src/main/java/me/libraryaddict/disguise/commands/disguise/DisguiseCommand.java diff --git a/src/main/java/me/libraryaddict/disguise/commands/disguise/DisguiseEntityCommand.java b/plugin/src/main/java/me/libraryaddict/disguise/commands/disguise/DisguiseEntityCommand.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/commands/disguise/DisguiseEntityCommand.java rename to plugin/src/main/java/me/libraryaddict/disguise/commands/disguise/DisguiseEntityCommand.java diff --git a/src/main/java/me/libraryaddict/disguise/commands/disguise/DisguisePlayerCommand.java b/plugin/src/main/java/me/libraryaddict/disguise/commands/disguise/DisguisePlayerCommand.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/commands/disguise/DisguisePlayerCommand.java rename to plugin/src/main/java/me/libraryaddict/disguise/commands/disguise/DisguisePlayerCommand.java diff --git a/src/main/java/me/libraryaddict/disguise/commands/disguise/DisguiseRadiusCommand.java b/plugin/src/main/java/me/libraryaddict/disguise/commands/disguise/DisguiseRadiusCommand.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/commands/disguise/DisguiseRadiusCommand.java rename to plugin/src/main/java/me/libraryaddict/disguise/commands/disguise/DisguiseRadiusCommand.java diff --git a/src/main/java/me/libraryaddict/disguise/commands/interactions/CopyDisguiseInteraction.java b/plugin/src/main/java/me/libraryaddict/disguise/commands/interactions/CopyDisguiseInteraction.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/commands/interactions/CopyDisguiseInteraction.java rename to plugin/src/main/java/me/libraryaddict/disguise/commands/interactions/CopyDisguiseInteraction.java diff --git a/src/main/java/me/libraryaddict/disguise/commands/interactions/DisguiseCloneInteraction.java b/plugin/src/main/java/me/libraryaddict/disguise/commands/interactions/DisguiseCloneInteraction.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/commands/interactions/DisguiseCloneInteraction.java rename to plugin/src/main/java/me/libraryaddict/disguise/commands/interactions/DisguiseCloneInteraction.java diff --git a/src/main/java/me/libraryaddict/disguise/commands/interactions/DisguiseEntityInteraction.java b/plugin/src/main/java/me/libraryaddict/disguise/commands/interactions/DisguiseEntityInteraction.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/commands/interactions/DisguiseEntityInteraction.java rename to plugin/src/main/java/me/libraryaddict/disguise/commands/interactions/DisguiseEntityInteraction.java diff --git a/src/main/java/me/libraryaddict/disguise/commands/interactions/DisguiseModifyInteraction.java b/plugin/src/main/java/me/libraryaddict/disguise/commands/interactions/DisguiseModifyInteraction.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/commands/interactions/DisguiseModifyInteraction.java rename to plugin/src/main/java/me/libraryaddict/disguise/commands/interactions/DisguiseModifyInteraction.java diff --git a/src/main/java/me/libraryaddict/disguise/commands/interactions/UndisguiseEntityInteraction.java b/plugin/src/main/java/me/libraryaddict/disguise/commands/interactions/UndisguiseEntityInteraction.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/commands/interactions/UndisguiseEntityInteraction.java rename to plugin/src/main/java/me/libraryaddict/disguise/commands/interactions/UndisguiseEntityInteraction.java diff --git a/src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDChangelog.java b/plugin/src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDChangelog.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDChangelog.java rename to plugin/src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDChangelog.java diff --git a/src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDCommand.java b/plugin/src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDCommand.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDCommand.java rename to plugin/src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDCommand.java diff --git a/src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDConfig.java b/plugin/src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDConfig.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDConfig.java rename to plugin/src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDConfig.java diff --git a/src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDCount.java b/plugin/src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDCount.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDCount.java rename to plugin/src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDCount.java diff --git a/src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDDebugMineSkin.java b/plugin/src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDDebugMineSkin.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDDebugMineSkin.java rename to plugin/src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDDebugMineSkin.java diff --git a/src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDDebugPlayer.java b/plugin/src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDDebugPlayer.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDDebugPlayer.java rename to plugin/src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDDebugPlayer.java diff --git a/src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDHelp.java b/plugin/src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDHelp.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDHelp.java rename to plugin/src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDHelp.java diff --git a/src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDJson.java b/plugin/src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDJson.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDJson.java rename to plugin/src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDJson.java diff --git a/src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDMetaInfo.java b/plugin/src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDMetaInfo.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDMetaInfo.java rename to plugin/src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDMetaInfo.java diff --git a/src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDMods.java b/plugin/src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDMods.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDMods.java rename to plugin/src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDMods.java diff --git a/src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDPermTest.java b/plugin/src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDPermTest.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDPermTest.java rename to plugin/src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDPermTest.java diff --git a/src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDReload.java b/plugin/src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDReload.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDReload.java rename to plugin/src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDReload.java diff --git a/src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDScoreboard.java b/plugin/src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDScoreboard.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDScoreboard.java rename to plugin/src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDScoreboard.java diff --git a/src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDUpdate.java b/plugin/src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDUpdate.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDUpdate.java rename to plugin/src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDUpdate.java diff --git a/src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDUpdateProtocolLib.java b/plugin/src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDUpdateProtocolLib.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDUpdateProtocolLib.java rename to plugin/src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDUpdateProtocolLib.java diff --git a/src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDUploadLogs.java b/plugin/src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDUploadLogs.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDUploadLogs.java rename to plugin/src/main/java/me/libraryaddict/disguise/commands/libsdisguises/LDUploadLogs.java diff --git a/src/main/java/me/libraryaddict/disguise/commands/modify/DisguiseModifyCommand.java b/plugin/src/main/java/me/libraryaddict/disguise/commands/modify/DisguiseModifyCommand.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/commands/modify/DisguiseModifyCommand.java rename to plugin/src/main/java/me/libraryaddict/disguise/commands/modify/DisguiseModifyCommand.java diff --git a/src/main/java/me/libraryaddict/disguise/commands/modify/DisguiseModifyEntityCommand.java b/plugin/src/main/java/me/libraryaddict/disguise/commands/modify/DisguiseModifyEntityCommand.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/commands/modify/DisguiseModifyEntityCommand.java rename to plugin/src/main/java/me/libraryaddict/disguise/commands/modify/DisguiseModifyEntityCommand.java diff --git a/src/main/java/me/libraryaddict/disguise/commands/modify/DisguiseModifyPlayerCommand.java b/plugin/src/main/java/me/libraryaddict/disguise/commands/modify/DisguiseModifyPlayerCommand.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/commands/modify/DisguiseModifyPlayerCommand.java rename to plugin/src/main/java/me/libraryaddict/disguise/commands/modify/DisguiseModifyPlayerCommand.java diff --git a/src/main/java/me/libraryaddict/disguise/commands/modify/DisguiseModifyRadiusCommand.java b/plugin/src/main/java/me/libraryaddict/disguise/commands/modify/DisguiseModifyRadiusCommand.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/commands/modify/DisguiseModifyRadiusCommand.java rename to plugin/src/main/java/me/libraryaddict/disguise/commands/modify/DisguiseModifyRadiusCommand.java diff --git a/src/main/java/me/libraryaddict/disguise/commands/undisguise/UndisguiseCommand.java b/plugin/src/main/java/me/libraryaddict/disguise/commands/undisguise/UndisguiseCommand.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/commands/undisguise/UndisguiseCommand.java rename to plugin/src/main/java/me/libraryaddict/disguise/commands/undisguise/UndisguiseCommand.java diff --git a/src/main/java/me/libraryaddict/disguise/commands/undisguise/UndisguiseEntityCommand.java b/plugin/src/main/java/me/libraryaddict/disguise/commands/undisguise/UndisguiseEntityCommand.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/commands/undisguise/UndisguiseEntityCommand.java rename to plugin/src/main/java/me/libraryaddict/disguise/commands/undisguise/UndisguiseEntityCommand.java diff --git a/src/main/java/me/libraryaddict/disguise/commands/undisguise/UndisguisePlayerCommand.java b/plugin/src/main/java/me/libraryaddict/disguise/commands/undisguise/UndisguisePlayerCommand.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/commands/undisguise/UndisguisePlayerCommand.java rename to plugin/src/main/java/me/libraryaddict/disguise/commands/undisguise/UndisguisePlayerCommand.java diff --git a/src/main/java/me/libraryaddict/disguise/commands/undisguise/UndisguiseRadiusCommand.java b/plugin/src/main/java/me/libraryaddict/disguise/commands/undisguise/UndisguiseRadiusCommand.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/commands/undisguise/UndisguiseRadiusCommand.java rename to plugin/src/main/java/me/libraryaddict/disguise/commands/undisguise/UndisguiseRadiusCommand.java diff --git a/src/main/java/me/libraryaddict/disguise/commands/utils/CopyDisguiseCommand.java b/plugin/src/main/java/me/libraryaddict/disguise/commands/utils/CopyDisguiseCommand.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/commands/utils/CopyDisguiseCommand.java rename to plugin/src/main/java/me/libraryaddict/disguise/commands/utils/CopyDisguiseCommand.java diff --git a/src/main/java/me/libraryaddict/disguise/commands/utils/DisguiseCloneCommand.java b/plugin/src/main/java/me/libraryaddict/disguise/commands/utils/DisguiseCloneCommand.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/commands/utils/DisguiseCloneCommand.java rename to plugin/src/main/java/me/libraryaddict/disguise/commands/utils/DisguiseCloneCommand.java diff --git a/src/main/java/me/libraryaddict/disguise/commands/utils/DisguiseHelpCommand.java b/plugin/src/main/java/me/libraryaddict/disguise/commands/utils/DisguiseHelpCommand.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/commands/utils/DisguiseHelpCommand.java rename to plugin/src/main/java/me/libraryaddict/disguise/commands/utils/DisguiseHelpCommand.java diff --git a/src/main/java/me/libraryaddict/disguise/commands/utils/DisguiseViewBarCommand.java b/plugin/src/main/java/me/libraryaddict/disguise/commands/utils/DisguiseViewBarCommand.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/commands/utils/DisguiseViewBarCommand.java rename to plugin/src/main/java/me/libraryaddict/disguise/commands/utils/DisguiseViewBarCommand.java diff --git a/src/main/java/me/libraryaddict/disguise/commands/utils/DisguiseViewSelfCommand.java b/plugin/src/main/java/me/libraryaddict/disguise/commands/utils/DisguiseViewSelfCommand.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/commands/utils/DisguiseViewSelfCommand.java rename to plugin/src/main/java/me/libraryaddict/disguise/commands/utils/DisguiseViewSelfCommand.java diff --git a/src/main/java/me/libraryaddict/disguise/commands/utils/GrabHeadCommand.java b/plugin/src/main/java/me/libraryaddict/disguise/commands/utils/GrabHeadCommand.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/commands/utils/GrabHeadCommand.java rename to plugin/src/main/java/me/libraryaddict/disguise/commands/utils/GrabHeadCommand.java diff --git a/src/main/java/me/libraryaddict/disguise/commands/utils/GrabSkinCommand.java b/plugin/src/main/java/me/libraryaddict/disguise/commands/utils/GrabSkinCommand.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/commands/utils/GrabSkinCommand.java rename to plugin/src/main/java/me/libraryaddict/disguise/commands/utils/GrabSkinCommand.java diff --git a/src/main/java/me/libraryaddict/disguise/commands/utils/SaveDisguiseCommand.java b/plugin/src/main/java/me/libraryaddict/disguise/commands/utils/SaveDisguiseCommand.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/commands/utils/SaveDisguiseCommand.java rename to plugin/src/main/java/me/libraryaddict/disguise/commands/utils/SaveDisguiseCommand.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/AnimalColor.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/AnimalColor.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/AnimalColor.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/AnimalColor.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/Disguise.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/Disguise.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/Disguise.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/Disguise.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/DisguiseRunnable.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/DisguiseRunnable.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/DisguiseRunnable.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/DisguiseRunnable.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/DisguiseType.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/DisguiseType.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/DisguiseType.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/DisguiseType.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/EntityPose.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/EntityPose.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/EntityPose.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/EntityPose.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/FlagWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/FlagWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/FlagWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/FlagWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/GolemCrack.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/GolemCrack.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/GolemCrack.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/GolemCrack.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/LibsEquipment.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/LibsEquipment.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/LibsEquipment.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/LibsEquipment.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/MetaIndex.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/MetaIndex.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/MetaIndex.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/MetaIndex.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/MiscDisguise.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/MiscDisguise.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/MiscDisguise.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/MiscDisguise.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/MobDisguise.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/MobDisguise.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/MobDisguise.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/MobDisguise.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/ModdedDisguise.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/ModdedDisguise.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/ModdedDisguise.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/ModdedDisguise.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/PlayerDisguise.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/PlayerDisguise.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/PlayerDisguise.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/PlayerDisguise.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/RabbitType.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/RabbitType.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/RabbitType.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/RabbitType.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/TargetedDisguise.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/TargetedDisguise.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/TargetedDisguise.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/TargetedDisguise.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/VillagerData.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/VillagerData.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/VillagerData.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/VillagerData.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/AbstractHorseWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/AbstractHorseWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/AbstractHorseWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/AbstractHorseWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/AbstractSkeletonWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/AbstractSkeletonWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/AbstractSkeletonWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/AbstractSkeletonWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/AbstractVillagerWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/AbstractVillagerWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/AbstractVillagerWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/AbstractVillagerWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/AgeableWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/AgeableWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/AgeableWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/AgeableWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/AreaEffectCloudWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/AreaEffectCloudWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/AreaEffectCloudWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/AreaEffectCloudWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ArmorStandWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ArmorStandWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ArmorStandWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ArmorStandWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ArrowWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ArrowWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ArrowWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ArrowWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/AxolotlWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/AxolotlWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/AxolotlWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/AxolotlWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/BatWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/BatWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/BatWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/BatWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/BeeWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/BeeWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/BeeWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/BeeWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/BlazeWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/BlazeWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/BlazeWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/BlazeWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/BoatWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/BoatWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/BoatWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/BoatWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/CatWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/CatWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/CatWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/CatWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ChestedHorseWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ChestedHorseWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ChestedHorseWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ChestedHorseWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/CreeperWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/CreeperWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/CreeperWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/CreeperWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/DolphinWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/DolphinWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/DolphinWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/DolphinWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/DonkeyWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/DonkeyWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/DonkeyWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/DonkeyWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/DroppedItemWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/DroppedItemWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/DroppedItemWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/DroppedItemWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/EggWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/EggWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/EggWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/EggWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/EnderCrystalWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/EnderCrystalWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/EnderCrystalWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/EnderCrystalWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/EnderDragonWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/EnderDragonWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/EnderDragonWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/EnderDragonWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/EnderPearlWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/EnderPearlWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/EnderPearlWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/EnderPearlWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/EnderSignalWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/EnderSignalWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/EnderSignalWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/EnderSignalWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/EndermanWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/EndermanWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/EndermanWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/EndermanWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/FallingBlockWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/FallingBlockWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/FallingBlockWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/FallingBlockWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/FireballWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/FireballWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/FireballWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/FireballWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/FireworkWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/FireworkWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/FireworkWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/FireworkWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/FishWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/FishWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/FishWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/FishWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/FishingHookWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/FishingHookWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/FishingHookWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/FishingHookWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/FoxWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/FoxWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/FoxWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/FoxWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/GhastWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/GhastWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/GhastWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/GhastWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/GlowSquidWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/GlowSquidWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/GlowSquidWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/GlowSquidWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/GoatWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/GoatWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/GoatWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/GoatWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/GuardianWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/GuardianWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/GuardianWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/GuardianWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/HoglinWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/HoglinWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/HoglinWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/HoglinWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/HorseWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/HorseWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/HorseWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/HorseWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/IllagerWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/IllagerWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/IllagerWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/IllagerWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/IllagerWizardWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/IllagerWizardWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/IllagerWizardWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/IllagerWizardWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/InsentientWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/InsentientWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/InsentientWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/InsentientWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/IronGolemWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/IronGolemWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/IronGolemWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/IronGolemWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ItemFrameWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ItemFrameWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ItemFrameWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ItemFrameWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/LivingWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/LivingWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/LivingWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/LivingWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/LlamaWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/LlamaWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/LlamaWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/LlamaWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/MinecartCommandWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/MinecartCommandWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/MinecartCommandWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/MinecartCommandWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/MinecartFurnaceWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/MinecartFurnaceWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/MinecartFurnaceWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/MinecartFurnaceWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/MinecartWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/MinecartWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/MinecartWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/MinecartWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ModdedWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ModdedWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ModdedWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ModdedWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/MuleWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/MuleWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/MuleWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/MuleWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/MushroomCowWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/MushroomCowWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/MushroomCowWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/MushroomCowWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/OcelotWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/OcelotWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/OcelotWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/OcelotWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PaintingWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PaintingWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PaintingWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PaintingWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PandaWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PandaWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PandaWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PandaWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ParrotWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ParrotWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ParrotWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ParrotWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PhantomWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PhantomWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PhantomWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PhantomWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PigWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PigWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PigWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PigWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PiglinAbstractWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PiglinAbstractWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PiglinAbstractWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PiglinAbstractWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PiglinBruteWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PiglinBruteWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PiglinBruteWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PiglinBruteWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PiglinWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PiglinWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PiglinWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PiglinWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PillagerWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PillagerWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PillagerWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PillagerWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PlayerWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PlayerWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PlayerWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PlayerWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PolarBearWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PolarBearWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PolarBearWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PolarBearWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PufferFishWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PufferFishWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PufferFishWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/PufferFishWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/RabbitWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/RabbitWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/RabbitWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/RabbitWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/RaiderWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/RaiderWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/RaiderWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/RaiderWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/RavagerWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/RavagerWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/RavagerWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/RavagerWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/SheepWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/SheepWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/SheepWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/SheepWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ShulkerWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ShulkerWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ShulkerWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ShulkerWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/SkeletonHorseWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/SkeletonHorseWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/SkeletonHorseWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/SkeletonHorseWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/SkeletonWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/SkeletonWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/SkeletonWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/SkeletonWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/SlimeWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/SlimeWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/SlimeWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/SlimeWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/SmallFireballWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/SmallFireballWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/SmallFireballWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/SmallFireballWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/SnowballWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/SnowballWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/SnowballWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/SnowballWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/SnowmanWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/SnowmanWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/SnowmanWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/SnowmanWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/SpiderWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/SpiderWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/SpiderWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/SpiderWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/SplashPotionWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/SplashPotionWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/SplashPotionWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/SplashPotionWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/SquidWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/SquidWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/SquidWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/SquidWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/StrayWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/StrayWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/StrayWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/StrayWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/StriderWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/StriderWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/StriderWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/StriderWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/TNTWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/TNTWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/TNTWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/TNTWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/TameableWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/TameableWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/TameableWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/TameableWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ThrowableWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ThrowableWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ThrowableWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ThrowableWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ThrownExpBottleWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ThrownExpBottleWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ThrownExpBottleWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ThrownExpBottleWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/TippedArrowWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/TippedArrowWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/TippedArrowWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/TippedArrowWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/TraderLlamaWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/TraderLlamaWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/TraderLlamaWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/TraderLlamaWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/TridentWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/TridentWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/TridentWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/TridentWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/TropicalFishWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/TropicalFishWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/TropicalFishWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/TropicalFishWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/TurtleWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/TurtleWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/TurtleWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/TurtleWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/VexWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/VexWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/VexWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/VexWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/VillagerWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/VillagerWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/VillagerWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/VillagerWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/VindicatorWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/VindicatorWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/VindicatorWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/VindicatorWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/WanderingTraderWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/WanderingTraderWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/WanderingTraderWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/WanderingTraderWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/WitchWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/WitchWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/WitchWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/WitchWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/WitherSkeletonWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/WitherSkeletonWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/WitherSkeletonWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/WitherSkeletonWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/WitherSkullWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/WitherSkullWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/WitherSkullWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/WitherSkullWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/WitherWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/WitherWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/WitherWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/WitherWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/WolfWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/WolfWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/WolfWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/WolfWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ZoglinWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ZoglinWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ZoglinWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ZoglinWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ZombieHorseWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ZombieHorseWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ZombieHorseWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ZombieHorseWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ZombieVillagerWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ZombieVillagerWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ZombieVillagerWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ZombieVillagerWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ZombieWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ZombieWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ZombieWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/disguisetypes/watchers/ZombieWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/events/DisguiseEvent.java b/plugin/src/main/java/me/libraryaddict/disguise/events/DisguiseEvent.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/events/DisguiseEvent.java rename to plugin/src/main/java/me/libraryaddict/disguise/events/DisguiseEvent.java diff --git a/src/main/java/me/libraryaddict/disguise/events/DisguiseInteractEvent.java b/plugin/src/main/java/me/libraryaddict/disguise/events/DisguiseInteractEvent.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/events/DisguiseInteractEvent.java rename to plugin/src/main/java/me/libraryaddict/disguise/events/DisguiseInteractEvent.java diff --git a/src/main/java/me/libraryaddict/disguise/events/UndisguiseEvent.java b/plugin/src/main/java/me/libraryaddict/disguise/events/UndisguiseEvent.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/events/UndisguiseEvent.java rename to plugin/src/main/java/me/libraryaddict/disguise/events/UndisguiseEvent.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/DisguiseUtilities.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/DisguiseUtilities.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/DisguiseUtilities.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/DisguiseUtilities.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/DisguiseValues.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/DisguiseValues.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/DisguiseValues.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/DisguiseValues.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/LibsEntityInteract.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/LibsEntityInteract.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/LibsEntityInteract.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/LibsEntityInteract.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/LibsPremium.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/LibsPremium.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/LibsPremium.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/LibsPremium.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/SkinUtils.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/SkinUtils.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/SkinUtils.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/SkinUtils.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/config/ConfigLoader.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/config/ConfigLoader.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/config/ConfigLoader.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/config/ConfigLoader.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/config/DisguiseCommandConfig.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/config/DisguiseCommandConfig.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/config/DisguiseCommandConfig.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/config/DisguiseCommandConfig.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/json/SerializerBlockData.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/json/SerializerBlockData.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/json/SerializerBlockData.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/json/SerializerBlockData.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/json/SerializerChatComponent.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/json/SerializerChatComponent.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/json/SerializerChatComponent.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/json/SerializerChatComponent.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/json/SerializerDisguise.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/json/SerializerDisguise.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/json/SerializerDisguise.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/json/SerializerDisguise.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/json/SerializerFlagWatcher.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/json/SerializerFlagWatcher.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/json/SerializerFlagWatcher.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/json/SerializerFlagWatcher.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/json/SerializerGameProfile.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/json/SerializerGameProfile.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/json/SerializerGameProfile.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/json/SerializerGameProfile.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/json/SerializerItemStack.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/json/SerializerItemStack.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/json/SerializerItemStack.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/json/SerializerItemStack.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/json/SerializerMetaIndex.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/json/SerializerMetaIndex.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/json/SerializerMetaIndex.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/json/SerializerMetaIndex.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/json/SerializerParticle.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/json/SerializerParticle.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/json/SerializerParticle.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/json/SerializerParticle.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/json/SerializerWrappedBlockData.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/json/SerializerWrappedBlockData.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/json/SerializerWrappedBlockData.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/json/SerializerWrappedBlockData.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/listeners/DisguiseListener.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/listeners/DisguiseListener.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/listeners/DisguiseListener.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/listeners/DisguiseListener.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/listeners/ModdedListener.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/listeners/ModdedListener.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/listeners/ModdedListener.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/listeners/ModdedListener.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/listeners/PaperDisguiseListener.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/listeners/PaperDisguiseListener.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/listeners/PaperDisguiseListener.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/listeners/PaperDisguiseListener.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/listeners/PlayerSkinHandler.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/listeners/PlayerSkinHandler.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/listeners/PlayerSkinHandler.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/listeners/PlayerSkinHandler.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/metrics/Metrics.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/metrics/Metrics.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/metrics/Metrics.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/metrics/Metrics.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/metrics/MetricsInitalizer.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/metrics/MetricsInitalizer.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/metrics/MetricsInitalizer.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/metrics/MetricsInitalizer.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/mineskin/MineSkinAPI.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/mineskin/MineSkinAPI.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/mineskin/MineSkinAPI.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/mineskin/MineSkinAPI.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/mineskin/MineSkinResponse.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/mineskin/MineSkinResponse.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/mineskin/MineSkinResponse.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/mineskin/MineSkinResponse.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/modded/ModdedEntity.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/modded/ModdedEntity.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/modded/ModdedEntity.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/modded/ModdedEntity.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/modded/ModdedManager.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/modded/ModdedManager.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/modded/ModdedManager.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/modded/ModdedManager.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/packets/IPacketHandler.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/packets/IPacketHandler.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/packets/IPacketHandler.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/packets/IPacketHandler.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/packets/LibsPackets.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/packets/LibsPackets.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/packets/LibsPackets.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/packets/LibsPackets.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/packets/PacketsHandler.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/packets/PacketsHandler.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/packets/PacketsHandler.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/packets/PacketsHandler.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/packets/PacketsManager.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/packets/PacketsManager.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/packets/PacketsManager.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/packets/PacketsManager.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerAnimation.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerAnimation.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerAnimation.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerAnimation.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerAttachEntity.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerAttachEntity.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerAttachEntity.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerAttachEntity.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerAttributes.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerAttributes.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerAttributes.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerAttributes.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerCollect.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerCollect.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerCollect.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerCollect.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerEntityStatus.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerEntityStatus.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerEntityStatus.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerEntityStatus.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerEquipment.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerEquipment.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerEquipment.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerEquipment.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerHeadRotation.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerHeadRotation.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerHeadRotation.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerHeadRotation.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerMetadata.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerMetadata.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerMetadata.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerMetadata.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerMovement.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerMovement.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerMovement.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerMovement.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerSpawn.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerSpawn.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerSpawn.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerSpawn.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerVelocity.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerVelocity.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerVelocity.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/packets/packethandlers/PacketHandlerVelocity.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/packets/packetlisteners/PacketListenerClientCustomPayload.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/packets/packetlisteners/PacketListenerClientCustomPayload.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/packets/packetlisteners/PacketListenerClientCustomPayload.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/packets/packetlisteners/PacketListenerClientCustomPayload.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/packets/packetlisteners/PacketListenerClientInteract.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/packets/packetlisteners/PacketListenerClientInteract.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/packets/packetlisteners/PacketListenerClientInteract.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/packets/packetlisteners/PacketListenerClientInteract.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/packets/packetlisteners/PacketListenerEntityDestroy.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/packets/packetlisteners/PacketListenerEntityDestroy.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/packets/packetlisteners/PacketListenerEntityDestroy.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/packets/packetlisteners/PacketListenerEntityDestroy.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/packets/packetlisteners/PacketListenerInventory.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/packets/packetlisteners/PacketListenerInventory.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/packets/packetlisteners/PacketListenerInventory.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/packets/packetlisteners/PacketListenerInventory.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/packets/packetlisteners/PacketListenerMain.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/packets/packetlisteners/PacketListenerMain.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/packets/packetlisteners/PacketListenerMain.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/packets/packetlisteners/PacketListenerMain.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/packets/packetlisteners/PacketListenerModdedClient.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/packets/packetlisteners/PacketListenerModdedClient.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/packets/packetlisteners/PacketListenerModdedClient.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/packets/packetlisteners/PacketListenerModdedClient.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/packets/packetlisteners/PacketListenerScoreboardTeam.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/packets/packetlisteners/PacketListenerScoreboardTeam.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/packets/packetlisteners/PacketListenerScoreboardTeam.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/packets/packetlisteners/PacketListenerScoreboardTeam.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/packets/packetlisteners/PacketListenerSounds.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/packets/packetlisteners/PacketListenerSounds.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/packets/packetlisteners/PacketListenerSounds.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/packets/packetlisteners/PacketListenerSounds.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/packets/packetlisteners/PacketListenerTabList.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/packets/packetlisteners/PacketListenerTabList.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/packets/packetlisteners/PacketListenerTabList.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/packets/packetlisteners/PacketListenerTabList.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/packets/packetlisteners/PacketListenerViewSelfDisguise.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/packets/packetlisteners/PacketListenerViewSelfDisguise.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/packets/packetlisteners/PacketListenerViewSelfDisguise.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/packets/packetlisteners/PacketListenerViewSelfDisguise.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/params/ParamInfo.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/params/ParamInfo.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/params/ParamInfo.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/params/ParamInfo.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/params/ParamInfoManager.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/params/ParamInfoManager.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/params/ParamInfoManager.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/params/ParamInfoManager.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/params/ParamInfoTypes.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/params/ParamInfoTypes.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/params/ParamInfoTypes.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/params/ParamInfoTypes.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/params/types/ParamInfoEnum.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/params/types/ParamInfoEnum.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/params/types/ParamInfoEnum.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/params/types/ParamInfoEnum.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/params/types/base/ParamInfoBoolean.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/params/types/base/ParamInfoBoolean.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/params/types/base/ParamInfoBoolean.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/params/types/base/ParamInfoBoolean.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/params/types/base/ParamInfoDouble.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/params/types/base/ParamInfoDouble.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/params/types/base/ParamInfoDouble.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/params/types/base/ParamInfoDouble.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/params/types/base/ParamInfoFloat.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/params/types/base/ParamInfoFloat.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/params/types/base/ParamInfoFloat.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/params/types/base/ParamInfoFloat.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/params/types/base/ParamInfoFloatNullable.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/params/types/base/ParamInfoFloatNullable.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/params/types/base/ParamInfoFloatNullable.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/params/types/base/ParamInfoFloatNullable.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/params/types/base/ParamInfoInteger.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/params/types/base/ParamInfoInteger.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/params/types/base/ParamInfoInteger.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/params/types/base/ParamInfoInteger.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/params/types/base/ParamInfoString.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/params/types/base/ParamInfoString.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/params/types/base/ParamInfoString.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/params/types/base/ParamInfoString.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoBlockData.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoBlockData.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoBlockData.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoBlockData.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoBlockPosition.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoBlockPosition.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoBlockPosition.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoBlockPosition.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoChatColor.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoChatColor.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoChatColor.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoChatColor.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoColor.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoColor.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoColor.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoColor.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoEulerAngle.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoEulerAngle.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoEulerAngle.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoEulerAngle.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoGameProfile.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoGameProfile.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoGameProfile.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoGameProfile.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoItemBlock.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoItemBlock.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoItemBlock.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoItemBlock.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoItemStack.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoItemStack.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoItemStack.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoItemStack.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoItemStackArray.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoItemStackArray.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoItemStackArray.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoItemStackArray.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoParticle.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoParticle.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoParticle.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoParticle.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoPotionEffect.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoPotionEffect.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoPotionEffect.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoPotionEffect.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoSoundGroup.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoSoundGroup.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoSoundGroup.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoSoundGroup.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoTime.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoTime.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoTime.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/params/types/custom/ParamInfoTime.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/parser/DisguiseParseException.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/parser/DisguiseParseException.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/parser/DisguiseParseException.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/parser/DisguiseParseException.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/parser/DisguiseParser.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/parser/DisguiseParser.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/parser/DisguiseParser.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/parser/DisguiseParser.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/parser/DisguisePerm.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/parser/DisguisePerm.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/parser/DisguisePerm.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/parser/DisguisePerm.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/parser/DisguisePermissions.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/parser/DisguisePermissions.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/parser/DisguisePermissions.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/parser/DisguisePermissions.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/parser/ParsedDisguise.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/parser/ParsedDisguise.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/parser/ParsedDisguise.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/parser/ParsedDisguise.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/parser/RandomDefaultValue.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/parser/RandomDefaultValue.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/parser/RandomDefaultValue.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/parser/RandomDefaultValue.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/parser/WatcherMethod.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/parser/WatcherMethod.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/parser/WatcherMethod.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/parser/WatcherMethod.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/plugin/BisectHosting.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/plugin/BisectHosting.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/plugin/BisectHosting.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/plugin/BisectHosting.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/plugin/PluginInformation.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/plugin/PluginInformation.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/plugin/PluginInformation.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/plugin/PluginInformation.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/reflection/ClassGetter.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/reflection/ClassGetter.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/reflection/ClassGetter.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/reflection/ClassGetter.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/reflection/FakeBoundingBox.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/reflection/FakeBoundingBox.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/reflection/FakeBoundingBox.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/reflection/FakeBoundingBox.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/reflection/LibsProfileLookup.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/reflection/LibsProfileLookup.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/reflection/LibsProfileLookup.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/reflection/LibsProfileLookup.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/reflection/LibsProfileLookupCaller.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/reflection/LibsProfileLookupCaller.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/reflection/LibsProfileLookupCaller.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/reflection/LibsProfileLookupCaller.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/reflection/NmsAddedIn.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/reflection/NmsAddedIn.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/reflection/NmsAddedIn.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/reflection/NmsAddedIn.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/reflection/NmsRemovedIn.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/reflection/NmsRemovedIn.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/reflection/NmsRemovedIn.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/reflection/NmsRemovedIn.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/reflection/NmsVersion.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/reflection/NmsVersion.java similarity index 95% rename from src/main/java/me/libraryaddict/disguise/utilities/reflection/NmsVersion.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/reflection/NmsVersion.java index 50377b8d..61d9e11a 100644 --- a/src/main/java/me/libraryaddict/disguise/utilities/reflection/NmsVersion.java +++ b/plugin/src/main/java/me/libraryaddict/disguise/utilities/reflection/NmsVersion.java @@ -9,7 +9,8 @@ public enum NmsVersion { v1_14, v1_15, v1_16, - v1_17; + v1_17, + v1_18; /** * If this nms version isn't newer than the running version diff --git a/src/main/java/me/libraryaddict/disguise/utilities/reflection/ReflectionManager.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/reflection/ReflectionManager.java similarity index 89% rename from src/main/java/me/libraryaddict/disguise/utilities/reflection/ReflectionManager.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/reflection/ReflectionManager.java index 1f405f52..de2ce3d9 100644 --- a/src/main/java/me/libraryaddict/disguise/utilities/reflection/ReflectionManager.java +++ b/plugin/src/main/java/me/libraryaddict/disguise/utilities/reflection/ReflectionManager.java @@ -113,8 +113,11 @@ public class ReflectionManager { private static Method incrementedInventoryStateId; private static Field playerInventoryContainer; + private static ReflectionManagerAbstract v1_18ReflectionManager = getReflectionManager(NmsVersion.v1_18); + public static void init() { try { + v1_18ReflectionManager = getReflectionManager(NmsVersion.v1_18); boundingBoxConstructor = getNmsConstructor("AxisAlignedBB", double.class, double.class, double.class, double.class, double.class, double.class); setBoundingBoxMethod = getNmsMethod("Entity", "a", getNmsClass("AxisAlignedBB")); @@ -322,6 +325,10 @@ public class ReflectionManager { } public static boolean hasInvul(Entity entity) { + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.hasInvul(entity); + } + Object nmsEntity = ReflectionManager.getNmsEntity(entity); try { @@ -338,6 +345,9 @@ public class ReflectionManager { } public static int getIncrementedStateId(Player player) { + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.getIncrementedStateId(player); + } try { Object container = playerInventoryContainer.get(getNmsEntity(player)); @@ -448,6 +458,10 @@ public class ReflectionManager { } public static int getNewEntityId(boolean increment) { + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.getNewEntityId(increment); + } + try { Number entityCount = (Number) entityCountField.get(null); @@ -472,6 +486,10 @@ public class ReflectionManager { } public static Object getPlayerConnectionOrPlayer(Player player) { + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.getPlayerConnectionOrPlayer(player); + } + try { if (NmsVersion.v1_17.isSupported()) { return playerConnection.get(getNmsEntity(player)); @@ -486,6 +504,10 @@ public class ReflectionManager { } public static Object createEntityInstance(DisguiseType disguiseType, String entityName) { + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.createEntityInstance(entityName); + } + try { Class entityClass; @@ -554,6 +576,10 @@ public class ReflectionManager { } public static Object getMobEffectList(int id) { + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.getMobEffectList(id); + } + try { return mobEffectList.invoke(null, id); } catch (IllegalAccessException | InvocationTargetException e) { @@ -568,6 +594,10 @@ public class ReflectionManager { } public static Object createMobEffect(int id, int duration, int amplification, boolean ambient, boolean particles) { + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.createMobEffect(id, duration, amplification, ambient, particles); + } + try { return mobEffectConstructor.newInstance(getMobEffectList(id), duration, amplification, ambient, particles); } catch (Exception e) { @@ -578,6 +608,13 @@ public class ReflectionManager { } public static FakeBoundingBox getBoundingBox(Entity entity) { + if (NmsVersion.v1_18.isSupported()) { + double x = v1_18ReflectionManager.getXBoundingBox(entity); + double y = v1_18ReflectionManager.getYBoundingBox(entity); + double z = v1_18ReflectionManager.getZBoundingBox(entity); + return new FakeBoundingBox(x, y, z); + } + try { Object boundingBox = boundingBoxMethod.invoke(getNmsEntity(entity)); @@ -624,6 +661,10 @@ public class ReflectionManager { } public static Object getPlayerFromPlayerConnection(Object nmsEntity) { + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.getPlayerFromPlayerConnection(nmsEntity); + } + try { if (NmsVersion.v1_17.isSupported()) { // Convert from player connection to EntityPlayer @@ -639,6 +680,10 @@ public class ReflectionManager { } public static Entity getBukkitEntity(Object nmsEntity) { + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.getBukkitEntity(nmsEntity); + } + try { return (Entity) bukkitEntityMethod.invoke(nmsEntity); } catch (Exception ex) { @@ -649,6 +694,10 @@ public class ReflectionManager { } public static ItemStack getBukkitItem(Object nmsItem) { + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.getBukkitItem(nmsItem); + } + try { return (ItemStack) itemAsBukkitMethod.invoke(null, nmsItem); } catch (Exception e) { @@ -659,6 +708,10 @@ public class ReflectionManager { } public static ItemStack getCraftItem(ItemStack bukkitItem) { + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.getCraftItem(bukkitItem); + } + try { return (ItemStack) itemAsCraftCopyMethod.invoke(null, bukkitItem); } catch (Exception e) { @@ -703,6 +756,18 @@ public class ReflectionManager { return null; } + public static ReflectionManagerAbstract getReflectionManager(NmsVersion nmsVersion) { + try { + Class aClass = Class.forName("me.libraryaddict.disguise." + nmsVersion.name() + ".utilities.reflection.ReflectionManager"); + Object o = aClass.getConstructor().newInstance(); + return (ReflectionManagerAbstract) o; + } catch (ReflectiveOperationException e) { + e.printStackTrace(); + } + + return null; + } + public static Constructor getCraftConstructor(Class clazz, Class... parameters) { try { Constructor declaredConstructor = clazz.getDeclaredConstructor(parameters); @@ -720,6 +785,10 @@ public class ReflectionManager { } public static Object getCraftSound(Sound sound) { + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.getCraftSound(sound); + } + try { return soundEffectMethod.invoke(null, getSoundString(sound)); } catch (Exception ex) { @@ -730,6 +799,10 @@ public class ReflectionManager { } public static Object getEntityTrackerEntry(Entity target) throws Exception { + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.getEntityTrackerEntry(target); + } + Object world = getWorldServer(target.getWorld()); if (NmsVersion.v1_14.isSupported()) { @@ -753,6 +826,10 @@ public class ReflectionManager { } public static Object getMinecraftServer() { + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.getMinecraftServer(); + } + try { return getServerMethod.invoke(Bukkit.getServer()); } catch (IllegalAccessException | InvocationTargetException e) { @@ -762,6 +839,10 @@ public class ReflectionManager { } public static String getEnumArt(Art art) { + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.getEnumArt(art); + } + try { Object enumArt = getEnumArtMethod.invoke(null, art); for (Field field : enumArt.getClass().getDeclaredFields()) { @@ -777,6 +858,10 @@ public class ReflectionManager { } public static Object getBlockPosition(int x, int y, int z) { + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.getBlockPosition(x, y, z); + } + try { return blockPositionConstructor.newInstance(x, y, z); } catch (Exception ex) { @@ -787,6 +872,10 @@ public class ReflectionManager { } public static Enum getEnumDirection(int direction) { + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.getEnumDirection(direction); + } + try { return (Enum) enumDirectionMethod.invoke(null, direction); } catch (Exception ex) { @@ -797,6 +886,10 @@ public class ReflectionManager { } public static Enum getEnumPlayerInfoAction(int action) { + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.getEnumPlayerInfoAction(action); + } + try { return enumPlayerInfoAction[action]; } catch (Exception ex) { @@ -807,6 +900,10 @@ public class ReflectionManager { } public static Object getPlayerInfoData(Object playerInfoPacket, WrappedGameProfile gameProfile) { + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.getPlayerInfoData(gameProfile); + } + try { Object playerListName = chatComponentConstructor.newInstance(gameProfile.getName()); @@ -930,6 +1027,10 @@ public class ReflectionManager { } public static Object getNmsEntity(Entity entity) { + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.getNmsEntity(entity); + } + try { return getNmsEntityMethod.invoke(entity); } catch (Exception ex) { @@ -957,6 +1058,10 @@ public class ReflectionManager { } public static Object getNmsItem(ItemStack itemstack) { + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.getNmsItem(itemstack); + } + try { return itemAsNmsCopyMethod.invoke(null, itemstack); } catch (Exception e) { @@ -1001,6 +1106,10 @@ public class ReflectionManager { } public static double getPing(Player player) { + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.getPing(player); + } + try { return pingField.getInt(ReflectionManager.getNmsEntity(player)); } catch (Exception ex) { @@ -1011,6 +1120,10 @@ public class ReflectionManager { } public static float[] getSize(Entity entity) { + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.getSize(entity); + } + try { if (NmsVersion.v1_14.isSupported()) { Object size = getNmsField("Entity", "size").get(getNmsEntity(entity)); @@ -1035,6 +1148,10 @@ public class ReflectionManager { } public static WrappedGameProfile getSkullBlob(WrappedGameProfile gameProfile) { + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.getSkullBlob(gameProfile); + } + try { Object minecraftServer = getMinecraftServer(); @@ -1055,6 +1172,10 @@ public class ReflectionManager { } public static Float getSoundModifier(Object entity) { + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.getSoundModifier(entity); + } + try { return (Float) damageAndIdleSoundMethod.invoke(entity); } catch (Exception ignored) { @@ -1069,24 +1190,29 @@ public class ReflectionManager { try { Object minecraftServer = getMinecraftServer(); - for (Method method : getNmsClass("MinecraftServer").getMethods()) { - if (method.getReturnType().getSimpleName().equals("GameProfileRepository")) { - Object agent = Class.forName("com.mojang.authlib.Agent").getDeclaredField("MINECRAFT").get(null); + LibsProfileLookupCaller callback = new LibsProfileLookupCaller(); + if (NmsVersion.v1_18.isSupported()) { + v1_18ReflectionManager.injectCallback(playername, callback); + } else { + for (Method method : getNmsClass("MinecraftServer").getMethods()) { + if (method.getReturnType().getSimpleName().equals("GameProfileRepository")) { + Object agent = Class.forName("com.mojang.authlib.Agent").getDeclaredField("MINECRAFT").get(null); - LibsProfileLookupCaller callback = new LibsProfileLookupCaller(); - Object profileRepo = method.invoke(minecraftServer); + Object profileRepo = method.invoke(minecraftServer); - method.getReturnType() - .getMethod("findProfilesByNames", String[].class, agent.getClass(), Class.forName("com.mojang.authlib.ProfileLookupCallback")) - .invoke(profileRepo, new String[]{playername}, agent, callback); - - if (callback.getGameProfile() != null) { - return callback.getGameProfile(); + method.getReturnType() + .getMethod("findProfilesByNames", String[].class, agent.getClass(), Class.forName("com.mojang.authlib.ProfileLookupCallback")) + .invoke(profileRepo, new String[]{playername}, agent, callback); + break; } - - return getGameProfile(null, playername); } } + + if (callback.getGameProfile() != null) { + return callback.getGameProfile(); + } + + return getGameProfile(null, playername); } catch (Exception ex) { ex.printStackTrace(); } @@ -1095,6 +1221,11 @@ public class ReflectionManager { } public static void setBoundingBox(Entity entity, FakeBoundingBox newBox) { + if (NmsVersion.v1_18.isSupported()) { + v1_18ReflectionManager.setBoundingBox(entity, newBox.getX(), newBox.getY(), newBox.getZ()); + return; + } + try { Location loc = entity.getLocation(); @@ -1108,6 +1239,10 @@ public class ReflectionManager { } public static Enum getSoundCategory(String category) { + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.getSoundCategory(category); + } + return soundCategories.get(category); } @@ -1136,6 +1271,10 @@ public class ReflectionManager { * @return null if the equipment slot is null */ public static Enum createEnumItemSlot(EquipmentSlot slot) { + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.createEnumItemSlot(slot); + } + switch (slot) { case HAND: return enumItemSlots[0]; @@ -1213,6 +1352,10 @@ public class ReflectionManager { } public static Object getSoundString(Sound sound) { + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.getSoundString(sound); + } + try { if (soundGetMethod == null) { return soundEffectGetKey.get(soundEffectGetMethod.invoke(null, sound)).toString(); @@ -1257,6 +1400,9 @@ public class ReflectionManager { public static Object convertInvalidMeta(Object value) { if (value instanceof Optional) { Optional opt = (Optional) value; + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.convertOptional(opt); + } if (!opt.isPresent()) { return NmsVersion.v1_13.isSupported() ? value : com.google.common.base.Optional.absent(); @@ -1298,6 +1444,9 @@ public class ReflectionManager { } } else if (value instanceof Vector3F) { Vector3F angle = (Vector3F) value; + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.convertVec3(angle); + } try { return vector3FConstructor.newInstance(angle.getX(), angle.getY(), angle.getZ()); @@ -1306,6 +1455,9 @@ public class ReflectionManager { } } else if (value instanceof EulerAngle) { EulerAngle angle = (EulerAngle) value; + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.convertVec3(angle); + } try { return vector3FConstructor.newInstance((float) angle.getX(), (float) angle.getY(), (float) angle.getZ()); @@ -1313,6 +1465,10 @@ public class ReflectionManager { ex.printStackTrace(); } } else if (value instanceof Direction) { + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.convertDirection((Direction) value); + } + try { return enumDirectionFrom.invoke(null, ((Direction) value).ordinal()); } catch (Exception ex) { @@ -1320,6 +1476,9 @@ public class ReflectionManager { } } else if (value instanceof BlockPosition) { BlockPosition pos = (BlockPosition) value; + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.getBlockPosition(pos.getX(), pos.getY(), pos.getZ()); + } try { return blockPositionConstructor.newInstance(pos.getX(), pos.getY(), pos.getZ()); @@ -1346,6 +1505,10 @@ public class ReflectionManager { } public static Material getMaterial(String name) { + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.getMaterial(name); + } + try { if (!NmsVersion.v1_13.isSupported()) { Method toMinecraft = getCraftMethod("CraftMagicNumbers", "getMaterialFromInternalName", String.class); @@ -1382,6 +1545,10 @@ public class ReflectionManager { } public static String getItemName(Material material) { + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.getItemName(material); + } + try { Object item = getCraftMethod("CraftMagicNumbers", "getItem", Material.class).invoke(null, material); @@ -1414,6 +1581,10 @@ public class ReflectionManager { } public static Object getNmsVillagerData(VillagerData data) { + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.getNmsVillagerData(data.getType(), data.getProfession()); + } + Object type = getVillagerType(data.getType()); Object profession = getVillagerProfession(data.getProfession()); @@ -1427,6 +1598,10 @@ public class ReflectionManager { } public static Object getVillagerType(Villager.Type type) { + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.getVillagerType(type); + } + try { Object mcKey = bukkitKeyToNms.invoke(null, type.getKey()); @@ -1463,6 +1638,10 @@ public class ReflectionManager { } public static Object getVillagerProfession(Villager.Profession profession) { + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.getVillagerProfession(profession); + } + try { Object mcKey = bukkitKeyToNms.invoke(null, profession.getKey()); @@ -1509,6 +1688,10 @@ public class ReflectionManager { @Deprecated public static Object createSoundEffect(String minecraftKey) { + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.createSoundEffect(minecraftKey); + } + try { return getNmsConstructor("SoundEffect", getNmsClass("MinecraftKey")).newInstance(createMinecraftKey(minecraftKey)); } catch (Exception ex) { @@ -1519,6 +1702,10 @@ public class ReflectionManager { } public static Object createMinecraftKey(String name) { + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.createMinecraftKey(name); + } + try { return getNmsConstructor("MinecraftKey", String.class).newInstance(name); } catch (Exception ex) { @@ -1529,6 +1716,10 @@ public class ReflectionManager { } public static Object getVec3D(Vector vector) { + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.getVec3D(vector); + } + try { return vec3DConstructor.newInstance(vector.getX(), vector.getY(), vector.getZ()); } catch (Exception ex) { @@ -1539,6 +1730,10 @@ public class ReflectionManager { } public static Object getEntityType(EntityType entityType) { + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.getEntityType(entityType); + } + try { Object val = entityTypesAMethod.invoke(null, entityType.getName() == null ? entityType.name().toLowerCase(Locale.ENGLISH) : entityType.getName()); @@ -1555,6 +1750,10 @@ public class ReflectionManager { } public static Object registerEntityType(NamespacedKey key) { + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.registerEntityType(key); + } + try { Object mcKey = getNmsConstructor("MinecraftKey", String.class).newInstance(key.toString()); @@ -1594,6 +1793,10 @@ public class ReflectionManager { } public static int getEntityTypeId(Object entityTypes) { + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.getEntityTypeId(entityTypes); + } + try { Class typesClass = getNmsClass("IRegistry"); @@ -1608,6 +1811,10 @@ public class ReflectionManager { } public static int getEntityTypeId(EntityType entityType) { + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.getEntityTypeId(entityType); + } + try { if (NmsVersion.v1_13.isSupported()) { Object entityTypes = getEntityType(entityType); @@ -1628,6 +1835,10 @@ public class ReflectionManager { } public static Object getEntityType(NamespacedKey name) { + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.getEntityType(name); + } + try { Class typesClass = getNmsClass("IRegistry"); @@ -1643,6 +1854,10 @@ public class ReflectionManager { } public static Object getNmsEntityPose(EntityPose entityPose) { + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.getNmsEntityPose(entityPose == EntityPose.SNEAKING && NmsVersion.v1_15.isSupported() ? "CROUCHING" : entityPose.name()); + } + return Enum.valueOf(entityPoseClass, entityPose == EntityPose.SNEAKING && NmsVersion.v1_15.isSupported() ? "CROUCHING" : entityPose.name()); } @@ -1662,6 +1877,10 @@ public class ReflectionManager { } public static int getCombinedIdByBlockData(BlockData data) { + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.getCombinedIdByBlockData(data); + } + try { Object iBlockData = craftBlockDataGetState.invoke(data); @@ -1674,6 +1893,10 @@ public class ReflectionManager { } public static int getCombinedIdByItemStack(ItemStack itemStack) { + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.getCombinedIdByItemStack(itemStack); + } + try { if (!NmsVersion.v1_13.isSupported()) { return itemStack.getType().ordinal() + (itemStack.getDurability() << 12); @@ -1692,6 +1915,10 @@ public class ReflectionManager { } public static BlockData getBlockDataByCombinedId(int id) { + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.getBlockDataByCombinedId(id); + } + try { Method idMethod = getNmsMethod("Block", "getByCombinedId", int.class); Object iBlockData = idMethod.invoke(null, id); @@ -1706,6 +1933,10 @@ public class ReflectionManager { } public static ItemStack getItemStackByCombinedId(int id) { + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.getItemStackByCombinedId(id); + } + try { Method idMethod = getNmsMethod("Block", "getByCombinedId", int.class); Object iBlockData = idMethod.invoke(null, id); @@ -1730,6 +1961,10 @@ public class ReflectionManager { } public static Object getWorldServer(World w) { + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.getWorldServer(w); + } + try { return getNmsWorld.invoke(w); } catch (IllegalAccessException | InvocationTargetException e) { @@ -1740,6 +1975,10 @@ public class ReflectionManager { } public static ItemMeta getDeserializedItemMeta(Map meta) { + if (NmsVersion.v1_18.isSupported()) { + return v1_18ReflectionManager.getDeserializedItemMeta(meta); + } + try { return (ItemMeta) deserializedItemMeta.invoke(null, meta); } catch (Exception e) { diff --git a/src/main/java/me/libraryaddict/disguise/utilities/reflection/WatcherInfo.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/reflection/WatcherInfo.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/reflection/WatcherInfo.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/reflection/WatcherInfo.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/sounds/DisguiseSoundEnums.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/sounds/DisguiseSoundEnums.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/sounds/DisguiseSoundEnums.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/sounds/DisguiseSoundEnums.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/sounds/SoundGroup.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/sounds/SoundGroup.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/sounds/SoundGroup.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/sounds/SoundGroup.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/sounds/SoundManager.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/sounds/SoundManager.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/sounds/SoundManager.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/sounds/SoundManager.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/translations/LibsMsg.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/translations/LibsMsg.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/translations/LibsMsg.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/translations/LibsMsg.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/translations/TranslateFiller.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/translations/TranslateFiller.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/translations/TranslateFiller.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/translations/TranslateFiller.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/translations/TranslateType.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/translations/TranslateType.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/translations/TranslateType.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/translations/TranslateType.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/updates/DisguiseUpdate.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/updates/DisguiseUpdate.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/updates/DisguiseUpdate.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/updates/DisguiseUpdate.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/updates/LDGithub.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/updates/LDGithub.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/updates/LDGithub.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/updates/LDGithub.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/updates/LDJenkins.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/updates/LDJenkins.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/updates/LDJenkins.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/updates/LDJenkins.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/updates/UpdateChecker.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/updates/UpdateChecker.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/updates/UpdateChecker.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/updates/UpdateChecker.java diff --git a/src/main/java/me/libraryaddict/disguise/utilities/watchers/CompileMethods.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/watchers/CompileMethods.java similarity index 98% rename from src/main/java/me/libraryaddict/disguise/utilities/watchers/CompileMethods.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/watchers/CompileMethods.java index 2e7d285d..6fa063f7 100644 --- a/src/main/java/me/libraryaddict/disguise/utilities/watchers/CompileMethods.java +++ b/plugin/src/main/java/me/libraryaddict/disguise/utilities/watchers/CompileMethods.java @@ -66,6 +66,7 @@ public class CompileMethods { } File soundsFile = new File("target/classes/ANTI_PIRACY_SECRET_FILE"); + System.out.println(soundsFile.getAbsolutePath()); try (FileOutputStream fos = new FileOutputStream(soundsFile)) { byte[] array = String.join("\n", list).getBytes(StandardCharsets.UTF_8); @@ -157,6 +158,7 @@ public class CompileMethods { } File methodsFile = new File("target/classes/ANTI_PIRACY_ENCRYPTION"); + System.out.println(methodsFile.getAbsolutePath()); try (FileOutputStream fos = new FileOutputStream(methodsFile)) { byte[] array = String.join("\n", methods).getBytes(StandardCharsets.UTF_8); diff --git a/src/main/java/me/libraryaddict/disguise/utilities/watchers/DisguiseMethods.java b/plugin/src/main/java/me/libraryaddict/disguise/utilities/watchers/DisguiseMethods.java similarity index 100% rename from src/main/java/me/libraryaddict/disguise/utilities/watchers/DisguiseMethods.java rename to plugin/src/main/java/me/libraryaddict/disguise/utilities/watchers/DisguiseMethods.java diff --git a/src/main/resources/configs/combat.yml b/plugin/src/main/resources/configs/combat.yml similarity index 100% rename from src/main/resources/configs/combat.yml rename to plugin/src/main/resources/configs/combat.yml diff --git a/src/main/resources/configs/commands.yml b/plugin/src/main/resources/configs/commands.yml similarity index 100% rename from src/main/resources/configs/commands.yml rename to plugin/src/main/resources/configs/commands.yml diff --git a/src/main/resources/configs/disguises.yml b/plugin/src/main/resources/configs/disguises.yml similarity index 100% rename from src/main/resources/configs/disguises.yml rename to plugin/src/main/resources/configs/disguises.yml diff --git a/src/main/resources/configs/features.yml b/plugin/src/main/resources/configs/features.yml similarity index 100% rename from src/main/resources/configs/features.yml rename to plugin/src/main/resources/configs/features.yml diff --git a/src/main/resources/configs/libsdisguises.yml b/plugin/src/main/resources/configs/libsdisguises.yml similarity index 100% rename from src/main/resources/configs/libsdisguises.yml rename to plugin/src/main/resources/configs/libsdisguises.yml diff --git a/src/main/resources/configs/nametags.yml b/plugin/src/main/resources/configs/nametags.yml similarity index 100% rename from src/main/resources/configs/nametags.yml rename to plugin/src/main/resources/configs/nametags.yml diff --git a/src/main/resources/configs/players.yml b/plugin/src/main/resources/configs/players.yml similarity index 100% rename from src/main/resources/configs/players.yml rename to plugin/src/main/resources/configs/players.yml diff --git a/src/main/resources/configs/protocol.yml b/plugin/src/main/resources/configs/protocol.yml similarity index 100% rename from src/main/resources/configs/protocol.yml rename to plugin/src/main/resources/configs/protocol.yml diff --git a/src/main/resources/configs/sanity.yml b/plugin/src/main/resources/configs/sanity.yml similarity index 100% rename from src/main/resources/configs/sanity.yml rename to plugin/src/main/resources/configs/sanity.yml diff --git a/src/main/resources/configs/sounds.yml b/plugin/src/main/resources/configs/sounds.yml similarity index 100% rename from src/main/resources/configs/sounds.yml rename to plugin/src/main/resources/configs/sounds.yml diff --git a/src/main/resources/internal.yml b/plugin/src/main/resources/internal.yml similarity index 100% rename from src/main/resources/internal.yml rename to plugin/src/main/resources/internal.yml diff --git a/src/main/resources/plugin.yml b/plugin/src/main/resources/plugin.yml similarity index 100% rename from src/main/resources/plugin.yml rename to plugin/src/main/resources/plugin.yml diff --git a/src/test/java/me/libraryaddict/disguise/disguisetypes/DisguiseCloneTest.java b/plugin/src/test/java/me/libraryaddict/disguise/disguisetypes/DisguiseCloneTest.java similarity index 100% rename from src/test/java/me/libraryaddict/disguise/disguisetypes/DisguiseCloneTest.java rename to plugin/src/test/java/me/libraryaddict/disguise/disguisetypes/DisguiseCloneTest.java diff --git a/src/test/java/me/libraryaddict/disguise/utilities/DisguiseTypesTest.java b/plugin/src/test/java/me/libraryaddict/disguise/utilities/DisguiseTypesTest.java similarity index 100% rename from src/test/java/me/libraryaddict/disguise/utilities/DisguiseTypesTest.java rename to plugin/src/test/java/me/libraryaddict/disguise/utilities/DisguiseTypesTest.java diff --git a/src/test/java/me/libraryaddict/disguise/utilities/DisguiseUtilitiesTest.java b/plugin/src/test/java/me/libraryaddict/disguise/utilities/DisguiseUtilitiesTest.java similarity index 100% rename from src/test/java/me/libraryaddict/disguise/utilities/DisguiseUtilitiesTest.java rename to plugin/src/test/java/me/libraryaddict/disguise/utilities/DisguiseUtilitiesTest.java diff --git a/src/test/java/me/libraryaddict/disguise/utilities/parser/DisguisePermissionsTest.java b/plugin/src/test/java/me/libraryaddict/disguise/utilities/parser/DisguisePermissionsTest.java similarity index 100% rename from src/test/java/me/libraryaddict/disguise/utilities/parser/DisguisePermissionsTest.java rename to plugin/src/test/java/me/libraryaddict/disguise/utilities/parser/DisguisePermissionsTest.java diff --git a/pom.xml b/pom.xml index 9f212d0b..2163189e 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,13 @@ LibsDisguises LibsDisguises + pom 10.0.26-SNAPSHOT + + v1_18_R1 + plugin + shared + unknown @@ -26,154 +32,28 @@ 4.9.3 - - exec:java clean install - LibsDisguises - - - - src/main/resources - true - - plugin.yml - - - - src/main/resources - false - - **/* - - - - ${project.basedir} - - README.md - - - - - - maven-surefire-plugin - 3.0.0-M5 - - - org.codehaus.mojo - exec-maven-plugin - 3.0.0 - - - - my-execution - compile - - java - - - - - true - me.libraryaddict.disguise.utilities.watchers.CompileMethods - - - - org.apache.maven.plugins - maven-shade-plugin - 3.2.4 - - - package - - shade - - - - - true - - - net.kyori:* - - - - - net.kyori - ld-shaded.net.kyori - - - - - - - - - - org.projectlombok - lombok - ${lombok.version} - true - - - com.comphenix.protocol - ProtocolLib - ${protocollib.version} - true - - - org.spigotmc - spigot-api - ${spigot.version} - true - - - org.spigotmc - spigot - ${spigot.version} - true - - - - junit - junit - ${junit.version} - test - true - - - com.destroystokyo.paper - paper-api - ${paper-api.version} - provided - true - - - net.md-5 - bungeecord-chat - ${bungeecord-chat.version} - true - - - net.kyori - adventure-text-minimessage - ${adventure-minimessage.version} - compile - true - - - net.kyori - adventure-text-serializer-gson - ${adventure-serializer.version} - compile - true - - - net.kyori - adventure-api - ${adventure-api.version} - compile - true - - + + + + com.comphenix.protocol + ProtocolLib + ${protocollib.version} + true + + + org.spigotmc + spigot-api + ${spigot.version} + true + + + org.spigotmc + spigot + ${spigot.version} + true + + + diff --git a/shared/pom.xml b/shared/pom.xml new file mode 100644 index 00000000..a213500e --- /dev/null +++ b/shared/pom.xml @@ -0,0 +1,29 @@ + + + + LibsDisguises + LibsDisguises + 10.0.26-SNAPSHOT + + 4.0.0 + + shared + + + + org.spigotmc + spigot + + + org.spigotmc + spigot-api + + + com.comphenix.protocol + ProtocolLib + + + + \ No newline at end of file diff --git a/shared/src/main/java/me/libraryaddict/disguise/utilities/reflection/ReflectionManagerAbstract.java b/shared/src/main/java/me/libraryaddict/disguise/utilities/reflection/ReflectionManagerAbstract.java new file mode 100644 index 00000000..bbef2db8 --- /dev/null +++ b/shared/src/main/java/me/libraryaddict/disguise/utilities/reflection/ReflectionManagerAbstract.java @@ -0,0 +1,140 @@ +package me.libraryaddict.disguise.utilities.reflection; + +import com.comphenix.protocol.wrappers.EnumWrappers; +import com.comphenix.protocol.wrappers.WrappedGameProfile; +import com.mojang.authlib.ProfileLookupCallback; +import org.bukkit.*; +import org.bukkit.block.data.BlockData; +import org.bukkit.entity.Entity; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.Player; +import org.bukkit.entity.Villager; +import org.bukkit.inventory.EquipmentSlot; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; +import org.bukkit.potion.PotionEffect; +import org.bukkit.util.Vector; + +import java.util.Map; +import java.util.Optional; + +public interface ReflectionManagerAbstract { + boolean hasInvul(Entity entity); + + int getIncrementedStateId(Player player); + + int getNewEntityId(); + + int getNewEntityId(boolean increment); + + Object getPlayerConnectionOrPlayer(Player player); + + Object createEntityInstance(String entityName); + + Object getMobEffectList(int id); + + Object createMobEffect(PotionEffect effect); + + Object createMobEffect(int id, int duration, int amplification, boolean ambient, boolean particles); + + Object getBoundingBox(Entity entity); + + double getXBoundingBox(Entity entity); + + double getYBoundingBox(Entity entity); + + double getZBoundingBox(Entity entity); + + Object getPlayerFromPlayerConnection(Object nmsEntity); + + Entity getBukkitEntity(Object nmsEntity); + + ItemStack getBukkitItem(Object nmsItem); + + ItemStack getCraftItem(ItemStack bukkitItem); + + Object getCraftSound(Sound sound); + + Object getEntityTrackerEntry(Entity target) throws Exception; + + Object getMinecraftServer(); + + String getEnumArt(Art art); + + Object getBlockPosition(int x, int y, int z); + + Enum getEnumDirection(int direction); + + Enum getEnumPlayerInfoAction(int action); + + Object getPlayerInfoData(WrappedGameProfile gameProfile); + + Object getNmsEntity(Entity entity); + + double getPing(Player player); + + float[] getSize(Entity entity); + + WrappedGameProfile getSkullBlob(WrappedGameProfile gameProfile); + + Float getSoundModifier(Object entity); + + void injectCallback(String playername, ProfileLookupCallback callback); + + void setBoundingBox(Entity entity, double x, double y, double z); + + Enum getSoundCategory(String category); + + Enum createEnumItemSlot(EquipmentSlot slot); + + Object getSoundString(Sound sound); + + Optional convertOptional(Object val); + + Object convertVec3(Object object); + + Object convertDirection(EnumWrappers.Direction direction); + + Material getMaterial(String name); + + String getItemName(Material material); + + Object getNmsItem(ItemStack itemStack); + + Object getNmsVillagerData(Villager.Type villagerType, Villager.Profession villagerProfession); + + Object getVillagerType(Villager.Type type); + + Object getVillagerProfession(Villager.Profession profession); + + @Deprecated + Object createSoundEffect(String minecraftKey); + + Object createMinecraftKey(String name); + + Object getVec3D(Vector vector); + + Object getEntityType(EntityType entityType); + + Object registerEntityType(NamespacedKey key); + + int getEntityTypeId(Object entityTypes); + + int getEntityTypeId(EntityType entityType); + + Object getEntityType(NamespacedKey name); + + Object getNmsEntityPose(String enumPose); + + int getCombinedIdByBlockData(BlockData data); + + int getCombinedIdByItemStack(ItemStack itemStack); + + BlockData getBlockDataByCombinedId(int id); + + ItemStack getItemStackByCombinedId(int id); + + Object getWorldServer(World w); + + ItemMeta getDeserializedItemMeta(Map meta); +} diff --git a/v1_18_R1/pom.xml b/v1_18_R1/pom.xml new file mode 100644 index 00000000..a7b6b95c --- /dev/null +++ b/v1_18_R1/pom.xml @@ -0,0 +1,79 @@ + + + + LibsDisguises + LibsDisguises + 10.0.26-SNAPSHOT + + 4.0.0 + + v1_18_R1 + + + + org.spigotmc + spigot + 1.18-R0.1-SNAPSHOT + remapped-mojang + provided + + + org.spigotmc + spigot-api + 1.18-R0.1-SNAPSHOT + provided + + + LibsDisguises + shared + ${project.version} + + + com.comphenix.protocol + ProtocolLib + + + + + + + net.md-5 + specialsource-maven-plugin + 1.2.2 + + + package + + remap + + remap-obf + + org.spigotmc:minecraft-server:1.18-R0.1-SNAPSHOT:txt:maps-mojang + true + org.spigotmc:spigot:1.18-R0.1-SNAPSHOT:jar:remapped-mojang + true + remapped-obf + + + + package + + remap + + remap-spigot + + ${project.build.directory}/${project.artifactId}-${project.version}-remapped-obf.jar + org.spigotmc:minecraft-server:1.18-R0.1-SNAPSHOT:csrg:maps-spigot + org.spigotmc:spigot:1.18-R0.1-SNAPSHOT:jar:remapped-obf + ${project.name} + ${dir} + + + + + + + + \ No newline at end of file diff --git a/v1_18_R1/src/main/java/me/libraryaddict/disguise/v1_18/utilities/reflection/ReflectionManager.java b/v1_18_R1/src/main/java/me/libraryaddict/disguise/v1_18/utilities/reflection/ReflectionManager.java new file mode 100644 index 00000000..6974cf1a --- /dev/null +++ b/v1_18_R1/src/main/java/me/libraryaddict/disguise/v1_18/utilities/reflection/ReflectionManager.java @@ -0,0 +1,414 @@ +package me.libraryaddict.disguise.v1_18.utilities.reflection; + +import com.comphenix.protocol.wrappers.*; +import com.comphenix.protocol.wrappers.EnumWrappers.Direction; +import com.mojang.authlib.Agent; +import com.mojang.authlib.GameProfile; +import com.mojang.authlib.ProfileLookupCallback; +import com.mojang.authlib.minecraft.MinecraftSessionService; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; +import me.libraryaddict.disguise.utilities.reflection.ReflectionManagerAbstract; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Registry; +import net.minecraft.network.chat.TextComponent; +import net.minecraft.network.protocol.game.ClientboundPlayerInfoPacket; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.dedicated.DedicatedServer; +import net.minecraft.server.level.*; +import net.minecraft.server.network.ServerGamePacketListenerImpl; +import net.minecraft.server.network.ServerPlayerConnection; +import net.minecraft.sounds.SoundEvent; +import net.minecraft.sounds.SoundSource; +import net.minecraft.world.damagesource.DamageSource; +import net.minecraft.world.effect.MobEffect; +import net.minecraft.world.effect.MobEffectInstance; +import net.minecraft.world.entity.EntityDimensions; +import net.minecraft.world.entity.npc.VillagerData; +import net.minecraft.world.entity.npc.VillagerProfession; +import net.minecraft.world.entity.npc.VillagerType; +import net.minecraft.world.level.GameType; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; +import org.bukkit.*; +import org.bukkit.block.data.BlockData; +import org.bukkit.craftbukkit.v1_18_R1.CraftArt; +import org.bukkit.craftbukkit.v1_18_R1.CraftServer; +import org.bukkit.craftbukkit.v1_18_R1.CraftSound; +import org.bukkit.craftbukkit.v1_18_R1.CraftWorld; +import org.bukkit.craftbukkit.v1_18_R1.block.data.CraftBlockData; +import org.bukkit.craftbukkit.v1_18_R1.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_18_R1.entity.CraftPlayer; +import org.bukkit.craftbukkit.v1_18_R1.inventory.CraftItemStack; +import org.bukkit.craftbukkit.v1_18_R1.util.CraftMagicNumbers; +import org.bukkit.craftbukkit.v1_18_R1.util.CraftNamespacedKey; +import org.bukkit.entity.*; +import org.bukkit.inventory.EquipmentSlot; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; +import org.bukkit.potion.PotionEffect; +import org.bukkit.util.EulerAngle; +import org.bukkit.util.Vector; + +import java.lang.reflect.Field; +import java.lang.reflect.Method; +import java.util.*; +import java.util.concurrent.atomic.AtomicInteger; + +public class ReflectionManager implements ReflectionManagerAbstract { + public boolean hasInvul(Entity entity) { + net.minecraft.world.entity.Entity nmsEntity = ((CraftEntity) entity).getHandle(); + + if (nmsEntity instanceof net.minecraft.world.entity.LivingEntity) { + return nmsEntity.invulnerableTime > 0; + } else { + return nmsEntity.isInvulnerableTo(DamageSource.GENERIC); + } + } + + public int getIncrementedStateId(Player player) { + ServerPlayer serverPlayer = ((CraftPlayer) player).getHandle(); + return serverPlayer.containerMenu.incrementStateId(); // TODO Check correct container + } + + public int getNewEntityId() { + return getNewEntityId(true); + } + + public int getNewEntityId(boolean increment) { + try { + Field entityCounter = net.minecraft.world.entity.Entity.class.getDeclaredField("b"); + entityCounter.setAccessible(true); + AtomicInteger atomicInteger = (AtomicInteger) entityCounter.get(null); + if (increment) { + return atomicInteger.incrementAndGet(); + } else { + return atomicInteger.get(); + } + } catch (ReflectiveOperationException e) { + e.printStackTrace(); + } + + return -1; + } + + public ServerGamePacketListenerImpl getPlayerConnectionOrPlayer(Player player) { + return ((CraftPlayer) player).getHandle().connection; + } + + public net.minecraft.world.entity.Entity createEntityInstance(String entityName) { + Optional> optional = net.minecraft.world.entity.EntityType.byString(entityName.toLowerCase(Locale.ROOT)); + if (optional.isPresent()) { + net.minecraft.world.entity.EntityType entityType = optional.get(); + ServerLevel world = getWorldServer(Bukkit.getWorlds().get(0)); + net.minecraft.world.entity.Entity entity = entityType.create(world); + // Workaround for paper being 2 smart 4 me + entity.setPos(1.0, 1.0, 1.0); + entity.setPos(0.0, 0.0, 0.0); + return entity; + } + + return null; + } + + public MobEffect getMobEffectList(int id) { + return MobEffect.byId(id); + } + + public MobEffectInstance createMobEffect(PotionEffect effect) { + return createMobEffect(effect.getType().getId(), effect.getDuration(), effect.getAmplifier(), effect.isAmbient(), effect.hasParticles()); + } + + public MobEffectInstance createMobEffect(int id, int duration, int amplification, boolean ambient, boolean particles) { + return new MobEffectInstance(getMobEffectList(id), duration, amplification, ambient, particles); + } + + public AABB getBoundingBox(Entity entity) { + return ((CraftEntity) entity).getHandle().getBoundingBox(); + } + + public double getXBoundingBox(Entity entity) { + return getBoundingBox(entity).maxX - getBoundingBox(entity).minX; + } + + public double getYBoundingBox(Entity entity) { + return getBoundingBox(entity).maxY - getBoundingBox(entity).minY; + } + + public double getZBoundingBox(Entity entity) { + return getBoundingBox(entity).maxZ - getBoundingBox(entity).minZ; + } + + public ServerPlayer getPlayerFromPlayerConnection(Object nmsEntity) { + return ((ServerPlayerConnection) nmsEntity).getPlayer(); + } + + public Entity getBukkitEntity(Object nmsEntity) { + return ((net.minecraft.world.entity.Entity) nmsEntity).getBukkitEntity(); + } + + public ItemStack getBukkitItem(Object nmsItem) { + return CraftItemStack.asBukkitCopy((net.minecraft.world.item.ItemStack) nmsItem); + } + + public ItemStack getCraftItem(ItemStack bukkitItem) { + return CraftItemStack.asCraftCopy(bukkitItem); + } + + public SoundEvent getCraftSound(Sound sound) { + return CraftSound.getSoundEffect(sound); + } + + public ServerEntity getEntityTrackerEntry(Entity target) throws Exception { + ServerLevel world = ((CraftWorld) target.getWorld()).getHandle(); + ServerChunkCache chunkSource = world.getChunkSource(); + ChunkMap chunkMap = chunkSource.chunkMap; + Int2ObjectMap entityMap = chunkMap.entityMap; + ChunkMap.TrackedEntity trackedEntity = entityMap.get(target.getEntityId()); + if (trackedEntity == null) { + return null; + } + + Field field = ChunkMap.TrackedEntity.class.getDeclaredField("b"); + field.setAccessible(true); + + return (ServerEntity) field.get(trackedEntity); + } + + public DedicatedServer getMinecraftServer() { + return ((CraftServer) Bukkit.getServer()).getServer(); + } + + public String getEnumArt(Art art) { + return Registry.MOTIVE.getKey(CraftArt.BukkitToNotch(art)).getPath(); + } + + public BlockPos getBlockPosition(int x, int y, int z) { + return new BlockPos(x, y, z); + } + + public net.minecraft.core.Direction getEnumDirection(int direction) { + return net.minecraft.core.Direction.from2DDataValue(direction); + } + + public ClientboundPlayerInfoPacket.Action getEnumPlayerInfoAction(int action) { + return ClientboundPlayerInfoPacket.Action.values()[action]; + } + + public ClientboundPlayerInfoPacket.PlayerUpdate getPlayerInfoData(WrappedGameProfile gameProfile) { + return new ClientboundPlayerInfoPacket.PlayerUpdate((GameProfile) gameProfile.getHandle(), 0, GameType.SURVIVAL, new TextComponent(gameProfile.getName())); + } + + public Object getNmsEntity(Entity entity) { + return ((CraftEntity) entity).getHandle(); + } + + public double getPing(Player player) { + return player.getPing(); + } + + public float[] getSize(Entity entity) { + net.minecraft.world.entity.Entity nmsEntity = ((CraftEntity) entity).getHandle(); + EntityDimensions dimensions = nmsEntity.getDimensions(net.minecraft.world.entity.Pose.STANDING); + return new float[]{dimensions.width, nmsEntity.getEyeHeight()}; + } + + public WrappedGameProfile getSkullBlob(WrappedGameProfile gameProfile) { + DedicatedServer minecraftServer = getMinecraftServer(); + MinecraftSessionService sessionService = minecraftServer.getSessionService(); + return WrappedGameProfile.fromHandle(sessionService.fillProfileProperties((GameProfile) gameProfile.getHandle(), true)); + } + + public Float getSoundModifier(Object entity) { + if (!(entity instanceof net.minecraft.world.entity.LivingEntity)) { + return 0.0f; + } else { + return ((net.minecraft.world.entity.LivingEntity) entity).getVoicePitch(); + } + } + + public void injectCallback(String playername, ProfileLookupCallback callback) { + Agent agent = Agent.MINECRAFT; + getMinecraftServer().getProfileRepository().findProfilesByNames(new String[]{playername}, agent, callback); + } + + public void setBoundingBox(Entity entity, double x, double y, double z) { + Location loc = entity.getLocation(); + ((CraftEntity) entity).getHandle().setBoundingBox(new AABB( + loc.getX() - x / 2, loc.getY() - y / 2, loc.getZ() - z / 2, + loc.getX() + x / 2, loc.getY() + y / 2, loc.getZ() + z / 2)); + } + + public Enum getSoundCategory(String category) { + return Arrays.stream(SoundSource.values()).filter(soundSource -> category.equalsIgnoreCase(soundSource.getName())).findAny().get(); + } + + /** + * Creates the NMS object EnumItemSlot from an EquipmentSlot. + * + * @param slot + * @return null if the equipment slot is null + */ + public Enum createEnumItemSlot(EquipmentSlot slot) { + switch (slot) { + case HAND: + return net.minecraft.world.entity.EquipmentSlot.MAINHAND; + case OFF_HAND: + return net.minecraft.world.entity.EquipmentSlot.OFFHAND; + case FEET: + return net.minecraft.world.entity.EquipmentSlot.FEET; + case LEGS: + return net.minecraft.world.entity.EquipmentSlot.LEGS; + case CHEST: + return net.minecraft.world.entity.EquipmentSlot.CHEST; + case HEAD: + return net.minecraft.world.entity.EquipmentSlot.HEAD; + default: + return null; + } + } + + public Object getSoundString(Sound sound) { + return CraftSound.getSoundEffect(sound).getLocation().toString(); // TODO + } + + public Optional convertOptional(Object val) { + if (val instanceof BlockPosition) { + BlockPosition pos = (BlockPosition) val; + return Optional.of(getBlockPosition(pos.getX(), pos.getY(), pos.getZ())); + } else if (val instanceof WrappedBlockData) { + Object obj = ((WrappedBlockData) val).getHandle(); + return Optional.of(obj); + } else if (val instanceof ItemStack) { + Object obj = getNmsItem((ItemStack) val); + return Optional.of(obj); + } else if (val instanceof WrappedChatComponent) { + Object obj = ((WrappedChatComponent) val).getHandle(); + return Optional.of(obj); + } + + return Optional.empty(); + } + + public Vec3 convertVec3(Object object) { + if (object instanceof Vector3F) { + Vector3F vector3F = (Vector3F) object; + return new Vec3(vector3F.getX(), vector3F.getY(), vector3F.getZ()); + } else if (object instanceof EulerAngle) { + EulerAngle eulerAngle = (EulerAngle) object; + return new Vec3(eulerAngle.getX(), eulerAngle.getY(), eulerAngle.getZ()); + } + + return null; + } + + public net.minecraft.core.Direction convertDirection(Direction direction) { + return net.minecraft.core.Direction.from3DDataValue(direction.ordinal()); + } + + public Material getMaterial(String name) { + return CraftMagicNumbers.INSTANCE.getMaterial(name, CraftMagicNumbers.INSTANCE.getDataVersion()); + } + + public String getItemName(Material material) { + return Registry.ITEM.getKey(CraftMagicNumbers.getItem(material)).getPath(); + } + + public net.minecraft.world.item.ItemStack getNmsItem(ItemStack itemStack) { + return CraftItemStack.asNMSCopy(itemStack); + } + + public VillagerData getNmsVillagerData(Villager.Type villagerType, Villager.Profession villagerProfession) { + VillagerType nmsVillagerType = Registry.VILLAGER_TYPE.get(CraftNamespacedKey.toMinecraft(villagerType.getKey())); + VillagerProfession nmsVillagerProfession = Registry.VILLAGER_PROFESSION.get(CraftNamespacedKey.toMinecraft(villagerProfession.getKey())); + + return new net.minecraft.world.entity.npc.VillagerData(nmsVillagerType, nmsVillagerProfession, 1); + } + + public VillagerType getVillagerType(Villager.Type type) { + return Registry.VILLAGER_TYPE.get(CraftNamespacedKey.toMinecraft(type.getKey())); + } + + public VillagerProfession getVillagerProfession(Villager.Profession profession) { + return Registry.VILLAGER_PROFESSION.get(CraftNamespacedKey.toMinecraft(profession.getKey())); + } + + @Deprecated + public SoundEvent createSoundEffect(String minecraftKey) { + return new SoundEvent(new ResourceLocation(minecraftKey)); + } + + @Override + public ResourceLocation createMinecraftKey(String name) { + return new ResourceLocation(name); + } + + public Vec3 getVec3D(Vector vector) { + return new Vec3(vector.getX(), vector.getY(), vector.getZ()); + } + + public net.minecraft.world.entity.EntityType getEntityType(EntityType entityType) { + return net.minecraft.world.entity.EntityType.byString(entityType.getName() == null ? entityType.name().toLowerCase(Locale.ENGLISH) : entityType.getName()).orElse(null); + } + + public Object registerEntityType(NamespacedKey key) { + net.minecraft.world.entity.EntityType newEntity = new net.minecraft.world.entity.EntityType<>(null, null, false, false, false, false, null, null, 0, 0); + Registry.register(Registry.ENTITY_TYPE, CraftNamespacedKey.toMinecraft(key), newEntity); + newEntity.getDescriptionId(); + return newEntity; // TODO ??? Some reflection in legacy that I'm unsure about + } + + public int getEntityTypeId(Object entityTypes) { + net.minecraft.world.entity.EntityType entityType = (net.minecraft.world.entity.EntityType) entityTypes; + return Registry.ENTITY_TYPE.getId(entityType); + } + + public int getEntityTypeId(EntityType entityType) { + return getEntityTypeId(getEntityType(entityType)); + } + + public Object getEntityType(NamespacedKey name) { + return Registry.ENTITY_TYPE.get(CraftNamespacedKey.toMinecraft(name)); + } + + public Object getNmsEntityPose(String enumPose) { + return net.minecraft.world.entity.Pose.valueOf(enumPose); + } + + public int getCombinedIdByBlockData(BlockData data) { + BlockState state = ((CraftBlockData) data).getState(); + return Block.getId(state); + } + + public int getCombinedIdByItemStack(ItemStack itemStack) { + Block block = CraftMagicNumbers.getBlock(itemStack.getType()); + return Block.getId(block.defaultBlockState()); + } + + public BlockData getBlockDataByCombinedId(int id) { + return CraftBlockData.fromData(Block.stateById(id)); + } + + public ItemStack getItemStackByCombinedId(int id) { + return new ItemStack(CraftMagicNumbers.getMaterial(Block.stateById(id).getBlock())); + } + + public ServerLevel getWorldServer(World w) { + return ((CraftWorld) w).getHandle(); + } + + public ItemMeta getDeserializedItemMeta(Map meta) { + try { + Class aClass = Class.forName("org.bukkit.craftbukkit.v1_18_R1.inventory.CraftMetaItem$SerializableMeta"); + Method deserialize = aClass.getDeclaredMethod("deserialize", Map.class); + Object itemMeta = deserialize.invoke(null, meta); + + return (ItemMeta) itemMeta; + } catch (Exception e) { + e.printStackTrace(); + } + + return null; + } +}