diff --git a/eco-core/core-plugin/src/main/java/com/willfp/talismans/TalismansPlugin.java b/eco-core/core-plugin/src/main/java/com/willfp/talismans/TalismansPlugin.java index 3cf9a7c..9a74c83 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/talismans/TalismansPlugin.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/talismans/TalismansPlugin.java @@ -1,6 +1,8 @@ package com.willfp.talismans; import com.willfp.eco.util.command.AbstractCommand; +import com.willfp.eco.util.display.Display; +import com.willfp.eco.util.display.DisplayModule; import com.willfp.eco.util.integrations.IntegrationLoader; import com.willfp.eco.util.interfaces.EcoRunnable; import com.willfp.eco.util.plugin.AbstractEcoPlugin; @@ -10,12 +12,7 @@ import com.willfp.talismans.commands.CommandTalgive; import com.willfp.talismans.commands.CommandTalreload; import com.willfp.talismans.commands.TabcompleterTalgive; import com.willfp.talismans.config.TalismansConfigs; -import com.willfp.talismans.display.packets.PacketAutoRecipe; -import com.willfp.talismans.display.packets.PacketChat; -import com.willfp.talismans.display.packets.PacketOpenWindowMerchant; -import com.willfp.talismans.display.packets.PacketSetCreativeSlot; -import com.willfp.talismans.display.packets.PacketSetSlot; -import com.willfp.talismans.display.packets.PacketWindowItems; +import com.willfp.talismans.display.TalismanDisplay; import com.willfp.talismans.integrations.mcmmo.McmmoManager; import com.willfp.talismans.integrations.mcmmo.plugins.McmmoIntegrationImpl; import com.willfp.talismans.talismans.Talismans; @@ -29,6 +26,7 @@ import lombok.Getter; import org.bukkit.event.HandlerList; import org.bukkit.event.Listener; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -53,6 +51,9 @@ public class TalismansPlugin extends AbstractEcoPlugin { */ @Override public void enable() { + Display.registerDisplayModule(new DisplayModule(TalismanDisplay::displayTalisman, 1, this.getPluginName())); + Display.registerRevertModule(TalismanDisplay::revertDisplay); + this.getExtensionLoader().loadExtensions(); if (this.getExtensionLoader().getLoadedExtensions().isEmpty()) { @@ -143,14 +144,7 @@ public class TalismansPlugin extends AbstractEcoPlugin { */ @Override public List getPacketAdapters() { - return Arrays.asList( - new PacketChat(this), - new PacketOpenWindowMerchant(this), - new PacketSetCreativeSlot(this), - new PacketSetSlot(this), - new PacketWindowItems(this), - new PacketAutoRecipe(this) - ); + return new ArrayList<>(); } /** diff --git a/eco-core/core-plugin/src/main/java/com/willfp/talismans/display/TalismanDisplay.java b/eco-core/core-plugin/src/main/java/com/willfp/talismans/display/TalismanDisplay.java index faadbbf..3d2cd1e 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/talismans/display/TalismanDisplay.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/talismans/display/TalismanDisplay.java @@ -1,6 +1,5 @@ package com.willfp.talismans.display; -import com.willfp.talismans.TalismansPlugin; import com.willfp.talismans.proxy.proxies.SkullProxy; import com.willfp.talismans.talismans.Talisman; import com.willfp.talismans.talismans.util.TalismanChecks; @@ -17,11 +16,6 @@ import java.util.List; @UtilityClass public class TalismanDisplay { - /** - * Instance of Talismans. - */ - private static final TalismansPlugin PLUGIN = TalismansPlugin.getInstance(); - /** * The prefix for all talisman lines to have in lore. */ diff --git a/eco-core/core-plugin/src/main/java/com/willfp/talismans/display/packets/PacketAutoRecipe.java b/eco-core/core-plugin/src/main/java/com/willfp/talismans/display/packets/PacketAutoRecipe.java deleted file mode 100644 index 22c057b..0000000 --- a/eco-core/core-plugin/src/main/java/com/willfp/talismans/display/packets/PacketAutoRecipe.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.willfp.talismans.display.packets; - -import com.comphenix.protocol.PacketType; -import com.comphenix.protocol.ProtocolLibrary; -import com.comphenix.protocol.events.PacketContainer; -import com.willfp.eco.util.plugin.AbstractEcoPlugin; -import com.willfp.eco.util.protocollib.AbstractPacketAdapter; -import com.willfp.talismans.proxy.proxies.AutoCraftProxy; -import com.willfp.talismans.util.ProxyUtils; -import org.bukkit.entity.Player; -import org.jetbrains.annotations.NotNull; - -import java.lang.reflect.InvocationTargetException; - -public class PacketAutoRecipe extends AbstractPacketAdapter { - /** - * Instantiate a new listener for {@link PacketType.Play.Server#SET_SLOT}. - * - * @param plugin The plugin to listen through. - */ - public PacketAutoRecipe(@NotNull final AbstractEcoPlugin plugin) { - super(plugin, PacketType.Play.Server.AUTO_RECIPE, false); - } - - @Override - public void onSend(@NotNull final PacketContainer packet, - @NotNull final Player player) { - if (!packet.getMinecraftKeys().getValues().get(0).getFullKey().split(":")[0].equals("talismans")) { - return; - } - - if (packet.getMinecraftKeys().getValues().get(0).getFullKey().split(":")[1].contains("displayed")) { - return; - } - - try { - ProxyUtils.getProxy(AutoCraftProxy.class).modifyPacket(packet.getHandle()); - } catch (NoSuchFieldException | IllegalAccessException e) { - e.printStackTrace(); - } - - PacketContainer newAutoRecipe = new PacketContainer(PacketType.Play.Server.AUTO_RECIPE); - newAutoRecipe.getMinecraftKeys().write(0, packet.getMinecraftKeys().read(0)); - - try { - ProtocolLibrary.getProtocolManager().sendServerPacket(player, newAutoRecipe); - } catch (InvocationTargetException e) { - e.printStackTrace(); - } - } -} diff --git a/eco-core/core-plugin/src/main/java/com/willfp/talismans/display/packets/PacketChat.java b/eco-core/core-plugin/src/main/java/com/willfp/talismans/display/packets/PacketChat.java deleted file mode 100644 index a56f056..0000000 --- a/eco-core/core-plugin/src/main/java/com/willfp/talismans/display/packets/PacketChat.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.willfp.talismans.display.packets; - -import com.comphenix.protocol.PacketType; -import com.comphenix.protocol.events.ListenerPriority; -import com.comphenix.protocol.events.PacketContainer; -import com.comphenix.protocol.wrappers.WrappedChatComponent; -import com.willfp.eco.util.plugin.AbstractEcoPlugin; -import com.willfp.eco.util.protocollib.AbstractPacketAdapter; -import com.willfp.talismans.proxy.proxies.ChatComponentProxy; -import com.willfp.talismans.util.ProxyUtils; -import org.bukkit.entity.Player; -import org.jetbrains.annotations.NotNull; - -public class PacketChat extends AbstractPacketAdapter { - /** - * Instantiate a new listener for {@link PacketType.Play.Server#CHAT}. - * - * @param plugin The plugin to listen through. - */ - public PacketChat(@NotNull final AbstractEcoPlugin plugin) { - super(plugin, PacketType.Play.Server.CHAT, ListenerPriority.MONITOR, true); - } - - @Override - public void onSend(@NotNull final PacketContainer packet, - @NotNull final Player player) { - for (int i = 0; i < packet.getChatComponents().size(); i++) { - WrappedChatComponent component = packet.getChatComponents().read(i); - if (component == null) { - continue; - } - - if (component.getHandle() == null) { - return; - } - WrappedChatComponent newComponent = WrappedChatComponent.fromHandle(ProxyUtils.getProxy( ChatComponentProxy.class).modifyComponent(component.getHandle())); - packet.getChatComponents().write(i, newComponent); - } - } -} diff --git a/eco-core/core-plugin/src/main/java/com/willfp/talismans/display/packets/PacketOpenWindowMerchant.java b/eco-core/core-plugin/src/main/java/com/willfp/talismans/display/packets/PacketOpenWindowMerchant.java deleted file mode 100644 index 3173f30..0000000 --- a/eco-core/core-plugin/src/main/java/com/willfp/talismans/display/packets/PacketOpenWindowMerchant.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.willfp.talismans.display.packets; - -import com.comphenix.protocol.PacketType; -import com.comphenix.protocol.events.PacketContainer; -import com.willfp.eco.util.plugin.AbstractEcoPlugin; -import com.willfp.eco.util.protocollib.AbstractPacketAdapter; -import com.willfp.talismans.proxy.proxies.VillagerTradeProxy; -import com.willfp.talismans.util.ProxyUtils; -import org.bukkit.Material; -import org.bukkit.entity.Player; -import org.bukkit.inventory.MerchantRecipe; -import org.jetbrains.annotations.NotNull; - -import java.util.List; -import java.util.stream.Collectors; - -public class PacketOpenWindowMerchant extends AbstractPacketAdapter { - /** - * Instantiate a new listener for {@link PacketType.Play.Server#OPEN_WINDOW_MERCHANT}. - * - * @param plugin The plugin to listen through. - */ - public PacketOpenWindowMerchant(@NotNull final AbstractEcoPlugin plugin) { - super(plugin, PacketType.Play.Server.OPEN_WINDOW_MERCHANT, false); - } - - @Override - public void onSend(@NotNull final PacketContainer packet, - @NotNull final Player player) { - List recipes = packet.getMerchantRecipeLists().readSafely(0); - - recipes = recipes.stream().peek(merchantRecipe -> { - if (merchantRecipe.getResult().getType() != Material.PLAYER_HEAD) { - return; - } - - ProxyUtils.getProxy(VillagerTradeProxy.class).displayTradeTalismans(merchantRecipe); - }).collect(Collectors.toList()); - - packet.getMerchantRecipeLists().writeSafely(0, recipes); - } -} diff --git a/eco-core/core-plugin/src/main/java/com/willfp/talismans/display/packets/PacketSetCreativeSlot.java b/eco-core/core-plugin/src/main/java/com/willfp/talismans/display/packets/PacketSetCreativeSlot.java deleted file mode 100644 index 44374a0..0000000 --- a/eco-core/core-plugin/src/main/java/com/willfp/talismans/display/packets/PacketSetCreativeSlot.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.willfp.talismans.display.packets; - -import com.comphenix.protocol.PacketType; -import com.comphenix.protocol.events.PacketContainer; -import com.willfp.eco.util.protocollib.AbstractPacketAdapter; -import com.willfp.eco.util.plugin.AbstractEcoPlugin; -import com.willfp.talismans.display.TalismanDisplay; -import org.bukkit.entity.Player; -import org.jetbrains.annotations.NotNull; - -public class PacketSetCreativeSlot extends AbstractPacketAdapter { - /** - * Instantiate a new listener for {@link PacketType.Play.Client#SET_CREATIVE_SLOT}. - * - * @param plugin The plugin to listen through. - */ - public PacketSetCreativeSlot(@NotNull final AbstractEcoPlugin plugin) { - super(plugin, PacketType.Play.Client.SET_CREATIVE_SLOT, false); - } - - @Override - public void onReceive(@NotNull final PacketContainer packet, - @NotNull final Player player) { - packet.getItemModifier().modify(0, TalismanDisplay::revertDisplay); - } -} diff --git a/eco-core/core-plugin/src/main/java/com/willfp/talismans/display/packets/PacketSetSlot.java b/eco-core/core-plugin/src/main/java/com/willfp/talismans/display/packets/PacketSetSlot.java deleted file mode 100644 index ecae686..0000000 --- a/eco-core/core-plugin/src/main/java/com/willfp/talismans/display/packets/PacketSetSlot.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.willfp.talismans.display.packets; - -import com.comphenix.protocol.PacketType; -import com.comphenix.protocol.events.PacketContainer; -import com.willfp.eco.util.plugin.AbstractEcoPlugin; -import com.willfp.eco.util.protocollib.AbstractPacketAdapter; -import com.willfp.talismans.display.TalismanDisplay; -import org.bukkit.entity.Player; -import org.jetbrains.annotations.NotNull; - -public class PacketSetSlot extends AbstractPacketAdapter { - /** - * Instantiate a new listener for {@link PacketType.Play.Server#SET_SLOT}. - * - * @param plugin The plugin to listen through. - */ - public PacketSetSlot(@NotNull final AbstractEcoPlugin plugin) { - super(plugin, PacketType.Play.Server.SET_SLOT, false); - } - - @Override - public void onSend(@NotNull final PacketContainer packet, - @NotNull final Player player) { - packet.getItemModifier().modify(0, TalismanDisplay::displayTalisman); - } -} diff --git a/eco-core/core-plugin/src/main/java/com/willfp/talismans/display/packets/PacketWindowItems.java b/eco-core/core-plugin/src/main/java/com/willfp/talismans/display/packets/PacketWindowItems.java deleted file mode 100644 index 1e73830..0000000 --- a/eco-core/core-plugin/src/main/java/com/willfp/talismans/display/packets/PacketWindowItems.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.willfp.talismans.display.packets; - -import com.comphenix.protocol.PacketType; -import com.comphenix.protocol.events.PacketContainer; -import com.willfp.eco.util.plugin.AbstractEcoPlugin; -import com.willfp.eco.util.protocollib.AbstractPacketAdapter; -import com.willfp.talismans.display.TalismanDisplay; -import org.bukkit.entity.Player; -import org.jetbrains.annotations.NotNull; - -public class PacketWindowItems extends AbstractPacketAdapter { - /** - * Instantiate a new listener for {@link PacketType.Play.Server#WINDOW_ITEMS}. - * - * @param plugin The plugin to listen through. - */ - public PacketWindowItems(@NotNull final AbstractEcoPlugin plugin) { - super(plugin, PacketType.Play.Server.WINDOW_ITEMS, false); - } - - @Override - public void onSend(@NotNull final PacketContainer packet, - @NotNull final Player player) { - packet.getItemListModifier().modify(0, itemStacks -> { - if (itemStacks == null) { - return null; - } - itemStacks.forEach(TalismanDisplay::displayTalisman); - return itemStacks; - }); - } -}