diff --git a/build.gradle b/build.gradle index 977b014f..15b7e7b3 100644 --- a/build.gradle +++ b/build.gradle @@ -4,7 +4,7 @@ plugins { } group = 'net.momirealms' -version = '1.2.15' +version = '1.2.16' repositories { mavenCentral() @@ -54,7 +54,6 @@ dependencies { compileOnly('com.github.Archy-X:AureliumSkills:Beta1.3.6') compileOnly('com.github.TechFortress:GriefPrevention:16.18') compileOnly('com.palmergames.bukkit.towny:towny:0.98.2.0') - compileOnly('com.comphenix.protocol:ProtocolLib:4.8.0') compileOnly('redis.clients:jedis:4.3.1') compileOnly('me.clip:placeholderapi:2.11.1') compileOnly('com.sk89q.worldguard:worldguard-bukkit:7.0.7') @@ -107,4 +106,9 @@ shadowJar { relocate 'de.tr7zw', 'net.momirealms.customfishing.libs.de.tr7zw' relocate 'net.kyori', 'net.momirealms.customfishing.libs.net.kyori' relocate 'org.bstats', 'net.momirealms.customfishing.libs.org.bstats' +} + +tasks.register("delete", Delete).get().delete("build/libs/"+project.name+"-"+project.version+".jar") +tasks.named("build").get().dependsOn("shadowJar").finalizedBy("delete").doLast { + println("Deleting: "+ "build/libs/"+project.name+"-"+project.version+".jar") } \ No newline at end of file diff --git a/src/main/java/net/momirealms/customfishing/CustomFishing.java b/src/main/java/net/momirealms/customfishing/CustomFishing.java index b89b9875..a846cc29 100644 --- a/src/main/java/net/momirealms/customfishing/CustomFishing.java +++ b/src/main/java/net/momirealms/customfishing/CustomFishing.java @@ -35,6 +35,7 @@ public final class CustomFishing extends JavaPlugin { public static CustomFishing plugin; public static BukkitAudiences adventure; + public static String version; public static ProtocolManager protocolManager; private IntegrationManager integrationManager; private FishingManager fishingManager; @@ -82,6 +83,7 @@ public final class CustomFishing extends JavaPlugin { public void onEnable() { adventure = BukkitAudiences.create(this); protocolManager = ProtocolLibrary.getProtocolManager(); + version = Bukkit.getServer().getClass().getPackage().getName().split("\\.")[3]; this.fishingManager = new FishingManager(); this.dataManager = new DataManager(); this.integrationManager = new IntegrationManager(); diff --git a/src/main/java/net/momirealms/customfishing/competition/bossbar/BossBarManager.java b/src/main/java/net/momirealms/customfishing/competition/bossbar/BossBarManager.java index 542901fd..c53cac17 100644 --- a/src/main/java/net/momirealms/customfishing/competition/bossbar/BossBarManager.java +++ b/src/main/java/net/momirealms/customfishing/competition/bossbar/BossBarManager.java @@ -67,7 +67,7 @@ public class BossBarManager extends Function { public void onJoin(Player player) { if (Competition.currentCompetition != null){ if (Competition.currentCompetition.isJoined(player) && cache.get(player) == null){ - BossBarSender sender = new BossBarSender(player, Competition.currentCompetition.getCompetitionConfig().getBossBarConfig(), this); + BossBarSender sender = new BossBarSender(player, Competition.currentCompetition.getCompetitionConfig().getBossBarConfig()); if (!sender.getStatus()) { sender.show(); } @@ -80,7 +80,7 @@ public class BossBarManager extends Function { public void tryJoin(Player player) { if (cache.get(player) == null) { - BossBarSender sender = new BossBarSender(player, Competition.currentCompetition.getCompetitionConfig().getBossBarConfig(), this); + BossBarSender sender = new BossBarSender(player, Competition.currentCompetition.getCompetitionConfig().getBossBarConfig()); if (!sender.getStatus()) { sender.show(); } diff --git a/src/main/java/net/momirealms/customfishing/competition/bossbar/BossBarSender.java b/src/main/java/net/momirealms/customfishing/competition/bossbar/BossBarSender.java index a97a2e68..81311118 100644 --- a/src/main/java/net/momirealms/customfishing/competition/bossbar/BossBarSender.java +++ b/src/main/java/net/momirealms/customfishing/competition/bossbar/BossBarSender.java @@ -20,6 +20,7 @@ package net.momirealms.customfishing.competition.bossbar; import com.comphenix.protocol.PacketType; import com.comphenix.protocol.events.InternalStructure; import com.comphenix.protocol.events.PacketContainer; +import com.comphenix.protocol.utility.MinecraftReflection; import com.comphenix.protocol.wrappers.WrappedChatComponent; import net.kyori.adventure.text.minimessage.MiniMessage; import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; @@ -27,13 +28,15 @@ import net.momirealms.customfishing.CustomFishing; import net.momirealms.customfishing.competition.Competition; import net.momirealms.customfishing.object.TextCache; import net.momirealms.customfishing.util.AdventureUtil; -import net.momirealms.customfishing.util.Reflection; import org.bukkit.boss.BarColor; import org.bukkit.entity.Player; import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.scheduler.BukkitTask; +import java.lang.reflect.Constructor; +import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; import java.util.UUID; public class BossBarSender { @@ -50,15 +53,13 @@ public class BossBarSender { private boolean force; private final BossBarConfig config; private boolean isShown; - private final BossBarManager bossBarManager; public void setText(int position) { this.text = texts[position]; this.force = true; } - public BossBarSender(Player player, BossBarConfig config, BossBarManager bossBarManager){ - this.bossBarManager = bossBarManager; + public BossBarSender(Player player, BossBarConfig config){ String[] str = config.getText(); this.size = str.length; texts = new TextCache[str.length]; @@ -75,11 +76,7 @@ public class BossBarSender { public void show() { this.isShown = true; - try { - CustomFishing.protocolManager.sendServerPacket(player, getPacket()); - } catch (InvocationTargetException e){ - AdventureUtil.consoleMessage("[CustomFishing] Failed to display bossbar for " + player.getName()); - } + CustomFishing.protocolManager.sendServerPacket(player, getPacket()); this.bukkitTask = new BukkitRunnable() { @Override @@ -102,16 +99,48 @@ public class BossBarSender { timer_1 = 0; if (text.update() || force) { force = false; - try{ - CustomFishing.protocolManager.sendServerPacket(player, getPacket()); - } - catch (InvocationTargetException e){ - AdventureUtil.consoleMessage("[CustomFishing] Failed to update bossbar for " + player.getName()); - } + CustomFishing.protocolManager.sendServerPacket(player, getUpdatePacket()); + CustomFishing.protocolManager.sendServerPacket(player, getProgressPacket()); } } } - }.runTaskTimerAsynchronously(CustomFishing.plugin,1,1); + }.runTaskTimerAsynchronously(CustomFishing.plugin,0,1); + } + + private PacketContainer getUpdatePacket() { + PacketContainer packet = new PacketContainer(PacketType.Play.Server.BOSS); + packet.getModifier().write(0, uuid); + try { + Method sMethod = MinecraftReflection.getChatSerializerClass().getMethod("a", String.class); + sMethod.setAccessible(true); + Object chatComponent = sMethod.invoke(null, GsonComponentSerializer.gson().serialize(MiniMessage.miniMessage().deserialize(AdventureUtil.replaceLegacy(text.getLatestValue())))); + Class packetBossClass = Class.forName("net.minecraft.network.protocol.game.PacketPlayOutBoss$e"); + Constructor packetConstructor = packetBossClass.getDeclaredConstructor(MinecraftReflection.getIChatBaseComponentClass()); + packetConstructor.setAccessible(true); + Object updatePacket = packetConstructor.newInstance(chatComponent); + packet.getModifier().write(1, updatePacket); + } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException | ClassNotFoundException | + InstantiationException e) { + throw new RuntimeException(e); + } + return packet; + } + + + private PacketContainer getProgressPacket() { + PacketContainer packet = new PacketContainer(PacketType.Play.Server.BOSS); + packet.getModifier().write(0, uuid); + try { + Class packetBossClass = Class.forName("net.minecraft.network.protocol.game.PacketPlayOutBoss$f"); + Constructor packetConstructor = packetBossClass.getDeclaredConstructor(float.class); + packetConstructor.setAccessible(true); + Object updatePacket = packetConstructor.newInstance(Competition.currentCompetition.getProgress()); + packet.getModifier().write(1, updatePacket); + } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException | ClassNotFoundException | + InstantiationException e) { + throw new RuntimeException(e); + } + return packet; } private PacketContainer getPacket() { @@ -137,11 +166,16 @@ public class BossBarSender { private void remove() { PacketContainer packet = new PacketContainer(PacketType.Play.Server.BOSS); packet.getModifier().write(0, uuid); - packet.getModifier().write(1, Reflection.removeBar); - try{ + try { + Class bar = Class.forName("net.minecraft.network.protocol.game.PacketPlayOutBoss"); + Field remove = bar.getDeclaredField("f"); + remove.setAccessible(true); + packet.getModifier().write(1, remove.get(null)); CustomFishing.protocolManager.sendServerPacket(player, packet); - }catch (InvocationTargetException e){ + } catch (ClassNotFoundException e){ AdventureUtil.consoleMessage("[CustomFishing] Failed to remove bossbar for " + player.getName()); + } catch (NoSuchFieldException | IllegalAccessException e) { + throw new RuntimeException(e); } } diff --git a/src/main/java/net/momirealms/customfishing/manager/FishingManager.java b/src/main/java/net/momirealms/customfishing/manager/FishingManager.java index 0a112c8e..0d87aa78 100644 --- a/src/main/java/net/momirealms/customfishing/manager/FishingManager.java +++ b/src/main/java/net/momirealms/customfishing/manager/FishingManager.java @@ -265,13 +265,8 @@ public class FishingManager extends Function { if (baitItem != null) { baitItem.setAmount(1); entityID = new Random().nextInt(100000000); - try { - CustomFishing.protocolManager.sendServerPacket(player, FakeItemUtil.getSpawnPacket(entityID, fishHook.getLocation())); - CustomFishing.protocolManager.sendServerPacket(player, FakeItemUtil.getMetaPacket(entityID, baitItem)); - } - catch (InvocationTargetException e) { - e.printStackTrace(); - } + CustomFishing.protocolManager.sendServerPacket(player, FakeItemUtil.getSpawnPacket(entityID, fishHook.getLocation())); + CustomFishing.protocolManager.sendServerPacket(player, FakeItemUtil.getMetaPacket(entityID, baitItem)); } BobberCheckTask bobberCheckTask = new BobberCheckTask(player, initialBonus, fishHook, this, lureLevel, entityID); diff --git a/src/main/java/net/momirealms/customfishing/object/fishing/BobberCheckTask.java b/src/main/java/net/momirealms/customfishing/object/fishing/BobberCheckTask.java index 986e25da..c5d3cf99 100644 --- a/src/main/java/net/momirealms/customfishing/object/fishing/BobberCheckTask.java +++ b/src/main/java/net/momirealms/customfishing/object/fishing/BobberCheckTask.java @@ -80,13 +80,8 @@ public class BobberCheckTask extends BukkitRunnable { public void run() { timer ++; if (!land && entityID != 0) { - try { - CustomFishing.protocolManager.sendServerPacket(player, FakeItemUtil.getVelocity(entityID, fishHook.getVelocity())); - CustomFishing.protocolManager.sendServerPacket(player, FakeItemUtil.getTpPacket(entityID, fishHook.getLocation())); - } - catch (InvocationTargetException e) { - e.printStackTrace(); - } + CustomFishing.protocolManager.sendServerPacket(player, FakeItemUtil.getVelocity(entityID, fishHook.getVelocity())); + CustomFishing.protocolManager.sendServerPacket(player, FakeItemUtil.getTpPacket(entityID, fishHook.getLocation())); } if (timer > 3600) { stop(); @@ -164,12 +159,7 @@ public class BobberCheckTask extends BukkitRunnable { private void sendRemovePacket() { if (entityID == 0) return; - try { - CustomFishing.protocolManager.sendServerPacket(player, FakeItemUtil.getDestroyPacket(entityID)); - } - catch (InvocationTargetException e) { - e.printStackTrace(); - } + CustomFishing.protocolManager.sendServerPacket(player, FakeItemUtil.getDestroyPacket(entityID)); } public void cancelTask() { diff --git a/src/main/java/net/momirealms/customfishing/object/totem/ActivatedTotem.java b/src/main/java/net/momirealms/customfishing/object/totem/ActivatedTotem.java index ffa6f37e..02c8f291 100644 --- a/src/main/java/net/momirealms/customfishing/object/totem/ActivatedTotem.java +++ b/src/main/java/net/momirealms/customfishing/object/totem/ActivatedTotem.java @@ -72,29 +72,19 @@ public class ActivatedTotem extends BukkitRunnable { for (Player player : temp) { if (nearbyPlayers.remove(player)) { if (hasHolo) { - try { - for (int i = 0; i < entityID.length; i++) { - CustomFishing.protocolManager.sendServerPacket(player, ArmorStandUtil.getMetaPacket(entityID[i], - totem.getHoloText()[entityID.length - 1 - i].replace("{time}", String.valueOf(totem.getDuration() - timer)) - .replace("{max_time}", String.valueOf(totem.getDuration())) - )); - } - addPotionEffect(player); - } - catch (InvocationTargetException e) { - e.printStackTrace(); + for (int i = 0; i < entityID.length; i++) { + CustomFishing.protocolManager.sendServerPacket(player, ArmorStandUtil.getMetaPacket(entityID[i], + totem.getHoloText()[entityID.length - 1 - i].replace("{time}", String.valueOf(totem.getDuration() - timer)) + .replace("{max_time}", String.valueOf(totem.getDuration())) + )); } + addPotionEffect(player); } } else { if (hasHolo) { - try { - for (int j : entityID) { - CustomFishing.protocolManager.sendServerPacket(player, ArmorStandUtil.getDestroyPacket(j)); - } - } - catch (InvocationTargetException e) { - e.printStackTrace(); + for (int j : entityID) { + CustomFishing.protocolManager.sendServerPacket(player, ArmorStandUtil.getDestroyPacket(j)); } } nearbyPlayerSet.remove(player); @@ -103,19 +93,14 @@ public class ActivatedTotem extends BukkitRunnable { for (Player newComer : nearbyPlayers) { if (hasHolo) { - try { - for (int i = 0; i < entityID.length; i++) { - CustomFishing.protocolManager.sendServerPacket(newComer, ArmorStandUtil.getSpawnPacket(entityID[i], location.clone().add(0.5, totem.getHoloOffset() + i * 0.4, 0.5))); - CustomFishing.protocolManager.sendServerPacket(newComer, ArmorStandUtil.getMetaPacket(entityID[i], - totem.getHoloText()[entityID.length - 1 - i].replace("{time}", String.valueOf(totem.getDuration() - timer)) - .replace("{max_time}", String.valueOf(totem.getDuration())) - )); - } - addPotionEffect(newComer); - } - catch (InvocationTargetException e) { - e.printStackTrace(); + for (int i = 0; i < entityID.length; i++) { + CustomFishing.protocolManager.sendServerPacket(newComer, ArmorStandUtil.getSpawnPacket(entityID[i], location.clone().add(0.5, totem.getHoloOffset() + i * 0.4, 0.5))); + CustomFishing.protocolManager.sendServerPacket(newComer, ArmorStandUtil.getMetaPacket(entityID[i], + totem.getHoloText()[entityID.length - 1 - i].replace("{time}", String.valueOf(totem.getDuration() - timer)) + .replace("{max_time}", String.valueOf(totem.getDuration())) + )); } + addPotionEffect(newComer); } nearbyPlayerSet.add(newComer); } @@ -136,13 +121,8 @@ public class ActivatedTotem extends BukkitRunnable { if (hasHolo) { for (Player player : nearbyPlayerSet) { - try { - for (int j : entityID) { - CustomFishing.protocolManager.sendServerPacket(player, ArmorStandUtil.getDestroyPacket(j)); - } - } - catch (InvocationTargetException e) { - e.printStackTrace(); + for (int j : entityID) { + CustomFishing.protocolManager.sendServerPacket(player, ArmorStandUtil.getDestroyPacket(j)); } } } diff --git a/src/main/java/net/momirealms/customfishing/util/ArmorStandUtil.java b/src/main/java/net/momirealms/customfishing/util/ArmorStandUtil.java index d1dfa672..1e8c9760 100644 --- a/src/main/java/net/momirealms/customfishing/util/ArmorStandUtil.java +++ b/src/main/java/net/momirealms/customfishing/util/ArmorStandUtil.java @@ -19,10 +19,8 @@ package net.momirealms.customfishing.util; import com.comphenix.protocol.PacketType; import com.comphenix.protocol.events.PacketContainer; -import com.comphenix.protocol.wrappers.EnumWrappers; -import com.comphenix.protocol.wrappers.Pair; -import com.comphenix.protocol.wrappers.WrappedChatComponent; -import com.comphenix.protocol.wrappers.WrappedDataWatcher; +import com.comphenix.protocol.wrappers.*; +import com.google.common.collect.Lists; import net.kyori.adventure.text.minimessage.MiniMessage; import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; import net.momirealms.customfishing.CustomFishing; @@ -33,7 +31,6 @@ import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; -import java.lang.reflect.InvocationTargetException; import java.util.*; public class ArmorStandUtil { @@ -57,14 +54,34 @@ public class ArmorStandUtil { public static PacketContainer getMetaPacket(int id) { PacketContainer metaPacket = new PacketContainer(PacketType.Play.Server.ENTITY_METADATA); metaPacket.getIntegers().write(0, id); - metaPacket.getWatchableCollectionModifier().write(0, createDataWatcher().getWatchableObjects()); + if (CustomFishing.version.equals("v1_19_R2")) { + WrappedDataWatcher wrappedDataWatcher = createDataWatcher(); + List wrappedDataValueList = Lists.newArrayList(); + wrappedDataWatcher.getWatchableObjects().stream().filter(Objects::nonNull).forEach(entry -> { + final WrappedDataWatcher.WrappedDataWatcherObject dataWatcherObject = entry.getWatcherObject(); + wrappedDataValueList.add(new WrappedDataValue(dataWatcherObject.getIndex(), dataWatcherObject.getSerializer(), entry.getRawValue())); + }); + metaPacket.getDataValueCollectionModifier().write(0, wrappedDataValueList); + } else { + metaPacket.getWatchableCollectionModifier().write(0, createDataWatcher().getWatchableObjects()); + } return metaPacket; } public static PacketContainer getMetaPacket(int id, String text) { PacketContainer metaPacket = new PacketContainer(PacketType.Play.Server.ENTITY_METADATA); metaPacket.getIntegers().write(0, id); - metaPacket.getWatchableCollectionModifier().write(0, createDataWatcher(text).getWatchableObjects()); + if (CustomFishing.version.equals("v1_19_R2")) { + WrappedDataWatcher wrappedDataWatcher = createDataWatcher(text); + List wrappedDataValueList = Lists.newArrayList(); + wrappedDataWatcher.getWatchableObjects().stream().filter(Objects::nonNull).forEach(entry -> { + final WrappedDataWatcher.WrappedDataWatcherObject dataWatcherObject = entry.getWatcherObject(); + wrappedDataValueList.add(new WrappedDataValue(dataWatcherObject.getIndex(), dataWatcherObject.getSerializer(), entry.getRawValue())); + }); + metaPacket.getDataValueCollectionModifier().write(0, wrappedDataValueList); + } else { + metaPacket.getWatchableCollectionModifier().write(0, createDataWatcher(text).getWatchableObjects()); + } return metaPacket; } @@ -104,21 +121,11 @@ public class ArmorStandUtil { int id = new Random().nextInt(100000000); ItemStack itemStack = BonusManager.UTILITEMS.get(item); if (itemStack == null) return; - try { - CustomFishing.protocolManager.sendServerPacket(player, getSpawnPacket(id, location.clone().subtract(0,1,0))); - CustomFishing.protocolManager.sendServerPacket(player, getMetaPacket(id)); - CustomFishing.protocolManager.sendServerPacket(player, getEquipPacket(id, itemStack)); - } - catch (InvocationTargetException e) { - e.printStackTrace(); - } + CustomFishing.protocolManager.sendServerPacket(player, getSpawnPacket(id, location.clone().subtract(0,1,0))); + CustomFishing.protocolManager.sendServerPacket(player, getMetaPacket(id)); + CustomFishing.protocolManager.sendServerPacket(player, getEquipPacket(id, itemStack)); Bukkit.getScheduler().runTaskLaterAsynchronously(CustomFishing.plugin, () -> { - try { - CustomFishing.protocolManager.sendServerPacket(player, getDestroyPacket(id)); - } - catch (InvocationTargetException e) { - e.printStackTrace(); - } + CustomFishing.protocolManager.sendServerPacket(player, getDestroyPacket(id)); }, time); } } \ No newline at end of file diff --git a/src/main/java/net/momirealms/customfishing/util/BlockUtil.java b/src/main/java/net/momirealms/customfishing/util/BlockUtil.java deleted file mode 100644 index 57cb8277..00000000 --- a/src/main/java/net/momirealms/customfishing/util/BlockUtil.java +++ /dev/null @@ -1,13 +0,0 @@ -package net.momirealms.customfishing.util; - -import org.bukkit.Location; - -public class BlockUtil { - - public static void isInOpenLava(Location location) { - - - - } - -} diff --git a/src/main/java/net/momirealms/customfishing/util/ConfigUtil.java b/src/main/java/net/momirealms/customfishing/util/ConfigUtil.java index f21055ba..ba1c5592 100644 --- a/src/main/java/net/momirealms/customfishing/util/ConfigUtil.java +++ b/src/main/java/net/momirealms/customfishing/util/ConfigUtil.java @@ -61,12 +61,6 @@ public class ConfigUtil { CustomFishing.plugin.getSellManager().load(); CustomFishing.plugin.getBagDataManager().unload(); CustomFishing.plugin.getBagDataManager().load(); - try { - Reflection.load(); - } - catch (Exception e) { - e.printStackTrace(); - } } public static void update(String fileName){ diff --git a/src/main/java/net/momirealms/customfishing/util/FakeItemUtil.java b/src/main/java/net/momirealms/customfishing/util/FakeItemUtil.java index a3c24b5a..babc5381 100644 --- a/src/main/java/net/momirealms/customfishing/util/FakeItemUtil.java +++ b/src/main/java/net/momirealms/customfishing/util/FakeItemUtil.java @@ -2,13 +2,17 @@ package net.momirealms.customfishing.util; import com.comphenix.protocol.PacketType; import com.comphenix.protocol.events.PacketContainer; +import com.comphenix.protocol.wrappers.WrappedDataValue; import com.comphenix.protocol.wrappers.WrappedDataWatcher; +import com.google.common.collect.Lists; +import net.momirealms.customfishing.CustomFishing; import org.bukkit.Location; import org.bukkit.entity.EntityType; import org.bukkit.inventory.ItemStack; import org.bukkit.util.Vector; import java.util.List; +import java.util.Objects; import java.util.UUID; public class FakeItemUtil { @@ -33,7 +37,17 @@ public class FakeItemUtil { public static PacketContainer getMetaPacket(int id, ItemStack itemStack) { PacketContainer metaPacket = new PacketContainer(PacketType.Play.Server.ENTITY_METADATA); metaPacket.getIntegers().write(0, id); - metaPacket.getWatchableCollectionModifier().write(0, createDataWatcher(itemStack).getWatchableObjects()); + if (CustomFishing.version.equals("v1_19_R2")) { + WrappedDataWatcher wrappedDataWatcher = createDataWatcher(itemStack); + List wrappedDataValueList = Lists.newArrayList(); + wrappedDataWatcher.getWatchableObjects().stream().filter(Objects::nonNull).forEach(entry -> { + final WrappedDataWatcher.WrappedDataWatcherObject dataWatcherObject = entry.getWatcherObject(); + wrappedDataValueList.add(new WrappedDataValue(dataWatcherObject.getIndex(), dataWatcherObject.getSerializer(), entry.getRawValue())); + }); + metaPacket.getDataValueCollectionModifier().write(0, wrappedDataValueList); + } else { + metaPacket.getWatchableCollectionModifier().write(0, createDataWatcher(itemStack).getWatchableObjects()); + } return metaPacket; } diff --git a/src/main/java/net/momirealms/customfishing/util/Reflection.java b/src/main/java/net/momirealms/customfishing/util/Reflection.java deleted file mode 100644 index 20bc277b..00000000 --- a/src/main/java/net/momirealms/customfishing/util/Reflection.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (C) <2022> - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package net.momirealms.customfishing.util; - -import java.lang.reflect.Field; - -public class Reflection { - - public static Object removeBar; - - public static void load() throws Exception{ - Class bar = Class.forName("net.minecraft.network.protocol.game.PacketPlayOutBoss"); - Field remove = bar.getDeclaredField("f"); - remove.setAccessible(true); - removeBar = remove.get(null); - } -}