From 5517167ecade16261a13d32ffaaa8331b1839626 Mon Sep 17 00:00:00 2001 From: IllgiLP Date: Sat, 24 Dec 2022 00:11:51 +0100 Subject: [PATCH] fix fawe upload on connect --- build.gradle.kts | 2 +- docs/Commands & Permissions.md | 4 +-- .../common/network/AbstractPacketHandler.java | 5 --- .../common/network/protocol/Protocol.java | 2 -- .../packet/AutoUploadReadyPacket.java | 35 ------------------- .../connection/ServerConnectionListener.java | 8 ----- .../WorldEditAdapterImpl.java | 6 ++++ .../WorldEditAdapterImpl.java | 6 ++++ .../WorldEditAdapterImpl.java | 7 ++++ .../WorldEditAdapterImpl.java | 7 ++++ .../server/bukkit/WegServerCoreImpl.java | 2 ++ .../worldedit/adapter/WorldEditAdapter.java | 2 ++ .../server/core/api/player/WegPlayer.java | 2 -- .../server/core/player/WegCorePlayer.java | 5 --- .../runnable/ClipboardAutoUploadRunnable.java | 4 +-- .../ServerConnectionPacketHandler.java | 6 ---- 16 files changed, 34 insertions(+), 69 deletions(-) delete mode 100644 weg-common/src/main/java/me/illgilp/worldeditglobalizer/common/network/protocol/packet/AutoUploadReadyPacket.java diff --git a/build.gradle.kts b/build.gradle.kts index e733b9f..d04f815 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -7,7 +7,7 @@ plugins { apply(plugin = "com.github.johnrengelman.shadow") group = "me.illgilp" -version = "3.0.0-beta" +version = "3.0.1-beta" applyCommonRepositories() diff --git a/docs/Commands & Permissions.md b/docs/Commands & Permissions.md index deb76c9..1bc0644 100644 --- a/docs/Commands & Permissions.md +++ b/docs/Commands & Permissions.md @@ -10,7 +10,7 @@ Commands -------- | Command | Description | Permissions | -|----------------------------------------------------------------------------------|------------------------------------------------------|--------------------------------------------------| +| -------------------------------------------------------------------------------- | ---------------------------------------------------- | ------------------------------------------------ | | [`/weg clipboard`](#weg-clipboard) | commands regarding clipboards | | | [`/weg clipboard clear [player name]`](#weg-clipboard-clear-player-name) | clears your/someone else's clipboard | `worldeditglobalizer.command.clipboard.clear` | | [`/weg clipboard download`](#weg-clipboard-download) | download your clipboard | `worldeditglobalizer.command.clipboard.download` | @@ -212,7 +212,7 @@ Permissions ----------- | Permission | Description | Commands | -|-----------------------------------------------------|-------------------------------------------------|----------------------------------------------------------------------------------| +| --------------------------------------------------- | ----------------------------------------------- | -------------------------------------------------------------------------------- | | `worldeditglobalizer.admin.notify.update` | allowing to receive update notifications | | | `worldeditglobalizer.clipboard.auto.download` | enable clipboard auto-download | | | `worldeditglobalizer.clipboard.auto.upload` | enable clipboard auto-upload | | diff --git a/weg-common/src/main/java/me/illgilp/worldeditglobalizer/common/network/AbstractPacketHandler.java b/weg-common/src/main/java/me/illgilp/worldeditglobalizer/common/network/AbstractPacketHandler.java index 4a8d76a..803d305 100644 --- a/weg-common/src/main/java/me/illgilp/worldeditglobalizer/common/network/AbstractPacketHandler.java +++ b/weg-common/src/main/java/me/illgilp/worldeditglobalizer/common/network/AbstractPacketHandler.java @@ -1,7 +1,6 @@ package me.illgilp.worldeditglobalizer.common.network; import me.illgilp.worldeditglobalizer.common.network.protocol.packet.ActionBarPacket; -import me.illgilp.worldeditglobalizer.common.network.protocol.packet.AutoUploadReadyPacket; import me.illgilp.worldeditglobalizer.common.network.protocol.packet.ClipboardDataPacket; import me.illgilp.worldeditglobalizer.common.network.protocol.packet.ClipboardRequestPacket; import me.illgilp.worldeditglobalizer.common.network.protocol.packet.KeepAlivePacket; @@ -48,8 +47,4 @@ public void handle(MessagePacket packet) { public void handle(ActionBarPacket packet) { throw new UnsupportedOperationException("Method not implemented"); } - - public void handle(AutoUploadReadyPacket packet) { - throw new UnsupportedOperationException("Method not implemented"); - } } diff --git a/weg-common/src/main/java/me/illgilp/worldeditglobalizer/common/network/protocol/Protocol.java b/weg-common/src/main/java/me/illgilp/worldeditglobalizer/common/network/protocol/Protocol.java index 873f838..45732b5 100644 --- a/weg-common/src/main/java/me/illgilp/worldeditglobalizer/common/network/protocol/Protocol.java +++ b/weg-common/src/main/java/me/illgilp/worldeditglobalizer/common/network/protocol/Protocol.java @@ -5,7 +5,6 @@ import java.util.function.Supplier; import lombok.Getter; import me.illgilp.worldeditglobalizer.common.network.protocol.packet.ActionBarPacket; -import me.illgilp.worldeditglobalizer.common.network.protocol.packet.AutoUploadReadyPacket; import me.illgilp.worldeditglobalizer.common.network.protocol.packet.ClipboardDataPacket; import me.illgilp.worldeditglobalizer.common.network.protocol.packet.ClipboardRequestPacket; import me.illgilp.worldeditglobalizer.common.network.protocol.packet.KeepAlivePacket; @@ -36,7 +35,6 @@ public enum Protocol { registerPacket(0x2, ProxyConfigResponsePacket.class, ProxyConfigResponsePacket::new); registerPacket(0x3, ClipboardDataPacket.class, ClipboardDataPacket::new); registerPacket(0x4, ClipboardRequestPacket.class, ClipboardRequestPacket::new); - registerPacket(0x5, AutoUploadReadyPacket.class, AutoUploadReadyPacket::new); } }; diff --git a/weg-common/src/main/java/me/illgilp/worldeditglobalizer/common/network/protocol/packet/AutoUploadReadyPacket.java b/weg-common/src/main/java/me/illgilp/worldeditglobalizer/common/network/protocol/packet/AutoUploadReadyPacket.java deleted file mode 100644 index a86f3d5..0000000 --- a/weg-common/src/main/java/me/illgilp/worldeditglobalizer/common/network/protocol/packet/AutoUploadReadyPacket.java +++ /dev/null @@ -1,35 +0,0 @@ -package me.illgilp.worldeditglobalizer.common.network.protocol.packet; - -import java.io.IOException; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import me.illgilp.worldeditglobalizer.common.network.AbstractPacketHandler; -import me.illgilp.worldeditglobalizer.common.network.data.PacketDataInput; -import me.illgilp.worldeditglobalizer.common.network.data.PacketDataOutput; - -@Data -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = false) -public class AutoUploadReadyPacket extends Packet { - - private boolean ready; - - @Override - public void read(PacketDataInput in) throws IOException { - this.ready = in.readBoolean(); - } - - @Override - public void write(PacketDataOutput out) throws IOException { - out.writeBoolean(this.ready); - } - - @Override - public void handle(AbstractPacketHandler packetHandler) { - packetHandler.handle(this); - } - -} diff --git a/weg-proxy/core/src/main/java/me/illgilp/worldeditglobalizer/proxy/core/server/connection/ServerConnectionListener.java b/weg-proxy/core/src/main/java/me/illgilp/worldeditglobalizer/proxy/core/server/connection/ServerConnectionListener.java index c388d8f..f7b4394 100644 --- a/weg-proxy/core/src/main/java/me/illgilp/worldeditglobalizer/proxy/core/server/connection/ServerConnectionListener.java +++ b/weg-proxy/core/src/main/java/me/illgilp/worldeditglobalizer/proxy/core/server/connection/ServerConnectionListener.java @@ -2,7 +2,6 @@ import java.util.concurrent.TimeUnit; import lombok.RequiredArgsConstructor; -import me.illgilp.worldeditglobalizer.common.network.protocol.packet.AutoUploadReadyPacket; import me.illgilp.worldeditglobalizer.common.permission.Permission; import me.illgilp.worldeditglobalizer.common.scheduler.WegScheduler; import me.illgilp.worldeditglobalizer.proxy.core.api.WegProxy; @@ -25,15 +24,8 @@ public void handleStateChange(WegServer.State from, WegServer.State to) { } catch (ServerNotUsableException ignored) { } } - sendAutoUploadReady(); }, 2500, TimeUnit.MILLISECONDS); - } else { - sendAutoUploadReady(); } } } - - private void sendAutoUploadReady() { - player.getServerConnection().sendPacket(new AutoUploadReadyPacket(true)); - } } diff --git a/weg-server/bukkit/adapter_1_13_fawe_2_5_1/src/main/java/me/illgilp/worldeditglobalizer/server/bukkit/worldedit/adapter/v1_13_fawe_2_5_1/WorldEditAdapterImpl.java b/weg-server/bukkit/adapter_1_13_fawe_2_5_1/src/main/java/me/illgilp/worldeditglobalizer/server/bukkit/worldedit/adapter/v1_13_fawe_2_5_1/WorldEditAdapterImpl.java index a7c3b57..22a4be8 100644 --- a/weg-server/bukkit/adapter_1_13_fawe_2_5_1/src/main/java/me/illgilp/worldeditglobalizer/server/bukkit/worldedit/adapter/v1_13_fawe_2_5_1/WorldEditAdapterImpl.java +++ b/weg-server/bukkit/adapter_1_13_fawe_2_5_1/src/main/java/me/illgilp/worldeditglobalizer/server/bukkit/worldedit/adapter/v1_13_fawe_2_5_1/WorldEditAdapterImpl.java @@ -125,4 +125,10 @@ public boolean readAndSetClipboard(WegPlayer player, byte[] data, int hashCode) } + @Override + public void clearClipboard(WegPlayer player) { + Optional.ofNullable(Bukkit.getPlayer(player.getUniqueId())) + .map(worldEditPlugin::getSession) + .ifPresent(localSession -> localSession.setClipboard(null)); + } } diff --git a/weg-server/bukkit/adapter_1_13_worldedit_7_2_12/src/main/java/me/illgilp/worldeditglobalizer/server/bukkit/worldedit/adapter/v1_13_worldedit_7_2_12/WorldEditAdapterImpl.java b/weg-server/bukkit/adapter_1_13_worldedit_7_2_12/src/main/java/me/illgilp/worldeditglobalizer/server/bukkit/worldedit/adapter/v1_13_worldedit_7_2_12/WorldEditAdapterImpl.java index 1a5e6b1..11236de 100644 --- a/weg-server/bukkit/adapter_1_13_worldedit_7_2_12/src/main/java/me/illgilp/worldeditglobalizer/server/bukkit/worldedit/adapter/v1_13_worldedit_7_2_12/WorldEditAdapterImpl.java +++ b/weg-server/bukkit/adapter_1_13_worldedit_7_2_12/src/main/java/me/illgilp/worldeditglobalizer/server/bukkit/worldedit/adapter/v1_13_worldedit_7_2_12/WorldEditAdapterImpl.java @@ -125,5 +125,11 @@ public boolean readAndSetClipboard(WegPlayer player, byte[] data, int hashCode) return true; } + @Override + public void clearClipboard(WegPlayer player) { + Optional.ofNullable(Bukkit.getPlayer(player.getUniqueId())) + .map(worldEditPlugin::getSession) + .ifPresent(localSession -> localSession.setClipboard(null)); + } } diff --git a/weg-server/bukkit/adapter_1_8_fawe_22_3_9/src/main/java/me/illgilp/worldeditglobalizer/server/bukkit/worldedit/adapter/v1_8_fawe_22_3_9/WorldEditAdapterImpl.java b/weg-server/bukkit/adapter_1_8_fawe_22_3_9/src/main/java/me/illgilp/worldeditglobalizer/server/bukkit/worldedit/adapter/v1_8_fawe_22_3_9/WorldEditAdapterImpl.java index 27143ae..e9d0acf 100644 --- a/weg-server/bukkit/adapter_1_8_fawe_22_3_9/src/main/java/me/illgilp/worldeditglobalizer/server/bukkit/worldedit/adapter/v1_8_fawe_22_3_9/WorldEditAdapterImpl.java +++ b/weg-server/bukkit/adapter_1_8_fawe_22_3_9/src/main/java/me/illgilp/worldeditglobalizer/server/bukkit/worldedit/adapter/v1_8_fawe_22_3_9/WorldEditAdapterImpl.java @@ -128,6 +128,13 @@ public boolean readAndSetClipboard(WegPlayer player, byte[] data, int hashCode) return true; } + @Override + public void clearClipboard(WegPlayer player) { + Optional.ofNullable(Bukkit.getPlayer(player.getUniqueId())) + .map(worldEditPlugin::getSession) + .ifPresent(localSession -> localSession.setClipboard(null)); + } + private boolean isNewFormat(InputStream inputStream) { try (NBTInputStream str = new NBTInputStream(inputStream)) { NamedTag rootTag = str.readNamedTag(); diff --git a/weg-server/bukkit/adapter_1_8_worldedit_6_1_5/src/main/java/me/illgilp/worldeditglobalizer/server/bukkit/worldedit/adapter/v1_8_worldedit_6_1_5/WorldEditAdapterImpl.java b/weg-server/bukkit/adapter_1_8_worldedit_6_1_5/src/main/java/me/illgilp/worldeditglobalizer/server/bukkit/worldedit/adapter/v1_8_worldedit_6_1_5/WorldEditAdapterImpl.java index 19b60e2..71c962f 100644 --- a/weg-server/bukkit/adapter_1_8_worldedit_6_1_5/src/main/java/me/illgilp/worldeditglobalizer/server/bukkit/worldedit/adapter/v1_8_worldedit_6_1_5/WorldEditAdapterImpl.java +++ b/weg-server/bukkit/adapter_1_8_worldedit_6_1_5/src/main/java/me/illgilp/worldeditglobalizer/server/bukkit/worldedit/adapter/v1_8_worldedit_6_1_5/WorldEditAdapterImpl.java @@ -128,6 +128,13 @@ public boolean readAndSetClipboard(WegPlayer player, byte[] data, int hashCode) return true; } + @Override + public void clearClipboard(WegPlayer player) { + Optional.ofNullable(Bukkit.getPlayer(player.getUniqueId())) + .map(worldEditPlugin::getSession) + .ifPresent(localSession -> localSession.setClipboard(null)); + } + private boolean isNewFormat(InputStream inputStream) { try (NBTInputStream str = new NBTInputStream(inputStream)) { NamedTag rootTag = str.readNamedTag(); diff --git a/weg-server/bukkit/impl/src/main/java/me/illgilp/worldeditglobalizer/server/bukkit/WegServerCoreImpl.java b/weg-server/bukkit/impl/src/main/java/me/illgilp/worldeditglobalizer/server/bukkit/WegServerCoreImpl.java index e6628b9..660c46d 100644 --- a/weg-server/bukkit/impl/src/main/java/me/illgilp/worldeditglobalizer/server/bukkit/WegServerCoreImpl.java +++ b/weg-server/bukkit/impl/src/main/java/me/illgilp/worldeditglobalizer/server/bukkit/WegServerCoreImpl.java @@ -92,6 +92,8 @@ protected Optional fetchPlayer(String name) { @Override protected void onPlayerConnected(WegPlayer player) { + Optional.ofNullable(WorldEditAdapterFilter.getWorldEditAdapter()) + .ifPresent(worldEditAdapter -> worldEditAdapter.clearClipboard(player)); super.onPlayerConnected(player); } diff --git a/weg-server/bukkit/impl/src/main/java/me/illgilp/worldeditglobalizer/server/bukkit/api/worldedit/adapter/WorldEditAdapter.java b/weg-server/bukkit/impl/src/main/java/me/illgilp/worldeditglobalizer/server/bukkit/api/worldedit/adapter/WorldEditAdapter.java index d0b32d4..eb72359 100644 --- a/weg-server/bukkit/impl/src/main/java/me/illgilp/worldeditglobalizer/server/bukkit/api/worldedit/adapter/WorldEditAdapter.java +++ b/weg-server/bukkit/impl/src/main/java/me/illgilp/worldeditglobalizer/server/bukkit/api/worldedit/adapter/WorldEditAdapter.java @@ -17,4 +17,6 @@ public WorldEditAdapterFilter getFilter() { public abstract Optional getClipboardOfPlayer(WegPlayer player); public abstract boolean readAndSetClipboard(WegPlayer player, byte[] data, int hashCode); + + public abstract void clearClipboard(WegPlayer player); } diff --git a/weg-server/core/src/main/java/me/illgilp/worldeditglobalizer/server/core/api/player/WegPlayer.java b/weg-server/core/src/main/java/me/illgilp/worldeditglobalizer/server/core/api/player/WegPlayer.java index fd1e02f..40e1956 100644 --- a/weg-server/core/src/main/java/me/illgilp/worldeditglobalizer/server/core/api/player/WegPlayer.java +++ b/weg-server/core/src/main/java/me/illgilp/worldeditglobalizer/server/core/api/player/WegPlayer.java @@ -31,6 +31,4 @@ public interface WegPlayer extends Audience, Identified, PermissionSubject { CommonProxyConfig getProxyConfig(); - boolean isAutoUploadReady(); - } diff --git a/weg-server/core/src/main/java/me/illgilp/worldeditglobalizer/server/core/player/WegCorePlayer.java b/weg-server/core/src/main/java/me/illgilp/worldeditglobalizer/server/core/player/WegCorePlayer.java index 816de2a..d2fd7d4 100644 --- a/weg-server/core/src/main/java/me/illgilp/worldeditglobalizer/server/core/player/WegCorePlayer.java +++ b/weg-server/core/src/main/java/me/illgilp/worldeditglobalizer/server/core/player/WegCorePlayer.java @@ -173,9 +173,4 @@ private class IdentityImpl implements Identity { return WegCorePlayer.this.getUniqueId(); } } - - @Override - public boolean isAutoUploadReady() { - return autoUploadReady; - } } diff --git a/weg-server/core/src/main/java/me/illgilp/worldeditglobalizer/server/core/runnable/ClipboardAutoUploadRunnable.java b/weg-server/core/src/main/java/me/illgilp/worldeditglobalizer/server/core/runnable/ClipboardAutoUploadRunnable.java index d6c2fb4..a261ca3 100644 --- a/weg-server/core/src/main/java/me/illgilp/worldeditglobalizer/server/core/runnable/ClipboardAutoUploadRunnable.java +++ b/weg-server/core/src/main/java/me/illgilp/worldeditglobalizer/server/core/runnable/ClipboardAutoUploadRunnable.java @@ -21,9 +21,7 @@ public ClipboardAutoUploadRunnable(WegServer wegServer) { @Override public void run() { for (WegPlayer wegPlayer : new ArrayList<>(wegServer.getPlayers())) { - if (wegPlayer.getConnection().getState() != WegServerConnection.State.USABLE - || !wegPlayer.isAutoUploadReady() - ) { + if (wegPlayer.getConnection().getState() != WegServerConnection.State.USABLE) { continue; } if (wegPlayer.getProxyConfig().isClipboardAutoUploadEnabled()) { diff --git a/weg-server/core/src/main/java/me/illgilp/worldeditglobalizer/server/core/server/connection/ServerConnectionPacketHandler.java b/weg-server/core/src/main/java/me/illgilp/worldeditglobalizer/server/core/server/connection/ServerConnectionPacketHandler.java index ab45bde..a943f40 100644 --- a/weg-server/core/src/main/java/me/illgilp/worldeditglobalizer/server/core/server/connection/ServerConnectionPacketHandler.java +++ b/weg-server/core/src/main/java/me/illgilp/worldeditglobalizer/server/core/server/connection/ServerConnectionPacketHandler.java @@ -9,7 +9,6 @@ import me.illgilp.worldeditglobalizer.common.messages.MessageHelper; import me.illgilp.worldeditglobalizer.common.messages.translation.TranslationKey; import me.illgilp.worldeditglobalizer.common.network.AbstractPacketHandler; -import me.illgilp.worldeditglobalizer.common.network.protocol.packet.AutoUploadReadyPacket; import me.illgilp.worldeditglobalizer.common.network.protocol.packet.ClipboardDataPacket; import me.illgilp.worldeditglobalizer.common.network.protocol.packet.ClipboardRequestPacket; import me.illgilp.worldeditglobalizer.common.network.protocol.packet.KeepAlivePacket; @@ -67,9 +66,4 @@ public void handle(PermissionCheckRequestPacket packet) { public void handle(ClipboardRequestPacket packet) { WegScheduler.getInstance().getSyncExecutor().execute(player::uploadClipboard); } - - @Override - public void handle(AutoUploadReadyPacket packet) { - player.setAutoUploadReady(packet.isReady()); - } }