Skip to content

Commit 4dac351

Browse files
committed
Fix ProtocolLib support for 1.17+
1 parent e22c3ea commit 4dac351

File tree

5 files changed

+65
-48
lines changed

5 files changed

+65
-48
lines changed

pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>com.sentropic.guiapi</groupId>
88
<artifactId>GUI_API</artifactId>
9-
<version>1.2</version>
9+
<version>1.2.1</version>
1010
<packaging>jar</packaging>
1111

1212
<name>GUI API</name>
@@ -76,13 +76,13 @@
7676
<dependency>
7777
<groupId>com.github.dmulloy2</groupId>
7878
<artifactId>ProtocolLib</artifactId>
79-
<version>7bac4ec634</version>
79+
<version>4.7.0</version>
8080
<scope>provided</scope>
8181
</dependency>
8282
<dependency>
8383
<groupId>org.jetbrains</groupId>
8484
<artifactId>annotations-java5</artifactId>
85-
<version>21.0.1</version>
85+
<version>22.0.0</version>
8686
<scope>provided</scope>
8787
</dependency>
8888
</dependencies>

src/main/java/com/sentropic/guiapi/GUIAPI.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import com.sentropic.guiapi.command.ReloadCommand;
44
import com.sentropic.guiapi.gui.GUI;
5-
import com.sentropic.guiapi.packet.PacketManager;
65
import org.bukkit.entity.Player;
76
import org.bukkit.event.EventHandler;
87
import org.bukkit.event.HandlerList;
@@ -74,7 +73,7 @@ public void onPluginDisable(PluginDisableEvent event) {
7473
private void setProtocolLib(boolean enabled) {
7574
if ((packetManager != null) == enabled) { return; }
7675
if (enabled) {
77-
packetManager = new PacketManager();
76+
packetManager = new PacketManager(this);
7877
} else {
7978
packetManager.disable();
8079
packetManager = null;
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
package com.sentropic.guiapi;
2+
3+
import com.comphenix.protocol.PacketType;
4+
import com.comphenix.protocol.ProtocolLibrary;
5+
import com.comphenix.protocol.ProtocolManager;
6+
import com.comphenix.protocol.events.PacketAdapter;
7+
import com.comphenix.protocol.events.PacketContainer;
8+
import com.comphenix.protocol.events.PacketEvent;
9+
import com.comphenix.protocol.utility.MinecraftVersion;
10+
import com.comphenix.protocol.wrappers.EnumWrappers;
11+
import com.sentropic.guiapi.gui.GUI;
12+
import net.md_5.bungee.chat.ComponentSerializer;
13+
import org.bukkit.plugin.Plugin;
14+
15+
public class PacketManager {
16+
private final ProtocolManager protocolManager;
17+
private final PacketAdapter packetAdapter;
18+
19+
PacketManager(Plugin plugin) {
20+
protocolManager = ProtocolLibrary.getProtocolManager();
21+
if (MinecraftVersion.atOrAbove(new MinecraftVersion("1.17"))) {
22+
packetAdapter = new Manager_1_17(plugin);
23+
} else {
24+
packetAdapter = new Manager_1_16(plugin);
25+
}
26+
protocolManager.addPacketListener(packetAdapter);
27+
}
28+
29+
public void disable() { protocolManager.removePacketListener(packetAdapter); }
30+
31+
private static class Manager_1_17 extends PacketAdapter {
32+
public Manager_1_17(Plugin plugin) {
33+
super(plugin, PacketType.Play.Server.SET_ACTION_BAR_TEXT);
34+
}
35+
36+
@Override
37+
public void onPacketSending(PacketEvent event) {
38+
if (event.isCancelled() || GUI.isSending()) { return; }
39+
boolean success = GUIAPI.getGUIManager().getGUI(event.getPlayer()).addAnonComponent(
40+
ComponentSerializer.parse(event.getPacket().getChatComponents().read(0).getJson())[0]);
41+
event.setCancelled(success);
42+
}
43+
}
44+
45+
private static class Manager_1_16 extends PacketAdapter {
46+
public Manager_1_16(Plugin plugin) {
47+
super(plugin, PacketType.Play.Server.TITLE);
48+
}
49+
50+
@Override
51+
public void onPacketSending(PacketEvent event) {
52+
if (event.isCancelled() || GUI.isSending()) { return; }
53+
PacketContainer packet = event.getPacket();
54+
if (!packet.getTitleActions().read(0).equals(EnumWrappers.TitleAction.ACTIONBAR)) { return; }
55+
boolean success = GUIAPI.getGUIManager().getGUI(event.getPlayer()).addAnonComponent(
56+
ComponentSerializer.parse(packet.getChatComponents().read(0).getJson())[0]);
57+
event.setCancelled(success);
58+
}
59+
}
60+
}

src/main/java/com/sentropic/guiapi/packet/PacketManager.java

Lines changed: 0 additions & 42 deletions
This file was deleted.

src/main/resources/plugin.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: GUIAPI
2-
version: 1.2
2+
version: ${project.version}
33
main: com.sentropic.guiapi.GUIAPI
44
api-version: 1.16
55
softdepend: [ProtocolLib]

0 commit comments

Comments
 (0)