From 4383e541d8bbb50f7c4b578ee79a63da4ffaca7d Mon Sep 17 00:00:00 2001 From: YoyoNow Date: Thu, 26 Jun 2025 20:46:01 +0200 Subject: [PATCH] Fix some stuff --- .../de/steamwar/fightsystem/ArenaMode.java | 1 - .../de/steamwar/fightsystem/FightSystem.java | 2 +- .../src/de/steamwar/core/Core.java | 37 +---------- .../src/de/steamwar/core/PlayerVersion.java | 65 +++++++++++++++++++ .../de/steamwar/core/WorldEditRenderer.java | 5 -- .../core/WorldEditRendererWrapper.java | 2 +- 6 files changed, 69 insertions(+), 43 deletions(-) create mode 100644 SpigotCore/SpigotCore_Main/src/de/steamwar/core/PlayerVersion.java diff --git a/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/ArenaMode.java b/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/ArenaMode.java index eb0a637a..e96e0204 100644 --- a/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/ArenaMode.java +++ b/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/ArenaMode.java @@ -53,5 +53,4 @@ public enum ArenaMode { public static final Set SoloLeader = Collections.unmodifiableSet(EnumSet.of(TEST, CHECK, PREPARE)); public static final Set NotOnBau = Collections.unmodifiableSet(EnumSet.complementOf(EnumSet.of(TEST, CHECK, PREPARE, REPLAY))); public static final Set SeriousFight = Collections.unmodifiableSet(EnumSet.complementOf(EnumSet.of(TEST, CHECK, REPLAY))); - public static final Set CheckOrTest = Collections.unmodifiableSet(EnumSet.of(TEST, CHECK)); } diff --git a/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/FightSystem.java b/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/FightSystem.java index 949d7691..9ebc4f0c 100644 --- a/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/FightSystem.java +++ b/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/FightSystem.java @@ -107,7 +107,7 @@ public class FightSystem extends JavaPlugin { new HotbarKit.HotbarKitListener(); new JoinRequestListener(); new OneShotStateDependent(ArenaMode.All, FightState.PreSchemSetup, () -> Fight.playSound(SWSound.BLOCK_NOTE_PLING.getSound(), 100.0f, 2.0f)); - new OneShotStateDependent(ArenaMode.CheckOrTest, FightState.All, WorldEditRendererCUIEditor::new); + new OneShotStateDependent(ArenaMode.Test, FightState.All, WorldEditRendererCUIEditor::new); new EnterHandler(); techHider = new TechHiderWrapper(); diff --git a/SpigotCore/SpigotCore_Main/src/de/steamwar/core/Core.java b/SpigotCore/SpigotCore_Main/src/de/steamwar/core/Core.java index ca2467b3..bffe5025 100644 --- a/SpigotCore/SpigotCore_Main/src/de/steamwar/core/Core.java +++ b/SpigotCore/SpigotCore_Main/src/de/steamwar/core/Core.java @@ -20,8 +20,6 @@ package de.steamwar.core; import com.comphenix.tinyprotocol.TinyProtocol; -import com.google.gson.Gson; -import com.google.gson.JsonObject; import de.steamwar.Reflection; import de.steamwar.command.*; import de.steamwar.core.authlib.AuthlibInjector; @@ -38,37 +36,23 @@ import de.steamwar.sql.internal.Statement; import org.bukkit.Bukkit; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; -import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.plugin.java.JavaPlugin; -import org.bukkit.plugin.messaging.PluginMessageListener; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Collection; -import java.util.HashMap; -import java.util.Map; import java.util.logging.Level; -public class Core extends JavaPlugin implements PluginMessageListener, Listener { +public class Core extends JavaPlugin { public static final Message MESSAGE = new Message("SpigotCore", Core.class.getClassLoader()); - private static final String CHANNEL = "vv:proxy_details"; - private static final Gson GSON = new Gson(); - private static final Map playerVersions = new HashMap<>(); - public static int getVersion(){ return Reflection.MAJOR_VERSION; } - public static int getPlayerVersion(Player player) { - return playerVersions.getOrDefault(player, -1); - } - public static boolean isBedrockPlayer(Player player) { return player.getName().startsWith("."); } @@ -91,8 +75,7 @@ public class Core extends JavaPlugin implements PluginMessageListener, Listener @Override public void onEnable() { - this.getServer().getMessenger().registerIncomingPluginChannel(this, CHANNEL, this); - Bukkit.getPluginManager().registerEvents(this, this); + new PlayerVersion(); errorHandler = new ErrorHandler(); crashDetector = new CrashDetector(); @@ -151,20 +134,4 @@ public class Core extends JavaPlugin implements PluginMessageListener, Listener Statement.closeAll(); this.getServer().getMessenger().unregisterIncomingPluginChannel(this); } - - @Override - public void onPluginMessageReceived(String channel, Player player, byte[] bytes) { - if (!channel.equals(CHANNEL)) { - return; - } - - final JsonObject payload = GSON.fromJson(new String(bytes), JsonObject.class); - final String version = payload.get("versionName").getAsString(); - playerVersions.put(player, Integer.parseInt(version.split("-")[0].split("\\.")[1])); - } - - @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) - public void onPlayerQuit(PlayerQuitEvent event) { - playerVersions.remove(event.getPlayer()); - } } diff --git a/SpigotCore/SpigotCore_Main/src/de/steamwar/core/PlayerVersion.java b/SpigotCore/SpigotCore_Main/src/de/steamwar/core/PlayerVersion.java new file mode 100644 index 00000000..8b73e9b4 --- /dev/null +++ b/SpigotCore/SpigotCore_Main/src/de/steamwar/core/PlayerVersion.java @@ -0,0 +1,65 @@ +/* + * This file is a part of the SteamWar software. + * + * Copyright (C) 2020 SteamWar.de-Serverteam + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +package de.steamwar.core; + +import com.google.gson.Gson; +import com.google.gson.JsonObject; +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerQuitEvent; +import org.bukkit.plugin.messaging.PluginMessageListener; + +import java.util.HashMap; +import java.util.Map; + +public class PlayerVersion implements PluginMessageListener, Listener { + + private static final String PLAYER_VERSION_CHANNEL = "vv:proxy_details"; + private static final Gson GSON = new Gson(); + private static final Map playerVersions = new HashMap<>(); + + public static int getVersion(Player player) { + return playerVersions.getOrDefault(player, -1); + } + + public PlayerVersion() { + Core.getInstance().getServer().getMessenger().registerIncomingPluginChannel(Core.getInstance(), PLAYER_VERSION_CHANNEL, this); + Bukkit.getPluginManager().registerEvents(this, Core.getInstance()); + } + + @Override + public void onPluginMessageReceived(String channel, Player player, byte[] bytes) { + if (!channel.equals(PLAYER_VERSION_CHANNEL)) { + return; + } + + final JsonObject payload = GSON.fromJson(new String(bytes), JsonObject.class); + final String version = payload.get("versionName").getAsString(); + playerVersions.put(player, Integer.parseInt(version.split("-")[0].split("\\.")[1])); + } + + @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) + public void onPlayerQuit(PlayerQuitEvent event) { + playerVersions.remove(event.getPlayer()); + } +} diff --git a/SpigotCore/SpigotCore_Main/src/de/steamwar/core/WorldEditRenderer.java b/SpigotCore/SpigotCore_Main/src/de/steamwar/core/WorldEditRenderer.java index 6d84963c..0a6c128c 100644 --- a/SpigotCore/SpigotCore_Main/src/de/steamwar/core/WorldEditRenderer.java +++ b/SpigotCore/SpigotCore_Main/src/de/steamwar/core/WorldEditRenderer.java @@ -105,11 +105,6 @@ public class WorldEditRenderer implements Listener { } } - @EventHandler - public void onPlayerJoin(PlayerJoinEvent event) { - renderPlayer(event.getPlayer()); - } - @EventHandler public void onPlayerMove(PlayerMoveEvent event) { if(event.getPlayer().getItemInHand().getType() == WAND) { diff --git a/SpigotCore/SpigotCore_Main/src/de/steamwar/core/WorldEditRendererWrapper.java b/SpigotCore/SpigotCore_Main/src/de/steamwar/core/WorldEditRendererWrapper.java index fd6c0ea1..c303ed19 100644 --- a/SpigotCore/SpigotCore_Main/src/de/steamwar/core/WorldEditRendererWrapper.java +++ b/SpigotCore/SpigotCore_Main/src/de/steamwar/core/WorldEditRendererWrapper.java @@ -27,7 +27,7 @@ public interface WorldEditRendererWrapper { WorldEditRendererWrapper impl = VersionDependent.getVersionImpl(Core.getInstance()); static void safeDraw(Player player, Player owner, boolean clipboard, Vector pos1, Vector pos2) { - if (Core.isBedrockPlayer(player) || Core.getPlayerVersion(player) < 20) { + if (Core.isBedrockPlayer(player) || PlayerVersion.getVersion(player) < 20) { fallback.draw(player, owner, clipboard, pos1, pos2); } else { impl.draw(player, owner, clipboard, pos1, pos2);