From e2cdf757bd4e04e63ca82e8a6901f9f7963115f9 Mon Sep 17 00:00:00 2001 From: Lax Date: Sat, 14 Jan 2023 04:13:05 +0000 Subject: [PATCH 1/4] /player_visibility --- pom.xml | 6 ++ .../packetwrapper/AbstractPacket.java | 70 +++++++++++++ .../WrapperPlayServerEntityMetadata.java | 99 +++++++++++++++++++ .../github/hielkemaps/serverplugin/Main.java | 7 ++ .../serverplugin/PlayerVisibilityOption.java | 6 ++ .../commands/PlayerVisibility.java | 30 ++++++ .../serverplugin/events/PacketListener.java | 70 +++++++++++++ .../serverplugin/wrapper/PlayerWrapper.java | 78 ++++++++++++++- src/main/resources/plugin.yml | 2 +- target/classes/plugin.yml | 2 +- .../compile/default-compile/createdFiles.lst | 11 ++- 11 files changed, 375 insertions(+), 6 deletions(-) create mode 100644 src/main/java/com/comphenix/packetwrapper/AbstractPacket.java create mode 100644 src/main/java/com/comphenix/packetwrapper/WrapperPlayServerEntityMetadata.java create mode 100644 src/main/java/io/github/hielkemaps/serverplugin/PlayerVisibilityOption.java create mode 100644 src/main/java/io/github/hielkemaps/serverplugin/commands/PlayerVisibility.java create mode 100644 src/main/java/io/github/hielkemaps/serverplugin/events/PacketListener.java diff --git a/pom.xml b/pom.xml index cbb1fd4..1860a80 100644 --- a/pom.xml +++ b/pom.xml @@ -39,6 +39,12 @@ 3.2.6 provided + + com.comphenix.protocol + ProtocolLib + 5.0.0-SNAPSHOT + provided + diff --git a/src/main/java/com/comphenix/packetwrapper/AbstractPacket.java b/src/main/java/com/comphenix/packetwrapper/AbstractPacket.java new file mode 100644 index 0000000..63793aa --- /dev/null +++ b/src/main/java/com/comphenix/packetwrapper/AbstractPacket.java @@ -0,0 +1,70 @@ +package com.comphenix.packetwrapper; + +import com.comphenix.protocol.PacketType; +import com.comphenix.protocol.ProtocolLibrary; +import com.comphenix.protocol.events.PacketContainer; +import com.google.common.base.Objects; +import org.bukkit.entity.Player; + +public abstract class AbstractPacket { + // The packet we will be modifying + protected PacketContainer handle; + + /** + * Constructs a new strongly typed wrapper for the given packet. + * + * @param handle - handle to the raw packet data. + * @param type - the packet type. + */ + protected AbstractPacket(PacketContainer handle, PacketType type) { + // Make sure we're given a valid packet + if (handle == null) + throw new IllegalArgumentException("Packet handle cannot be NULL."); + if (!Objects.equal(handle.getType(), type)) + throw new IllegalArgumentException(handle.getHandle() + + " is not a packet of type " + type); + + this.handle = handle; + } + + /** + * Retrieve a handle to the raw packet data. + * + * @return Raw packet data. + */ + public PacketContainer getHandle() { + return handle; + } + + /** + * Send the current packet to the given receiver. + * + * @param receiver - the receiver. + * @throws RuntimeException If the packet cannot be sent. + */ + public void sendPacket(Player receiver) { + ProtocolLibrary.getProtocolManager().sendServerPacket(receiver, getHandle()); + } + + /** + * Send the current packet to all online players. + */ + public void broadcastPacket() { + ProtocolLibrary.getProtocolManager().broadcastServerPacket(getHandle()); + } + + /** + * Simulate receiving the current packet from the given sender. + * + * @param sender - the sender. + * @throws RuntimeException if the packet cannot be received. + */ + public void receivePacket(Player sender) { + try { + ProtocolLibrary.getProtocolManager().receiveClientPacket(sender, + getHandle()); + } catch (Exception e) { + throw new RuntimeException("Cannot receive packet.", e); + } + } +} \ No newline at end of file diff --git a/src/main/java/com/comphenix/packetwrapper/WrapperPlayServerEntityMetadata.java b/src/main/java/com/comphenix/packetwrapper/WrapperPlayServerEntityMetadata.java new file mode 100644 index 0000000..b919b9d --- /dev/null +++ b/src/main/java/com/comphenix/packetwrapper/WrapperPlayServerEntityMetadata.java @@ -0,0 +1,99 @@ +/** + * PacketWrapper - ProtocolLib wrappers for Minecraft packets + * Copyright (C) dmulloy2 + * Copyright (C) Kristian S. Strangeland + * + * 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 + * (at your option) 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 com.comphenix.packetwrapper; + +import com.comphenix.protocol.PacketType; +import com.comphenix.protocol.events.PacketContainer; +import com.comphenix.protocol.events.PacketEvent; +import com.comphenix.protocol.wrappers.WrappedWatchableObject; +import java.util.List; +import org.bukkit.World; +import org.bukkit.entity.Entity; + +public class WrapperPlayServerEntityMetadata extends AbstractPacket { + public static final PacketType TYPE = + PacketType.Play.Server.ENTITY_METADATA; + + public WrapperPlayServerEntityMetadata() { + super(new PacketContainer(TYPE), TYPE); + handle.getModifier().writeDefaults(); + } + + public WrapperPlayServerEntityMetadata(PacketContainer packet) { + super(packet, TYPE); + } + + /** + * Retrieve Entity ID. + *

+ * Notes: entity's ID + * + * @return The current Entity ID + */ + public int getEntityID() { + return handle.getIntegers().read(0); + } + + /** + * Set Entity ID. + * + * @param value - new value. + */ + public void setEntityID(int value) { + handle.getIntegers().write(0, value); + } + + /** + * Retrieve the entity of the painting that will be spawned. + * + * @param world - the current world of the entity. + * @return The spawned entity. + */ + public Entity getEntity(World world) { + return handle.getEntityModifier(world).read(0); + } + + /** + * Retrieve the entity of the painting that will be spawned. + * + * @param event - the packet event. + * @return The spawned entity. + */ + public Entity getEntity(PacketEvent event) { + return getEntity(event.getPlayer().getWorld()); + } + + /** + * Retrieve Metadata. + * + * @return The current Metadata + */ + public List getMetadata() { + return handle.getWatchableCollectionModifier().read(0); + } + + /** + * Set Metadata. + * + * @param value - new value. + */ + public void setMetadata(List value) { + handle.getWatchableCollectionModifier().write(0, value); + } +} \ No newline at end of file diff --git a/src/main/java/io/github/hielkemaps/serverplugin/Main.java b/src/main/java/io/github/hielkemaps/serverplugin/Main.java index e0ad68b..cc4c633 100644 --- a/src/main/java/io/github/hielkemaps/serverplugin/Main.java +++ b/src/main/java/io/github/hielkemaps/serverplugin/Main.java @@ -1,5 +1,6 @@ package io.github.hielkemaps.serverplugin; +import com.comphenix.protocol.ProtocolLibrary; import dev.jorel.commandapi.CommandAPI; import io.github.hielkemaps.serverplugin.commands.*; import io.github.hielkemaps.serverplugin.events.EventListener; @@ -9,6 +10,7 @@ import net.kyori.adventure.text.format.TextColor; import org.black_ixx.playerpoints.PlayerPoints; import org.black_ixx.playerpoints.PlayerPointsAPI; +import io.github.hielkemaps.serverplugin.events.PacketListener; import org.bukkit.Bukkit; import org.bukkit.GameMode; import org.bukkit.Sound; @@ -56,6 +58,8 @@ public void onEnable() { pointsAPI = PlayerPoints.getInstance().getAPI(); loadConfig(); + + ProtocolLibrary.getProtocolManager().addPacketListener(new PacketListener(this)); } public static void loadConfig() { @@ -77,6 +81,9 @@ public static void loadConfig() { if (!disabledCommands.contains("highscores")) new Highscores(); else CommandAPI.unregister("highscores"); + if(!disabledCommands.contains("player_visibility")) new PlayerVisibility(); + else CommandAPI.unregister("player_visibility"); + Bukkit.getOnlinePlayers().forEach(CommandAPI::updateRequirements); } diff --git a/src/main/java/io/github/hielkemaps/serverplugin/PlayerVisibilityOption.java b/src/main/java/io/github/hielkemaps/serverplugin/PlayerVisibilityOption.java new file mode 100644 index 0000000..39bc360 --- /dev/null +++ b/src/main/java/io/github/hielkemaps/serverplugin/PlayerVisibilityOption.java @@ -0,0 +1,6 @@ +package io.github.hielkemaps.serverplugin; + +public enum PlayerVisibilityOption { + + VISIBLE, INVISIBLE, GHOST; +} \ No newline at end of file diff --git a/src/main/java/io/github/hielkemaps/serverplugin/commands/PlayerVisibility.java b/src/main/java/io/github/hielkemaps/serverplugin/commands/PlayerVisibility.java new file mode 100644 index 0000000..b74714c --- /dev/null +++ b/src/main/java/io/github/hielkemaps/serverplugin/commands/PlayerVisibility.java @@ -0,0 +1,30 @@ +package io.github.hielkemaps.serverplugin.commands; + +import dev.jorel.commandapi.CommandAPICommand; +import io.github.hielkemaps.serverplugin.PlayerVisibilityOption; +import io.github.hielkemaps.serverplugin.wrapper.PlayerManager; + +public class PlayerVisibility { + + public PlayerVisibility() { + new CommandAPICommand("player_visibliity") + .withAliases("playervisibility", "pv") + + .withSubcommand(new CommandAPICommand("visible") + .executesPlayer((p, args) -> { + PlayerManager.getPlayer(p.getUniqueId()).setVisibilityOption(PlayerVisibilityOption.VISIBLE); + })) + + .withSubcommand(new CommandAPICommand("invisible") + .executesPlayer((p, args) -> { + PlayerManager.getPlayer(p.getUniqueId()).setVisibilityOption(PlayerVisibilityOption.INVISIBLE); + })) + + .withSubcommand(new CommandAPICommand("ghost") + .executesPlayer((p, args) -> { + PlayerManager.getPlayer(p.getUniqueId()).setVisibilityOption(PlayerVisibilityOption.GHOST); + })) + + .register(); + } +} \ No newline at end of file diff --git a/src/main/java/io/github/hielkemaps/serverplugin/events/PacketListener.java b/src/main/java/io/github/hielkemaps/serverplugin/events/PacketListener.java new file mode 100644 index 0000000..38575fa --- /dev/null +++ b/src/main/java/io/github/hielkemaps/serverplugin/events/PacketListener.java @@ -0,0 +1,70 @@ +package io.github.hielkemaps.serverplugin.events; + +import com.comphenix.packetwrapper.WrapperPlayServerEntityMetadata; +import com.comphenix.protocol.PacketType; +import com.comphenix.protocol.events.PacketAdapter; +import com.comphenix.protocol.events.PacketEvent; +import com.comphenix.protocol.wrappers.WrappedDataWatcher; +import com.comphenix.protocol.wrappers.WrappedWatchableObject; +import io.github.hielkemaps.serverplugin.PlayerVisibilityOption; +import io.github.hielkemaps.serverplugin.wrapper.PlayerManager; +import io.github.hielkemaps.serverplugin.wrapper.PlayerWrapper; +import org.bukkit.entity.Entity; +import org.bukkit.entity.Player; +import org.bukkit.plugin.Plugin; + +public class PacketListener extends PacketAdapter { + + public PacketListener(Plugin plugin) { + super(plugin, PacketType.Play.Server.ENTITY_METADATA); + } + + @Override + public void onPacketSending(final PacketEvent event) { + PlayerWrapper player = PlayerManager.getPlayer(event.getPlayer().getUniqueId()); + + WrapperPlayServerEntityMetadata packet = new WrapperPlayServerEntityMetadata(event.getPacket()); + Entity entity = packet.getEntity(event); + + if (entity instanceof Player) { + if (!entity.getUniqueId().equals(event.getPlayer().getUniqueId())) { + for (WrappedWatchableObject watchedObject : packet.getMetadata()) { + if (watchedObject.getIndex() == 0) { + if (player.getVisibilityOption() == PlayerVisibilityOption.GHOST) { + if (((byte) watchedObject.getValue() & 0x20) != 0x20) { + WrappedDataWatcher watcher = new WrappedDataWatcher(); + WrappedDataWatcher.Serializer serializer = WrappedDataWatcher.Registry.get(Byte.class); + watcher.setEntity(event.getPlayer()); + watcher.setObject(0, serializer, (byte) ((byte) watchedObject.getRawValue() | 0x20)); + + WrapperPlayServerEntityMetadata newPacket = new WrapperPlayServerEntityMetadata(); + newPacket.setMetadata(watcher.getWatchableObjects()); + + newPacket.setEntityID(packet.getEntityID()); + newPacket.sendPacket(event.getPlayer()); + + event.setCancelled(true); + } + } else { + if (((byte) watchedObject.getRawValue() & 0x20) == 0x20) { + + WrappedDataWatcher watcher = new WrappedDataWatcher(); + WrappedDataWatcher.Serializer serializer = WrappedDataWatcher.Registry.get(Byte.class); + watcher.setEntity(event.getPlayer()); + watcher.setObject(0, serializer, (byte) ((byte) watchedObject.getRawValue() & (0xFF - 0x20))); + + WrapperPlayServerEntityMetadata newPacket = new WrapperPlayServerEntityMetadata(); + newPacket.setMetadata(watcher.getWatchableObjects()); + + newPacket.setEntityID(packet.getEntityID()); + newPacket.sendPacket(event.getPlayer()); + + event.setCancelled(true); + } + } + } + } + } + } + } +} \ No newline at end of file diff --git a/src/main/java/io/github/hielkemaps/serverplugin/wrapper/PlayerWrapper.java b/src/main/java/io/github/hielkemaps/serverplugin/wrapper/PlayerWrapper.java index 0c1e406..72413bb 100644 --- a/src/main/java/io/github/hielkemaps/serverplugin/wrapper/PlayerWrapper.java +++ b/src/main/java/io/github/hielkemaps/serverplugin/wrapper/PlayerWrapper.java @@ -1,7 +1,12 @@ package io.github.hielkemaps.serverplugin.wrapper; +import com.comphenix.packetwrapper.WrapperPlayServerEntityMetadata; +import com.comphenix.protocol.wrappers.WrappedDataWatcher; import dev.jorel.commandapi.CommandAPI; +import io.github.hielkemaps.serverplugin.Main; +import io.github.hielkemaps.serverplugin.PlayerVisibilityOption; import org.bukkit.Bukkit; +import org.bukkit.ChatColor; import org.bukkit.entity.Player; import java.util.HashSet; @@ -14,6 +19,8 @@ public class PlayerWrapper { private final Set outgoing = new HashSet<>(); private boolean getCoins = true; + private PlayerVisibilityOption visibilityOption = PlayerVisibilityOption.VISIBLE; + public PlayerWrapper(UUID uuid) { this.uuid = uuid; } @@ -76,9 +83,78 @@ public void clearOutgoing() { } public void updateRequirements() { - Player player = Bukkit.getPlayer(this.uuid); + Player player = getPlayer(); if (player != null) { CommandAPI.updateRequirements(player); } } + + public Player getPlayer() { + return Bukkit.getPlayer(this.uuid); + } + + public PlayerVisibilityOption getVisibilityOption() { + return this.visibilityOption; + } + + public void setVisibilityOption(PlayerVisibilityOption option) { + Player player = getPlayer(); + + if (player != null) { + if (this.visibilityOption == option) { + player.sendMessage(ChatColor.RED + "You are already " + option.toString().toLowerCase() + "!"); + return; + } + + this.visibilityOption = option; + + if (option == PlayerVisibilityOption.VISIBLE) { + player.sendMessage(ChatColor.GRAY + "Players are now visible"); + + WrappedDataWatcher watcher = new WrappedDataWatcher(); + WrappedDataWatcher.Serializer serializer = WrappedDataWatcher.Registry.get(Byte.class); + watcher.setEntity(player); + watcher.setObject(0, serializer, (byte) 0x0); + + for (Player other : Bukkit.getOnlinePlayers()) { + if (!uuid.equals(other.getUniqueId())) { + player.showPlayer(Main.getInstance(), other); + + WrapperPlayServerEntityMetadata packet = new WrapperPlayServerEntityMetadata(); + packet.setMetadata(watcher.getWatchableObjects()); + + packet.setEntityID(other.getEntityId()); + packet.sendPacket(player); + } + } + } else if (option == PlayerVisibilityOption.INVISIBLE) { + player.sendMessage(ChatColor.GRAY + "Players are now invisible"); + + for (Player other : Bukkit.getOnlinePlayers()) { + if (!uuid.equals(other.getUniqueId())) { + player.hidePlayer(Main.getInstance(), other); + } + } + } else if (option == PlayerVisibilityOption.GHOST) { + player.sendMessage(ChatColor.GRAY + "Players are now semi-transparent"); + + WrappedDataWatcher watcher = new WrappedDataWatcher(); + WrappedDataWatcher.Serializer serializer = WrappedDataWatcher.Registry.get(Byte.class); + watcher.setEntity(player); + watcher.setObject(0, serializer, (byte) 0x20); + + for (Player other : Bukkit.getOnlinePlayers()) { + if (!uuid.equals(other.getUniqueId())) { + player.showPlayer(Main.getInstance(), other); + + WrapperPlayServerEntityMetadata packet = new WrapperPlayServerEntityMetadata(); + packet.setMetadata(watcher.getWatchableObjects()); + + packet.setEntityID(other.getEntityId()); + packet.sendPacket(player); + } + } + } + } + } } diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index a596297..5fe05df 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -3,4 +3,4 @@ main: io.github.hielkemaps.serverplugin.Main version: 1.1.2 author: Hielke api-version: '1.20' -depend: [CommandAPI,PlayerPoints] \ No newline at end of file +depend: [CommandAPI,PlayerPoints,ProtocolLib] \ No newline at end of file diff --git a/target/classes/plugin.yml b/target/classes/plugin.yml index e41cabf..d1d59ac 100644 --- a/target/classes/plugin.yml +++ b/target/classes/plugin.yml @@ -3,4 +3,4 @@ main: io.github.hielkemaps.serverplugin.Main version: 1.1.0 author: Hielke api-version: '1.20' -depend: [CommandAPI,PlayerPoints] \ No newline at end of file +depend: [CommandAPI,PlayerPoints,ProtocolLib] diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst index 2765363..9927aec 100644 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -1,10 +1,15 @@ io\github\hielkemaps\serverplugin\wrapper\PlayerManager.class -io\github\hielkemaps\serverplugin\commands\Hub.class +io\github\hielkemaps\serverplugin\events\PacketListener.class io\github\hielkemaps\serverplugin\wrapper\PlayerWrapper.class io\github\hielkemaps\serverplugin\commands\Highscores.class io\github\hielkemaps\serverplugin\commands\Spectate.class -io\github\hielkemaps\serverplugin\Main.class +com\comphenix\packetwrapper\WrapperPlayServerEntityMetadata.class io\github\hielkemaps\serverplugin\objects\ScorePair.class io\github\hielkemaps\serverplugin\events\EventListener.class -io\github\hielkemaps\serverplugin\commands\ReloadConfig.class io\github\hielkemaps\serverplugin\commands\Tpa.class +io\github\hielkemaps\serverplugin\PlayerVisibilityOption.class +io\github\hielkemaps\serverplugin\commands\Hub.class +io\github\hielkemaps\serverplugin\commands\PlayerVisibility.class +io\github\hielkemaps\serverplugin\Main.class +io\github\hielkemaps\serverplugin\commands\ReloadConfig.class +com\comphenix\packetwrapper\AbstractPacket.class From 61566d94c89b0df49048a49f3f619a53bdb4d284 Mon Sep 17 00:00:00 2001 From: Lax Date: Sat, 14 Jan 2023 16:28:30 +0000 Subject: [PATCH 2/4] Fix for players joining after setting is set also accidentally can't spell :D --- .../commands/PlayerVisibility.java | 2 +- .../serverplugin/events/EventListener.java | 31 +++++++++++++++++++ .../serverplugin/wrapper/PlayerWrapper.java | 2 +- 3 files changed, 33 insertions(+), 2 deletions(-) diff --git a/src/main/java/io/github/hielkemaps/serverplugin/commands/PlayerVisibility.java b/src/main/java/io/github/hielkemaps/serverplugin/commands/PlayerVisibility.java index b74714c..4c643a9 100644 --- a/src/main/java/io/github/hielkemaps/serverplugin/commands/PlayerVisibility.java +++ b/src/main/java/io/github/hielkemaps/serverplugin/commands/PlayerVisibility.java @@ -7,7 +7,7 @@ public class PlayerVisibility { public PlayerVisibility() { - new CommandAPICommand("player_visibliity") + new CommandAPICommand("player_visibility") .withAliases("playervisibility", "pv") .withSubcommand(new CommandAPICommand("visible") diff --git a/src/main/java/io/github/hielkemaps/serverplugin/events/EventListener.java b/src/main/java/io/github/hielkemaps/serverplugin/events/EventListener.java index 0d08600..7924575 100644 --- a/src/main/java/io/github/hielkemaps/serverplugin/events/EventListener.java +++ b/src/main/java/io/github/hielkemaps/serverplugin/events/EventListener.java @@ -2,7 +2,11 @@ import dev.jorel.commandapi.CommandAPI; import io.github.hielkemaps.serverplugin.Main; +import io.github.hielkemaps.serverplugin.PlayerVisibilityOption; import io.github.hielkemaps.serverplugin.wrapper.PlayerManager; +import io.github.hielkemaps.serverplugin.wrapper.PlayerWrapper; +import java.util.Collection; +import java.util.Set; import org.bukkit.Bukkit; import org.bukkit.GameMode; import org.bukkit.Material; @@ -59,6 +63,33 @@ public void onJoin(PlayerJoinEvent e) { onlinePlayers.forEach(CommandAPI::updateRequirements); } } + + e.setJoinMessage(null); + Bukkit.broadcastMessage(ChatColor.DARK_GRAY + "[" + ChatColor.GREEN + "+" + ChatColor.DARK_GRAY + "] " + ChatColor.GRAY + e.getPlayer().getDisplayName()); + + PlayerWrapper player = PlayerManager.getPlayer(e.getPlayer().getUniqueId()); + + for (Player other : Bukkit.getOnlinePlayers()) { + if (!other.getUniqueId().equals(e.getPlayer().getUniqueId())) { + PlayerWrapper wrapper = PlayerManager.getPlayer(other.getUniqueId()); + + // If the other player has players invisible, hide the new player + if (wrapper.getVisibilityOption() == PlayerVisibilityOption.INVISIBLE) { + other.hidePlayer(Main.getInstance(), e.getPlayer()); + } else { + other.showPlayer(Main.getInstance(), e.getPlayer()); + } + + // If the new player has players invisible, hide the other player + if (player.getVisibilityOption() == PlayerVisibilityOption.INVISIBLE) { + e.getPlayer().hidePlayer(Main.getInstance(), other); + } else { + e.getPlayer().showPlayer(Main.getInstance(), other); + } + + // Don't need to handle ghost players here, as it is handled by the PacketListener + } + } } @EventHandler diff --git a/src/main/java/io/github/hielkemaps/serverplugin/wrapper/PlayerWrapper.java b/src/main/java/io/github/hielkemaps/serverplugin/wrapper/PlayerWrapper.java index 72413bb..f8f04db 100644 --- a/src/main/java/io/github/hielkemaps/serverplugin/wrapper/PlayerWrapper.java +++ b/src/main/java/io/github/hielkemaps/serverplugin/wrapper/PlayerWrapper.java @@ -102,7 +102,7 @@ public void setVisibilityOption(PlayerVisibilityOption option) { if (player != null) { if (this.visibilityOption == option) { - player.sendMessage(ChatColor.RED + "You are already " + option.toString().toLowerCase() + "!"); + player.sendMessage(ChatColor.RED + "Players are already set to " + option.toString().toLowerCase() + "!"); return; } From ba83e8c0828cb3c60c59f89b0009bb8edd37c2f3 Mon Sep 17 00:00:00 2001 From: Seafoam Date: Thu, 11 Jan 2024 16:58:53 +0000 Subject: [PATCH 3/4] accidentally brought join message back oops --- .../serverplugin/events/EventListener.java | 6 ------ .../github/hielkemaps/serverplugin/Main.class | Bin 9277 -> 9777 bytes .../serverplugin/events/EventListener.class | Bin 5020 -> 5022 bytes .../serverplugin/wrapper/PlayerWrapper.class | Bin 2773 -> 6201 bytes target/maven-archiver/pom.properties | 4 ++-- 5 files changed, 2 insertions(+), 8 deletions(-) diff --git a/src/main/java/io/github/hielkemaps/serverplugin/events/EventListener.java b/src/main/java/io/github/hielkemaps/serverplugin/events/EventListener.java index 7924575..cb2b5e1 100644 --- a/src/main/java/io/github/hielkemaps/serverplugin/events/EventListener.java +++ b/src/main/java/io/github/hielkemaps/serverplugin/events/EventListener.java @@ -20,9 +20,6 @@ import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerQuitEvent; -import java.util.Collection; -import java.util.Set; - public class EventListener implements Listener { Set flowerpots; @@ -64,9 +61,6 @@ public void onJoin(PlayerJoinEvent e) { } } - e.setJoinMessage(null); - Bukkit.broadcastMessage(ChatColor.DARK_GRAY + "[" + ChatColor.GREEN + "+" + ChatColor.DARK_GRAY + "] " + ChatColor.GRAY + e.getPlayer().getDisplayName()); - PlayerWrapper player = PlayerManager.getPlayer(e.getPlayer().getUniqueId()); for (Player other : Bukkit.getOnlinePlayers()) { diff --git a/target/classes/io/github/hielkemaps/serverplugin/Main.class b/target/classes/io/github/hielkemaps/serverplugin/Main.class index 02748aa14897a8e06f4ecccde37a184e64e488f0..2fc2fa607475a50ddab2eadecea02ea44bffcad6 100644 GIT binary patch delta 3996 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 DvNPTY delta 3550 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 diff --git a/target/classes/io/github/hielkemaps/serverplugin/events/EventListener.class b/target/classes/io/github/hielkemaps/serverplugin/events/EventListener.class index fd19d76df5a22a9eeb58c475fe9e3314df453cc8..c649deb07837210bfbfce5ebdaec4b83c5b3a42c 100644 GIT binary patch delta 1671 zcmZvcd2mxz6vltIP5RpOHKC;x3uTcO+F~IvFbXYD23bs{Eeu0(6qmGQ+6S2=CNGrL z2+HCH=u=TdTu^WuMnr3ixJy-Bal-|7#eLU5bOb#wfdbme%)KY)edpZsedpY}xpYgZ zYu}OGPXMF&W2bAXQ!CVnDoQPPPXC@YVIwqUVIX8?Q;n$;XQ6c@b8z+|7Hcfg>B~}U zc-GoPHcc$oxrBrw(=Y>3zZsS!1!d*a=ld7>y>ZhBdVNRzRoSdyrN(7Cm$OQd_kV~& zYw^eG0*g#VdRh6ocElQ;wOpZagp%(3W4VL=(D-I=edGKxIE6Ye$w=r0CfkFdK}R(P#t>b8&sdG{PapI62B1 znKh_%M$o@F5dANpDvKN0sBx3d&1_PPv9UwC$11XXbq&5*zDd)kC@Pa_6Wv3F%N#cA z+{zY3wiMku1g7Ib}bO9lNSs6Vi08HR_K<0x~RP zZ81hjBQi4;&al}Mi0)dd4_5AvU3|i)8lUNW&KJ9Olx&IT>Ng*W$h#1`qG0U?E9l9V{>_ur{tgFX`Yez zJyt;vD`Cf+PL8YtCD*CA7$iB0DUn|}rHrCX6fI{W6`aE`E@C*#@XFMWPUapeC&9|2 zxozuNo|7}2EN3sBa*m5dJkJYK*NcMm;5iAp68?b9hO1#ml^6*Cysh ziO3LNr*(F2NurHN2QfuEt+nmU?O>UrZdeDGDjDt7VysreuDa4u=t$yDI~LH!m78ch z>Xqn9XQ8u=^$&5wHu4J{?c9=r-j*(tlzW0>YdRHOz=RDFteq!?Ji#Hz?f!ddb#)Ch?>wo=c-%#`jlh<0<5 z`c9B6E(#O8%4;G_m|48eev!9Up1e0iU|asqF8Moolea|15pwbO3NDSe<-0uql0c3q+L*MU^I*v3ZOnz<65lVRTJa zs%V?I9N9&(Mo7LVlp4!qSl>?$S@$fnNGtx^ejch%VwBDYk}r*ed?>pu&PPJ(OTOX< PeiDyMJU{a*zf<@x|9y@p delta 1755 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 E0Weo;W&i*H literal 2773 zcmbVO+g1~26#o9429hC!plG2gsI-u%Q_s~{Jb(fc1VypZlSA^G3?wsgGDGVt^bOh< z@WzXFt>U3wtE*SN=wtLTx?FAdo*8Dw7H_;sX7Bv}{=WU~!{m>@fBqG~8Q57QkW`RT zkw!+Ku%U11T1z(@+S2-ltT_UiONMDUQv%6}$yEhC0t4P5*D+e!oZfA&NGA&g$zJ53 zD(F*@N58;%!_pdt({$IhrXgFKvaNTzT36az((bg}hGA-7+j^%XZEd-wKauu*-xBCC z%$n6U%!WXJHNqmC3S$hYC^A5g-8*Q zj;r{9)hxQ5y6(t3^08~!vMo)g%f}~FO!Dyz`K&F;uCj__I4+;~n zh-0N|EvZwvayX^pG|mX*{p(AC3Ic-xL9a4ia+9kZ{G5vO_?UHdq^&!aEig1O853eY z@RJx9QBiP7#V5?B7>TiSgeW%k?k)L^!)Gt6xPq%Bu1OAoJv&k35-FG_u2Cc=mc@14 zP%x`v4)gEODvP?QHzeiJOXc>vM_}Rq=~v&e2P>@ef{JQP=lP&1v$%yN1N&Xb_)32Fs*72M;VSrs@`ms{F~Wy_XEL(taEy52Fg zY5(!+GO4v|AJWa<6{BJ5j%!PSu~>C!ZZ5@4uQ8@7RJ3WUPDlHzhAD5k?R9D2)z@3( zDORnT-dfddgYCeXa+(GW)rEJKR3Jy=v7_Ry-MU8ex8mrv%|*Qvz~;M6%Wc(X!>P`7 zr4w1HiM2^eJx4tmMeg%PC9-qWB#||+)1=;*@KO;t@?YPsf-!%Zwprde#8iJoV{=!w zWXH0p`F+%A8Z#Yls|gHO-&%VGmcahE{Vb4Ov0S?*Zx~)#-dK|-c%m>yeVU+6o}!gV zYmT0ZynP{XpPm!=lx$j-F+0I~l78zWUz*+k0uRV)Bk9E%FTH>${Q~8|3-oRy8$A|E zscj6F%G=oYqZfLOK8KN^&jEt(Bal4V{j^4lIEq1hM!yXCLGd}hAPX4xNYZM?m-s4# zPI#wAOFto7eua?)zC$|sEHK9sxLwF& z_|Us8SP2^H0J=)RtX?6&`Y^zX63i1MFiI+q5!B%rL?MJIgh}Z*9z@pYThPrkMIL14 z36FWkbB=pqRR2H_MqnK^@^CSx0$Q2U2uU81;deFY)saRiMkEsw$#|t@;Ce`8mMkVx znrNimQwaWfLj<{CmVwcmwWxutXM8OD4ITL865~Tul5w}f5$XD(n zm9Y|2P7Rgw{v&uvZG;hLgNV6O`8iIOl5dp4&v1&wxr{8m1EXfog+X&+U(oBCf^)9% zj$@i{>$qv6Izt_IJr;Slj@t}t@-5NjUOmeKyuw-PbBcdK&@heA1O0#d4c8Wry~GS1 z*!LVapZ@cwf0W9{O2ubu4hJxg3EV^(3q-ye(l|iGc;dJd&jzVJq-R<~uaQ-7@h_Sd z!GC{(jCsuY@BqWU#A3DlJCyQE+=(!Yv_F6)^k5k(ZlgeN#7NMA0Huf8sYQ!Qfbn`D PUZbGEB)da)0+0U%w80`w diff --git a/target/maven-archiver/pom.properties b/target/maven-archiver/pom.properties index 3dce227..b801228 100644 --- a/target/maven-archiver/pom.properties +++ b/target/maven-archiver/pom.properties @@ -1,5 +1,5 @@ #Generated by Maven -#Tue Jul 25 15:47:51 CST 2023 +#Thu Jan 11 16:52:17 GMT 2024 groupId=io.github.hielkemaps artifactId=ServerPlugin -version=1.1.0 +version=1.1.2 From b2121f29242493e866d1e05f49665622950fff34 Mon Sep 17 00:00:00 2001 From: Seafoam Date: Fri, 12 Jan 2024 08:17:06 +0000 Subject: [PATCH 4/4] update player visibility to 1.20.4 --- pom.xml | 10 ++- .../WrapperPlayServerEntityMetadata.java | 22 +++--- .../serverplugin/events/PacketListener.java | 28 +++---- .../serverplugin/wrapper/PlayerWrapper.java | 73 ++++++++---------- .../github/hielkemaps/serverplugin/Main.class | Bin 9777 -> 9890 bytes .../serverplugin/commands/Highscores.class | Bin 5196 -> 5296 bytes .../serverplugin/commands/Hub.class | Bin 2381 -> 2381 bytes .../serverplugin/commands/Spectate.class | Bin 5212 -> 5212 bytes .../serverplugin/commands/Tpa.class | Bin 8815 -> 9126 bytes .../serverplugin/events/EventListener.class | Bin 5022 -> 5022 bytes .../serverplugin/objects/ScorePair.class | Bin 1793 -> 2068 bytes .../serverplugin/wrapper/PlayerManager.class | Bin 1139 -> 1139 bytes .../serverplugin/wrapper/PlayerWrapper.class | Bin 6201 -> 6774 bytes .../compile/default-compile/createdFiles.lst | 1 + 14 files changed, 67 insertions(+), 67 deletions(-) diff --git a/pom.xml b/pom.xml index 1860a80..e6919bf 100644 --- a/pom.xml +++ b/pom.xml @@ -13,8 +13,8 @@ org.apache.maven.plugins maven-compiler-plugin - 8 - 8 + 14 + 14 @@ -42,7 +42,7 @@ com.comphenix.protocol ProtocolLib - 5.0.0-SNAPSHOT + 5.2.0-SNAPSHOT provided @@ -56,5 +56,9 @@ rosewood-repo https://repo.rosewooddev.io/repository/public/ + + dmulloy2-repo + https://repo.dmulloy2.net/repository/public/ + \ No newline at end of file diff --git a/src/main/java/com/comphenix/packetwrapper/WrapperPlayServerEntityMetadata.java b/src/main/java/com/comphenix/packetwrapper/WrapperPlayServerEntityMetadata.java index b919b9d..482cdc5 100644 --- a/src/main/java/com/comphenix/packetwrapper/WrapperPlayServerEntityMetadata.java +++ b/src/main/java/com/comphenix/packetwrapper/WrapperPlayServerEntityMetadata.java @@ -21,7 +21,7 @@ import com.comphenix.protocol.PacketType; import com.comphenix.protocol.events.PacketContainer; import com.comphenix.protocol.events.PacketEvent; -import com.comphenix.protocol.wrappers.WrappedWatchableObject; +import com.comphenix.protocol.wrappers.WrappedDataValue; import java.util.List; import org.bukkit.World; import org.bukkit.entity.Entity; @@ -43,7 +43,7 @@ public WrapperPlayServerEntityMetadata(PacketContainer packet) { * Retrieve Entity ID. *

* Notes: entity's ID - * + * * @return The current Entity ID */ public int getEntityID() { @@ -52,7 +52,7 @@ public int getEntityID() { /** * Set Entity ID. - * + * * @param value - new value. */ public void setEntityID(int value) { @@ -61,7 +61,7 @@ public void setEntityID(int value) { /** * Retrieve the entity of the painting that will be spawned. - * + * * @param world - the current world of the entity. * @return The spawned entity. */ @@ -71,7 +71,7 @@ public Entity getEntity(World world) { /** * Retrieve the entity of the painting that will be spawned. - * + * * @param event - the packet event. * @return The spawned entity. */ @@ -81,19 +81,19 @@ public Entity getEntity(PacketEvent event) { /** * Retrieve Metadata. - * + * * @return The current Metadata */ - public List getMetadata() { - return handle.getWatchableCollectionModifier().read(0); + public List getMetadata() { + return handle.getDataValueCollectionModifier().read(0); } /** * Set Metadata. - * + * * @param value - new value. */ - public void setMetadata(List value) { - handle.getWatchableCollectionModifier().write(0, value); + public void setMetadata(List value) { + handle.getDataValueCollectionModifier().write(0, value); } } \ No newline at end of file diff --git a/src/main/java/io/github/hielkemaps/serverplugin/events/PacketListener.java b/src/main/java/io/github/hielkemaps/serverplugin/events/PacketListener.java index 38575fa..95eac7c 100644 --- a/src/main/java/io/github/hielkemaps/serverplugin/events/PacketListener.java +++ b/src/main/java/io/github/hielkemaps/serverplugin/events/PacketListener.java @@ -4,8 +4,10 @@ import com.comphenix.protocol.PacketType; import com.comphenix.protocol.events.PacketAdapter; import com.comphenix.protocol.events.PacketEvent; +import com.comphenix.protocol.wrappers.WrappedDataValue; import com.comphenix.protocol.wrappers.WrappedDataWatcher; import com.comphenix.protocol.wrappers.WrappedWatchableObject; +import com.google.common.collect.Lists; import io.github.hielkemaps.serverplugin.PlayerVisibilityOption; import io.github.hielkemaps.serverplugin.wrapper.PlayerManager; import io.github.hielkemaps.serverplugin.wrapper.PlayerWrapper; @@ -26,19 +28,19 @@ public void onPacketSending(final PacketEvent event) { WrapperPlayServerEntityMetadata packet = new WrapperPlayServerEntityMetadata(event.getPacket()); Entity entity = packet.getEntity(event); + // Check if the entity is a player and if it is not the player that is sending the packet if (entity instanceof Player) { if (!entity.getUniqueId().equals(event.getPlayer().getUniqueId())) { - for (WrappedWatchableObject watchedObject : packet.getMetadata()) { + for (WrappedDataValue watchedObject : packet.getMetadata()) { + + // Index 0 is the bitmask that contains the visibility flag (0x20) if (watchedObject.getIndex() == 0) { if (player.getVisibilityOption() == PlayerVisibilityOption.GHOST) { if (((byte) watchedObject.getValue() & 0x20) != 0x20) { - WrappedDataWatcher watcher = new WrappedDataWatcher(); - WrappedDataWatcher.Serializer serializer = WrappedDataWatcher.Registry.get(Byte.class); - watcher.setEntity(event.getPlayer()); - watcher.setObject(0, serializer, (byte) ((byte) watchedObject.getRawValue() | 0x20)); - WrapperPlayServerEntityMetadata newPacket = new WrapperPlayServerEntityMetadata(); - newPacket.setMetadata(watcher.getWatchableObjects()); + newPacket.setMetadata(Lists.newArrayList( + new WrappedDataValue(0, WrappedDataWatcher.Registry.get(Byte.class), (byte) ((byte) watchedObject.getRawValue() | 0x20)) + )); newPacket.setEntityID(packet.getEntityID()); newPacket.sendPacket(event.getPlayer()); @@ -47,14 +49,10 @@ public void onPacketSending(final PacketEvent event) { } } else { if (((byte) watchedObject.getRawValue() & 0x20) == 0x20) { - - WrappedDataWatcher watcher = new WrappedDataWatcher(); - WrappedDataWatcher.Serializer serializer = WrappedDataWatcher.Registry.get(Byte.class); - watcher.setEntity(event.getPlayer()); - watcher.setObject(0, serializer, (byte) ((byte) watchedObject.getRawValue() & (0xFF - 0x20))); - WrapperPlayServerEntityMetadata newPacket = new WrapperPlayServerEntityMetadata(); - newPacket.setMetadata(watcher.getWatchableObjects()); + newPacket.setMetadata(Lists.newArrayList( + new WrappedDataValue(0, WrappedDataWatcher.Registry.get(Byte.class), (byte) ((byte) watchedObject.getRawValue() & (0xFF - 0x20))) + )); newPacket.setEntityID(packet.getEntityID()); newPacket.sendPacket(event.getPlayer()); @@ -62,6 +60,8 @@ public void onPacketSending(final PacketEvent event) { event.setCancelled(true); } } + + return; } } } diff --git a/src/main/java/io/github/hielkemaps/serverplugin/wrapper/PlayerWrapper.java b/src/main/java/io/github/hielkemaps/serverplugin/wrapper/PlayerWrapper.java index f8f04db..50d68fc 100644 --- a/src/main/java/io/github/hielkemaps/serverplugin/wrapper/PlayerWrapper.java +++ b/src/main/java/io/github/hielkemaps/serverplugin/wrapper/PlayerWrapper.java @@ -1,10 +1,15 @@ package io.github.hielkemaps.serverplugin.wrapper; import com.comphenix.packetwrapper.WrapperPlayServerEntityMetadata; +import com.comphenix.protocol.wrappers.WrappedDataValue; import com.comphenix.protocol.wrappers.WrappedDataWatcher; +import com.google.common.collect.Lists; import dev.jorel.commandapi.CommandAPI; import io.github.hielkemaps.serverplugin.Main; import io.github.hielkemaps.serverplugin.PlayerVisibilityOption; +import java.util.List; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.TextColor; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.entity.Player; @@ -102,56 +107,46 @@ public void setVisibilityOption(PlayerVisibilityOption option) { if (player != null) { if (this.visibilityOption == option) { - player.sendMessage(ChatColor.RED + "Players are already set to " + option.toString().toLowerCase() + "!"); + player.sendMessage(Component.text("Players are already set to " + option.toString().toLowerCase() + "!").color(TextColor.fromHexString("#FF0000"))); return; } this.visibilityOption = option; - if (option == PlayerVisibilityOption.VISIBLE) { - player.sendMessage(ChatColor.GRAY + "Players are now visible"); + switch (option) { + case VISIBLE -> { + List data = Lists.newArrayList(new WrappedDataValue(0, WrappedDataWatcher.Registry.get(Byte.class), (byte) 0)); - WrappedDataWatcher watcher = new WrappedDataWatcher(); - WrappedDataWatcher.Serializer serializer = WrappedDataWatcher.Registry.get(Byte.class); - watcher.setEntity(player); - watcher.setObject(0, serializer, (byte) 0x0); + for (Player other : Bukkit.getOnlinePlayers()) { + if (!other.getUniqueId().equals(uuid)) { + player.showPlayer(Main.getInstance(), other); - for (Player other : Bukkit.getOnlinePlayers()) { - if (!uuid.equals(other.getUniqueId())) { - player.showPlayer(Main.getInstance(), other); - - WrapperPlayServerEntityMetadata packet = new WrapperPlayServerEntityMetadata(); - packet.setMetadata(watcher.getWatchableObjects()); - - packet.setEntityID(other.getEntityId()); - packet.sendPacket(player); + WrapperPlayServerEntityMetadata packet = new WrapperPlayServerEntityMetadata(); + packet.setEntityID(other.getEntityId()); + packet.setMetadata(data); + packet.sendPacket(player); + } } } - } else if (option == PlayerVisibilityOption.INVISIBLE) { - player.sendMessage(ChatColor.GRAY + "Players are now invisible"); - - for (Player other : Bukkit.getOnlinePlayers()) { - if (!uuid.equals(other.getUniqueId())) { - player.hidePlayer(Main.getInstance(), other); + case GHOST -> { + List data = Lists.newArrayList(new WrappedDataValue(0, WrappedDataWatcher.Registry.get(Byte.class), (byte) 20)); + + for (Player other : Bukkit.getOnlinePlayers()) { + if (!other.getUniqueId().equals(uuid)) { + player.showPlayer(Main.getInstance(), other); + + WrapperPlayServerEntityMetadata packet = new WrapperPlayServerEntityMetadata(); + packet.setEntityID(other.getEntityId()); + packet.setMetadata(data); + packet.sendPacket(player); + } } } - } else if (option == PlayerVisibilityOption.GHOST) { - player.sendMessage(ChatColor.GRAY + "Players are now semi-transparent"); - - WrappedDataWatcher watcher = new WrappedDataWatcher(); - WrappedDataWatcher.Serializer serializer = WrappedDataWatcher.Registry.get(Byte.class); - watcher.setEntity(player); - watcher.setObject(0, serializer, (byte) 0x20); - - for (Player other : Bukkit.getOnlinePlayers()) { - if (!uuid.equals(other.getUniqueId())) { - player.showPlayer(Main.getInstance(), other); - - WrapperPlayServerEntityMetadata packet = new WrapperPlayServerEntityMetadata(); - packet.setMetadata(watcher.getWatchableObjects()); - - packet.setEntityID(other.getEntityId()); - packet.sendPacket(player); + case INVISIBLE -> { + for (Player other : Bukkit.getOnlinePlayers()) { + if (!other.getUniqueId().equals(uuid)) { + player.hidePlayer(Main.getInstance(), other); + } } } } diff --git a/target/classes/io/github/hielkemaps/serverplugin/Main.class b/target/classes/io/github/hielkemaps/serverplugin/Main.class index 2fc2fa607475a50ddab2eadecea02ea44bffcad6..d0914e33d7db6e8bf4a6232c76c3fe6e7c0a7ed9 100644 GIT binary patch delta 1927 zcmZ`(c~}&67=B+^c9vl@

m`(*y8&dLAsPEHTXlQ8CRUZG=%*U{={h(=;@@>`-&8 z#5~9jyU3J67R$=A%t|wl?$d5NwDNh(r>t*gG5M$2-I?$A{oZ-M>;3JvlFg;+zO!w+ z01V=(ZR(V`k~p|HRO6K#MkLqhRYtMjtk8oKe8E{_1%kR63=oOEM)WS3toS=DuE|&goWaVqQ!o4TUo_&g3ksEODrN zw#F(}TMdarVxs8Ra1rMa1FY_8UMn&w(;d`U$9Yy>(iq-gElMh_To_KMzg#i+fQvLP z=2RjkV3?JqMj)WiG(4;)Ts6ASR5_4KHQtQV4k9?*2p0Q&X25>)7LB*!5aIC!%FJq? zX{Z>=+cn<7(->W?FEDBePEz=QY&os33;L@2U8M(RmFja;-rxK~a_30C zWSvfJ==`S2eSAyd+Zx~D{^m_-9(FsZ3i*2)pM?7YHxJvZBO06Gj^+E-FVV?G_L5aW#q;P$Q z_1}oLCnkH*7=y9)lU}9^euItYM(a;+HaA(`^wf!s;^~Y?x#z-#9`K+iACi>@$~~H! z`LO-O1k9KBH;LWN*#TVJp*$;VvQh4C$D1dsM{HZzSEV#Al>oE-d3#O7c#KB=Lk%+XNNf+inN5n3da8^k_3n-VkJFT!x-GhEUBdr*0B&9cri9QQkWv+-+(GUhvg!VlSt!*K-qKVQPmF*i&|~P(0zr*X8uB-=#3u z`3@v-2II~k=^w-+Lcv}I2W(eFtZJX1@Oa>p@DWm9PF{%1WG3+DrTt%%?LI_0x(#c8 zm6UTYvSB#|+k!wna-3WRDVAL^9r;Cq*%DX&kJ{r76trZBPOZExuZ?#CExgAL5Ygda z4C`>HI`LKM2ITy|c1~N!cTxu~h-~KSoxFeIj)h#?%ru)Pe85x(kuIIhl+^b){IBy3 zd0q~Md&PHv@5(Q19cs6Z@&kVC_>S@ue!;JV?fZ7jkAkt+Kl4{%QN=pJ-}nbo{sk9C By4(N& delta 1863 zcmah}d2|zH5T9R~WRvY$TGF(pN1C=&Agvrv9z~132Q5cSOF0xoQ4DP?fs)oF1yM07 zqJqfvfzk?yRY3%VQVB_`a(IAmg5S-nF!#{lPCcE>^{ARwH-^{no z6)olRo^x%l6Hy92}CpLDTntm%t${nm;#qqcew@a9y z;10Mz-9>h?O^mQq$5)|Rf?L6zs1e&NbBrDZlQBgMPrku8Re=|EVsWxF{x0|=_!R`u zAa*5}7^f?^8#6?bb)cfheG2u%Oi=G`VxcWf%&_JfA5`!VW{GC&NX!hgGH6k@)D1@xDO2n=xtiq*PR&qWFr(*Z8q zhBcnqYa6)ffYZ< zv=%=q_=!Qmj8wx3P^Ly>PIndmi;C}1uov%vlv1zP?JKTz`TcIcgx|%9OsD=2kX>|S z+QqeY`}HqiH34gQaCOu{HoSP*`foC;HL}f2BWaZSMkefxU#sHrl2~HTEnCNO5rJ>E zJGT;?tt7Q*fc5-Lpg4Z!k)Ez16LrM~UMW#9UdBdVnQ1Id=b-BZvaD9s$EewztlOl@ zY{}1Bh4o@@)-~yu{1;sGuZp4497h>-#xbPi0;&hCLJKw%p*6N|RPzdJwy-9NGTg395ysq3^H8PX8lnf-Zet4L64s%9m52!ppLi<3C=r4}vOvpQAGuVtFbhyHo}{XdXcGVW0)bpe4wnrRdA`4WK5J z(F#=1N^Km*^9Zb|$m|(`oGH zX*JM9I*xZ(GLjty7rKJ7w9DF}PMn@Uo9&1;<7}56!95c4v|k~Q?ireNhEmRxg>(|_ zmT14K(k063If}N7X7ctrF0Y?6f`!~C>h1g&^XdOXyh=?RE}n@X*Jq|hR7gT&L7f~9 zuI0}HODYS{#x#yl$hq)0AePG@&P6?N>0yYANj$|pcSidjLgS?)7(GsdFFSha*pJ|9 z_BY}E3nNMSS^`9!;##q?9nCyb&$l97jRP%hSp(Ra`)n@c1J>*CArA1n4;kki{{ l{zs*wG3gk-!S|Z(7>?uTnDr!*4&zsLl{xrtIE6pS_74S{tM32+ diff --git a/target/classes/io/github/hielkemaps/serverplugin/commands/Highscores.class b/target/classes/io/github/hielkemaps/serverplugin/commands/Highscores.class index 4a2b38613ac6096b810a46ca4130732a4e3e4d1a..85e41b4b6f7a8e021c73faab68ba8e59ba47c7df 100644 GIT binary patch delta 879 zcmYjPSxggA6g{uBOc@7SDu|7#6`@$vNcb_aCW;{#8&MK9X^ci3a8gTQO4^}`@q-`Z zr!kBsDnBMJprC?41yodAkVSFdSKRkq6F<;9ZCyTQ=Dc(7J@33TZ^+q_%MXlp_W*F= zM=M{S#PjfBkAS^sP>cA?LT$NEzG1a?O) zO{qzF$m0Hir=(8F=QJ#HO=JPL|6c zxMf)i7FLR(kQCzZg~6d#n=;ZCi1M0BDU@9t2>5HNIecT7s1?*=vxBv(L30V~PfBnbX(f`d3Yq9aH=)JI$59-Ekt#dlgBm(c zRYq(bdT@e71Z=`doI(Q9uo1mD4L$5wk25$61M=Xd@hWS*K-9sGXe7Bef*r!)m8x>XIU>KHboTojTgl=Ss9DMzCupmu}Fn*5GdK z)tJt8qlxa9ahlcGg+n?z@m8xbg8B^x*6^!?R+jCwY9&!UI@IN3vuZtXS5BNkpPv|qg;ybLr0kc5hkN^Mx delta 892 zcmZ{hS!_&U6vuzxbY|}Db*p12Ce)Oww3aj#k!TZyc#w!CL?RI}iP22ekS<;{X+pz` zNaOOryhto9wN)8fTP?NkyW01CSG(4^(~@}baL;$n|NQ^we&_#f%Q&5GoNTV!4-8UN z8n$lAQa9WQ5?#j5iBrROPn1lO*XJm;SS858w}4-bWb0h zG3Gz29Gy)HM|O&>++r)YDh60Rbbr@>rso)hs5aS7jkPtt=Xjl+3f136cbV*_Mv;&k zESeOW9cX6#)m{@9}Bo5^`C*)LEEXP5EwXj2#urj^FN^RCu;+aNI zPI5}Jv1DDJPvzj$r|LUGi7eP;1MgQW8cy|pEJo-%W4Pp zgtFZ}ca$}QwLPqzvWxXeF6Zc#tNJ^x=_++858qSqXZ8RV?O#RyRr#zFr6U0%!@N7pHV~ESnn0xjs zcA5}_8U?x~V-j#Q<5wDU)OQMa9=osNg=k+%?%*|VrbXJJt)W2Q(7#J9=HgdRf0suoA21oz^ delta 17 ZcmX>rbXJJt)W2Q(7#J8#HgdRf0sun%20{P; diff --git a/target/classes/io/github/hielkemaps/serverplugin/commands/Spectate.class b/target/classes/io/github/hielkemaps/serverplugin/commands/Spectate.class index a0b6e7fd967fdbacb750fe8abd17b5db192d0250..be798da4f2d6dbf862425661bbd129c2d3f7eada 100644 GIT binary patch delta 17 ZcmcbkaYuvW)W2Q(7#J9=HgbfB002j~2CM)8 delta 17 ZcmcbkaYuvW)W2Q(7#J8#HgbfB002js2BrW2 diff --git a/target/classes/io/github/hielkemaps/serverplugin/commands/Tpa.class b/target/classes/io/github/hielkemaps/serverplugin/commands/Tpa.class index 97914b8af39a759eaa80612b13574f5ff5a835ab..527fe2bf060a849e66b0480875a3b0f5badb8a34 100644 GIT binary patch delta 2806 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 X6hF@4to4`asN+8Q_U-2Z9)$nDW!P*} diff --git a/target/classes/io/github/hielkemaps/serverplugin/events/EventListener.class b/target/classes/io/github/hielkemaps/serverplugin/events/EventListener.class index c649deb07837210bfbfce5ebdaec4b83c5b3a42c..b82fecdf050b5b65abf18b347623aecd201a249a 100644 GIT binary patch delta 17 ZcmbQIK2M$F)W2Q(7#J9=HgZf81^_@@25$fW delta 17 ZcmbQIK2M$F)W2Q(7#J8#HgZf81^_@l25A5Q diff --git a/target/classes/io/github/hielkemaps/serverplugin/objects/ScorePair.class b/target/classes/io/github/hielkemaps/serverplugin/objects/ScorePair.class index 6c919f89e372e6a77d1ac4e8589ad979b0187855..1337e4e44ac7f988f89412410300cee7294d2625 100644 GIT binary patch literal 2068 zcmbVNU31$+6g}%N*{+f}#`!QwN>h^5acEr#EhTY7TbEFSlLj2pVPIesduywaC66R$ zrvHRzo_T;7T9`aAJoBS~vy#%diHC=d$GfY0_ndq0xvSOR|D5~@U;|%g5kp)vji0_&zz>6m_Za9HV@(mIko zqwiHb=^jhBZw)%8U2y^$uhMKeuG}+BS0G^fHoCRz8u4#8R75%u53FHKlowQAl;FEP*$K#J&P+?)NobDyI2yKJgcs5`?4chxz=)eeM421EY<6)gru>e z;~Gi=naH>A2;3<(-ay&S)w+hVK;bNMEr@3vS`0Zovd#ncqvo{fpJa47&q*jJsBPeD%EucE(2cjWXrMJ zUPC_RsnmL=J@6&%T4X2kspIwx-4qNH26*lv605E zG6(^^ZrjqWS%&9HPs5i2%NL3rRfC46z~%qn%1bUR7>j%%W4s$yImXl-$4e)s?jz1A z+LKu0_#U6Wp*_xdqWn8VdF=(X^85>o{TcwSbIc>bG0icFrTVWxQLK#>@<)~2s25tqC7x5i#a}_7cK0e|qL5@A#p}I+Y z%nYUw|Cg|ohBS|((D?DhY>_0qyd$~qQQsK1>gAW1TjT!^ymP)~*Mo$n!+o#LfQ~9p zgUH<{+uew5Jz~q0*ZxBKC6>=q#fKW0iKr6PLbdr5+zaOWc)+>9x@x4Y2jdsPxP!;^ MWNF>QSFE}CAI7S~-2eap delta 925 zcma))&u$V?6vn?h!_3feYzdSiwpeJP0u`y+LIwXowJPea3!|<^OGr&a8-jI7d;}a9 zF5K9KQDcmW28~U+GBNQL^gZ0E-vwF`Svbj@d*+_={pQ|t&STHRVe{+HPrCr-ajj{- zS~M^!5V&V=+39t=T1l_eYirfY(*3pd)pE^*52`c)3x^OC(Cy95a&=W8)%+GKb+htr zj0=c4nHaKg1d{^p`bLK&Fd9!>@8{=bZbU+-1SaB6MEJ6QXi?H~Cft~@a1?RUD&_jh z-HlpVK#eC#CX$#naLhsq$DKPOsn1zBfs@W7Q4;gcck$ABs@xJ6ogd0h91(&P2%Mr- zZ~zuBuV4fot~&QMEYN10f)*B8$JPRkMMlCZk!0tNDz93VE{g1}z2ccA*ro?2}2pgQ?qoRpqy1b5)O`2qf* z*20+gFii^+IjwhhyoIoLdM^_4nA`XdRp>93-!)hk{pW9f7lrNJpvJrLuvzDYKHVsC zPHwZxHv97cQ)nWJCy3zIU3`kAVxoLIyX49GGqc3M47awURBwX8C?ZqQ8l$_KC(idHYjg mVVUzGJVnwjNt*M_@MY5dVzsA-LtU|g%lxH+D=4+stG@v;ScTmH diff --git a/target/classes/io/github/hielkemaps/serverplugin/wrapper/PlayerManager.class b/target/classes/io/github/hielkemaps/serverplugin/wrapper/PlayerManager.class index b92e20400a4bd08eb62539cd31ad4ebfd8afeeef..d1d0217f08c5ce14776c205fb0ef2026dc09def3 100644 GIT binary patch delta 17 Zcmey&@tK3;)W2Q(7#J9=HgaUM002hy2B81| delta 17 Zcmey&@tK3;)W2Q(7#J8#HgaUM002hU2Aco? diff --git a/target/classes/io/github/hielkemaps/serverplugin/wrapper/PlayerWrapper.class b/target/classes/io/github/hielkemaps/serverplugin/wrapper/PlayerWrapper.class index 117ceb50acb0487b44ed485cbaee15a028c1a31e..eeb36922e82302bbd7a0ec3749e539aa33edef62 100644 GIT binary patch literal 6774 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 literal 6201 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 E0Weo;W&i*H diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst index 9927aec..05afe29 100644 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -8,6 +8,7 @@ io\github\hielkemaps\serverplugin\objects\ScorePair.class io\github\hielkemaps\serverplugin\events\EventListener.class io\github\hielkemaps\serverplugin\commands\Tpa.class io\github\hielkemaps\serverplugin\PlayerVisibilityOption.class +io\github\hielkemaps\serverplugin\wrapper\PlayerWrapper$1.class io\github\hielkemaps\serverplugin\commands\Hub.class io\github\hielkemaps\serverplugin\commands\PlayerVisibility.class io\github\hielkemaps\serverplugin\Main.class