33import com .github .retrooper .packetevents .PacketEvents ;
44import com .github .retrooper .packetevents .event .EventManager ;
55import com .github .retrooper .packetevents .event .PacketListenerPriority ;
6+ import com .github .retrooper .packetevents .manager .player .PlayerManager ;
7+ import com .github .retrooper .packetevents .wrapper .play .server .WrapperPlayServerOpenWindow ;
68import fr .maxlego08 .menu .api .Inventory ;
79import fr .maxlego08 .menu .api .InventoryListener ;
810import fr .maxlego08 .menu .api .MenuPlugin ;
11+ import fr .maxlego08 .menu .api .PacketManager ;
912import fr .maxlego08 .menu .api .configuration .Configuration ;
1013import fr .maxlego08 .menu .api .engine .BaseInventory ;
1114import fr .maxlego08 .menu .api .engine .InventoryEngine ;
1215import fr .maxlego08 .menu .api .engine .ItemButton ;
1316import fr .maxlego08 .menu .api .utils .CompatibilityUtil ;
17+ import fr .maxlego08 .menu .api .utils .PaperMetaUpdater ;
1418import fr .maxlego08 .menu .hooks .packetevents .listener .PacketAnimationListener ;
1519import fr .maxlego08 .menu .hooks .packetevents .listener .PacketEventClickLimiterListener ;
1620import fr .maxlego08 .menu .hooks .packetevents .listener .PacketTitleListener ;
1721import fr .maxlego08 .menu .zcore .logger .Logger ;
1822import io .github .retrooper .packetevents .factory .spigot .SpigotPacketEventsBuilder ;
23+ import net .kyori .adventure .text .Component ;
1924import org .bukkit .entity .Player ;
2025import org .bukkit .inventory .InventoryHolder ;
2126import org .bukkit .inventory .ItemStack ;
27+ import org .jetbrains .annotations .NotNull ;
2228
2329import java .util .HashMap ;
2430import java .util .Map ;
2531import java .util .UUID ;
2632
27- public class PacketUtils implements InventoryListener {
33+ public class PacketUtils implements InventoryListener , PacketManager {
34+ private final PlayerManager playerManager = PacketEvents .getAPI ().getPlayerManager ();
35+
2836 private PacketAnimationListener packetAnimationListener ;
2937 private PacketTitleListener packetTitleListener ;
3038
@@ -35,11 +43,13 @@ public PacketUtils(MenuPlugin plugin) {
3543 this .plugin = plugin ;
3644 }
3745
46+ @ Override
3847 public void onLoad () {
3948 PacketEvents .setAPI (SpigotPacketEventsBuilder .build (this .plugin ));
4049 PacketEvents .getAPI ().load ();
4150 }
4251
52+ @ Override
4353 public void onEnable () {
4454 PacketEvents .getAPI ().init ();
4555 EventManager eventManager = PacketEvents .getAPI ().getEventManager ();
@@ -52,6 +62,7 @@ public void onEnable() {
5262 }
5363 }
5464
65+ @ Override
5566 public void onDisable () {
5667 PacketEvents .getAPI ().terminate ();
5768 }
@@ -110,4 +121,24 @@ public PacketAnimationListener getPacketAnimationListener() {
110121 public PacketTitleListener getPacketTitleListener () {
111122 return packetTitleListener ;
112123 }
124+
125+ @ Override
126+ public void editInventoryTitleName (@ NotNull Player player , @ NotNull Component title ) {
127+ this .packetTitleListener .getPlayerPacketInformation (player .getUniqueId ()).ifPresent (playerPacketInformation -> {
128+ WrapperPlayServerOpenWindow wrapperPlayServerOpenWindow = playerPacketInformation .getWrapperPlayServerOpenWindow ();
129+ WrapperPlayServerOpenWindow newWrapperPlayServerOpenWindow1 = new WrapperPlayServerOpenWindow (wrapperPlayServerOpenWindow .getContainerId (),
130+ wrapperPlayServerOpenWindow .getType (),
131+ title );
132+ this .playerManager .sendPacket (player , newWrapperPlayServerOpenWindow1 );
133+ this .playerManager .sendPacket (player , playerPacketInformation .getWrapperPlayServerWindowItems ());
134+ });
135+ }
136+
137+ @ Override
138+ public void editInventoryTitleName (@ NotNull Player player , @ NotNull String title ) {
139+ if (this .plugin .getMetaUpdater () instanceof PaperMetaUpdater paperMetaUpdater ) {
140+ Component component = paperMetaUpdater .getComponent (title );
141+ this .editInventoryTitleName (player , component );
142+ }
143+ }
113144}
0 commit comments