From 52ab997a91c46bb4dc682702fc0a36bdb5cf06d5 Mon Sep 17 00:00:00 2001 From: sysnote8main Date: Sat, 24 Jan 2026 12:19:01 +0900 Subject: [PATCH 01/23] feat: downgrade protocollib to 4.8.0 --- build.gradle.kts | 12 ++---------- libs/.gitignore | 1 + libs/.gitkeep | 0 src/main/java/be4rjp/sclat/api/GlowingAPI.java | 6 ++++-- src/main/java/be4rjp/sclat/api/Plugins.java | 2 +- 5 files changed, 8 insertions(+), 13 deletions(-) create mode 100644 libs/.gitignore create mode 100644 libs/.gitkeep diff --git a/build.gradle.kts b/build.gradle.kts index 3a64dce..bab609a 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -2,7 +2,6 @@ plugins { `java-library` `maven-publish` - alias(libs.plugins.runPaper) alias(libs.plugins.spotless) alias(libs.plugins.shadow) } @@ -31,7 +30,8 @@ dependencies { compileOnly(libs.bukkit) compileOnly(libs.noteblockapi) compileOnly(libs.lunachat) - compileOnly(libs.protocolLib) +// compileOnly(libs.protocolLib) + compileOnly(files("libs/ProtocolLib.jar")) compileOnly(libs.dadadachecker) compileOnly(libs.blockstudio) compileOnly(libs.paperApi) @@ -54,14 +54,6 @@ java { } tasks { - runServer { - minecraftVersion("1.14.4") - downloadPlugins { - url("https://github.com/ucchyocean/LunaChat/releases/download/v3.0.16/LunaChat.jar") // LunaChat 3.0.16 - url("https://github.com/koca2000/NoteBlockAPI/releases/download/1.6.3/NoteBlockAPI-1.6.3.jar") // NoteBlockAPI 1.6.3 - url("https://github.com/dmulloy2/ProtocolLib/releases/download/4.6.0/ProtocolLib.jar") // ProtocolLib 4.6.0 - } - } compileJava { options.encoding = defaultEncoding diff --git a/libs/.gitignore b/libs/.gitignore new file mode 100644 index 0000000..f23b948 --- /dev/null +++ b/libs/.gitignore @@ -0,0 +1 @@ +*.jar \ No newline at end of file diff --git a/libs/.gitkeep b/libs/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/src/main/java/be4rjp/sclat/api/GlowingAPI.java b/src/main/java/be4rjp/sclat/api/GlowingAPI.java index 35359ac..73298cb 100644 --- a/src/main/java/be4rjp/sclat/api/GlowingAPI.java +++ b/src/main/java/be4rjp/sclat/api/GlowingAPI.java @@ -7,6 +7,8 @@ import org.bukkit.entity.Entity; import org.bukkit.entity.Player; +import java.lang.reflect.InvocationTargetException; + public class GlowingAPI { public static void setGlowing(Entity entity, Player player, boolean flag) { PacketContainer packet = Sclat.protocolManager.createPacket(PacketType.Play.Server.ENTITY_METADATA); @@ -18,8 +20,8 @@ public static void setGlowing(Entity entity, Player player, boolean flag) { packet.getWatchableCollectionModifier().write(0, watcher.getWatchableObjects()); try { Sclat.protocolManager.sendServerPacket(player, packet); - } catch (RuntimeException e) { + } catch (InvocationTargetException e) { e.printStackTrace(); } - } + } } diff --git a/src/main/java/be4rjp/sclat/api/Plugins.java b/src/main/java/be4rjp/sclat/api/Plugins.java index e14569d..a877d2e 100644 --- a/src/main/java/be4rjp/sclat/api/Plugins.java +++ b/src/main/java/be4rjp/sclat/api/Plugins.java @@ -31,7 +31,7 @@ public boolean isLoaded() { * To support plugman load. */ private void resetLoadedState() { - _isLoaded = false; + _isLoaded = null; } /** From a5bc34e04576a35be1ece88f0b5633dd79384904 Mon Sep 17 00:00:00 2001 From: sysnote8main Date: Sat, 24 Jan 2026 16:16:14 +0900 Subject: [PATCH 02/23] chore: migrating to paper api... --- build.gradle.kts | 6 +- .../java/be4rjp/sclat/api/GlowingAPI.java | 2 +- src/main/java/be4rjp/sclat/api/SclatUtil.java | 87 ++-------------- .../sclat/api/packet/EntityPackets.java | 15 +++ .../java/be4rjp/sclat/api/packet/Packets.java | 48 +++++++++ .../be4rjp/sclat/api/packet/WorldPackets.java | 98 +++++++++++++++++++ src/main/java/be4rjp/sclat/gui/LootBox.java | 4 +- .../sclat/weapon/subweapon/FloaterBomb.java | 10 +- 8 files changed, 179 insertions(+), 91 deletions(-) create mode 100644 src/main/java/be4rjp/sclat/api/packet/EntityPackets.java create mode 100644 src/main/java/be4rjp/sclat/api/packet/Packets.java create mode 100644 src/main/java/be4rjp/sclat/api/packet/WorldPackets.java diff --git a/build.gradle.kts b/build.gradle.kts index bab609a..e7f363f 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -25,9 +25,9 @@ repositories { } dependencies { - compileOnly(libs.spigotApi) - compileOnly(libs.spigot) - compileOnly(libs.bukkit) +// compileOnly(libs.spigotApi) +// compileOnly(libs.spigot) +// compileOnly(libs.bukkit) compileOnly(libs.noteblockapi) compileOnly(libs.lunachat) // compileOnly(libs.protocolLib) diff --git a/src/main/java/be4rjp/sclat/api/GlowingAPI.java b/src/main/java/be4rjp/sclat/api/GlowingAPI.java index 73298cb..99a301e 100644 --- a/src/main/java/be4rjp/sclat/api/GlowingAPI.java +++ b/src/main/java/be4rjp/sclat/api/GlowingAPI.java @@ -23,5 +23,5 @@ public static void setGlowing(Entity entity, Player player, boolean flag) { } catch (InvocationTargetException e) { e.printStackTrace(); } - } + } } diff --git a/src/main/java/be4rjp/sclat/api/SclatUtil.java b/src/main/java/be4rjp/sclat/api/SclatUtil.java index 9c26482..447d6e3 100644 --- a/src/main/java/be4rjp/sclat/api/SclatUtil.java +++ b/src/main/java/be4rjp/sclat/api/SclatUtil.java @@ -1,6 +1,7 @@ package be4rjp.sclat.api; import be4rjp.sclat.Sclat; +import be4rjp.sclat.api.packet.WorldPackets; import be4rjp.sclat.api.player.PlayerData; import be4rjp.sclat.api.team.Team; import be4rjp.sclat.data.DataMgr; @@ -8,26 +9,12 @@ import be4rjp.sclat.manager.DeathMgr; import be4rjp.sclat.manager.MatchMgr; import be4rjp.sclat.server.StatusClient; -import net.minecraft.server.v1_14_R1.Block; -import net.minecraft.server.v1_14_R1.BlockPosition; -import net.minecraft.server.v1_14_R1.EntityPlayer; -import net.minecraft.server.v1_14_R1.IBlockAccess; -import net.minecraft.server.v1_14_R1.IBlockData; -import net.minecraft.server.v1_14_R1.PacketPlayOutAbilities; -import net.minecraft.server.v1_14_R1.PacketPlayOutBlockChange; -import net.minecraft.server.v1_14_R1.PacketPlayOutNamedEntitySpawn; -import net.minecraft.server.v1_14_R1.PacketPlayOutWorldBorder; -import net.minecraft.server.v1_14_R1.PlayerAbilities; -import net.minecraft.server.v1_14_R1.WorldBorder; import org.bukkit.Bukkit; import org.bukkit.GameMode; import org.bukkit.Instrument; import org.bukkit.Location; import org.bukkit.Note; import org.bukkit.Sound; -import org.bukkit.craftbukkit.v1_14_R1.CraftWorld; -import org.bukkit.craftbukkit.v1_14_R1.block.data.CraftBlockData; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer; import org.bukkit.entity.Player; import org.bukkit.potion.PotionEffectType; import org.bukkit.scheduler.BukkitRunnable; @@ -49,74 +36,28 @@ public class SclatUtil { public static void setBlockByNMS(org.bukkit.block.Block b, org.bukkit.Material material, boolean applyPhysics) { - Location loc = b.getLocation(); - Block block = ((CraftBlockData) Bukkit.createBlockData(material)).getState().getBlock(); - net.minecraft.server.v1_14_R1.World nmsWorld = ((CraftWorld) loc.getWorld()).getHandle(); - BlockPosition bp = new BlockPosition(loc.getX(), loc.getY(), loc.getZ()); - IBlockData ibd = block.getBlockData(); - nmsWorld.setTypeAndData(bp, ibd, applyPhysics ? 3 : 2); + b.setType(material, applyPhysics); } public static void setBlockByNMSChunk(org.bukkit.block.Block b, org.bukkit.Material material, boolean applyPhysics) { - Location loc = b.getLocation(); - int x = loc.getBlockX(); - int y = loc.getBlockY(); - int z = loc.getBlockZ(); - Block block = ((CraftBlockData) Bukkit.createBlockData(material)).getState().getBlock(); - net.minecraft.server.v1_14_R1.World nmsWorld = ((CraftWorld) loc.getWorld()).getHandle(); - net.minecraft.server.v1_14_R1.Chunk nmsChunk = nmsWorld.getChunkAt(x >> 4, z >> 4); - BlockPosition bp = new BlockPosition(x, y, z); - IBlockData ibd = block.getBlockData(); - nmsChunk.setType(bp, ibd, applyPhysics); + b.setBlockData(material.createBlockData(), applyPhysics); } public static void sendBlockChangeForAllPlayer(org.bukkit.block.Block b, org.bukkit.Material material) { - Location loc = b.getLocation(); - int x = loc.getBlockX(); - int y = loc.getBlockY(); - int z = loc.getBlockZ(); - BlockPosition bp = new BlockPosition(x, y, z); - net.minecraft.server.v1_14_R1.World nmsWorld = ((CraftWorld) loc.getWorld()).getHandle(); - net.minecraft.server.v1_14_R1.Chunk nmsChunk = nmsWorld.getChunkAt(x >> 4, z >> 4); - Block block = ((CraftBlockData) Bukkit.createBlockData(material)).getState().getBlock(); - IBlockAccess iba = (IBlockAccess) nmsWorld; - PacketPlayOutBlockChange packet = new PacketPlayOutBlockChange(iba, bp); - for (Player target : Sclat.getPlugin().getServer().getOnlinePlayers()) { - if (target.getWorld() == b.getWorld()) { - ((CraftPlayer) target).getHandle().playerConnection.sendPacket(packet); - } - } + WorldPackets.broadcastBlockChange(b.getLocation(), material); } public static void sendWorldBorderWarningPacket(Player player) { - EntityPlayer nmsPlayer = ((CraftPlayer) player).getHandle(); - net.minecraft.server.v1_14_R1.WorldBorder wb = new WorldBorder(); - wb.world = nmsPlayer.getWorldServer(); - wb.setSize(1); - wb.setCenter(player.getLocation().getX() + 10_000, player.getLocation().getZ() + 10_000); - PacketPlayOutWorldBorder packet = new PacketPlayOutWorldBorder(wb, - PacketPlayOutWorldBorder.EnumWorldBorderAction.INITIALIZE); - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet); + WorldPackets.sendWorldBorderWarningPacket(player); } public static void sendWorldBorderWarningClearPacket(Player player) { - EntityPlayer nmsPlayer = ((CraftPlayer) player).getHandle(); - net.minecraft.server.v1_14_R1.WorldBorder wb = new WorldBorder(); - wb.world = nmsPlayer.getWorldServer(); - wb.setSize(30_000_000); - wb.setCenter(player.getLocation().getX(), player.getLocation().getZ()); - PacketPlayOutWorldBorder packet = new PacketPlayOutWorldBorder(wb, - PacketPlayOutWorldBorder.EnumWorldBorderAction.INITIALIZE); - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet); + WorldPackets.sendWorldBorderWarningClearPacket(player); } public static void setPlayerFOV(Player player, float fov) { - PlayerAbilities abilities = new PlayerAbilities(); - abilities.walkSpeed = fov; - DataMgr.getPlayerData(player).setFov(fov); - PacketPlayOutAbilities packet = new PacketPlayOutAbilities(abilities); - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet); + WorldPackets.setPlayerFOV(player, fov); } /* @@ -167,20 +108,6 @@ public static void sendRestartedServerInfo() { sc.startClient(); } - public static void setPlayerPrefix(Player player, String prefix) { - String name = prefix + player.getDisplayName(); - CraftPlayer cp = (CraftPlayer) player; - EntityPlayer ep = cp.getHandle(); - String origName = ep.getName(); - for (Player target : Sclat.getPlugin().getServer().getOnlinePlayers()) { - if (player != target) { - CraftPlayer ct = (CraftPlayer) player; - ct.getHandle().playerConnection.sendPacket(new PacketPlayOutNamedEntitySpawn(ep)); - } - } - - } - public static void sendMessage(String message, MessageType type) { String sclat = "[§bSclat§r] "; StringBuilder buff = new StringBuilder(); diff --git a/src/main/java/be4rjp/sclat/api/packet/EntityPackets.java b/src/main/java/be4rjp/sclat/api/packet/EntityPackets.java new file mode 100644 index 0000000..b059d00 --- /dev/null +++ b/src/main/java/be4rjp/sclat/api/packet/EntityPackets.java @@ -0,0 +1,15 @@ +package be4rjp.sclat.api.packet; + +import com.comphenix.protocol.PacketType; +import com.comphenix.protocol.events.PacketContainer; +import org.bukkit.entity.Player; +import org.jspecify.annotations.NullMarked; + +@NullMarked +public class EntityPackets { + public static boolean sendDestroyEntities(Player player, int... entityIds) { + PacketContainer destroyPacket = Packets.createPacket(PacketType.Play.Server.ENTITY_DESTROY); + destroyPacket.getIntegerArrays().write(0, entityIds); + return Packets.sendServerPacket(player, destroyPacket); + } +} diff --git a/src/main/java/be4rjp/sclat/api/packet/Packets.java b/src/main/java/be4rjp/sclat/api/packet/Packets.java new file mode 100644 index 0000000..73030b3 --- /dev/null +++ b/src/main/java/be4rjp/sclat/api/packet/Packets.java @@ -0,0 +1,48 @@ +package be4rjp.sclat.api.packet; + +import be4rjp.sclat.Sclat; +import com.comphenix.protocol.PacketType; +import com.comphenix.protocol.ProtocolManager; +import com.comphenix.protocol.events.PacketContainer; +import org.bukkit.entity.Player; +import org.jspecify.annotations.NullMarked; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.lang.reflect.InvocationTargetException; + +@NullMarked +public class Packets { + private static final Logger logger = LoggerFactory.getLogger(EntityPackets.class); + public static ProtocolManager manager() { + return Sclat.protocolManager; + } + + public static PacketContainer createPacket(PacketType packetType) { + return manager().createPacket(packetType); + } + + public static PacketContainer createPacket(PacketType packetType, boolean b) { + return manager().createPacket(packetType, b); + } + + public static boolean sendServerPacket(Player player, PacketContainer packet) { + try { + manager().sendServerPacket(player, packet); + return true; + } catch (InvocationTargetException e) { + logger.error("Failed to send packet", e); + return false; + } + } + + public static boolean broadcastServerPacket(PacketContainer packet) { + try { + manager().broadcastServerPacket(packet); + return true; + } catch (Exception e) { + logger.error("Failed to broadcast packet", e); + return false; + } + } +} diff --git a/src/main/java/be4rjp/sclat/api/packet/WorldPackets.java b/src/main/java/be4rjp/sclat/api/packet/WorldPackets.java new file mode 100644 index 0000000..15065ed --- /dev/null +++ b/src/main/java/be4rjp/sclat/api/packet/WorldPackets.java @@ -0,0 +1,98 @@ +package be4rjp.sclat.api.packet; + +import be4rjp.sclat.data.DataMgr; +import com.comphenix.protocol.PacketType; +import com.comphenix.protocol.events.PacketContainer; +import com.comphenix.protocol.wrappers.BlockPosition; +import com.comphenix.protocol.wrappers.EnumWrappers; +import com.comphenix.protocol.wrappers.WrappedBlockData; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.entity.Player; + +public class WorldPackets { + public static boolean broadcastBlockChange(Location location, Material material) { + PacketContainer packet = Packets.createPacket(PacketType.Play.Server.BLOCK_CHANGE); + packet.getBlockPositionModifier().write(0, new BlockPosition(location.toVector())); + packet.getBlockData().write(0, WrappedBlockData.createData(material)); + return Packets.broadcastServerPacket(packet); + } + + public static boolean sendWorldBorderWarningPacket(Player player) { + PacketContainer packet = Packets.createPacket(PacketType.Play.Server.WORLD_BORDER); + + // Set the action to INITIALIZE (Enum index 3 in 1.14.4) + packet.getWorldBorderActions().write(0, EnumWrappers.WorldBorderAction.INITIALIZE); + + // Set Center (far away from the player to trigger the warning) + packet.getDoubles().write(0, player.getLocation().getX() + 10000.0); // Center X + packet.getDoubles().write(1, player.getLocation().getZ() + 10000.0); // Center Z + + // Set Sizes + packet.getDoubles().write(2, 0.0); // Old radius + packet.getDoubles().write(3, 1.0); // New radius (Size 1) + + // Set Lerp Speed (Time to reach new radius) + packet.getLongs().write(0, 0L); + + // Set Other Required Data for INITIALIZE + packet.getIntegers().write(0, 29999984); // Portal Teleport Boundary + packet.getIntegers().write(1, 5); // Warning Time + packet.getIntegers().write(2, 5); // Warning Distance + + return Packets.sendServerPacket(player, packet); + } + + public static boolean sendWorldBorderWarningClearPacket(Player player) { + PacketContainer packet = Packets.createPacket(PacketType.Play.Server.WORLD_BORDER); + + // Set the action to INITIALIZE + packet.getWorldBorderActions().write(0, EnumWrappers.WorldBorderAction.INITIALIZE); + + // Set Center to player's current position so they are in the middle + packet.getDoubles().write(0, player.getLocation().getX()); // Center X + packet.getDoubles().write(1, player.getLocation().getZ()); // Center Z + + // Set Sizes to maximum (30 million is the Minecraft default limit) + packet.getDoubles().write(2, 30_000_000.0); // Old radius + packet.getDoubles().write(3, 30_000_000.0); // New radius + + // Set Lerp Speed + packet.getLongs().write(0, 0L); + + // Set Required Constants + packet.getIntegers().write(0, 29999984); // Portal boundary + packet.getIntegers().write(1, 5); // Warning time + packet.getIntegers().write(2, 5); // Warning distance + + return Packets.sendServerPacket(player, packet); + } + + public static boolean setPlayerFOV(Player player, float fov) { + PacketContainer packet = Packets.createPacket(PacketType.Play.Server.ABILITIES); + + // 1. Set the walk speed (which controls the FOV zoom/widening) + // In 1.14.4, walkSpeed is usually the second float (index 1) + packet.getFloat().write(1, fov); + + // 2. Set the fly speed (index 0) to the player's current fly speed to avoid bugs + packet.getFloat().write(0, player.getFlySpeed()); + + // 3. Set the flags (invulnerable, flying, canFly, instabuild) + // We use a bitmask or just mirror the player's current state + byte flags = 0; + if (player.getAllowFlight()) flags |= 0x04; + if (player.isFlying()) flags |= 0x02; + // (Add more flags if you need to maintain invulnerability or creative mode status) + + packet.getBooleans().write(0, player.isInvulnerable()); + packet.getBooleans().write(1, player.isFlying()); + packet.getBooleans().write(2, player.getAllowFlight()); + packet.getBooleans().write(3, player.getGameMode() == org.bukkit.GameMode.CREATIVE); + + // Update your local data manager + DataMgr.getPlayerData(player).setFov(fov); + + return Packets.sendServerPacket(player, packet); + } +} diff --git a/src/main/java/be4rjp/sclat/gui/LootBox.java b/src/main/java/be4rjp/sclat/gui/LootBox.java index c897965..7feba9f 100644 --- a/src/main/java/be4rjp/sclat/gui/LootBox.java +++ b/src/main/java/be4rjp/sclat/gui/LootBox.java @@ -87,7 +87,7 @@ public static void LootBoxInfo(Player player) { DataMgr.getWeaponClass(ClassName).getMainWeapon().getWeaponIteamStack()); ItemMeta itemm = item.getItemMeta(); itemm.setDisplayName(ClassName); - List lores = new ArrayList(); + List lores = new ArrayList<>(); lores.add("§r§6SubWeapon : " + conf.getClassConfig().getString("WeaponClass." + ClassName + ".SubWeaponName")); lores.add("§r§6SPWeapon : " @@ -105,7 +105,7 @@ public static void LootBoxInfo(Player player) { for (int i = 1; i <= 5; i += 1) { ItemStack paper = new ItemStack(Material.PAPER); ItemMeta pmeta = paper.getItemMeta(); - List paperlores = new ArrayList(); + List paperlores = new ArrayList<>(); switch (i) { case 1 : pmeta.setDisplayName("1等 " + Firstprize + "coin"); diff --git a/src/main/java/be4rjp/sclat/weapon/subweapon/FloaterBomb.java b/src/main/java/be4rjp/sclat/weapon/subweapon/FloaterBomb.java index 20a47bb..5f53515 100644 --- a/src/main/java/be4rjp/sclat/weapon/subweapon/FloaterBomb.java +++ b/src/main/java/be4rjp/sclat/weapon/subweapon/FloaterBomb.java @@ -4,20 +4,18 @@ import be4rjp.sclat.Sclat; import be4rjp.sclat.api.SclatUtil; import be4rjp.sclat.api.Sphere; +import be4rjp.sclat.api.packet.EntityPackets; import be4rjp.sclat.data.DataMgr; import be4rjp.sclat.data.KasaData; import be4rjp.sclat.data.SplashShieldData; import be4rjp.sclat.manager.ArmorStandMgr; import be4rjp.sclat.manager.PaintMgr; import be4rjp.sclat.weapon.Gear; -import net.minecraft.server.v1_14_R1.PacketPlayOutEntityDestroy; -import net.minecraft.server.v1_14_R1.PlayerConnection; import org.bukkit.ChatColor; import org.bukkit.GameMode; import org.bukkit.Location; import org.bukkit.Particle; import org.bukkit.Sound; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer; import org.bukkit.entity.ArmorStand; import org.bukkit.entity.Entity; import org.bukkit.entity.Item; @@ -75,8 +73,10 @@ public void run() { DataMgr.setSnowballIsHit(ball, false); for (Player o_player : Sclat.getPlugin().getServer().getOnlinePlayers()) { - PlayerConnection connection = ((CraftPlayer) o_player).getHandle().playerConnection; - connection.sendPacket(new PacketPlayOutEntityDestroy(ball.getEntityId())); + // PlayerConnection connection = ((CraftPlayer) + // o_player).getHandle().playerConnection; + // connection.sendPacket(new PacketPlayOutEntityDestroy(ball.getEntityId())); + EntityPackets.sendDestroyEntities(o_player, ball.getEntityId()); } p_vec = p.getEyeLocation().getDirection(); } From 26072902224f06d1799a6eebdeb80d49547b82e6 Mon Sep 17 00:00:00 2001 From: sysnote8main Date: Sat, 24 Jan 2026 16:56:22 +0900 Subject: [PATCH 03/23] temp commit --- build.gradle.kts | 4 +- gradle/libs.versions.toml | 2 +- .../be4rjp/sclat/api/holo/HologramLine.java | 75 ++++++++ .../be4rjp/sclat/api/packet/WorldPackets.java | 172 +++++++++--------- 4 files changed, 165 insertions(+), 88 deletions(-) create mode 100644 src/main/java/be4rjp/sclat/api/holo/HologramLine.java diff --git a/build.gradle.kts b/build.gradle.kts index e7f363f..d3ba3c8 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -25,9 +25,7 @@ repositories { } dependencies { -// compileOnly(libs.spigotApi) -// compileOnly(libs.spigot) -// compileOnly(libs.bukkit) + compileOnly(libs.spigot) compileOnly(libs.noteblockapi) compileOnly(libs.lunachat) // compileOnly(libs.protocolLib) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 933dc82..9875943 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -30,4 +30,4 @@ bukkit = { module = "org.bukkit:bukkit", version.ref = "bukkit" } spigot = { module = "org.spigotmc:spigot", version.ref = "spigot" } spigotApi = { module = "org.spigotmc:spigot-api", version.ref = "spigotApi" } cloudPaper = { module = "org.incendo:cloud-paper", version.ref = "cloudPaper" } -jspecify = { module = "org.jspecify:jspecify", version.ref = "jspecify" } \ No newline at end of file +jspecify = { module = "org.jspecify:jspecify", version.ref = "jspecify" } diff --git a/src/main/java/be4rjp/sclat/api/holo/HologramLine.java b/src/main/java/be4rjp/sclat/api/holo/HologramLine.java new file mode 100644 index 0000000..c80a242 --- /dev/null +++ b/src/main/java/be4rjp/sclat/api/holo/HologramLine.java @@ -0,0 +1,75 @@ +package be4rjp.sclat.api.holo; + +import be4rjp.sclat.api.packet.Packets; +import com.comphenix.protocol.PacketType; +import com.comphenix.protocol.ProtocolLibrary; +import com.comphenix.protocol.events.PacketContainer; +import com.comphenix.protocol.wrappers.WrappedChatComponent; +import com.comphenix.protocol.wrappers.WrappedDataWatcher; +import org.bukkit.Location; +import org.bukkit.entity.Player; + +import java.util.Optional; +import java.util.UUID; +import java.util.concurrent.ThreadLocalRandom; + +public class HologramLine { + private final int entityId; + private final UUID uuid; + private final Location location; + private String text; + private boolean visible = true; + + public HologramLine(Location loc, String text) { + this.entityId = ThreadLocalRandom.current().nextInt(100000, 999999); + this.uuid = UUID.randomUUID(); + this.location = loc; + this.text = text; + } + + public void setText(String text) { + this.text = text; + } + public void setVisible(boolean visible) { + this.visible = visible; + } + public int getEntityId() { + return entityId; + } + + public void sendSpawn(Player player) { + // Spawn Packet (1.14.4 ArmorStand ID is 1) + PacketContainer spawn = Packets.createPacket(PacketType.Play.Server.SPAWN_ENTITY_LIVING); + spawn.getIntegers().write(0, entityId); + spawn.getUUIDs().write(0, uuid); + spawn.getIntegers().write(1, 1); + spawn.getDoubles().write(0, location.getX()).write(1, location.getY()).write(2, location.getZ()); + + // Metadata Packet + PacketContainer meta = Packets.createPacket(PacketType.Play.Server.ENTITY_METADATA); + meta.getIntegers().write(0, entityId); + + WrappedDataWatcher watcher = new WrappedDataWatcher(); + watcher.setObject(0, WrappedDataWatcher.Registry.get(Byte.class), (byte) 0x20); // Invisible + watcher.setObject(2, WrappedDataWatcher.Registry.getChatComponentSerializer(true), + Optional.of(WrappedChatComponent.fromText(text).getHandle())); + watcher.setObject(3, WrappedDataWatcher.Registry.get(Boolean.class), visible); + watcher.setObject(14, WrappedDataWatcher.Registry.get(Byte.class), (byte) 0x01); // Small + + meta.getWatchableCollectionModifier().write(0, watcher.getWatchableObjects()); + + Packets.sendServerPacket(player, spawn); + Packets.sendServerPacket(player, meta); + } + + public void sendDestroy(Player player) { + PacketContainer destroy = ProtocolLibrary.getProtocolManager() + .createPacket(PacketType.Play.Server.ENTITY_DESTROY); + destroy.getIntegerArrays().write(0, new int[]{entityId}); + try { + ProtocolLibrary.getProtocolManager().sendServerPacket(player, destroy); + } catch (Exception e) { + e.printStackTrace(); + } + } +} diff --git a/src/main/java/be4rjp/sclat/api/packet/WorldPackets.java b/src/main/java/be4rjp/sclat/api/packet/WorldPackets.java index 15065ed..d3e49d6 100644 --- a/src/main/java/be4rjp/sclat/api/packet/WorldPackets.java +++ b/src/main/java/be4rjp/sclat/api/packet/WorldPackets.java @@ -11,88 +11,92 @@ import org.bukkit.entity.Player; public class WorldPackets { - public static boolean broadcastBlockChange(Location location, Material material) { - PacketContainer packet = Packets.createPacket(PacketType.Play.Server.BLOCK_CHANGE); - packet.getBlockPositionModifier().write(0, new BlockPosition(location.toVector())); - packet.getBlockData().write(0, WrappedBlockData.createData(material)); - return Packets.broadcastServerPacket(packet); - } - - public static boolean sendWorldBorderWarningPacket(Player player) { - PacketContainer packet = Packets.createPacket(PacketType.Play.Server.WORLD_BORDER); - - // Set the action to INITIALIZE (Enum index 3 in 1.14.4) - packet.getWorldBorderActions().write(0, EnumWrappers.WorldBorderAction.INITIALIZE); - - // Set Center (far away from the player to trigger the warning) - packet.getDoubles().write(0, player.getLocation().getX() + 10000.0); // Center X - packet.getDoubles().write(1, player.getLocation().getZ() + 10000.0); // Center Z - - // Set Sizes - packet.getDoubles().write(2, 0.0); // Old radius - packet.getDoubles().write(3, 1.0); // New radius (Size 1) - - // Set Lerp Speed (Time to reach new radius) - packet.getLongs().write(0, 0L); - - // Set Other Required Data for INITIALIZE - packet.getIntegers().write(0, 29999984); // Portal Teleport Boundary - packet.getIntegers().write(1, 5); // Warning Time - packet.getIntegers().write(2, 5); // Warning Distance - - return Packets.sendServerPacket(player, packet); - } - - public static boolean sendWorldBorderWarningClearPacket(Player player) { - PacketContainer packet = Packets.createPacket(PacketType.Play.Server.WORLD_BORDER); - - // Set the action to INITIALIZE - packet.getWorldBorderActions().write(0, EnumWrappers.WorldBorderAction.INITIALIZE); - - // Set Center to player's current position so they are in the middle - packet.getDoubles().write(0, player.getLocation().getX()); // Center X - packet.getDoubles().write(1, player.getLocation().getZ()); // Center Z - - // Set Sizes to maximum (30 million is the Minecraft default limit) - packet.getDoubles().write(2, 30_000_000.0); // Old radius - packet.getDoubles().write(3, 30_000_000.0); // New radius - - // Set Lerp Speed - packet.getLongs().write(0, 0L); - - // Set Required Constants - packet.getIntegers().write(0, 29999984); // Portal boundary - packet.getIntegers().write(1, 5); // Warning time - packet.getIntegers().write(2, 5); // Warning distance - - return Packets.sendServerPacket(player, packet); - } - - public static boolean setPlayerFOV(Player player, float fov) { - PacketContainer packet = Packets.createPacket(PacketType.Play.Server.ABILITIES); - - // 1. Set the walk speed (which controls the FOV zoom/widening) - // In 1.14.4, walkSpeed is usually the second float (index 1) - packet.getFloat().write(1, fov); - - // 2. Set the fly speed (index 0) to the player's current fly speed to avoid bugs - packet.getFloat().write(0, player.getFlySpeed()); - - // 3. Set the flags (invulnerable, flying, canFly, instabuild) - // We use a bitmask or just mirror the player's current state - byte flags = 0; - if (player.getAllowFlight()) flags |= 0x04; - if (player.isFlying()) flags |= 0x02; - // (Add more flags if you need to maintain invulnerability or creative mode status) - - packet.getBooleans().write(0, player.isInvulnerable()); - packet.getBooleans().write(1, player.isFlying()); - packet.getBooleans().write(2, player.getAllowFlight()); - packet.getBooleans().write(3, player.getGameMode() == org.bukkit.GameMode.CREATIVE); - - // Update your local data manager - DataMgr.getPlayerData(player).setFov(fov); - - return Packets.sendServerPacket(player, packet); - } + public static boolean broadcastBlockChange(Location location, Material material) { + PacketContainer packet = Packets.createPacket(PacketType.Play.Server.BLOCK_CHANGE); + packet.getBlockPositionModifier().write(0, new BlockPosition(location.toVector())); + packet.getBlockData().write(0, WrappedBlockData.createData(material)); + return Packets.broadcastServerPacket(packet); + } + + public static boolean sendWorldBorderWarningPacket(Player player) { + PacketContainer packet = Packets.createPacket(PacketType.Play.Server.WORLD_BORDER); + + // Set the action to INITIALIZE (Enum index 3 in 1.14.4) + packet.getWorldBorderActions().write(0, EnumWrappers.WorldBorderAction.INITIALIZE); + + // Set Center (far away from the player to trigger the warning) + packet.getDoubles().write(0, player.getLocation().getX() + 10000.0); // Center X + packet.getDoubles().write(1, player.getLocation().getZ() + 10000.0); // Center Z + + // Set Sizes + packet.getDoubles().write(2, 0.0); // Old radius + packet.getDoubles().write(3, 1.0); // New radius (Size 1) + + // Set Lerp Speed (Time to reach new radius) + packet.getLongs().write(0, 0L); + + // Set Other Required Data for INITIALIZE + packet.getIntegers().write(0, 29999984); // Portal Teleport Boundary + packet.getIntegers().write(1, 5); // Warning Time + packet.getIntegers().write(2, 5); // Warning Distance + + return Packets.sendServerPacket(player, packet); + } + + public static boolean sendWorldBorderWarningClearPacket(Player player) { + PacketContainer packet = Packets.createPacket(PacketType.Play.Server.WORLD_BORDER); + + // Set the action to INITIALIZE + packet.getWorldBorderActions().write(0, EnumWrappers.WorldBorderAction.INITIALIZE); + + // Set Center to player's current position so they are in the middle + packet.getDoubles().write(0, player.getLocation().getX()); // Center X + packet.getDoubles().write(1, player.getLocation().getZ()); // Center Z + + // Set Sizes to maximum (30 million is the Minecraft default limit) + packet.getDoubles().write(2, 30_000_000.0); // Old radius + packet.getDoubles().write(3, 30_000_000.0); // New radius + + // Set Lerp Speed + packet.getLongs().write(0, 0L); + + // Set Required Constants + packet.getIntegers().write(0, 29999984); // Portal boundary + packet.getIntegers().write(1, 5); // Warning time + packet.getIntegers().write(2, 5); // Warning distance + + return Packets.sendServerPacket(player, packet); + } + + public static boolean setPlayerFOV(Player player, float fov) { + PacketContainer packet = Packets.createPacket(PacketType.Play.Server.ABILITIES); + + // 1. Set the walk speed (which controls the FOV zoom/widening) + // In 1.14.4, walkSpeed is usually the second float (index 1) + packet.getFloat().write(1, fov); + + // 2. Set the fly speed (index 0) to the player's current fly speed to avoid + // bugs + packet.getFloat().write(0, player.getFlySpeed()); + + // 3. Set the flags (invulnerable, flying, canFly, instabuild) + // We use a bitmask or just mirror the player's current state + byte flags = 0; + if (player.getAllowFlight()) + flags |= 0x04; + if (player.isFlying()) + flags |= 0x02; + // (Add more flags if you need to maintain invulnerability or creative mode + // status) + + packet.getBooleans().write(0, player.isInvulnerable()); + packet.getBooleans().write(1, player.isFlying()); + packet.getBooleans().write(2, player.getAllowFlight()); + packet.getBooleans().write(3, player.getGameMode() == org.bukkit.GameMode.CREATIVE); + + // Update your local data manager + DataMgr.getPlayerData(player).setFov(fov); + + return Packets.sendServerPacket(player, packet); + } } From e13a8139e36e70c797ca09bafcc0e375708a1204 Mon Sep 17 00:00:00 2001 From: sysnote8main Date: Sat, 24 Jan 2026 17:00:20 +0900 Subject: [PATCH 04/23] feat: upgrade to mc 1.15.2 --- gradle/libs.versions.toml | 8 +--- src/main/java/be4rjp/sclat/api/SclatUtil.java | 4 +- .../sclat/api/holo/RankingHolograms.java | 14 +++--- .../be4rjp/sclat/api/player/PlayerData.java | 2 +- .../sclat/api/raytrace/BoundingBox.java | 4 +- .../be4rjp/sclat/api/wiremesh/Wiremesh.java | 30 ++++++------- .../java/be4rjp/sclat/data/BlockUpdater.java | 6 +-- src/main/java/be4rjp/sclat/data/Path.java | 8 ++-- src/main/java/be4rjp/sclat/gui/OpenGUI.java | 2 +- .../be4rjp/sclat/manager/ArmorStandMgr.java | 14 +++--- .../java/be4rjp/sclat/manager/GameMgr.java | 4 +- .../java/be4rjp/sclat/manager/NPCMgr.java | 38 ++++++++-------- .../java/be4rjp/sclat/manager/PathMgr.java | 8 ++-- .../be4rjp/sclat/manager/PlayerStatusMgr.java | 36 +++++++-------- .../be4rjp/sclat/manager/SprinklerMgr.java | 4 +- .../java/be4rjp/sclat/manager/SquidMgr.java | 18 ++++---- .../be4rjp/sclat/manager/SuperJumpMgr.java | 14 +++--- .../be4rjp/sclat/packet/PacketHandler.java | 6 +-- .../protocollib/EntityClickListener.java | 2 +- .../java/be4rjp/sclat/weapon/Blaster.java | 4 +- src/main/java/be4rjp/sclat/weapon/Brush.java | 4 +- src/main/java/be4rjp/sclat/weapon/Bucket.java | 4 +- src/main/java/be4rjp/sclat/weapon/Burst.java | 4 +- src/main/java/be4rjp/sclat/weapon/Decoy.java | 44 +++++++++---------- src/main/java/be4rjp/sclat/weapon/Funnel.java | 8 ++-- src/main/java/be4rjp/sclat/weapon/Kasa.java | 10 ++--- src/main/java/be4rjp/sclat/weapon/Reeler.java | 4 +- src/main/java/be4rjp/sclat/weapon/Roller.java | 4 +- .../java/be4rjp/sclat/weapon/Shooter.java | 4 +- .../java/be4rjp/sclat/weapon/Slosher.java | 4 +- .../be4rjp/sclat/weapon/SnowballListener.java | 10 ++--- .../java/be4rjp/sclat/weapon/Spinner.java | 4 +- .../sclat/weapon/spweapon/Amehurasi.java | 4 +- .../be4rjp/sclat/weapon/spweapon/Barrier.java | 2 +- .../be4rjp/sclat/weapon/spweapon/JetPack.java | 18 ++++---- .../sclat/weapon/spweapon/MultiMissile.java | 20 ++++----- .../sclat/weapon/spweapon/QuadroArms.java | 10 ++--- .../sclat/weapon/spweapon/SuperShot.java | 6 +-- .../sclat/weapon/spweapon/SwordMord.java | 4 +- .../be4rjp/sclat/weapon/subweapon/Beacon.java | 8 ++-- .../sclat/weapon/subweapon/Boomerang.java | 10 ++--- .../sclat/weapon/subweapon/CurlingBomb.java | 10 ++--- .../be4rjp/sclat/weapon/subweapon/KBomb.java | 6 +-- .../be4rjp/sclat/weapon/subweapon/Poison.java | 6 +-- .../sclat/weapon/subweapon/QuickBomb.java | 6 +-- .../be4rjp/sclat/weapon/subweapon/Sensor.java | 6 +-- .../sclat/weapon/subweapon/SplashShield.java | 8 ++-- .../sclat/weapon/subweapon/Sprinkler.java | 12 ++--- 48 files changed, 231 insertions(+), 235 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 9875943..6a180df 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -3,14 +3,12 @@ runPaper = "2.3.1" # 3.x.x can't run in Java8 spotless = "6.13.0" # 6.14.0 can't run in Java8 shadow = "8.3.0" protocolLib = "5.3.0" # 5.4.0 can't run in Java8 -paperApi = "1.14.4-R0.1-SNAPSHOT" +paperApi = "1.15.2-R0.1-SNAPSHOT" blockstudio = "-SNAPSHOT" dadadachecker = "1.0.0" noteblockapi = "1.6.3" lunachat = "3.0.16" -bukkit = "1.14.4-R0.1-SNAPSHOT" -spigot = "1.14.4-R0.1-SNAPSHOT" -spigotApi = "1.14.4-R0.1-SNAPSHOT" +spigot = "1.15.2-R0.1-SNAPSHOT" cloudPaper = "2.0.0-beta.10" jspecify = "1.0.0" @@ -26,8 +24,6 @@ blockstudio = { module = "com.github.Be4rJP:BlockStudio", version.ref = "blockst dadadachecker = { module = "com.github.Be4rJP:DADADAChecker", version.ref = "dadadachecker" } noteblockapi = { module = "com.github.koca2000:NoteBlockAPI", version.ref = "noteblockapi" } lunachat = { module = "com.github.ucchyocean:LunaChat", version.ref = "lunachat" } -bukkit = { module = "org.bukkit:bukkit", version.ref = "bukkit" } spigot = { module = "org.spigotmc:spigot", version.ref = "spigot" } -spigotApi = { module = "org.spigotmc:spigot-api", version.ref = "spigotApi" } cloudPaper = { module = "org.incendo:cloud-paper", version.ref = "cloudPaper" } jspecify = { module = "org.jspecify:jspecify", version.ref = "jspecify" } diff --git a/src/main/java/be4rjp/sclat/api/SclatUtil.java b/src/main/java/be4rjp/sclat/api/SclatUtil.java index 447d6e3..749a705 100644 --- a/src/main/java/be4rjp/sclat/api/SclatUtil.java +++ b/src/main/java/be4rjp/sclat/api/SclatUtil.java @@ -66,8 +66,8 @@ public static void setPlayerFOV(Player player, float fov) { * b.getLocation(); Block block = ((CraftBlockData) * Bukkit.createBlockData(material)).getState().getBlock(); int x = * loc.getBlockX(); int y = loc.getBlockY(); int z = loc.getBlockZ(); - * net.minecraft.server.v1_14_R1.World nmsWorld = ((CraftWorld) - * loc.getWorld()).getHandle(); net.minecraft.server.v1_14_R1.Chunk nmsChunk = + * net.minecraft.server.v1_15_R1.World nmsWorld = ((CraftWorld) + * loc.getWorld()).getHandle(); net.minecraft.server.v1_15_R1.Chunk nmsChunk = * nmsWorld.getChunkAt(x >> 4, z >> 4); ChunkSection cs = * nmsChunk.getSections()[y >> 4]; IBlockData ibd = block.getBlockData(); if (cs * == nmsChunk.a()) { cs = new ChunkSection(y >> 4 << 4, false); diff --git a/src/main/java/be4rjp/sclat/api/holo/RankingHolograms.java b/src/main/java/be4rjp/sclat/api/holo/RankingHolograms.java index bad6e3f..8fc5769 100644 --- a/src/main/java/be4rjp/sclat/api/holo/RankingHolograms.java +++ b/src/main/java/be4rjp/sclat/api/holo/RankingHolograms.java @@ -4,16 +4,16 @@ import be4rjp.sclat.data.RankingType; import be4rjp.sclat.manager.PlayerStatusMgr; import be4rjp.sclat.manager.RankMgr; -import net.minecraft.server.v1_14_R1.EntityArmorStand; -import net.minecraft.server.v1_14_R1.PacketPlayOutEntityDestroy; -import net.minecraft.server.v1_14_R1.PacketPlayOutSpawnEntityLiving; -import net.minecraft.server.v1_14_R1.WorldServer; +import net.minecraft.server.v1_15_R1.EntityArmorStand; +import net.minecraft.server.v1_15_R1.PacketPlayOutEntityDestroy; +import net.minecraft.server.v1_15_R1.PacketPlayOutSpawnEntityLiving; +import net.minecraft.server.v1_15_R1.WorldServer; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.World; -import org.bukkit.craftbukkit.v1_14_R1.CraftWorld; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer; -import org.bukkit.craftbukkit.v1_14_R1.util.CraftChatMessage; +import org.bukkit.craftbukkit.v1_15_R1.CraftWorld; +import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer; +import org.bukkit.craftbukkit.v1_15_R1.util.CraftChatMessage; import org.bukkit.entity.Player; import org.bukkit.scheduler.BukkitRunnable; diff --git a/src/main/java/be4rjp/sclat/api/player/PlayerData.java b/src/main/java/be4rjp/sclat/api/player/PlayerData.java index 35aa158..1c3d6d9 100644 --- a/src/main/java/be4rjp/sclat/api/player/PlayerData.java +++ b/src/main/java/be4rjp/sclat/api/player/PlayerData.java @@ -4,7 +4,7 @@ import be4rjp.sclat.data.MainWeapon; import be4rjp.sclat.data.Match; import be4rjp.sclat.data.WeaponClass; -import net.minecraft.server.v1_14_R1.ItemStack; +import net.minecraft.server.v1_15_R1.ItemStack; import org.bukkit.Location; import org.bukkit.entity.ArmorStand; import org.bukkit.entity.Player; diff --git a/src/main/java/be4rjp/sclat/api/raytrace/BoundingBox.java b/src/main/java/be4rjp/sclat/api/raytrace/BoundingBox.java index 3ae6907..47f2cb9 100644 --- a/src/main/java/be4rjp/sclat/api/raytrace/BoundingBox.java +++ b/src/main/java/be4rjp/sclat/api/raytrace/BoundingBox.java @@ -1,8 +1,8 @@ package be4rjp.sclat.api.raytrace; -import net.minecraft.server.v1_14_R1.AxisAlignedBB; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftEntity; +import net.minecraft.server.v1_15_R1.AxisAlignedBB; +import org.bukkit.craftbukkit.v1_15_R1.entity.CraftEntity; import org.bukkit.entity.Entity; import org.bukkit.util.Vector; diff --git a/src/main/java/be4rjp/sclat/api/wiremesh/Wiremesh.java b/src/main/java/be4rjp/sclat/api/wiremesh/Wiremesh.java index ccb726d..f88e3b6 100644 --- a/src/main/java/be4rjp/sclat/api/wiremesh/Wiremesh.java +++ b/src/main/java/be4rjp/sclat/api/wiremesh/Wiremesh.java @@ -1,24 +1,24 @@ package be4rjp.sclat.api.wiremesh; import be4rjp.sclat.Sclat; -import net.minecraft.server.v1_14_R1.DataWatcher; -import net.minecraft.server.v1_14_R1.EntityArmorStand; -import net.minecraft.server.v1_14_R1.EntityFallingBlock; -import net.minecraft.server.v1_14_R1.EntityPlayer; -import net.minecraft.server.v1_14_R1.IBlockData; -import net.minecraft.server.v1_14_R1.PacketPlayOutEntityDestroy; -import net.minecraft.server.v1_14_R1.PacketPlayOutEntityMetadata; -import net.minecraft.server.v1_14_R1.PacketPlayOutMount; -import net.minecraft.server.v1_14_R1.PacketPlayOutSpawnEntity; -import net.minecraft.server.v1_14_R1.PacketPlayOutSpawnEntityLiving; -import net.minecraft.server.v1_14_R1.WorldServer; +import net.minecraft.server.v1_15_R1.DataWatcher; +import net.minecraft.server.v1_15_R1.EntityArmorStand; +import net.minecraft.server.v1_15_R1.EntityFallingBlock; +import net.minecraft.server.v1_15_R1.EntityPlayer; +import net.minecraft.server.v1_15_R1.IBlockData; +import net.minecraft.server.v1_15_R1.PacketPlayOutEntityDestroy; +import net.minecraft.server.v1_15_R1.PacketPlayOutEntityMetadata; +import net.minecraft.server.v1_15_R1.PacketPlayOutMount; +import net.minecraft.server.v1_15_R1.PacketPlayOutSpawnEntity; +import net.minecraft.server.v1_15_R1.PacketPlayOutSpawnEntityLiving; +import net.minecraft.server.v1_15_R1.WorldServer; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.block.data.BlockData; -import org.bukkit.craftbukkit.v1_14_R1.CraftWorld; -import org.bukkit.craftbukkit.v1_14_R1.block.data.CraftBlockData; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer; +import org.bukkit.craftbukkit.v1_15_R1.CraftWorld; +import org.bukkit.craftbukkit.v1_15_R1.block.data.CraftBlockData; +import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer; import org.bukkit.entity.Player; import org.bukkit.scheduler.BukkitRunnable; @@ -97,7 +97,7 @@ public void run() { if (!playerList.contains(player)) { PacketPlayOutSpawnEntity fbPacket = new PacketPlayOutSpawnEntity(fb, - net.minecraft.server.v1_14_R1.Block.getCombinedId(ibd)); + net.minecraft.server.v1_15_R1.Block.getCombinedId(ibd)); entityPlayer.playerConnection.sendPacket(fbPacket); PacketPlayOutSpawnEntityLiving asPacket = new PacketPlayOutSpawnEntityLiving(as); entityPlayer.playerConnection.sendPacket(asPacket); diff --git a/src/main/java/be4rjp/sclat/data/BlockUpdater.java b/src/main/java/be4rjp/sclat/data/BlockUpdater.java index cf49aeb..02a163a 100644 --- a/src/main/java/be4rjp/sclat/data/BlockUpdater.java +++ b/src/main/java/be4rjp/sclat/data/BlockUpdater.java @@ -3,13 +3,13 @@ import be4rjp.sclat.Sclat; import be4rjp.sclat.api.SclatUtil; -import net.minecraft.server.v1_14_R1.PacketPlayOutMultiBlockChange; +import net.minecraft.server.v1_15_R1.PacketPlayOutMultiBlockChange; import org.bukkit.Chunk; import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; -import org.bukkit.craftbukkit.v1_14_R1.CraftChunk; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer; +import org.bukkit.craftbukkit.v1_15_R1.CraftChunk; +import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer; import org.bukkit.entity.Player; import org.bukkit.scheduler.BukkitRunnable; diff --git a/src/main/java/be4rjp/sclat/data/Path.java b/src/main/java/be4rjp/sclat/data/Path.java index 3433455..3231221 100644 --- a/src/main/java/be4rjp/sclat/data/Path.java +++ b/src/main/java/be4rjp/sclat/data/Path.java @@ -3,13 +3,13 @@ import be4rjp.sclat.Sclat; import be4rjp.sclat.api.team.Team; -import net.minecraft.server.v1_14_R1.EnumItemSlot; -import net.minecraft.server.v1_14_R1.PacketPlayOutEntityEquipment; +import net.minecraft.server.v1_15_R1.EnumItemSlot; +import net.minecraft.server.v1_15_R1.PacketPlayOutEntityEquipment; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.Sound; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer; -import org.bukkit.craftbukkit.v1_14_R1.inventory.CraftItemStack; +import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer; +import org.bukkit.craftbukkit.v1_15_R1.inventory.CraftItemStack; import org.bukkit.entity.ArmorStand; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; diff --git a/src/main/java/be4rjp/sclat/gui/OpenGUI.java b/src/main/java/be4rjp/sclat/gui/OpenGUI.java index dad0028..3cc7c63 100644 --- a/src/main/java/be4rjp/sclat/gui/OpenGUI.java +++ b/src/main/java/be4rjp/sclat/gui/OpenGUI.java @@ -16,7 +16,7 @@ import org.bukkit.GameMode; import org.bukkit.Location; import org.bukkit.Material; -import org.bukkit.craftbukkit.v1_14_R1.inventory.CraftItemStack; +import org.bukkit.craftbukkit.v1_15_R1.inventory.CraftItemStack; import org.bukkit.entity.ArmorStand; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; diff --git a/src/main/java/be4rjp/sclat/manager/ArmorStandMgr.java b/src/main/java/be4rjp/sclat/manager/ArmorStandMgr.java index 6f46e06..5e2d941 100644 --- a/src/main/java/be4rjp/sclat/manager/ArmorStandMgr.java +++ b/src/main/java/be4rjp/sclat/manager/ArmorStandMgr.java @@ -7,10 +7,10 @@ import be4rjp.sclat.data.KasaData; import be4rjp.sclat.data.Path; import be4rjp.sclat.data.SplashShieldData; -import net.minecraft.server.v1_14_R1.EnumItemSlot; -import net.minecraft.server.v1_14_R1.PacketPlayOutEntityDestroy; -import net.minecraft.server.v1_14_R1.PacketPlayOutEntityEquipment; -import net.minecraft.server.v1_14_R1.PacketPlayOutSpawnEntityLiving; +import net.minecraft.server.v1_15_R1.EnumItemSlot; +import net.minecraft.server.v1_15_R1.PacketPlayOutEntityDestroy; +import net.minecraft.server.v1_15_R1.PacketPlayOutEntityEquipment; +import net.minecraft.server.v1_15_R1.PacketPlayOutSpawnEntityLiving; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.Particle; @@ -18,9 +18,9 @@ import org.bukkit.World; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftArmorStand; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer; -import org.bukkit.craftbukkit.v1_14_R1.inventory.CraftItemStack; +import org.bukkit.craftbukkit.v1_15_R1.entity.CraftArmorStand; +import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer; +import org.bukkit.craftbukkit.v1_15_R1.inventory.CraftItemStack; import org.bukkit.entity.ArmorStand; import org.bukkit.entity.Entity; import org.bukkit.entity.EntityType; diff --git a/src/main/java/be4rjp/sclat/manager/GameMgr.java b/src/main/java/be4rjp/sclat/manager/GameMgr.java index 63335ea..e329de2 100644 --- a/src/main/java/be4rjp/sclat/manager/GameMgr.java +++ b/src/main/java/be4rjp/sclat/manager/GameMgr.java @@ -47,8 +47,8 @@ import org.bukkit.block.Block; import org.bukkit.block.BlockFace; import org.bukkit.block.Sign; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer; -import org.bukkit.craftbukkit.v1_14_R1.inventory.CraftItemStack; +import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer; +import org.bukkit.craftbukkit.v1_15_R1.inventory.CraftItemStack; import org.bukkit.entity.ArmorStand; import org.bukkit.entity.ItemFrame; import org.bukkit.entity.LivingEntity; diff --git a/src/main/java/be4rjp/sclat/manager/NPCMgr.java b/src/main/java/be4rjp/sclat/manager/NPCMgr.java index ccb1d38..11d0019 100644 --- a/src/main/java/be4rjp/sclat/manager/NPCMgr.java +++ b/src/main/java/be4rjp/sclat/manager/NPCMgr.java @@ -3,27 +3,27 @@ import be4rjp.sclat.Sclat; import be4rjp.sclat.data.DataMgr; import com.mojang.authlib.GameProfile; -import net.minecraft.server.v1_14_R1.DataWatcherRegistry; -import net.minecraft.server.v1_14_R1.EntityPlayer; -import net.minecraft.server.v1_14_R1.EnumItemSlot; -import net.minecraft.server.v1_14_R1.MinecraftServer; -import net.minecraft.server.v1_14_R1.PacketPlayOutAnimation; -import net.minecraft.server.v1_14_R1.PacketPlayOutEntityDestroy; -import net.minecraft.server.v1_14_R1.PacketPlayOutEntityEquipment; -import net.minecraft.server.v1_14_R1.PacketPlayOutEntityHeadRotation; -import net.minecraft.server.v1_14_R1.PacketPlayOutEntityMetadata; -import net.minecraft.server.v1_14_R1.PacketPlayOutEntityTeleport; -import net.minecraft.server.v1_14_R1.PacketPlayOutNamedEntitySpawn; -import net.minecraft.server.v1_14_R1.PacketPlayOutPlayerInfo; -import net.minecraft.server.v1_14_R1.PlayerConnection; -import net.minecraft.server.v1_14_R1.PlayerInteractManager; -import net.minecraft.server.v1_14_R1.WorldServer; +import net.minecraft.server.v1_15_R1.DataWatcherRegistry; +import net.minecraft.server.v1_15_R1.EntityPlayer; +import net.minecraft.server.v1_15_R1.EnumItemSlot; +import net.minecraft.server.v1_15_R1.MinecraftServer; +import net.minecraft.server.v1_15_R1.PacketPlayOutAnimation; +import net.minecraft.server.v1_15_R1.PacketPlayOutEntityDestroy; +import net.minecraft.server.v1_15_R1.PacketPlayOutEntityEquipment; +import net.minecraft.server.v1_15_R1.PacketPlayOutEntityHeadRotation; +import net.minecraft.server.v1_15_R1.PacketPlayOutEntityMetadata; +import net.minecraft.server.v1_15_R1.PacketPlayOutEntityTeleport; +import net.minecraft.server.v1_15_R1.PacketPlayOutNamedEntitySpawn; +import net.minecraft.server.v1_15_R1.PacketPlayOutPlayerInfo; +import net.minecraft.server.v1_15_R1.PlayerConnection; +import net.minecraft.server.v1_15_R1.PlayerInteractManager; +import net.minecraft.server.v1_15_R1.WorldServer; import org.bukkit.Bukkit; import org.bukkit.Location; -import org.bukkit.craftbukkit.v1_14_R1.CraftServer; -import org.bukkit.craftbukkit.v1_14_R1.CraftWorld; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer; -import org.bukkit.craftbukkit.v1_14_R1.inventory.CraftItemStack; +import org.bukkit.craftbukkit.v1_15_R1.CraftServer; +import org.bukkit.craftbukkit.v1_15_R1.CraftWorld; +import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer; +import org.bukkit.craftbukkit.v1_15_R1.inventory.CraftItemStack; import org.bukkit.entity.Player; import org.bukkit.scheduler.BukkitRunnable; diff --git a/src/main/java/be4rjp/sclat/manager/PathMgr.java b/src/main/java/be4rjp/sclat/manager/PathMgr.java index 581fc5b..7063291 100644 --- a/src/main/java/be4rjp/sclat/manager/PathMgr.java +++ b/src/main/java/be4rjp/sclat/manager/PathMgr.java @@ -7,13 +7,13 @@ import be4rjp.sclat.data.DataMgr; import be4rjp.sclat.data.Match; import be4rjp.sclat.data.Path; -import net.minecraft.server.v1_14_R1.EnumItemSlot; -import net.minecraft.server.v1_14_R1.PacketPlayOutEntityEquipment; +import net.minecraft.server.v1_15_R1.EnumItemSlot; +import net.minecraft.server.v1_15_R1.PacketPlayOutEntityEquipment; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.Particle; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer; -import org.bukkit.craftbukkit.v1_14_R1.inventory.CraftItemStack; +import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer; +import org.bukkit.craftbukkit.v1_15_R1.inventory.CraftItemStack; import org.bukkit.entity.ArmorStand; import org.bukkit.entity.EntityType; import org.bukkit.entity.Item; diff --git a/src/main/java/be4rjp/sclat/manager/PlayerStatusMgr.java b/src/main/java/be4rjp/sclat/manager/PlayerStatusMgr.java index 2066911..edcefff 100644 --- a/src/main/java/be4rjp/sclat/manager/PlayerStatusMgr.java +++ b/src/main/java/be4rjp/sclat/manager/PlayerStatusMgr.java @@ -3,27 +3,27 @@ import be4rjp.sclat.Sclat; import com.mojang.authlib.GameProfile; -import net.minecraft.server.v1_14_R1.DataWatcherRegistry; -import net.minecraft.server.v1_14_R1.EntityArmorStand; -import net.minecraft.server.v1_14_R1.EntityPlayer; -import net.minecraft.server.v1_14_R1.MinecraftServer; -import net.minecraft.server.v1_14_R1.PacketPlayOutAnimation; -import net.minecraft.server.v1_14_R1.PacketPlayOutEntityDestroy; -import net.minecraft.server.v1_14_R1.PacketPlayOutEntityHeadRotation; -import net.minecraft.server.v1_14_R1.PacketPlayOutEntityMetadata; -import net.minecraft.server.v1_14_R1.PacketPlayOutNamedEntitySpawn; -import net.minecraft.server.v1_14_R1.PacketPlayOutPlayerInfo; -import net.minecraft.server.v1_14_R1.PacketPlayOutSpawnEntityLiving; -import net.minecraft.server.v1_14_R1.PlayerConnection; -import net.minecraft.server.v1_14_R1.PlayerInteractManager; -import net.minecraft.server.v1_14_R1.WorldServer; +import net.minecraft.server.v1_15_R1.DataWatcherRegistry; +import net.minecraft.server.v1_15_R1.EntityArmorStand; +import net.minecraft.server.v1_15_R1.EntityPlayer; +import net.minecraft.server.v1_15_R1.MinecraftServer; +import net.minecraft.server.v1_15_R1.PacketPlayOutAnimation; +import net.minecraft.server.v1_15_R1.PacketPlayOutEntityDestroy; +import net.minecraft.server.v1_15_R1.PacketPlayOutEntityHeadRotation; +import net.minecraft.server.v1_15_R1.PacketPlayOutEntityMetadata; +import net.minecraft.server.v1_15_R1.PacketPlayOutNamedEntitySpawn; +import net.minecraft.server.v1_15_R1.PacketPlayOutPlayerInfo; +import net.minecraft.server.v1_15_R1.PacketPlayOutSpawnEntityLiving; +import net.minecraft.server.v1_15_R1.PlayerConnection; +import net.minecraft.server.v1_15_R1.PlayerInteractManager; +import net.minecraft.server.v1_15_R1.WorldServer; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.World; -import org.bukkit.craftbukkit.v1_14_R1.CraftServer; -import org.bukkit.craftbukkit.v1_14_R1.CraftWorld; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer; -import org.bukkit.craftbukkit.v1_14_R1.util.CraftChatMessage; +import org.bukkit.craftbukkit.v1_15_R1.CraftServer; +import org.bukkit.craftbukkit.v1_15_R1.CraftWorld; +import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer; +import org.bukkit.craftbukkit.v1_15_R1.util.CraftChatMessage; import org.bukkit.entity.Player; import org.bukkit.scheduler.BukkitRunnable; diff --git a/src/main/java/be4rjp/sclat/manager/SprinklerMgr.java b/src/main/java/be4rjp/sclat/manager/SprinklerMgr.java index 383e54e..31d8906 100644 --- a/src/main/java/be4rjp/sclat/manager/SprinklerMgr.java +++ b/src/main/java/be4rjp/sclat/manager/SprinklerMgr.java @@ -5,8 +5,8 @@ import be4rjp.sclat.api.player.PlayerData; import be4rjp.sclat.data.DataMgr; import org.bukkit.Sound; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftSnowball; -import org.bukkit.craftbukkit.v1_14_R1.inventory.CraftItemStack; +import org.bukkit.craftbukkit.v1_15_R1.entity.CraftSnowball; +import org.bukkit.craftbukkit.v1_15_R1.inventory.CraftItemStack; import org.bukkit.entity.ArmorStand; import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; diff --git a/src/main/java/be4rjp/sclat/manager/SquidMgr.java b/src/main/java/be4rjp/sclat/manager/SquidMgr.java index ec3df68..adae680 100644 --- a/src/main/java/be4rjp/sclat/manager/SquidMgr.java +++ b/src/main/java/be4rjp/sclat/manager/SquidMgr.java @@ -5,11 +5,11 @@ import be4rjp.sclat.api.player.PlayerData; import be4rjp.sclat.data.DataMgr; import be4rjp.sclat.weapon.Gear; -import net.minecraft.server.v1_14_R1.EntitySquid; -import net.minecraft.server.v1_14_R1.EntityTypes; -import net.minecraft.server.v1_14_R1.PacketPlayOutEntityDestroy; -import net.minecraft.server.v1_14_R1.PacketPlayOutEntityTeleport; -import net.minecraft.server.v1_14_R1.PacketPlayOutSpawnEntityLiving; +import net.minecraft.server.v1_15_R1.EntitySquid; +import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.PacketPlayOutEntityDestroy; +import net.minecraft.server.v1_15_R1.PacketPlayOutEntityTeleport; +import net.minecraft.server.v1_15_R1.PacketPlayOutSpawnEntityLiving; import org.bukkit.Bukkit; import org.bukkit.GameMode; import org.bukkit.Location; @@ -17,9 +17,9 @@ import org.bukkit.Sound; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; -import org.bukkit.craftbukkit.v1_14_R1.CraftWorld; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer; -import org.bukkit.craftbukkit.v1_14_R1.util.CraftChatMessage; +import org.bukkit.craftbukkit.v1_15_R1.CraftWorld; +import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer; +import org.bukkit.craftbukkit.v1_15_R1.util.CraftChatMessage; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; @@ -278,7 +278,7 @@ public static void SquidShowRunnable(Player player) { boolean is4 = true; boolean set = false; boolean death = false; - net.minecraft.server.v1_14_R1.World nmsWorld = ((CraftWorld) p.getWorld()).getHandle(); + net.minecraft.server.v1_15_R1.World nmsWorld = ((CraftWorld) p.getWorld()).getHandle(); EntitySquid es = new EntitySquid(EntityTypes.SQUID, nmsWorld); @Override diff --git a/src/main/java/be4rjp/sclat/manager/SuperJumpMgr.java b/src/main/java/be4rjp/sclat/manager/SuperJumpMgr.java index 368fa76..d18c99a 100644 --- a/src/main/java/be4rjp/sclat/manager/SuperJumpMgr.java +++ b/src/main/java/be4rjp/sclat/manager/SuperJumpMgr.java @@ -4,10 +4,10 @@ import be4rjp.sclat.Sclat; import be4rjp.sclat.api.raytrace.RayTrace; import be4rjp.sclat.data.DataMgr; -import net.minecraft.server.v1_14_R1.EntityArmorStand; -import net.minecraft.server.v1_14_R1.PacketPlayOutEntityDestroy; -import net.minecraft.server.v1_14_R1.PacketPlayOutSpawnEntityLiving; -import net.minecraft.server.v1_14_R1.WorldServer; +import net.minecraft.server.v1_15_R1.EntityArmorStand; +import net.minecraft.server.v1_15_R1.PacketPlayOutEntityDestroy; +import net.minecraft.server.v1_15_R1.PacketPlayOutSpawnEntityLiving; +import net.minecraft.server.v1_15_R1.WorldServer; import org.bukkit.ChatColor; import org.bukkit.GameMode; import org.bukkit.Instrument; @@ -15,9 +15,9 @@ import org.bukkit.Note; import org.bukkit.Particle; import org.bukkit.Sound; -import org.bukkit.craftbukkit.v1_14_R1.CraftWorld; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer; -import org.bukkit.craftbukkit.v1_14_R1.util.CraftChatMessage; +import org.bukkit.craftbukkit.v1_15_R1.CraftWorld; +import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer; +import org.bukkit.craftbukkit.v1_15_R1.util.CraftChatMessage; import org.bukkit.entity.Player; import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffectType; diff --git a/src/main/java/be4rjp/sclat/packet/PacketHandler.java b/src/main/java/be4rjp/sclat/packet/PacketHandler.java index 7c7d00d..13dde38 100644 --- a/src/main/java/be4rjp/sclat/packet/PacketHandler.java +++ b/src/main/java/be4rjp/sclat/packet/PacketHandler.java @@ -6,9 +6,9 @@ import io.netty.channel.ChannelDuplexHandler; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelPromise; -import net.minecraft.server.v1_14_R1.EntityTypes; -import net.minecraft.server.v1_14_R1.PacketPlayOutAbilities; -import net.minecraft.server.v1_14_R1.PacketPlayOutSpawnEntity; +import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.PacketPlayOutAbilities; +import net.minecraft.server.v1_15_R1.PacketPlayOutSpawnEntity; import org.bukkit.entity.Player; import java.lang.reflect.Field; diff --git a/src/main/java/be4rjp/sclat/protocollib/EntityClickListener.java b/src/main/java/be4rjp/sclat/protocollib/EntityClickListener.java index d6cdbd1..71e2328 100644 --- a/src/main/java/be4rjp/sclat/protocollib/EntityClickListener.java +++ b/src/main/java/be4rjp/sclat/protocollib/EntityClickListener.java @@ -6,7 +6,7 @@ import com.comphenix.protocol.events.PacketAdapter; import com.comphenix.protocol.events.PacketContainer; import com.comphenix.protocol.events.PacketEvent; -import net.minecraft.server.v1_14_R1.EntityArmorStand; +import net.minecraft.server.v1_15_R1.EntityArmorStand; import org.bukkit.Sound; import org.bukkit.entity.Player; import org.bukkit.plugin.Plugin; diff --git a/src/main/java/be4rjp/sclat/weapon/Blaster.java b/src/main/java/be4rjp/sclat/weapon/Blaster.java index 3e92430..706f0ef 100644 --- a/src/main/java/be4rjp/sclat/weapon/Blaster.java +++ b/src/main/java/be4rjp/sclat/weapon/Blaster.java @@ -14,8 +14,8 @@ import org.bukkit.GameMode; import org.bukkit.Location; import org.bukkit.Sound; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftSnowball; -import org.bukkit.craftbukkit.v1_14_R1.inventory.CraftItemStack; +import org.bukkit.craftbukkit.v1_15_R1.entity.CraftSnowball; +import org.bukkit.craftbukkit.v1_15_R1.inventory.CraftItemStack; import org.bukkit.entity.ArmorStand; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; diff --git a/src/main/java/be4rjp/sclat/weapon/Brush.java b/src/main/java/be4rjp/sclat/weapon/Brush.java index 3910716..d2124dd 100644 --- a/src/main/java/be4rjp/sclat/weapon/Brush.java +++ b/src/main/java/be4rjp/sclat/weapon/Brush.java @@ -12,8 +12,8 @@ import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.Sound; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftSnowball; -import org.bukkit.craftbukkit.v1_14_R1.inventory.CraftItemStack; +import org.bukkit.craftbukkit.v1_15_R1.entity.CraftSnowball; +import org.bukkit.craftbukkit.v1_15_R1.inventory.CraftItemStack; import org.bukkit.entity.ArmorStand; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; diff --git a/src/main/java/be4rjp/sclat/weapon/Bucket.java b/src/main/java/be4rjp/sclat/weapon/Bucket.java index 7b94eb1..07a68de 100644 --- a/src/main/java/be4rjp/sclat/weapon/Bucket.java +++ b/src/main/java/be4rjp/sclat/weapon/Bucket.java @@ -8,8 +8,8 @@ import org.bukkit.ChatColor; import org.bukkit.GameMode; import org.bukkit.Sound; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftSnowball; -import org.bukkit.craftbukkit.v1_14_R1.inventory.CraftItemStack; +import org.bukkit.craftbukkit.v1_15_R1.entity.CraftSnowball; +import org.bukkit.craftbukkit.v1_15_R1.inventory.CraftItemStack; import org.bukkit.entity.Player; import org.bukkit.entity.Snowball; import org.bukkit.inventory.ItemStack; diff --git a/src/main/java/be4rjp/sclat/weapon/Burst.java b/src/main/java/be4rjp/sclat/weapon/Burst.java index e88992c..3ae4a33 100644 --- a/src/main/java/be4rjp/sclat/weapon/Burst.java +++ b/src/main/java/be4rjp/sclat/weapon/Burst.java @@ -8,8 +8,8 @@ import org.bukkit.ChatColor; import org.bukkit.GameMode; import org.bukkit.Sound; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftSnowball; -import org.bukkit.craftbukkit.v1_14_R1.inventory.CraftItemStack; +import org.bukkit.craftbukkit.v1_15_R1.entity.CraftSnowball; +import org.bukkit.craftbukkit.v1_15_R1.inventory.CraftItemStack; import org.bukkit.entity.Player; import org.bukkit.entity.Snowball; import org.bukkit.inventory.ItemStack; diff --git a/src/main/java/be4rjp/sclat/weapon/Decoy.java b/src/main/java/be4rjp/sclat/weapon/Decoy.java index c0f35ef..6265d9f 100644 --- a/src/main/java/be4rjp/sclat/weapon/Decoy.java +++ b/src/main/java/be4rjp/sclat/weapon/Decoy.java @@ -4,24 +4,24 @@ import be4rjp.sclat.api.player.PlayerData; import be4rjp.sclat.data.DataMgr; import com.mojang.authlib.GameProfile; -import net.minecraft.server.v1_14_R1.DataWatcherRegistry; -import net.minecraft.server.v1_14_R1.EntityPlayer; -import net.minecraft.server.v1_14_R1.EntitySquid; -import net.minecraft.server.v1_14_R1.EntityTypes; -import net.minecraft.server.v1_14_R1.EnumItemSlot; -import net.minecraft.server.v1_14_R1.MinecraftServer; -import net.minecraft.server.v1_14_R1.PacketPlayOutAnimation; -import net.minecraft.server.v1_14_R1.PacketPlayOutEntityDestroy; -import net.minecraft.server.v1_14_R1.PacketPlayOutEntityEquipment; -import net.minecraft.server.v1_14_R1.PacketPlayOutEntityHeadRotation; -import net.minecraft.server.v1_14_R1.PacketPlayOutEntityMetadata; -import net.minecraft.server.v1_14_R1.PacketPlayOutEntityTeleport; -import net.minecraft.server.v1_14_R1.PacketPlayOutNamedEntitySpawn; -import net.minecraft.server.v1_14_R1.PacketPlayOutPlayerInfo; -import net.minecraft.server.v1_14_R1.PacketPlayOutSpawnEntityLiving; -import net.minecraft.server.v1_14_R1.PlayerConnection; -import net.minecraft.server.v1_14_R1.PlayerInteractManager; -import net.minecraft.server.v1_14_R1.WorldServer; +import net.minecraft.server.v1_15_R1.DataWatcherRegistry; +import net.minecraft.server.v1_15_R1.EntityPlayer; +import net.minecraft.server.v1_15_R1.EntitySquid; +import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.EnumItemSlot; +import net.minecraft.server.v1_15_R1.MinecraftServer; +import net.minecraft.server.v1_15_R1.PacketPlayOutAnimation; +import net.minecraft.server.v1_15_R1.PacketPlayOutEntityDestroy; +import net.minecraft.server.v1_15_R1.PacketPlayOutEntityEquipment; +import net.minecraft.server.v1_15_R1.PacketPlayOutEntityHeadRotation; +import net.minecraft.server.v1_15_R1.PacketPlayOutEntityMetadata; +import net.minecraft.server.v1_15_R1.PacketPlayOutEntityTeleport; +import net.minecraft.server.v1_15_R1.PacketPlayOutNamedEntitySpawn; +import net.minecraft.server.v1_15_R1.PacketPlayOutPlayerInfo; +import net.minecraft.server.v1_15_R1.PacketPlayOutSpawnEntityLiving; +import net.minecraft.server.v1_15_R1.PlayerConnection; +import net.minecraft.server.v1_15_R1.PlayerInteractManager; +import net.minecraft.server.v1_15_R1.WorldServer; import org.bukkit.Bukkit; import org.bukkit.GameMode; import org.bukkit.Location; @@ -29,10 +29,10 @@ import org.bukkit.Sound; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; -import org.bukkit.craftbukkit.v1_14_R1.CraftServer; -import org.bukkit.craftbukkit.v1_14_R1.CraftWorld; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer; -import org.bukkit.craftbukkit.v1_14_R1.inventory.CraftItemStack; +import org.bukkit.craftbukkit.v1_15_R1.CraftServer; +import org.bukkit.craftbukkit.v1_15_R1.CraftWorld; +import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer; +import org.bukkit.craftbukkit.v1_15_R1.inventory.CraftItemStack; import org.bukkit.entity.ArmorStand; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; diff --git a/src/main/java/be4rjp/sclat/weapon/Funnel.java b/src/main/java/be4rjp/sclat/weapon/Funnel.java index 4c61e9f..bd95f36 100644 --- a/src/main/java/be4rjp/sclat/weapon/Funnel.java +++ b/src/main/java/be4rjp/sclat/weapon/Funnel.java @@ -11,16 +11,16 @@ import be4rjp.sclat.data.KasaData; import be4rjp.sclat.data.SplashShieldData; import be4rjp.sclat.manager.ArmorStandMgr; -import net.minecraft.server.v1_14_R1.EnumItemSlot; -import net.minecraft.server.v1_14_R1.PacketPlayOutEntityEquipment; +import net.minecraft.server.v1_15_R1.EnumItemSlot; +import net.minecraft.server.v1_15_R1.PacketPlayOutEntityEquipment; import org.bukkit.GameMode; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.Particle; import org.bukkit.Sound; import org.bukkit.block.Block; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer; -import org.bukkit.craftbukkit.v1_14_R1.inventory.CraftItemStack; +import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer; +import org.bukkit.craftbukkit.v1_15_R1.inventory.CraftItemStack; import org.bukkit.entity.ArmorStand; import org.bukkit.entity.Entity; import org.bukkit.entity.EntityType; diff --git a/src/main/java/be4rjp/sclat/weapon/Kasa.java b/src/main/java/be4rjp/sclat/weapon/Kasa.java index 08b0ff6..61db059 100644 --- a/src/main/java/be4rjp/sclat/weapon/Kasa.java +++ b/src/main/java/be4rjp/sclat/weapon/Kasa.java @@ -12,8 +12,8 @@ import be4rjp.sclat.manager.MainWeaponMgr; import be4rjp.sclat.manager.PaintMgr; import be4rjp.sclat.manager.WeaponClassMgr; -import net.minecraft.server.v1_14_R1.EnumItemSlot; -import net.minecraft.server.v1_14_R1.PacketPlayOutEntityEquipment; +import net.minecraft.server.v1_15_R1.EnumItemSlot; +import net.minecraft.server.v1_15_R1.PacketPlayOutEntityEquipment; import org.bukkit.ChatColor; import org.bukkit.GameMode; import org.bukkit.Instrument; @@ -21,9 +21,9 @@ import org.bukkit.Material; import org.bukkit.Note; import org.bukkit.Sound; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftSnowball; -import org.bukkit.craftbukkit.v1_14_R1.inventory.CraftItemStack; +import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer; +import org.bukkit.craftbukkit.v1_15_R1.entity.CraftSnowball; +import org.bukkit.craftbukkit.v1_15_R1.inventory.CraftItemStack; import org.bukkit.entity.ArmorStand; import org.bukkit.entity.Entity; import org.bukkit.entity.EntityType; diff --git a/src/main/java/be4rjp/sclat/weapon/Reeler.java b/src/main/java/be4rjp/sclat/weapon/Reeler.java index 4f6dbc0..0d8870d 100644 --- a/src/main/java/be4rjp/sclat/weapon/Reeler.java +++ b/src/main/java/be4rjp/sclat/weapon/Reeler.java @@ -13,8 +13,8 @@ import org.bukkit.Material; import org.bukkit.Sound; import org.bukkit.block.Block; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftSnowball; -import org.bukkit.craftbukkit.v1_14_R1.inventory.CraftItemStack; +import org.bukkit.craftbukkit.v1_15_R1.entity.CraftSnowball; +import org.bukkit.craftbukkit.v1_15_R1.inventory.CraftItemStack; import org.bukkit.entity.ArmorStand; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; diff --git a/src/main/java/be4rjp/sclat/weapon/Roller.java b/src/main/java/be4rjp/sclat/weapon/Roller.java index 50ad7c2..e9ee1b3 100644 --- a/src/main/java/be4rjp/sclat/weapon/Roller.java +++ b/src/main/java/be4rjp/sclat/weapon/Roller.java @@ -16,8 +16,8 @@ import org.bukkit.Material; import org.bukkit.Sound; import org.bukkit.block.Block; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftSnowball; -import org.bukkit.craftbukkit.v1_14_R1.inventory.CraftItemStack; +import org.bukkit.craftbukkit.v1_15_R1.entity.CraftSnowball; +import org.bukkit.craftbukkit.v1_15_R1.inventory.CraftItemStack; import org.bukkit.entity.ArmorStand; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; diff --git a/src/main/java/be4rjp/sclat/weapon/Shooter.java b/src/main/java/be4rjp/sclat/weapon/Shooter.java index 05bfd77..d5f571c 100644 --- a/src/main/java/be4rjp/sclat/weapon/Shooter.java +++ b/src/main/java/be4rjp/sclat/weapon/Shooter.java @@ -10,8 +10,8 @@ import org.bukkit.GameMode; import org.bukkit.Location; import org.bukkit.Sound; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftSnowball; -import org.bukkit.craftbukkit.v1_14_R1.inventory.CraftItemStack; +import org.bukkit.craftbukkit.v1_15_R1.entity.CraftSnowball; +import org.bukkit.craftbukkit.v1_15_R1.inventory.CraftItemStack; import org.bukkit.entity.ArmorStand; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; diff --git a/src/main/java/be4rjp/sclat/weapon/Slosher.java b/src/main/java/be4rjp/sclat/weapon/Slosher.java index 86eae0c..abcd109 100644 --- a/src/main/java/be4rjp/sclat/weapon/Slosher.java +++ b/src/main/java/be4rjp/sclat/weapon/Slosher.java @@ -12,8 +12,8 @@ import org.bukkit.GameMode; import org.bukkit.Location; import org.bukkit.Sound; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftSnowball; -import org.bukkit.craftbukkit.v1_14_R1.inventory.CraftItemStack; +import org.bukkit.craftbukkit.v1_15_R1.entity.CraftSnowball; +import org.bukkit.craftbukkit.v1_15_R1.inventory.CraftItemStack; import org.bukkit.entity.ArmorStand; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; diff --git a/src/main/java/be4rjp/sclat/weapon/SnowballListener.java b/src/main/java/be4rjp/sclat/weapon/SnowballListener.java index a3a6bbf..29f3b36 100644 --- a/src/main/java/be4rjp/sclat/weapon/SnowballListener.java +++ b/src/main/java/be4rjp/sclat/weapon/SnowballListener.java @@ -10,15 +10,15 @@ import be4rjp.sclat.manager.ArmorStandMgr; import be4rjp.sclat.manager.PaintMgr; import be4rjp.sclat.manager.SPWeaponMgr; -import net.minecraft.server.v1_14_R1.PacketPlayOutEntityDestroy; -import net.minecraft.server.v1_14_R1.PlayerConnection; +import net.minecraft.server.v1_15_R1.PacketPlayOutEntityDestroy; +import net.minecraft.server.v1_15_R1.PlayerConnection; import org.bukkit.GameMode; import org.bukkit.Location; import org.bukkit.Particle; import org.bukkit.Sound; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftSnowball; -import org.bukkit.craftbukkit.v1_14_R1.inventory.CraftItemStack; +import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer; +import org.bukkit.craftbukkit.v1_15_R1.entity.CraftSnowball; +import org.bukkit.craftbukkit.v1_15_R1.inventory.CraftItemStack; import org.bukkit.entity.ArmorStand; import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; diff --git a/src/main/java/be4rjp/sclat/weapon/Spinner.java b/src/main/java/be4rjp/sclat/weapon/Spinner.java index cdcdbc8..e18441c 100644 --- a/src/main/java/be4rjp/sclat/weapon/Spinner.java +++ b/src/main/java/be4rjp/sclat/weapon/Spinner.java @@ -10,8 +10,8 @@ import org.bukkit.GameMode; import org.bukkit.Material; import org.bukkit.Sound; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftSnowball; -import org.bukkit.craftbukkit.v1_14_R1.inventory.CraftItemStack; +import org.bukkit.craftbukkit.v1_15_R1.entity.CraftSnowball; +import org.bukkit.craftbukkit.v1_15_R1.inventory.CraftItemStack; import org.bukkit.entity.Player; import org.bukkit.entity.Snowball; import org.bukkit.inventory.ItemStack; diff --git a/src/main/java/be4rjp/sclat/weapon/spweapon/Amehurasi.java b/src/main/java/be4rjp/sclat/weapon/spweapon/Amehurasi.java index 1521bb0..4cd3a49 100644 --- a/src/main/java/be4rjp/sclat/weapon/spweapon/Amehurasi.java +++ b/src/main/java/be4rjp/sclat/weapon/spweapon/Amehurasi.java @@ -13,8 +13,8 @@ import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.Particle; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftSnowball; -import org.bukkit.craftbukkit.v1_14_R1.inventory.CraftItemStack; +import org.bukkit.craftbukkit.v1_15_R1.entity.CraftSnowball; +import org.bukkit.craftbukkit.v1_15_R1.inventory.CraftItemStack; import org.bukkit.entity.ArmorStand; import org.bukkit.entity.Entity; import org.bukkit.entity.EntityType; diff --git a/src/main/java/be4rjp/sclat/weapon/spweapon/Barrier.java b/src/main/java/be4rjp/sclat/weapon/spweapon/Barrier.java index 0a9f880..b2b43f2 100644 --- a/src/main/java/be4rjp/sclat/weapon/spweapon/Barrier.java +++ b/src/main/java/be4rjp/sclat/weapon/spweapon/Barrier.java @@ -6,7 +6,7 @@ import be4rjp.sclat.api.player.PlayerData; import be4rjp.sclat.data.DataMgr; import be4rjp.sclat.manager.SPWeaponMgr; -import net.minecraft.server.v1_14_R1.EntityArmorStand; +import net.minecraft.server.v1_15_R1.EntityArmorStand; import org.bukkit.GameMode; import org.bukkit.Location; import org.bukkit.Particle; diff --git a/src/main/java/be4rjp/sclat/weapon/spweapon/JetPack.java b/src/main/java/be4rjp/sclat/weapon/spweapon/JetPack.java index fe973eb..0b9d193 100644 --- a/src/main/java/be4rjp/sclat/weapon/spweapon/JetPack.java +++ b/src/main/java/be4rjp/sclat/weapon/spweapon/JetPack.java @@ -14,20 +14,20 @@ import be4rjp.sclat.manager.SPWeaponMgr; import be4rjp.sclat.manager.SuperJumpMgr; import be4rjp.sclat.manager.WeaponClassMgr; -import net.minecraft.server.v1_14_R1.EntityArmorStand; -import net.minecraft.server.v1_14_R1.PacketPlayOutEntityDestroy; -import net.minecraft.server.v1_14_R1.PacketPlayOutSpawnEntityLiving; -import net.minecraft.server.v1_14_R1.PlayerConnection; -import net.minecraft.server.v1_14_R1.WorldServer; +import net.minecraft.server.v1_15_R1.EntityArmorStand; +import net.minecraft.server.v1_15_R1.PacketPlayOutEntityDestroy; +import net.minecraft.server.v1_15_R1.PacketPlayOutSpawnEntityLiving; +import net.minecraft.server.v1_15_R1.PlayerConnection; +import net.minecraft.server.v1_15_R1.WorldServer; import org.bukkit.GameMode; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.Particle; import org.bukkit.Sound; -import org.bukkit.craftbukkit.v1_14_R1.CraftWorld; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftArmorStand; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer; -import org.bukkit.craftbukkit.v1_14_R1.util.CraftChatMessage; +import org.bukkit.craftbukkit.v1_15_R1.CraftWorld; +import org.bukkit.craftbukkit.v1_15_R1.entity.CraftArmorStand; +import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer; +import org.bukkit.craftbukkit.v1_15_R1.util.CraftChatMessage; import org.bukkit.entity.ArmorStand; import org.bukkit.entity.Entity; import org.bukkit.entity.EntityType; diff --git a/src/main/java/be4rjp/sclat/weapon/spweapon/MultiMissile.java b/src/main/java/be4rjp/sclat/weapon/spweapon/MultiMissile.java index 9d883db..b7fd162 100644 --- a/src/main/java/be4rjp/sclat/weapon/spweapon/MultiMissile.java +++ b/src/main/java/be4rjp/sclat/weapon/spweapon/MultiMissile.java @@ -10,21 +10,21 @@ import be4rjp.sclat.manager.PaintMgr; import be4rjp.sclat.manager.SPWeaponMgr; import be4rjp.sclat.manager.WeaponClassMgr; -import net.minecraft.server.v1_14_R1.EntityArmorStand; -import net.minecraft.server.v1_14_R1.EntitySquid; -import net.minecraft.server.v1_14_R1.EntityTypes; -import net.minecraft.server.v1_14_R1.PacketPlayOutEntityDestroy; -import net.minecraft.server.v1_14_R1.PacketPlayOutEntityTeleport; -import net.minecraft.server.v1_14_R1.PacketPlayOutSpawnEntityLiving; -import net.minecraft.server.v1_14_R1.PlayerConnection; -import net.minecraft.server.v1_14_R1.WorldServer; +import net.minecraft.server.v1_15_R1.EntityArmorStand; +import net.minecraft.server.v1_15_R1.EntitySquid; +import net.minecraft.server.v1_15_R1.EntityTypes; +import net.minecraft.server.v1_15_R1.PacketPlayOutEntityDestroy; +import net.minecraft.server.v1_15_R1.PacketPlayOutEntityTeleport; +import net.minecraft.server.v1_15_R1.PacketPlayOutSpawnEntityLiving; +import net.minecraft.server.v1_15_R1.PlayerConnection; +import net.minecraft.server.v1_15_R1.WorldServer; import org.bukkit.ChatColor; import org.bukkit.GameMode; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.Sound; -import org.bukkit.craftbukkit.v1_14_R1.CraftWorld; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer; +import org.bukkit.craftbukkit.v1_15_R1.CraftWorld; +import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer; import org.bukkit.entity.ArmorStand; import org.bukkit.entity.Entity; import org.bukkit.entity.EntityType; diff --git a/src/main/java/be4rjp/sclat/weapon/spweapon/QuadroArms.java b/src/main/java/be4rjp/sclat/weapon/spweapon/QuadroArms.java index 8e937e8..c87a7c9 100644 --- a/src/main/java/be4rjp/sclat/weapon/spweapon/QuadroArms.java +++ b/src/main/java/be4rjp/sclat/weapon/spweapon/QuadroArms.java @@ -11,8 +11,8 @@ import be4rjp.sclat.manager.PaintMgr; import be4rjp.sclat.manager.SPWeaponMgr; import be4rjp.sclat.manager.WeaponClassMgr; -import net.minecraft.server.v1_14_R1.PacketPlayOutEntityDestroy; -import net.minecraft.server.v1_14_R1.PlayerConnection; +import net.minecraft.server.v1_15_R1.PacketPlayOutEntityDestroy; +import net.minecraft.server.v1_15_R1.PlayerConnection; import org.bukkit.ChatColor; import org.bukkit.Color; import org.bukkit.GameMode; @@ -24,9 +24,9 @@ import org.bukkit.boss.BarFlag; import org.bukkit.boss.BarStyle; import org.bukkit.boss.BossBar; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftSnowball; -import org.bukkit.craftbukkit.v1_14_R1.inventory.CraftItemStack; +import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer; +import org.bukkit.craftbukkit.v1_15_R1.entity.CraftSnowball; +import org.bukkit.craftbukkit.v1_15_R1.inventory.CraftItemStack; import org.bukkit.entity.ArmorStand; import org.bukkit.entity.Entity; import org.bukkit.entity.Item; diff --git a/src/main/java/be4rjp/sclat/weapon/spweapon/SuperShot.java b/src/main/java/be4rjp/sclat/weapon/spweapon/SuperShot.java index 93e0501..7a5e59c 100644 --- a/src/main/java/be4rjp/sclat/weapon/spweapon/SuperShot.java +++ b/src/main/java/be4rjp/sclat/weapon/spweapon/SuperShot.java @@ -6,12 +6,12 @@ import be4rjp.sclat.manager.PaintMgr; import be4rjp.sclat.manager.SPWeaponMgr; import be4rjp.sclat.manager.WeaponClassMgr; -import net.minecraft.server.v1_14_R1.PacketPlayOutEntityDestroy; -import net.minecraft.server.v1_14_R1.PlayerConnection; +import net.minecraft.server.v1_15_R1.PacketPlayOutEntityDestroy; +import net.minecraft.server.v1_15_R1.PlayerConnection; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.Sound; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer; +import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer; import org.bukkit.entity.EntityType; import org.bukkit.entity.Item; import org.bukkit.entity.Player; diff --git a/src/main/java/be4rjp/sclat/weapon/spweapon/SwordMord.java b/src/main/java/be4rjp/sclat/weapon/spweapon/SwordMord.java index 926cb22..0416f59 100644 --- a/src/main/java/be4rjp/sclat/weapon/spweapon/SwordMord.java +++ b/src/main/java/be4rjp/sclat/weapon/spweapon/SwordMord.java @@ -17,8 +17,8 @@ import org.bukkit.Material; import org.bukkit.Particle; import org.bukkit.Sound; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftSnowball; -import org.bukkit.craftbukkit.v1_14_R1.inventory.CraftItemStack; +import org.bukkit.craftbukkit.v1_15_R1.entity.CraftSnowball; +import org.bukkit.craftbukkit.v1_15_R1.inventory.CraftItemStack; import org.bukkit.entity.ArmorStand; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; diff --git a/src/main/java/be4rjp/sclat/weapon/subweapon/Beacon.java b/src/main/java/be4rjp/sclat/weapon/subweapon/Beacon.java index e2bfe14..9f995a5 100644 --- a/src/main/java/be4rjp/sclat/weapon/subweapon/Beacon.java +++ b/src/main/java/be4rjp/sclat/weapon/subweapon/Beacon.java @@ -5,13 +5,13 @@ import be4rjp.sclat.api.player.PlayerData; import be4rjp.sclat.data.DataMgr; import be4rjp.sclat.weapon.Gear; -import net.minecraft.server.v1_14_R1.EnumItemSlot; -import net.minecraft.server.v1_14_R1.PacketPlayOutEntityEquipment; +import net.minecraft.server.v1_15_R1.EnumItemSlot; +import net.minecraft.server.v1_15_R1.PacketPlayOutEntityEquipment; import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.Sound; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer; -import org.bukkit.craftbukkit.v1_14_R1.inventory.CraftItemStack; +import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer; +import org.bukkit.craftbukkit.v1_15_R1.inventory.CraftItemStack; import org.bukkit.entity.ArmorStand; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; diff --git a/src/main/java/be4rjp/sclat/weapon/subweapon/Boomerang.java b/src/main/java/be4rjp/sclat/weapon/subweapon/Boomerang.java index 80d99cb..46fe5cd 100644 --- a/src/main/java/be4rjp/sclat/weapon/subweapon/Boomerang.java +++ b/src/main/java/be4rjp/sclat/weapon/subweapon/Boomerang.java @@ -9,16 +9,16 @@ import be4rjp.sclat.manager.ArmorStandMgr; import be4rjp.sclat.manager.PaintMgr; import be4rjp.sclat.weapon.Gear; -import net.minecraft.server.v1_14_R1.EnumItemSlot; -import net.minecraft.server.v1_14_R1.PacketPlayOutEntityEquipment; +import net.minecraft.server.v1_15_R1.EnumItemSlot; +import net.minecraft.server.v1_15_R1.PacketPlayOutEntityEquipment; import org.bukkit.ChatColor; import org.bukkit.GameMode; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.Sound; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftArmorStand; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer; -import org.bukkit.craftbukkit.v1_14_R1.inventory.CraftItemStack; +import org.bukkit.craftbukkit.v1_15_R1.entity.CraftArmorStand; +import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer; +import org.bukkit.craftbukkit.v1_15_R1.inventory.CraftItemStack; import org.bukkit.entity.ArmorStand; import org.bukkit.entity.Entity; import org.bukkit.entity.FallingBlock; diff --git a/src/main/java/be4rjp/sclat/weapon/subweapon/CurlingBomb.java b/src/main/java/be4rjp/sclat/weapon/subweapon/CurlingBomb.java index 4ced227..4595978 100644 --- a/src/main/java/be4rjp/sclat/weapon/subweapon/CurlingBomb.java +++ b/src/main/java/be4rjp/sclat/weapon/subweapon/CurlingBomb.java @@ -9,16 +9,16 @@ import be4rjp.sclat.manager.ArmorStandMgr; import be4rjp.sclat.manager.PaintMgr; import be4rjp.sclat.weapon.Gear; -import net.minecraft.server.v1_14_R1.EnumItemSlot; -import net.minecraft.server.v1_14_R1.PacketPlayOutEntityEquipment; +import net.minecraft.server.v1_15_R1.EnumItemSlot; +import net.minecraft.server.v1_15_R1.PacketPlayOutEntityEquipment; import org.bukkit.ChatColor; import org.bukkit.GameMode; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.Sound; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftArmorStand; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer; -import org.bukkit.craftbukkit.v1_14_R1.inventory.CraftItemStack; +import org.bukkit.craftbukkit.v1_15_R1.entity.CraftArmorStand; +import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer; +import org.bukkit.craftbukkit.v1_15_R1.inventory.CraftItemStack; import org.bukkit.entity.ArmorStand; import org.bukkit.entity.Entity; import org.bukkit.entity.FallingBlock; diff --git a/src/main/java/be4rjp/sclat/weapon/subweapon/KBomb.java b/src/main/java/be4rjp/sclat/weapon/subweapon/KBomb.java index de8e120..f80cf9b 100644 --- a/src/main/java/be4rjp/sclat/weapon/subweapon/KBomb.java +++ b/src/main/java/be4rjp/sclat/weapon/subweapon/KBomb.java @@ -8,14 +8,14 @@ import be4rjp.sclat.manager.ArmorStandMgr; import be4rjp.sclat.manager.PaintMgr; import be4rjp.sclat.weapon.Gear; -import net.minecraft.server.v1_14_R1.PacketPlayOutEntityDestroy; -import net.minecraft.server.v1_14_R1.PlayerConnection; +import net.minecraft.server.v1_15_R1.PacketPlayOutEntityDestroy; +import net.minecraft.server.v1_15_R1.PlayerConnection; import org.bukkit.ChatColor; import org.bukkit.GameMode; import org.bukkit.Location; import org.bukkit.Particle; import org.bukkit.Sound; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer; +import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer; import org.bukkit.entity.ArmorStand; import org.bukkit.entity.Entity; import org.bukkit.entity.Item; diff --git a/src/main/java/be4rjp/sclat/weapon/subweapon/Poison.java b/src/main/java/be4rjp/sclat/weapon/subweapon/Poison.java index 443fa7a..d059ff7 100644 --- a/src/main/java/be4rjp/sclat/weapon/subweapon/Poison.java +++ b/src/main/java/be4rjp/sclat/weapon/subweapon/Poison.java @@ -5,15 +5,15 @@ import be4rjp.sclat.api.Sphere; import be4rjp.sclat.data.DataMgr; import be4rjp.sclat.weapon.Gear; -import net.minecraft.server.v1_14_R1.PacketPlayOutEntityDestroy; -import net.minecraft.server.v1_14_R1.PlayerConnection; +import net.minecraft.server.v1_15_R1.PacketPlayOutEntityDestroy; +import net.minecraft.server.v1_15_R1.PlayerConnection; import org.bukkit.ChatColor; import org.bukkit.Color; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.Particle; import org.bukkit.Sound; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer; +import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer; import org.bukkit.entity.ArmorStand; import org.bukkit.entity.Entity; import org.bukkit.entity.Item; diff --git a/src/main/java/be4rjp/sclat/weapon/subweapon/QuickBomb.java b/src/main/java/be4rjp/sclat/weapon/subweapon/QuickBomb.java index 8d14fc3..a8b408a 100644 --- a/src/main/java/be4rjp/sclat/weapon/subweapon/QuickBomb.java +++ b/src/main/java/be4rjp/sclat/weapon/subweapon/QuickBomb.java @@ -10,14 +10,14 @@ import be4rjp.sclat.manager.ArmorStandMgr; import be4rjp.sclat.manager.PaintMgr; import be4rjp.sclat.weapon.Gear; -import net.minecraft.server.v1_14_R1.PacketPlayOutEntityDestroy; -import net.minecraft.server.v1_14_R1.PlayerConnection; +import net.minecraft.server.v1_15_R1.PacketPlayOutEntityDestroy; +import net.minecraft.server.v1_15_R1.PlayerConnection; import org.bukkit.ChatColor; import org.bukkit.GameMode; import org.bukkit.Location; import org.bukkit.Particle; import org.bukkit.Sound; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer; +import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer; import org.bukkit.entity.ArmorStand; import org.bukkit.entity.Entity; import org.bukkit.entity.Item; diff --git a/src/main/java/be4rjp/sclat/weapon/subweapon/Sensor.java b/src/main/java/be4rjp/sclat/weapon/subweapon/Sensor.java index 3ced4de..52c0c96 100644 --- a/src/main/java/be4rjp/sclat/weapon/subweapon/Sensor.java +++ b/src/main/java/be4rjp/sclat/weapon/subweapon/Sensor.java @@ -5,15 +5,15 @@ import be4rjp.sclat.api.Sphere; import be4rjp.sclat.data.DataMgr; import be4rjp.sclat.weapon.Gear; -import net.minecraft.server.v1_14_R1.PacketPlayOutEntityDestroy; -import net.minecraft.server.v1_14_R1.PlayerConnection; +import net.minecraft.server.v1_15_R1.PacketPlayOutEntityDestroy; +import net.minecraft.server.v1_15_R1.PlayerConnection; import org.bukkit.ChatColor; import org.bukkit.Color; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.Particle; import org.bukkit.Sound; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer; +import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer; import org.bukkit.entity.ArmorStand; import org.bukkit.entity.Entity; import org.bukkit.entity.Item; diff --git a/src/main/java/be4rjp/sclat/weapon/subweapon/SplashShield.java b/src/main/java/be4rjp/sclat/weapon/subweapon/SplashShield.java index 94480e0..93848fa 100644 --- a/src/main/java/be4rjp/sclat/weapon/subweapon/SplashShield.java +++ b/src/main/java/be4rjp/sclat/weapon/subweapon/SplashShield.java @@ -8,8 +8,8 @@ import be4rjp.sclat.data.DataMgr; import be4rjp.sclat.data.SplashShieldData; import be4rjp.sclat.manager.PaintMgr; -import net.minecraft.server.v1_14_R1.EnumItemSlot; -import net.minecraft.server.v1_14_R1.PacketPlayOutEntityEquipment; +import net.minecraft.server.v1_15_R1.EnumItemSlot; +import net.minecraft.server.v1_15_R1.PacketPlayOutEntityEquipment; import org.bukkit.ChatColor; import org.bukkit.GameMode; import org.bukkit.Location; @@ -17,8 +17,8 @@ import org.bukkit.Particle; import org.bukkit.Sound; import org.bukkit.block.data.BlockData; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer; -import org.bukkit.craftbukkit.v1_14_R1.inventory.CraftItemStack; +import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer; +import org.bukkit.craftbukkit.v1_15_R1.inventory.CraftItemStack; import org.bukkit.entity.ArmorStand; import org.bukkit.entity.Entity; import org.bukkit.entity.Item; diff --git a/src/main/java/be4rjp/sclat/weapon/subweapon/Sprinkler.java b/src/main/java/be4rjp/sclat/weapon/subweapon/Sprinkler.java index aeefe48..27aef71 100644 --- a/src/main/java/be4rjp/sclat/weapon/subweapon/Sprinkler.java +++ b/src/main/java/be4rjp/sclat/weapon/subweapon/Sprinkler.java @@ -4,17 +4,17 @@ import be4rjp.sclat.Sclat; import be4rjp.sclat.data.DataMgr; import be4rjp.sclat.weapon.Gear; -import net.minecraft.server.v1_14_R1.EnumItemSlot; -import net.minecraft.server.v1_14_R1.PacketPlayOutEntityDestroy; -import net.minecraft.server.v1_14_R1.PacketPlayOutEntityEquipment; -import net.minecraft.server.v1_14_R1.PlayerConnection; +import net.minecraft.server.v1_15_R1.EnumItemSlot; +import net.minecraft.server.v1_15_R1.PacketPlayOutEntityDestroy; +import net.minecraft.server.v1_15_R1.PacketPlayOutEntityEquipment; +import net.minecraft.server.v1_15_R1.PlayerConnection; import org.bukkit.ChatColor; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.Particle; import org.bukkit.Sound; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer; -import org.bukkit.craftbukkit.v1_14_R1.inventory.CraftItemStack; +import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer; +import org.bukkit.craftbukkit.v1_15_R1.inventory.CraftItemStack; import org.bukkit.entity.ArmorStand; import org.bukkit.entity.Item; import org.bukkit.entity.Player; From 920231d6c2145edc4567ab043cc8501fc2a52c6a Mon Sep 17 00:00:00 2001 From: sysnote8main Date: Sat, 24 Jan 2026 17:04:03 +0900 Subject: [PATCH 05/23] fix: forget to update BuildTools target version --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b00c32e..db91bac 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -56,7 +56,7 @@ jobs: if: steps.cache.outputs.cache-hit != 'true' run: | wget "https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar" - java -jar BuildTools.jar --rev 1.14.4 + java -jar BuildTools.jar --rev 1.15.2 - name: Build with Gradle run: ./gradlew build From 008d4512f2483be094351ec7c5d3fd2822dd8606 Mon Sep 17 00:00:00 2001 From: sysnote8main Date: Sat, 24 Jan 2026 17:11:01 +0900 Subject: [PATCH 06/23] feat: move sync classes --- src/main/java/be4rjp/sclat/Sclat.java | 4 ++-- src/main/java/be4rjp/sclat/api/SclatUtil.java | 2 +- .../sclat/{server => api/equipment}/EquipmentClient.java | 2 +- .../sclat/{server => api/equipment}/EquipmentServer.java | 2 +- .../{server => api/equipment}/EquipmentServerManager.java | 2 +- .../java/be4rjp/sclat/{data => api/song}/NoteBlockSong.java | 2 +- src/main/java/be4rjp/sclat/api/{ => status}/MineStat.java | 2 +- .../be4rjp/sclat/{data => api/status}/ServerStatus.java | 4 ++-- .../be4rjp/sclat/{server => api/status}/StatusClient.java | 2 +- .../be4rjp/sclat/{server => api/status}/StatusServer.java | 3 +-- .../java/be4rjp/sclat/commands/sclatCommandExecutor.java | 4 ++-- src/main/java/be4rjp/sclat/data/MatchServerRunnable.java | 1 + src/main/java/be4rjp/sclat/gui/ClickListener.java | 2 +- .../java/be4rjp/sclat/lobby/LobbyScoreboardRunnable.java | 2 +- src/main/java/be4rjp/sclat/manager/GameMgr.java | 6 +++--- src/main/java/be4rjp/sclat/manager/MatchMgr.java | 6 +++--- src/main/java/be4rjp/sclat/manager/NoteBlockAPIMgr.java | 2 +- src/main/java/be4rjp/sclat/manager/ServerStatusManager.java | 2 +- src/main/java/be4rjp/sclat/tutorial/Tutorial.java | 2 +- 19 files changed, 26 insertions(+), 26 deletions(-) rename src/main/java/be4rjp/sclat/{server => api/equipment}/EquipmentClient.java (98%) rename src/main/java/be4rjp/sclat/{server => api/equipment}/EquipmentServer.java (98%) rename src/main/java/be4rjp/sclat/{server => api/equipment}/EquipmentServerManager.java (97%) rename src/main/java/be4rjp/sclat/{data => api/song}/NoteBlockSong.java (92%) rename src/main/java/be4rjp/sclat/api/{ => status}/MineStat.java (99%) rename src/main/java/be4rjp/sclat/{data => api/status}/ServerStatus.java (98%) rename src/main/java/be4rjp/sclat/{server => api/status}/StatusClient.java (98%) rename src/main/java/be4rjp/sclat/{server => api/status}/StatusServer.java (98%) diff --git a/src/main/java/be4rjp/sclat/Sclat.java b/src/main/java/be4rjp/sclat/Sclat.java index 156b675..47066a7 100644 --- a/src/main/java/be4rjp/sclat/Sclat.java +++ b/src/main/java/be4rjp/sclat/Sclat.java @@ -9,7 +9,9 @@ import be4rjp.sclat.api.async.AsyncPlayerListener; import be4rjp.sclat.api.async.AsyncThreadManager; import be4rjp.sclat.api.config.CustomConfig; +import be4rjp.sclat.api.equipment.EquipmentServer; import be4rjp.sclat.api.holo.PlayerHolograms; +import be4rjp.sclat.api.status.StatusServer; import be4rjp.sclat.api.wiremesh.Wiremesh; import be4rjp.sclat.commands.sclatCommandExecutor; import be4rjp.sclat.config.Config; @@ -32,8 +34,6 @@ import be4rjp.sclat.manager.ServerStatusManager; import be4rjp.sclat.manager.WeaponClassMgr; import be4rjp.sclat.protocollib.SclatPacketListener; -import be4rjp.sclat.server.EquipmentServer; -import be4rjp.sclat.server.StatusServer; import be4rjp.sclat.tutorial.Tutorial; import be4rjp.sclat.weapon.SnowballListener; import com.comphenix.protocol.ProtocolLibrary; diff --git a/src/main/java/be4rjp/sclat/api/SclatUtil.java b/src/main/java/be4rjp/sclat/api/SclatUtil.java index 749a705..75de7e3 100644 --- a/src/main/java/be4rjp/sclat/api/SclatUtil.java +++ b/src/main/java/be4rjp/sclat/api/SclatUtil.java @@ -3,12 +3,12 @@ import be4rjp.sclat.Sclat; import be4rjp.sclat.api.packet.WorldPackets; import be4rjp.sclat.api.player.PlayerData; +import be4rjp.sclat.api.status.StatusClient; import be4rjp.sclat.api.team.Team; import be4rjp.sclat.data.DataMgr; import be4rjp.sclat.manager.BungeeCordMgr; import be4rjp.sclat.manager.DeathMgr; import be4rjp.sclat.manager.MatchMgr; -import be4rjp.sclat.server.StatusClient; import org.bukkit.Bukkit; import org.bukkit.GameMode; import org.bukkit.Instrument; diff --git a/src/main/java/be4rjp/sclat/server/EquipmentClient.java b/src/main/java/be4rjp/sclat/api/equipment/EquipmentClient.java similarity index 98% rename from src/main/java/be4rjp/sclat/server/EquipmentClient.java rename to src/main/java/be4rjp/sclat/api/equipment/EquipmentClient.java index fbfd837..c3a42b5 100644 --- a/src/main/java/be4rjp/sclat/server/EquipmentClient.java +++ b/src/main/java/be4rjp/sclat/api/equipment/EquipmentClient.java @@ -1,4 +1,4 @@ -package be4rjp.sclat.server; +package be4rjp.sclat.api.equipment; import be4rjp.sclat.Sclat; import org.bukkit.scheduler.BukkitRunnable; diff --git a/src/main/java/be4rjp/sclat/server/EquipmentServer.java b/src/main/java/be4rjp/sclat/api/equipment/EquipmentServer.java similarity index 98% rename from src/main/java/be4rjp/sclat/server/EquipmentServer.java rename to src/main/java/be4rjp/sclat/api/equipment/EquipmentServer.java index 1e2b1f5..4eed02f 100644 --- a/src/main/java/be4rjp/sclat/server/EquipmentServer.java +++ b/src/main/java/be4rjp/sclat/api/equipment/EquipmentServer.java @@ -1,4 +1,4 @@ -package be4rjp.sclat.server; +package be4rjp.sclat.api.equipment; import be4rjp.sclat.Sclat; diff --git a/src/main/java/be4rjp/sclat/server/EquipmentServerManager.java b/src/main/java/be4rjp/sclat/api/equipment/EquipmentServerManager.java similarity index 97% rename from src/main/java/be4rjp/sclat/server/EquipmentServerManager.java rename to src/main/java/be4rjp/sclat/api/equipment/EquipmentServerManager.java index a177969..1bcdef5 100644 --- a/src/main/java/be4rjp/sclat/server/EquipmentServerManager.java +++ b/src/main/java/be4rjp/sclat/api/equipment/EquipmentServerManager.java @@ -1,4 +1,4 @@ -package be4rjp.sclat.server; +package be4rjp.sclat.api.equipment; import be4rjp.sclat.Sclat; import be4rjp.sclat.api.SclatUtil; diff --git a/src/main/java/be4rjp/sclat/data/NoteBlockSong.java b/src/main/java/be4rjp/sclat/api/song/NoteBlockSong.java similarity index 92% rename from src/main/java/be4rjp/sclat/data/NoteBlockSong.java rename to src/main/java/be4rjp/sclat/api/song/NoteBlockSong.java index c1c6bb3..8874808 100644 --- a/src/main/java/be4rjp/sclat/data/NoteBlockSong.java +++ b/src/main/java/be4rjp/sclat/api/song/NoteBlockSong.java @@ -1,5 +1,5 @@ -package be4rjp.sclat.data; +package be4rjp.sclat.api.song; import com.xxmicloxx.NoteBlockAPI.model.Song; diff --git a/src/main/java/be4rjp/sclat/api/MineStat.java b/src/main/java/be4rjp/sclat/api/status/MineStat.java similarity index 99% rename from src/main/java/be4rjp/sclat/api/MineStat.java rename to src/main/java/be4rjp/sclat/api/status/MineStat.java index dab7c24..2da322b 100644 --- a/src/main/java/be4rjp/sclat/api/MineStat.java +++ b/src/main/java/be4rjp/sclat/api/status/MineStat.java @@ -1,4 +1,4 @@ -package be4rjp.sclat.api; +package be4rjp.sclat.api.status; import java.io.BufferedReader; import java.io.DataOutputStream; diff --git a/src/main/java/be4rjp/sclat/data/ServerStatus.java b/src/main/java/be4rjp/sclat/api/status/ServerStatus.java similarity index 98% rename from src/main/java/be4rjp/sclat/data/ServerStatus.java rename to src/main/java/be4rjp/sclat/api/status/ServerStatus.java index 5e70bbd..1cf8941 100644 --- a/src/main/java/be4rjp/sclat/data/ServerStatus.java +++ b/src/main/java/be4rjp/sclat/api/status/ServerStatus.java @@ -1,7 +1,7 @@ -package be4rjp.sclat.data; +package be4rjp.sclat.api.status; import be4rjp.sclat.Sclat; -import be4rjp.sclat.api.MineStat; +import be4rjp.sclat.data.MatchServerRunnable; import org.bukkit.block.Block; import org.bukkit.block.Sign; import org.bukkit.scheduler.BukkitRunnable; diff --git a/src/main/java/be4rjp/sclat/server/StatusClient.java b/src/main/java/be4rjp/sclat/api/status/StatusClient.java similarity index 98% rename from src/main/java/be4rjp/sclat/server/StatusClient.java rename to src/main/java/be4rjp/sclat/api/status/StatusClient.java index c53229d..5674d57 100644 --- a/src/main/java/be4rjp/sclat/server/StatusClient.java +++ b/src/main/java/be4rjp/sclat/api/status/StatusClient.java @@ -1,4 +1,4 @@ -package be4rjp.sclat.server; +package be4rjp.sclat.api.status; import be4rjp.sclat.Sclat; import org.bukkit.scheduler.BukkitRunnable; diff --git a/src/main/java/be4rjp/sclat/server/StatusServer.java b/src/main/java/be4rjp/sclat/api/status/StatusServer.java similarity index 98% rename from src/main/java/be4rjp/sclat/server/StatusServer.java rename to src/main/java/be4rjp/sclat/api/status/StatusServer.java index 585a24d..0925dff 100644 --- a/src/main/java/be4rjp/sclat/server/StatusServer.java +++ b/src/main/java/be4rjp/sclat/api/status/StatusServer.java @@ -1,10 +1,9 @@ -package be4rjp.sclat.server; +package be4rjp.sclat.api.status; import be4rjp.sclat.Sclat; import be4rjp.sclat.api.MessageType; import be4rjp.sclat.api.SclatUtil; import be4rjp.sclat.api.SoundType; -import be4rjp.sclat.data.ServerStatus; import be4rjp.sclat.manager.PlayerReturnManager; import be4rjp.sclat.manager.PlayerStatusMgr; import be4rjp.sclat.manager.RankMgr; diff --git a/src/main/java/be4rjp/sclat/commands/sclatCommandExecutor.java b/src/main/java/be4rjp/sclat/commands/sclatCommandExecutor.java index 4de9b89..c8f9a97 100644 --- a/src/main/java/be4rjp/sclat/commands/sclatCommandExecutor.java +++ b/src/main/java/be4rjp/sclat/commands/sclatCommandExecutor.java @@ -5,12 +5,12 @@ import be4rjp.sclat.api.SclatUtil; import be4rjp.sclat.api.ServerType; import be4rjp.sclat.api.SoundType; +import be4rjp.sclat.api.equipment.EquipmentClient; +import be4rjp.sclat.api.status.ServerStatus; import be4rjp.sclat.data.DataMgr; -import be4rjp.sclat.data.ServerStatus; import be4rjp.sclat.emblem.EmblemManager; import be4rjp.sclat.manager.BungeeCordMgr; import be4rjp.sclat.manager.ServerStatusManager; -import be4rjp.sclat.server.EquipmentClient; import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; diff --git a/src/main/java/be4rjp/sclat/data/MatchServerRunnable.java b/src/main/java/be4rjp/sclat/data/MatchServerRunnable.java index 2ab0b1a..aa63f42 100644 --- a/src/main/java/be4rjp/sclat/data/MatchServerRunnable.java +++ b/src/main/java/be4rjp/sclat/data/MatchServerRunnable.java @@ -4,6 +4,7 @@ import be4rjp.sclat.api.MessageType; import be4rjp.sclat.api.SclatUtil; import be4rjp.sclat.api.SoundType; +import be4rjp.sclat.api.status.ServerStatus; import be4rjp.sclat.manager.BungeeCordMgr; import org.bukkit.entity.Player; import org.bukkit.scheduler.BukkitRunnable; diff --git a/src/main/java/be4rjp/sclat/gui/ClickListener.java b/src/main/java/be4rjp/sclat/gui/ClickListener.java index d5dca7b..2890c21 100644 --- a/src/main/java/be4rjp/sclat/gui/ClickListener.java +++ b/src/main/java/be4rjp/sclat/gui/ClickListener.java @@ -6,11 +6,11 @@ import be4rjp.sclat.api.SclatUtil; import be4rjp.sclat.api.ServerType; import be4rjp.sclat.api.SoundType; +import be4rjp.sclat.api.status.ServerStatus; import be4rjp.sclat.data.BlockUpdater; import be4rjp.sclat.data.DataMgr; import be4rjp.sclat.data.Match; import be4rjp.sclat.data.PaintData; -import be4rjp.sclat.data.ServerStatus; import be4rjp.sclat.data.WeaponClass; import be4rjp.sclat.manager.ArmorStandMgr; import be4rjp.sclat.manager.BungeeCordMgr; diff --git a/src/main/java/be4rjp/sclat/lobby/LobbyScoreboardRunnable.java b/src/main/java/be4rjp/sclat/lobby/LobbyScoreboardRunnable.java index fde96dc..b249e99 100644 --- a/src/main/java/be4rjp/sclat/lobby/LobbyScoreboardRunnable.java +++ b/src/main/java/be4rjp/sclat/lobby/LobbyScoreboardRunnable.java @@ -2,10 +2,10 @@ import be4rjp.sclat.Sclat; import be4rjp.sclat.api.player.PlayerData; +import be4rjp.sclat.api.status.ServerStatus; import be4rjp.sclat.api.utils.ObjectiveUtil; import be4rjp.sclat.api.utils.TextAnimation; import be4rjp.sclat.data.DataMgr; -import be4rjp.sclat.data.ServerStatus; import be4rjp.sclat.manager.PlayerStatusMgr; import be4rjp.sclat.manager.RankMgr; import be4rjp.sclat.manager.ServerStatusManager; diff --git a/src/main/java/be4rjp/sclat/manager/GameMgr.java b/src/main/java/be4rjp/sclat/manager/GameMgr.java index e329de2..7decb7c 100644 --- a/src/main/java/be4rjp/sclat/manager/GameMgr.java +++ b/src/main/java/be4rjp/sclat/manager/GameMgr.java @@ -5,20 +5,20 @@ import be4rjp.sclat.api.SclatUtil; import be4rjp.sclat.api.ServerType; import be4rjp.sclat.api.SoundType; +import be4rjp.sclat.api.equipment.EquipmentClient; +import be4rjp.sclat.api.equipment.EquipmentServerManager; import be4rjp.sclat.api.player.PlayerData; import be4rjp.sclat.api.player.PlayerSettings; +import be4rjp.sclat.api.status.ServerStatus; import be4rjp.sclat.api.team.Team; import be4rjp.sclat.data.DataMgr; import be4rjp.sclat.data.Match; import be4rjp.sclat.data.PaintData; -import be4rjp.sclat.data.ServerStatus; import be4rjp.sclat.data.WeaponClass; import be4rjp.sclat.gui.LootBox; import be4rjp.sclat.gui.OpenGUI; import be4rjp.sclat.lobby.LobbyScoreboardRunnable; import be4rjp.sclat.packet.PacketHandler; -import be4rjp.sclat.server.EquipmentClient; -import be4rjp.sclat.server.EquipmentServerManager; import be4rjp.sclat.tutorial.Tutorial; import be4rjp.sclat.weapon.Brush; import be4rjp.sclat.weapon.Bucket; diff --git a/src/main/java/be4rjp/sclat/manager/MatchMgr.java b/src/main/java/be4rjp/sclat/manager/MatchMgr.java index a5e915a..12cad78 100644 --- a/src/main/java/be4rjp/sclat/manager/MatchMgr.java +++ b/src/main/java/be4rjp/sclat/manager/MatchMgr.java @@ -8,8 +8,11 @@ import be4rjp.sclat.api.SclatUtil; import be4rjp.sclat.api.ServerType; import be4rjp.sclat.api.SoundType; +import be4rjp.sclat.api.equipment.EquipmentServerManager; import be4rjp.sclat.api.player.PlayerData; import be4rjp.sclat.api.player.PlayerSettings; +import be4rjp.sclat.api.song.NoteBlockSong; +import be4rjp.sclat.api.status.StatusClient; import be4rjp.sclat.api.team.Team; import be4rjp.sclat.api.utils.ObjectiveUtil; import be4rjp.sclat.api.wiremesh.Wiremesh; @@ -19,13 +22,10 @@ import be4rjp.sclat.data.DataMgr; import be4rjp.sclat.data.MapData; import be4rjp.sclat.data.Match; -import be4rjp.sclat.data.NoteBlockSong; import be4rjp.sclat.data.PaintData; import be4rjp.sclat.data.Path; import be4rjp.sclat.data.WeaponClass; import be4rjp.sclat.gui.OpenGUI; -import be4rjp.sclat.server.EquipmentServerManager; -import be4rjp.sclat.server.StatusClient; import be4rjp.sclat.weapon.Brush; import be4rjp.sclat.weapon.Bucket; import be4rjp.sclat.weapon.Buckler; diff --git a/src/main/java/be4rjp/sclat/manager/NoteBlockAPIMgr.java b/src/main/java/be4rjp/sclat/manager/NoteBlockAPIMgr.java index 8bab9b5..06dcf43 100644 --- a/src/main/java/be4rjp/sclat/manager/NoteBlockAPIMgr.java +++ b/src/main/java/be4rjp/sclat/manager/NoteBlockAPIMgr.java @@ -1,7 +1,7 @@ package be4rjp.sclat.manager; -import be4rjp.sclat.data.NoteBlockSong; +import be4rjp.sclat.api.song.NoteBlockSong; import com.xxmicloxx.NoteBlockAPI.model.Song; import com.xxmicloxx.NoteBlockAPI.utils.NBSDecoder; diff --git a/src/main/java/be4rjp/sclat/manager/ServerStatusManager.java b/src/main/java/be4rjp/sclat/manager/ServerStatusManager.java index a1e261a..bf03199 100644 --- a/src/main/java/be4rjp/sclat/manager/ServerStatusManager.java +++ b/src/main/java/be4rjp/sclat/manager/ServerStatusManager.java @@ -1,7 +1,7 @@ package be4rjp.sclat.manager; import be4rjp.sclat.Sclat; -import be4rjp.sclat.data.ServerStatus; +import be4rjp.sclat.api.status.ServerStatus; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; diff --git a/src/main/java/be4rjp/sclat/tutorial/Tutorial.java b/src/main/java/be4rjp/sclat/tutorial/Tutorial.java index 282723e..12eed84 100644 --- a/src/main/java/be4rjp/sclat/tutorial/Tutorial.java +++ b/src/main/java/be4rjp/sclat/tutorial/Tutorial.java @@ -4,6 +4,7 @@ import be4rjp.sclat.api.MessageType; import be4rjp.sclat.api.SclatUtil; import be4rjp.sclat.api.SoundType; +import be4rjp.sclat.api.status.StatusClient; import be4rjp.sclat.data.BlockUpdater; import be4rjp.sclat.data.DataMgr; import be4rjp.sclat.data.Match; @@ -12,7 +13,6 @@ import be4rjp.sclat.manager.BungeeCordMgr; import be4rjp.sclat.manager.PathMgr; import be4rjp.sclat.manager.PlayerStatusMgr; -import be4rjp.sclat.server.StatusClient; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Location; From c021445ca30d4bf3823fa833abee624152938a5b Mon Sep 17 00:00:00 2001 From: sysnote8main Date: Sat, 24 Jan 2026 17:35:12 +0900 Subject: [PATCH 07/23] chore: temp commit --- src/main/java/be4rjp/sclat/Sclat.java | 6 +-- .../BungeeCordAPI.java} | 4 +- src/main/java/be4rjp/sclat/api/SclatUtil.java | 5 +-- .../be4rjp/sclat/api/config/WeaponConfig.java | 40 +++++++++++++++++++ .../sclat/commands/sclatCommandExecutor.java | 4 +- .../sclat/data/MatchServerRunnable.java | 4 +- .../java/be4rjp/sclat/gui/ClickListener.java | 14 +++---- .../java/be4rjp/sclat/manager/GameMgr.java | 15 +++---- .../java/be4rjp/sclat/manager/MatchMgr.java | 3 +- .../{ColorMgr.java => TeamColorSets.java} | 2 +- .../be4rjp/sclat/manager/WeaponClassMgr.java | 27 +++++++++---- .../java/be4rjp/sclat/tutorial/Tutorial.java | 4 +- 12 files changed, 90 insertions(+), 38 deletions(-) rename src/main/java/be4rjp/sclat/{manager/BungeeCordMgr.java => api/BungeeCordAPI.java} (88%) create mode 100644 src/main/java/be4rjp/sclat/api/config/WeaponConfig.java rename src/main/java/be4rjp/sclat/manager/{ColorMgr.java => TeamColorSets.java} (99%) diff --git a/src/main/java/be4rjp/sclat/Sclat.java b/src/main/java/be4rjp/sclat/Sclat.java index 47066a7..5fab1c8 100644 --- a/src/main/java/be4rjp/sclat/Sclat.java +++ b/src/main/java/be4rjp/sclat/Sclat.java @@ -23,7 +23,6 @@ import be4rjp.sclat.listener.SquidListener; import be4rjp.sclat.lunachat.LunaChatListener; import be4rjp.sclat.manager.ArmorStandMgr; -import be4rjp.sclat.manager.ColorMgr; import be4rjp.sclat.manager.GameMgr; import be4rjp.sclat.manager.MainWeaponMgr; import be4rjp.sclat.manager.MapDataMgr; @@ -32,6 +31,7 @@ import be4rjp.sclat.manager.PlayerReturnManager; import be4rjp.sclat.manager.RankMgr; import be4rjp.sclat.manager.ServerStatusManager; +import be4rjp.sclat.manager.TeamColorSets; import be4rjp.sclat.manager.WeaponClassMgr; import be4rjp.sclat.protocollib.SclatPacketListener; import be4rjp.sclat.tutorial.Tutorial; @@ -63,7 +63,7 @@ * @author Be4rJP */ public class Sclat extends JavaPlugin implements PluginMessageListener { - private static final Logger logger = LoggerFactory.getLogger(Sclat.class); + public static final Logger logger = LoggerFactory.getLogger(Sclat.class); public static Config conf; @@ -190,7 +190,7 @@ public void onEnable() { // ------------------------Setup from config-------------------------- getLogger().info("SetupColor..."); - ColorMgr.SetupColor(); + TeamColorSets.SetupColor(); getLogger().info("SetupMainWeapon..."); MainWeaponMgr.SetupMainWeapon(); getLogger().info("WeaponClassSetup..."); diff --git a/src/main/java/be4rjp/sclat/manager/BungeeCordMgr.java b/src/main/java/be4rjp/sclat/api/BungeeCordAPI.java similarity index 88% rename from src/main/java/be4rjp/sclat/manager/BungeeCordMgr.java rename to src/main/java/be4rjp/sclat/api/BungeeCordAPI.java index 35adaee..4b49350 100644 --- a/src/main/java/be4rjp/sclat/manager/BungeeCordMgr.java +++ b/src/main/java/be4rjp/sclat/api/BungeeCordAPI.java @@ -1,5 +1,5 @@ -package be4rjp.sclat.manager; +package be4rjp.sclat.api; import be4rjp.sclat.Sclat; import com.google.common.io.ByteArrayDataOutput; @@ -10,7 +10,7 @@ * * @author Be4rJP */ -public class BungeeCordMgr { +public class BungeeCordAPI { public static void PlayerSendServer(Player player, String servername) { ByteArrayDataOutput out = ByteStreams.newDataOutput(); out.writeUTF("Connect"); diff --git a/src/main/java/be4rjp/sclat/api/SclatUtil.java b/src/main/java/be4rjp/sclat/api/SclatUtil.java index 75de7e3..58c754f 100644 --- a/src/main/java/be4rjp/sclat/api/SclatUtil.java +++ b/src/main/java/be4rjp/sclat/api/SclatUtil.java @@ -6,7 +6,6 @@ import be4rjp.sclat.api.status.StatusClient; import be4rjp.sclat.api.team.Team; import be4rjp.sclat.data.DataMgr; -import be4rjp.sclat.manager.BungeeCordMgr; import be4rjp.sclat.manager.DeathMgr; import be4rjp.sclat.manager.MatchMgr; import org.bukkit.Bukkit; @@ -85,7 +84,7 @@ public static void restartServer() { sc.startClient(); for (Player player : Sclat.getPlugin().getServer().getOnlinePlayers()) { - BungeeCordMgr.PlayerSendServer(player, "sclat"); + BungeeCordAPI.PlayerSendServer(player, "sclat"); DataMgr.getPlayerData(player).setServerName("Sclat"); } BukkitRunnable task = new BukkitRunnable() { @@ -179,7 +178,7 @@ public static void sendSclatLobby(Player player) { @Override public void run() { try { - BungeeCordMgr.PlayerSendServer(player, "sclat"); + BungeeCordAPI.PlayerSendServer(player, "sclat"); DataMgr.getPlayerData(player).setServerName("Sclat"); } catch (Exception e) { } diff --git a/src/main/java/be4rjp/sclat/api/config/WeaponConfig.java b/src/main/java/be4rjp/sclat/api/config/WeaponConfig.java new file mode 100644 index 0000000..b08d9ef --- /dev/null +++ b/src/main/java/be4rjp/sclat/api/config/WeaponConfig.java @@ -0,0 +1,40 @@ +package be4rjp.sclat.api.config; + +import be4rjp.sclat.Sclat; +import be4rjp.sclat.data.DataMgr; +import be4rjp.sclat.data.WeaponClass; +import org.bukkit.configuration.ConfigurationSection; +import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; + +import java.util.ArrayList; +import java.util.List; + +@NullMarked +public class WeaponConfig { + // Todo: needs more refactorization + public static WeaponClass parseSection(String className, ConfigurationSection section) { + List missingProperties = new ArrayList<>(); + String weaponName = getStringOrRecord(section, "MainWeaponName", missingProperties); + String subWeaponName = getStringOrRecord(section, "SubWeaponName", missingProperties); + String spWeaponName = getStringOrRecord(section,"SPWeaponName", missingProperties); + if(!missingProperties.isEmpty()) { + Sclat.logger.warn("Missing weapon properties in {}: [{}]", className, String.join(", ", missingProperties)); + } + + WeaponClass wc = new WeaponClass(className); + wc.setMainWeapon(DataMgr.getWeapon(weaponName)); + wc.setSubWeaponName(subWeaponName); + wc.setSPWeaponName(spWeaponName); + return wc; + } + + @Nullable + private static String getStringOrRecord(ConfigurationSection section, String path, List missingList) { + String result = section.getString(path); + if(result == null) { + missingList.add(path); + } + return result; + } +} diff --git a/src/main/java/be4rjp/sclat/commands/sclatCommandExecutor.java b/src/main/java/be4rjp/sclat/commands/sclatCommandExecutor.java index c8f9a97..01e6b54 100644 --- a/src/main/java/be4rjp/sclat/commands/sclatCommandExecutor.java +++ b/src/main/java/be4rjp/sclat/commands/sclatCommandExecutor.java @@ -1,6 +1,7 @@ package be4rjp.sclat.commands; import be4rjp.sclat.Sclat; +import be4rjp.sclat.api.BungeeCordAPI; import be4rjp.sclat.api.MessageType; import be4rjp.sclat.api.SclatUtil; import be4rjp.sclat.api.ServerType; @@ -9,7 +10,6 @@ import be4rjp.sclat.api.status.ServerStatus; import be4rjp.sclat.data.DataMgr; import be4rjp.sclat.emblem.EmblemManager; -import be4rjp.sclat.manager.BungeeCordMgr; import be4rjp.sclat.manager.ServerStatusManager; import org.bukkit.ChatColor; import org.bukkit.command.Command; @@ -237,7 +237,7 @@ public boolean onCommand(@NotNull CommandSender sender, @NotNull Command cmd, @N @Override public void run() { try { - BungeeCordMgr.PlayerSendServer((Player) sender, ss.getServerName()); + BungeeCordAPI.PlayerSendServer((Player) sender, ss.getServerName()); DataMgr.getPlayerData((Player) sender).setServerName(ss.getDisplayName()); } catch (Exception ignored) { } diff --git a/src/main/java/be4rjp/sclat/data/MatchServerRunnable.java b/src/main/java/be4rjp/sclat/data/MatchServerRunnable.java index aa63f42..86174be 100644 --- a/src/main/java/be4rjp/sclat/data/MatchServerRunnable.java +++ b/src/main/java/be4rjp/sclat/data/MatchServerRunnable.java @@ -1,11 +1,11 @@ package be4rjp.sclat.data; import be4rjp.sclat.Sclat; +import be4rjp.sclat.api.BungeeCordAPI; import be4rjp.sclat.api.MessageType; import be4rjp.sclat.api.SclatUtil; import be4rjp.sclat.api.SoundType; import be4rjp.sclat.api.status.ServerStatus; -import be4rjp.sclat.manager.BungeeCordMgr; import org.bukkit.entity.Player; import org.bukkit.scheduler.BukkitRunnable; @@ -28,7 +28,7 @@ public MatchServerRunnable(ServerStatus serverStatus) { public void run() { if (waitTime == 30) { for (Player player : Sclat.getPlugin().getServer().getOnlinePlayers()) { - BungeeCordMgr.PlayerSendServer(player, serverStatus.getServerName()); + BungeeCordAPI.PlayerSendServer(player, serverStatus.getServerName()); DataMgr.getPlayerData(player).setServerName(serverStatus.getDisplayName()); } } diff --git a/src/main/java/be4rjp/sclat/gui/ClickListener.java b/src/main/java/be4rjp/sclat/gui/ClickListener.java index 2890c21..67418c7 100644 --- a/src/main/java/be4rjp/sclat/gui/ClickListener.java +++ b/src/main/java/be4rjp/sclat/gui/ClickListener.java @@ -2,6 +2,7 @@ package be4rjp.sclat.gui; import be4rjp.sclat.Sclat; +import be4rjp.sclat.api.BungeeCordAPI; import be4rjp.sclat.api.MessageType; import be4rjp.sclat.api.SclatUtil; import be4rjp.sclat.api.ServerType; @@ -13,7 +14,6 @@ import be4rjp.sclat.data.PaintData; import be4rjp.sclat.data.WeaponClass; import be4rjp.sclat.manager.ArmorStandMgr; -import be4rjp.sclat.manager.BungeeCordMgr; import be4rjp.sclat.manager.MatchMgr; import be4rjp.sclat.manager.PlayerStatusMgr; import be4rjp.sclat.manager.SPWeaponMgr; @@ -154,10 +154,10 @@ public void onGUIClick(InventoryClickEvent event) { break; case "ロビーへ戻る / RETURN TO LOBBY" : if (Sclat.type != ServerType.LOBBY) { - BungeeCordMgr.PlayerSendServer(player, "sclat"); + BungeeCordAPI.PlayerSendServer(player, "sclat"); DataMgr.getPlayerData(player).setServerName("Sclat"); } else { - BungeeCordMgr.PlayerSendServer(player, "lobby"); + BungeeCordAPI.PlayerSendServer(player, "lobby"); DataMgr.getPlayerData(player).setServerName("Lobby"); } break; @@ -165,11 +165,11 @@ public void onGUIClick(InventoryClickEvent event) { OpenGUI.openEmblemMenu(player); break; case "試し打ちサーバーへ接続 / TRAINING FIELD" : - BungeeCordMgr.PlayerSendServer(player, "sclattest"); + BungeeCordAPI.PlayerSendServer(player, "sclattest"); DataMgr.getPlayerData(player).setServerName("sclattest"); break; case "チームデスマッチサーバーへ接続 / CONNECT TO TDM SERVER" : - BungeeCordMgr.PlayerSendServer(player, "tdm"); + BungeeCordAPI.PlayerSendServer(player, "tdm"); DataMgr.getPlayerData(player).setServerName("TDM"); break; case "ナワバリバトル" : @@ -235,7 +235,7 @@ public void onGUIClick(InventoryClickEvent event) { SclatUtil.playGameSound(player, SoundType.ERROR); return; } - BungeeCordMgr.PlayerSendServer(player, ss.getServerName()); + BungeeCordAPI.PlayerSendServer(player, ss.getServerName()); DataMgr.getPlayerData(player).setServerName(ss.getDisplayName()); } else { SclatUtil.sendMessage("§c§nこのサーバーは満員のため参加できません", MessageType.PLAYER, player); @@ -660,7 +660,7 @@ public void onOpenMainMenu(PlayerInteractEvent event) { OpenGUI.SuperJumpGUI(player); break; case "§c§n右クリックで退出" : - BungeeCordMgr.PlayerSendServer(player, "sclat"); + BungeeCordAPI.PlayerSendServer(player, "sclat"); DataMgr.getPlayerData(player).setServerName("Sclat"); break; case "§a§n右クリックで参加" : diff --git a/src/main/java/be4rjp/sclat/manager/GameMgr.java b/src/main/java/be4rjp/sclat/manager/GameMgr.java index 7decb7c..60cd225 100644 --- a/src/main/java/be4rjp/sclat/manager/GameMgr.java +++ b/src/main/java/be4rjp/sclat/manager/GameMgr.java @@ -1,6 +1,7 @@ package be4rjp.sclat.manager; import be4rjp.sclat.Sclat; +import be4rjp.sclat.api.BungeeCordAPI; import be4rjp.sclat.api.MessageType; import be4rjp.sclat.api.SclatUtil; import be4rjp.sclat.api.ServerType; @@ -673,7 +674,7 @@ public void onClickSign(PlayerInteractEvent e) { SclatUtil.playGameSound(player, SoundType.ERROR); return; } - BungeeCordMgr.PlayerSendServer(player, ss.getServerName()); + BungeeCordAPI.PlayerSendServer(player, ss.getServerName()); DataMgr.getPlayerData(player).setServerName(ss.getDisplayName()); } else { SclatUtil.sendMessage("§c§nこのサーバーは満員のため参加できません", MessageType.PLAYER, player); @@ -723,19 +724,19 @@ public void onClickSign(PlayerInteractEvent e) { player.setResourcePack(conf.getConfig().getString("ResourcePackURL")); break; case "Click to Return" : - BungeeCordMgr.PlayerSendServer(player, "lobby"); + BungeeCordAPI.PlayerSendServer(player, "lobby"); DataMgr.getPlayerData(player).setServerName("Lobby"); break; case "[ Training Mode ]" : - BungeeCordMgr.PlayerSendServer(player, "sclattest"); + BungeeCordAPI.PlayerSendServer(player, "sclattest"); DataMgr.getPlayerData(player).setServerName("sclattest"); break; case "[ Return to jg ]" : - BungeeCordMgr.PlayerSendServer(player, "jg"); + BungeeCordAPI.PlayerSendServer(player, "jg"); DataMgr.getPlayerData(player).setServerName("JG"); break; case "Return to sclat" : - BungeeCordMgr.PlayerSendServer(player, "sclat"); + BungeeCordAPI.PlayerSendServer(player, "sclat"); DataMgr.getPlayerData(player).setServerName("Sclat"); break; case "[Charge special]" : @@ -743,7 +744,7 @@ public void onClickSign(PlayerInteractEvent e) { DataMgr.getPlayerData(player).setSPGauge(100); break; case "[ Sclat ]" : - BungeeCordMgr.PlayerSendServer(player, "sclat"); + BungeeCordAPI.PlayerSendServer(player, "sclat"); DataMgr.getPlayerData(player).setServerName("Sclat"); break; case "[ LootBox ]" : @@ -784,7 +785,7 @@ public void onClickSign(PlayerInteractEvent e) { break; case "[ Tutorial ]" : List list = Sclat.tutorialServers.getConfig().getStringList("server-list"); - BungeeCordMgr.PlayerSendServer(player, list.get(new Random().nextInt(list.size()))); + BungeeCordAPI.PlayerSendServer(player, list.get(new Random().nextInt(list.size()))); DataMgr.getPlayerData(player) .setServerName(conf.getServers().getString("Tutorial.DisplayName")); break; diff --git a/src/main/java/be4rjp/sclat/manager/MatchMgr.java b/src/main/java/be4rjp/sclat/manager/MatchMgr.java index 12cad78..7399f49 100644 --- a/src/main/java/be4rjp/sclat/manager/MatchMgr.java +++ b/src/main/java/be4rjp/sclat/manager/MatchMgr.java @@ -3,6 +3,7 @@ import be4rjp.sclat.Sclat; import be4rjp.sclat.api.Animation; +import be4rjp.sclat.api.BungeeCordAPI; import be4rjp.sclat.api.MessageType; import be4rjp.sclat.api.Plugins; import be4rjp.sclat.api.SclatUtil; @@ -1641,7 +1642,7 @@ else if (team1 == 100) if (Sclat.type == ServerType.MATCH) { try { - BungeeCordMgr.PlayerSendServer(p, "sclat"); + BungeeCordAPI.PlayerSendServer(p, "sclat"); DataMgr.getPlayerData(p).setServerName("Sclat"); } catch (Exception e) { } diff --git a/src/main/java/be4rjp/sclat/manager/ColorMgr.java b/src/main/java/be4rjp/sclat/manager/TeamColorSets.java similarity index 99% rename from src/main/java/be4rjp/sclat/manager/ColorMgr.java rename to src/main/java/be4rjp/sclat/manager/TeamColorSets.java index 94f5be9..92d86ba 100644 --- a/src/main/java/be4rjp/sclat/manager/ColorMgr.java +++ b/src/main/java/be4rjp/sclat/manager/TeamColorSets.java @@ -12,7 +12,7 @@ * * @author Be4rJP */ -public class ColorMgr { +public class TeamColorSets { public synchronized static void SetupColor() { Color blue = new Color("Blue"); blue.setWool(Material.BLUE_WOOL); diff --git a/src/main/java/be4rjp/sclat/manager/WeaponClassMgr.java b/src/main/java/be4rjp/sclat/manager/WeaponClassMgr.java index cbbb2f9..3b85228 100644 --- a/src/main/java/be4rjp/sclat/manager/WeaponClassMgr.java +++ b/src/main/java/be4rjp/sclat/manager/WeaponClassMgr.java @@ -2,14 +2,18 @@ package be4rjp.sclat.manager; import be4rjp.sclat.Sclat; +import be4rjp.sclat.api.config.WeaponConfig; import be4rjp.sclat.api.player.PlayerData; import be4rjp.sclat.data.DataMgr; import be4rjp.sclat.data.WeaponClass; import org.bukkit.ChatColor; import org.bukkit.Material; +import org.bukkit.configuration.ConfigurationSection; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import static be4rjp.sclat.Sclat.conf; @@ -18,16 +22,23 @@ * @author Be4rJP */ public class WeaponClassMgr { + private static final Logger logger = LoggerFactory.getLogger(WeaponClassMgr.class); + public synchronized static void WeaponClassSetup() { - for (String classname : conf.getClassConfig().getConfigurationSection("WeaponClass").getKeys(false)) { - String WeaponName = conf.getClassConfig().getString("WeaponClass." + classname + ".MainWeaponName"); - String SubWeaponName = conf.getClassConfig().getString("WeaponClass." + classname + ".SubWeaponName"); - String SPWeaponName = conf.getClassConfig().getString("WeaponClass." + classname + ".SPWeaponName"); - WeaponClass wc = new WeaponClass(classname); - wc.setMainWeapon(DataMgr.getWeapon(WeaponName)); - wc.setSubWeaponName(SubWeaponName); - wc.setSPWeaponName(SPWeaponName); + ConfigurationSection weaponClassSection = conf.getClassConfig().getConfigurationSection("WeaponClass"); + if(weaponClassSection == null) { + logger.warn("weaponClassSection is null"); + return; + } + + for (String classname : weaponClassSection.getKeys(false)) { + ConfigurationSection weaponSection = weaponClassSection.getConfigurationSection(classname); + if(weaponSection == null) { + logger.warn("weaponSection of {} is null", classname); + continue; + } + WeaponClass wc = WeaponConfig.parseSection(classname, weaponSection); DataMgr.setWeaponClass(classname, wc); } } diff --git a/src/main/java/be4rjp/sclat/tutorial/Tutorial.java b/src/main/java/be4rjp/sclat/tutorial/Tutorial.java index 12eed84..a3476ad 100644 --- a/src/main/java/be4rjp/sclat/tutorial/Tutorial.java +++ b/src/main/java/be4rjp/sclat/tutorial/Tutorial.java @@ -1,6 +1,7 @@ package be4rjp.sclat.tutorial; import be4rjp.sclat.Sclat; +import be4rjp.sclat.api.BungeeCordAPI; import be4rjp.sclat.api.MessageType; import be4rjp.sclat.api.SclatUtil; import be4rjp.sclat.api.SoundType; @@ -10,7 +11,6 @@ import be4rjp.sclat.data.Match; import be4rjp.sclat.data.PaintData; import be4rjp.sclat.data.Path; -import be4rjp.sclat.manager.BungeeCordMgr; import be4rjp.sclat.manager.PathMgr; import be4rjp.sclat.manager.PlayerStatusMgr; import org.bukkit.Bukkit; @@ -321,7 +321,7 @@ public void run() { } player.playSound(player.getLocation(), Sound.ENTITY_MINECART_INSIDE, 0.7F, 1F); if (i == 2) { - BungeeCordMgr.PlayerSendServer(player, "sclat"); + BungeeCordAPI.PlayerSendServer(player, "sclat"); DataMgr.getPlayerData(player).setServerName("Sclat"); } i++; From 23e569ff0e3c8f4d4804556c69dd43b838234aa0 Mon Sep 17 00:00:00 2001 From: sysnote8main Date: Sat, 24 Jan 2026 17:40:54 +0900 Subject: [PATCH 08/23] feat: add comments in weapon class manager --- .../be4rjp/sclat/manager/WeaponClassMgr.java | 24 ++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/src/main/java/be4rjp/sclat/manager/WeaponClassMgr.java b/src/main/java/be4rjp/sclat/manager/WeaponClassMgr.java index 3b85228..a71eb5a 100644 --- a/src/main/java/be4rjp/sclat/manager/WeaponClassMgr.java +++ b/src/main/java/be4rjp/sclat/manager/WeaponClassMgr.java @@ -44,29 +44,47 @@ public synchronized static void WeaponClassSetup() { } public static void setWeaponClass(Player player) { + // Reset player inventory player.getInventory().clear(); + + // Get player data PlayerData data = DataMgr.getPlayerData(player); + + // === Main weapon === ItemStack main = data.getWeaponClass().getMainWeapon().getWeaponIteamStack().clone(); if (data.getMainItemGlow()) { Sclat.glow.enchantGlow(main); main.addEnchantment(Sclat.glow, 1); } player.getInventory().setItem(0, main); - if (data.getWeaponClass().getMainWeapon().getIsManeuver()) + + // If maneuver is main weapon + if (data.getWeaponClass().getMainWeapon().getIsManeuver()) { player.getInventory().setItem(40, data.getWeaponClass().getMainWeapon().getWeaponIteamStack().clone()); + } + + // === Sub weapon === ItemStack is = SubWeaponMgr.getSubWeapon(player); player.getInventory().setItem(2, is); + + // === Super jump === ItemStack co = new ItemStack(Material.BOOK); ItemMeta meta = co.getItemMeta(); meta.setDisplayName("スーパージャンプ"); co.setItemMeta(meta); player.getInventory().setItem(6, co); - if (!data.getIsSquid()) + + // If player isn't squid + if (!data.getIsSquid()) { player.getEquipment().setHelmet(DataMgr.getPlayerData(player).getTeam().getTeamColor().getBougu()); + } - if (data.getSPGauge() == 100) + // If special gauge is full + if (data.getSPGauge() == 100) { SPWeaponMgr.setSPWeapon(player); + } + // Is trial mode and non-tutorial = Test Area if (conf.getConfig().getString("WorkMode").equals("Trial") && !Sclat.tutorial) { ItemStack join = new ItemStack(Material.CHEST); ItemMeta joinmeta = join.getItemMeta(); From eff8a4cb22077fac69438144975155582d14f17c Mon Sep 17 00:00:00 2001 From: sysnote8main Date: Sat, 24 Jan 2026 17:41:10 +0900 Subject: [PATCH 09/23] chore: apply format --- .../be4rjp/sclat/api/config/WeaponConfig.java | 46 +++++++++---------- .../be4rjp/sclat/manager/WeaponClassMgr.java | 4 +- 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/src/main/java/be4rjp/sclat/api/config/WeaponConfig.java b/src/main/java/be4rjp/sclat/api/config/WeaponConfig.java index b08d9ef..50bdf7d 100644 --- a/src/main/java/be4rjp/sclat/api/config/WeaponConfig.java +++ b/src/main/java/be4rjp/sclat/api/config/WeaponConfig.java @@ -12,29 +12,29 @@ @NullMarked public class WeaponConfig { - // Todo: needs more refactorization - public static WeaponClass parseSection(String className, ConfigurationSection section) { - List missingProperties = new ArrayList<>(); - String weaponName = getStringOrRecord(section, "MainWeaponName", missingProperties); - String subWeaponName = getStringOrRecord(section, "SubWeaponName", missingProperties); - String spWeaponName = getStringOrRecord(section,"SPWeaponName", missingProperties); - if(!missingProperties.isEmpty()) { - Sclat.logger.warn("Missing weapon properties in {}: [{}]", className, String.join(", ", missingProperties)); - } + // Todo: needs more refactorization + public static WeaponClass parseSection(String className, ConfigurationSection section) { + List missingProperties = new ArrayList<>(); + String weaponName = getStringOrRecord(section, "MainWeaponName", missingProperties); + String subWeaponName = getStringOrRecord(section, "SubWeaponName", missingProperties); + String spWeaponName = getStringOrRecord(section, "SPWeaponName", missingProperties); + if (!missingProperties.isEmpty()) { + Sclat.logger.warn("Missing weapon properties in {}: [{}]", className, String.join(", ", missingProperties)); + } - WeaponClass wc = new WeaponClass(className); - wc.setMainWeapon(DataMgr.getWeapon(weaponName)); - wc.setSubWeaponName(subWeaponName); - wc.setSPWeaponName(spWeaponName); - return wc; - } + WeaponClass wc = new WeaponClass(className); + wc.setMainWeapon(DataMgr.getWeapon(weaponName)); + wc.setSubWeaponName(subWeaponName); + wc.setSPWeaponName(spWeaponName); + return wc; + } - @Nullable - private static String getStringOrRecord(ConfigurationSection section, String path, List missingList) { - String result = section.getString(path); - if(result == null) { - missingList.add(path); - } - return result; - } + @Nullable + private static String getStringOrRecord(ConfigurationSection section, String path, List missingList) { + String result = section.getString(path); + if (result == null) { + missingList.add(path); + } + return result; + } } diff --git a/src/main/java/be4rjp/sclat/manager/WeaponClassMgr.java b/src/main/java/be4rjp/sclat/manager/WeaponClassMgr.java index a71eb5a..e7a4291 100644 --- a/src/main/java/be4rjp/sclat/manager/WeaponClassMgr.java +++ b/src/main/java/be4rjp/sclat/manager/WeaponClassMgr.java @@ -26,14 +26,14 @@ public class WeaponClassMgr { public synchronized static void WeaponClassSetup() { ConfigurationSection weaponClassSection = conf.getClassConfig().getConfigurationSection("WeaponClass"); - if(weaponClassSection == null) { + if (weaponClassSection == null) { logger.warn("weaponClassSection is null"); return; } for (String classname : weaponClassSection.getKeys(false)) { ConfigurationSection weaponSection = weaponClassSection.getConfigurationSection(classname); - if(weaponSection == null) { + if (weaponSection == null) { logger.warn("weaponSection of {} is null", classname); continue; } From cf4b5f2795a7e07f64c852885adcaebd83558c1f Mon Sep 17 00:00:00 2001 From: sysnote8main Date: Sat, 24 Jan 2026 17:42:46 +0900 Subject: [PATCH 10/23] chore: move color classes --- src/main/java/be4rjp/sclat/Sclat.java | 2 +- src/main/java/be4rjp/sclat/{data => api/color}/Color.java | 2 +- .../be4rjp/sclat/{manager => api/color}/TeamColorSets.java | 3 +-- src/main/java/be4rjp/sclat/api/team/Team.java | 2 +- src/main/java/be4rjp/sclat/data/DataMgr.java | 1 + src/main/java/be4rjp/sclat/manager/MatchMgr.java | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) rename src/main/java/be4rjp/sclat/{data => api/color}/Color.java (97%) rename src/main/java/be4rjp/sclat/{manager => api/color}/TeamColorSets.java (98%) diff --git a/src/main/java/be4rjp/sclat/Sclat.java b/src/main/java/be4rjp/sclat/Sclat.java index 5fab1c8..6ce4153 100644 --- a/src/main/java/be4rjp/sclat/Sclat.java +++ b/src/main/java/be4rjp/sclat/Sclat.java @@ -8,6 +8,7 @@ import be4rjp.sclat.api.ServerType; import be4rjp.sclat.api.async.AsyncPlayerListener; import be4rjp.sclat.api.async.AsyncThreadManager; +import be4rjp.sclat.api.color.TeamColorSets; import be4rjp.sclat.api.config.CustomConfig; import be4rjp.sclat.api.equipment.EquipmentServer; import be4rjp.sclat.api.holo.PlayerHolograms; @@ -31,7 +32,6 @@ import be4rjp.sclat.manager.PlayerReturnManager; import be4rjp.sclat.manager.RankMgr; import be4rjp.sclat.manager.ServerStatusManager; -import be4rjp.sclat.manager.TeamColorSets; import be4rjp.sclat.manager.WeaponClassMgr; import be4rjp.sclat.protocollib.SclatPacketListener; import be4rjp.sclat.tutorial.Tutorial; diff --git a/src/main/java/be4rjp/sclat/data/Color.java b/src/main/java/be4rjp/sclat/api/color/Color.java similarity index 97% rename from src/main/java/be4rjp/sclat/data/Color.java rename to src/main/java/be4rjp/sclat/api/color/Color.java index a776f7d..033a18e 100644 --- a/src/main/java/be4rjp/sclat/data/Color.java +++ b/src/main/java/be4rjp/sclat/api/color/Color.java @@ -1,5 +1,5 @@ -package be4rjp.sclat.data; +package be4rjp.sclat.api.color; import org.bukkit.ChatColor; import org.bukkit.Material; diff --git a/src/main/java/be4rjp/sclat/manager/TeamColorSets.java b/src/main/java/be4rjp/sclat/api/color/TeamColorSets.java similarity index 98% rename from src/main/java/be4rjp/sclat/manager/TeamColorSets.java rename to src/main/java/be4rjp/sclat/api/color/TeamColorSets.java index 92d86ba..2c8a2b1 100644 --- a/src/main/java/be4rjp/sclat/manager/TeamColorSets.java +++ b/src/main/java/be4rjp/sclat/api/color/TeamColorSets.java @@ -1,7 +1,6 @@ -package be4rjp.sclat.manager; +package be4rjp.sclat.api.color; import be4rjp.sclat.Sclat; -import be4rjp.sclat.data.Color; import be4rjp.sclat.data.DataMgr; import org.bukkit.ChatColor; import org.bukkit.Material; diff --git a/src/main/java/be4rjp/sclat/api/team/Team.java b/src/main/java/be4rjp/sclat/api/team/Team.java index 254ef80..01f5c6c 100644 --- a/src/main/java/be4rjp/sclat/api/team/Team.java +++ b/src/main/java/be4rjp/sclat/api/team/Team.java @@ -1,6 +1,6 @@ package be4rjp.sclat.api.team; -import be4rjp.sclat.data.Color; +import be4rjp.sclat.api.color.Color; /** * diff --git a/src/main/java/be4rjp/sclat/data/DataMgr.java b/src/main/java/be4rjp/sclat/data/DataMgr.java index 7929a88..fd953e1 100644 --- a/src/main/java/be4rjp/sclat/data/DataMgr.java +++ b/src/main/java/be4rjp/sclat/data/DataMgr.java @@ -1,6 +1,7 @@ package be4rjp.sclat.data; +import be4rjp.sclat.api.color.Color; import be4rjp.sclat.api.player.PlayerData; import be4rjp.sclat.api.team.Team; import be4rjp.sclat.api.team.TeamLoc; diff --git a/src/main/java/be4rjp/sclat/manager/MatchMgr.java b/src/main/java/be4rjp/sclat/manager/MatchMgr.java index 7399f49..67396c3 100644 --- a/src/main/java/be4rjp/sclat/manager/MatchMgr.java +++ b/src/main/java/be4rjp/sclat/manager/MatchMgr.java @@ -9,6 +9,7 @@ import be4rjp.sclat.api.SclatUtil; import be4rjp.sclat.api.ServerType; import be4rjp.sclat.api.SoundType; +import be4rjp.sclat.api.color.Color; import be4rjp.sclat.api.equipment.EquipmentServerManager; import be4rjp.sclat.api.player.PlayerData; import be4rjp.sclat.api.player.PlayerSettings; @@ -19,7 +20,6 @@ import be4rjp.sclat.api.wiremesh.Wiremesh; import be4rjp.sclat.data.Area; import be4rjp.sclat.data.BlockUpdater; -import be4rjp.sclat.data.Color; import be4rjp.sclat.data.DataMgr; import be4rjp.sclat.data.MapData; import be4rjp.sclat.data.Match; From 796447f36bc8578ec5e7e64fe9d4dde78d8ab139 Mon Sep 17 00:00:00 2001 From: sysnote8main Date: Sat, 24 Jan 2026 17:44:40 +0900 Subject: [PATCH 11/23] feat: change enchant name and move it to api package --- src/main/java/be4rjp/sclat/Sclat.java | 5 +++-- .../enchant/GlowEnchant.java} | 20 +++++++++---------- .../be4rjp/sclat/manager/WeaponClassMgr.java | 4 ++-- 3 files changed, 15 insertions(+), 14 deletions(-) rename src/main/java/be4rjp/sclat/{Glow.java => api/enchant/GlowEnchant.java} (76%) diff --git a/src/main/java/be4rjp/sclat/Sclat.java b/src/main/java/be4rjp/sclat/Sclat.java index 6ce4153..3c869bb 100644 --- a/src/main/java/be4rjp/sclat/Sclat.java +++ b/src/main/java/be4rjp/sclat/Sclat.java @@ -10,6 +10,7 @@ import be4rjp.sclat.api.async.AsyncThreadManager; import be4rjp.sclat.api.color.TeamColorSets; import be4rjp.sclat.api.config.CustomConfig; +import be4rjp.sclat.api.enchant.GlowEnchant; import be4rjp.sclat.api.equipment.EquipmentServer; import be4rjp.sclat.api.holo.PlayerHolograms; import be4rjp.sclat.api.status.StatusServer; @@ -71,7 +72,7 @@ public class Sclat extends JavaPlugin implements PluginMessageListener { public static Location lobby; - public static Glow glow; + public static GlowEnchant glowEnchant; public static List pdspList; @@ -117,7 +118,7 @@ public class Sclat extends JavaPlugin implements PluginMessageListener { @Override public void onEnable() { plugin = this; - glow = new Glow(); + glowEnchant = new GlowEnchant(); pdspList = new ArrayList<>(); diff --git a/src/main/java/be4rjp/sclat/Glow.java b/src/main/java/be4rjp/sclat/api/enchant/GlowEnchant.java similarity index 76% rename from src/main/java/be4rjp/sclat/Glow.java rename to src/main/java/be4rjp/sclat/api/enchant/GlowEnchant.java index 185aee6..2d5f2d6 100644 --- a/src/main/java/be4rjp/sclat/Glow.java +++ b/src/main/java/be4rjp/sclat/api/enchant/GlowEnchant.java @@ -1,4 +1,4 @@ -package be4rjp.sclat; +package be4rjp.sclat.api.enchant; import org.bukkit.enchantments.Enchantment; import org.bukkit.enchantments.EnchantmentTarget; @@ -8,11 +8,11 @@ import java.lang.reflect.Field; import java.util.Map; -public class Glow extends EnchantmentWrapper { +public class GlowEnchant extends EnchantmentWrapper { - private static Glow glow = null; + private static GlowEnchant glowEnchant = null; - public Glow() { + public GlowEnchant() { super("sclatg"); } @@ -42,26 +42,26 @@ public int getStartLevel() { public ItemStack enchantGlow(ItemStack is) { enableGlow(); - is.addEnchantment(glow, 1); + is.addEnchantment(glowEnchant, 1); return is; } public ItemStack removeGlow(ItemStack is) { enableGlow(); - is.removeEnchantment(glow); + is.removeEnchantment(glowEnchant); return is; } public Boolean isGlowing(ItemStack is) { enableGlow(); - return is.getEnchantments().containsKey(glow); + return is.getEnchantments().containsKey(glowEnchant); } @SuppressWarnings("unchecked") public void enableGlow() { try { - if (glow == null) { - glow = new Glow(); + if (glowEnchant == null) { + glowEnchant = new GlowEnchant(); Field f = Enchantment.class.getDeclaredField("acceptingNew"); f.setAccessible(true); f.set(null, true); @@ -69,7 +69,7 @@ public void enableGlow() { hmapf.setAccessible(true); Map hmap = (Map) hmapf.get(hmapf); if (!hmap.containsKey("sclatg")) { - Enchantment.registerEnchantment(glow); + Enchantment.registerEnchantment(glowEnchant); } } } catch (Exception ex) { diff --git a/src/main/java/be4rjp/sclat/manager/WeaponClassMgr.java b/src/main/java/be4rjp/sclat/manager/WeaponClassMgr.java index e7a4291..7e439af 100644 --- a/src/main/java/be4rjp/sclat/manager/WeaponClassMgr.java +++ b/src/main/java/be4rjp/sclat/manager/WeaponClassMgr.java @@ -53,8 +53,8 @@ public static void setWeaponClass(Player player) { // === Main weapon === ItemStack main = data.getWeaponClass().getMainWeapon().getWeaponIteamStack().clone(); if (data.getMainItemGlow()) { - Sclat.glow.enchantGlow(main); - main.addEnchantment(Sclat.glow, 1); + Sclat.glowEnchant.enchantGlow(main); + main.addEnchantment(Sclat.glowEnchant, 1); } player.getInventory().setItem(0, main); From d2e121a80eb898df9005b78178905cac0a38e890 Mon Sep 17 00:00:00 2001 From: sysnote8main Date: Sat, 24 Jan 2026 17:56:34 +0900 Subject: [PATCH 12/23] chore: more simple player settings handling --- .../java/be4rjp/sclat/manager/SettingMgr.java | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/src/main/java/be4rjp/sclat/manager/SettingMgr.java b/src/main/java/be4rjp/sclat/manager/SettingMgr.java index 62abba2..9486026 100644 --- a/src/main/java/be4rjp/sclat/manager/SettingMgr.java +++ b/src/main/java/be4rjp/sclat/manager/SettingMgr.java @@ -11,24 +11,26 @@ public class SettingMgr { public static void setSettings(PlayerSettings settings, Player player) { String uuid = player.getUniqueId().toString(); String def = "011111111"; - if (conf.getPlayerSettings().contains("Settings." + uuid)) { - if (conf.getPlayerSettings().getString("Settings." + uuid).charAt(1) == '0') + String settingStr = conf.getPlayerSettings().getString("Settings." + uuid); + if (settingStr != null) { + char[] options = settingStr.toCharArray(); + if (options[0] == '0') + settings.S_PlayBGM(); + if (options[1] == '0') settings.S_ShowEffect_MainWeaponInk(); - if (conf.getPlayerSettings().getString("Settings." + uuid).charAt(2) == '0') + if (options[2] == '0') settings.S_ShowEffect_ChargerLine(); - if (conf.getPlayerSettings().getString("Settings." + uuid).charAt(3) == '0') + if (options[3] == '0') settings.S_ShowEffect_SPWeapon(); - if (conf.getPlayerSettings().getString("Settings." + uuid).charAt(4) == '0') + if (options[4] == '0') settings.S_ShowEffect_SPWeaponRegion(); - if (conf.getPlayerSettings().getString("Settings." + uuid).charAt(5) == '0') + if (options[5] == '0') settings.S_ShowSnowBall(); - if (conf.getPlayerSettings().getString("Settings." + uuid).charAt(0) == '0') - settings.S_PlayBGM(); - if (conf.getPlayerSettings().getString("Settings." + uuid).charAt(6) == '0') + if (options[6] == '0') settings.S_ShowEffect_Bomb(); - if (conf.getPlayerSettings().getString("Settings." + uuid).charAt(7) == '0') + if (options[7] == '0') settings.S_ShowEffect_BombEx(); - if (conf.getPlayerSettings().getString("Settings." + uuid).charAt(8) == '0') + if (options[8] == '0') settings.S_doChargeKeep(); } else { conf.getPlayerSettings().set("Settings." + uuid, def); From 48d5836879f9765147be08df1e1ca9e340c9cf2d Mon Sep 17 00:00:00 2001 From: sysnote8main Date: Sat, 24 Jan 2026 17:59:07 +0900 Subject: [PATCH 13/23] chore: extract to variable of mainWeapon --- src/main/java/be4rjp/sclat/manager/WeaponClassMgr.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/java/be4rjp/sclat/manager/WeaponClassMgr.java b/src/main/java/be4rjp/sclat/manager/WeaponClassMgr.java index 7e439af..f2f1af4 100644 --- a/src/main/java/be4rjp/sclat/manager/WeaponClassMgr.java +++ b/src/main/java/be4rjp/sclat/manager/WeaponClassMgr.java @@ -5,6 +5,7 @@ import be4rjp.sclat.api.config.WeaponConfig; import be4rjp.sclat.api.player.PlayerData; import be4rjp.sclat.data.DataMgr; +import be4rjp.sclat.data.MainWeapon; import be4rjp.sclat.data.WeaponClass; import org.bukkit.ChatColor; import org.bukkit.Material; @@ -51,7 +52,8 @@ public static void setWeaponClass(Player player) { PlayerData data = DataMgr.getPlayerData(player); // === Main weapon === - ItemStack main = data.getWeaponClass().getMainWeapon().getWeaponIteamStack().clone(); + MainWeapon mainWeapon = data.getWeaponClass().getMainWeapon(); + ItemStack main = mainWeapon.getWeaponIteamStack().clone(); if (data.getMainItemGlow()) { Sclat.glowEnchant.enchantGlow(main); main.addEnchantment(Sclat.glowEnchant, 1); @@ -59,8 +61,8 @@ public static void setWeaponClass(Player player) { player.getInventory().setItem(0, main); // If maneuver is main weapon - if (data.getWeaponClass().getMainWeapon().getIsManeuver()) { - player.getInventory().setItem(40, data.getWeaponClass().getMainWeapon().getWeaponIteamStack().clone()); + if (mainWeapon.getIsManeuver()) { + player.getInventory().setItem(40, mainWeapon.getWeaponIteamStack().clone()); } // === Sub weapon === From 84ae24b146c9fd58f9d9f4dec309e007fae3efe6 Mon Sep 17 00:00:00 2001 From: sysnote8main Date: Sat, 24 Jan 2026 18:08:34 +0900 Subject: [PATCH 14/23] feat: split ranking classes --- src/main/java/be4rjp/sclat/Sclat.java | 4 +- .../sclat/api/holo/RankingHolograms.java | 19 +- .../be4rjp/sclat/api/rank/RankingUpdater.java | 130 +++++++++++ .../java/be4rjp/sclat/api/rank/Ratings.java | 79 +++++++ .../be4rjp/sclat/api/status/StatusServer.java | 4 +- src/main/java/be4rjp/sclat/gui/OpenGUI.java | 4 +- .../sclat/lobby/LobbyScoreboardRunnable.java | 4 +- .../java/be4rjp/sclat/manager/MatchMgr.java | 7 +- .../be4rjp/sclat/manager/PlayerStatusMgr.java | 5 +- .../java/be4rjp/sclat/manager/RankMgr.java | 219 ------------------ 10 files changed, 234 insertions(+), 241 deletions(-) create mode 100644 src/main/java/be4rjp/sclat/api/rank/RankingUpdater.java create mode 100644 src/main/java/be4rjp/sclat/api/rank/Ratings.java delete mode 100644 src/main/java/be4rjp/sclat/manager/RankMgr.java diff --git a/src/main/java/be4rjp/sclat/Sclat.java b/src/main/java/be4rjp/sclat/Sclat.java index 3c869bb..9d8bff4 100644 --- a/src/main/java/be4rjp/sclat/Sclat.java +++ b/src/main/java/be4rjp/sclat/Sclat.java @@ -13,6 +13,7 @@ import be4rjp.sclat.api.enchant.GlowEnchant; import be4rjp.sclat.api.equipment.EquipmentServer; import be4rjp.sclat.api.holo.PlayerHolograms; +import be4rjp.sclat.api.rank.RankingUpdater; import be4rjp.sclat.api.status.StatusServer; import be4rjp.sclat.api.wiremesh.Wiremesh; import be4rjp.sclat.commands.sclatCommandExecutor; @@ -31,7 +32,6 @@ import be4rjp.sclat.manager.MatchMgr; import be4rjp.sclat.manager.NoteBlockAPIMgr; import be4rjp.sclat.manager.PlayerReturnManager; -import be4rjp.sclat.manager.RankMgr; import be4rjp.sclat.manager.ServerStatusManager; import be4rjp.sclat.manager.WeaponClassMgr; import be4rjp.sclat.protocollib.SclatPacketListener; @@ -333,7 +333,7 @@ public void onEnable() { // -----------------------Ranking Holograms--------------------------- if (type == ServerType.LOBBY) { - RankMgr.makeRankingTask(); + RankingUpdater.makeRankingTask(); } // ------------------------------------------------------------------- diff --git a/src/main/java/be4rjp/sclat/api/holo/RankingHolograms.java b/src/main/java/be4rjp/sclat/api/holo/RankingHolograms.java index 8fc5769..f146f85 100644 --- a/src/main/java/be4rjp/sclat/api/holo/RankingHolograms.java +++ b/src/main/java/be4rjp/sclat/api/holo/RankingHolograms.java @@ -1,9 +1,10 @@ package be4rjp.sclat.api.holo; import be4rjp.sclat.Sclat; +import be4rjp.sclat.api.rank.RankingUpdater; +import be4rjp.sclat.api.rank.Ratings; import be4rjp.sclat.data.RankingType; import be4rjp.sclat.manager.PlayerStatusMgr; -import be4rjp.sclat.manager.RankMgr; import net.minecraft.server.v1_15_R1.EntityArmorStand; import net.minecraft.server.v1_15_R1.PacketPlayOutEntityDestroy; import net.minecraft.server.v1_15_R1.PacketPlayOutSpawnEntityLiving; @@ -210,7 +211,7 @@ public void run() { list.add(armorStand); if (rankingType == RankingType.TOTAL) { - String uuid = RankMgr.ranking.get(i); + String uuid = RankingUpdater.ranking.get(i); String mcid = conf.getUUIDCash().getString(uuid); int rank = PlayerStatusMgr.getRank(uuid); @@ -218,14 +219,14 @@ public void run() { if (rank != 0) { armorStand.setCustomName( CraftChatMessage.fromStringOrNull("§e" + String.valueOf(i + 1) + "位 §f" + mcid - + " §6Rank : §r" + rank + " [§b " + RankMgr.toABCRank(rank) + " §f]")); + + " §6Rank : §r" + rank + " [§b " + Ratings.toABCRank(rank) + " §f]")); } else { armorStand.setCustomName(CraftChatMessage.fromStringOrNull("--")); } } if (rankingType == RankingType.KILL) { - String uuid = RankMgr.killRanking.get(i); + String uuid = RankingUpdater.killRanking.get(i); String mcid = conf.getUUIDCash().getString(uuid); int kill = PlayerStatusMgr.getKill(uuid); @@ -239,7 +240,7 @@ public void run() { } if (rankingType == RankingType.PAINT) { - String uuid = RankMgr.paintRanking.get(i); + String uuid = RankingUpdater.paintRanking.get(i); String mcid = conf.getUUIDCash().getString(uuid); int paint = PlayerStatusMgr.getPaint(uuid); @@ -261,7 +262,7 @@ public void run() { if (rankingType == RankingType.TOTAL) { String mcid = player.getName(); int ranking = 1; - for (String uuid : RankMgr.ranking) { + for (String uuid : RankingUpdater.ranking) { if (uuid.equals(player.getUniqueId().toString())) break; ranking++; @@ -270,13 +271,13 @@ public void run() { int rank = PlayerStatusMgr.getRank(player.getUniqueId().toString()); you.setCustomName(CraftChatMessage.fromStringOrNull("§aYou ->> §e" + (rank == 0 ? "-" : ranking) - + "位 §f" + mcid + " §6Rank : §r" + rank + " [§b " + RankMgr.toABCRank(rank) + " §f]")); + + "位 §f" + mcid + " §6Rank : §r" + rank + " [§b " + Ratings.toABCRank(rank) + " §f]")); } if (rankingType == RankingType.KILL) { String mcid = player.getName(); int ranking = 1; - for (String uuid : RankMgr.killRanking) { + for (String uuid : RankingUpdater.killRanking) { if (uuid.equals(player.getUniqueId().toString())) break; ranking++; @@ -291,7 +292,7 @@ public void run() { if (rankingType == RankingType.PAINT) { String mcid = player.getName(); int ranking = 1; - for (String uuid : RankMgr.paintRanking) { + for (String uuid : RankingUpdater.paintRanking) { if (uuid.equals(player.getUniqueId().toString())) break; ranking++; diff --git a/src/main/java/be4rjp/sclat/api/rank/RankingUpdater.java b/src/main/java/be4rjp/sclat/api/rank/RankingUpdater.java new file mode 100644 index 0000000..d41958b --- /dev/null +++ b/src/main/java/be4rjp/sclat/api/rank/RankingUpdater.java @@ -0,0 +1,130 @@ +package be4rjp.sclat.api.rank; + +import be4rjp.sclat.Sclat; +import be4rjp.sclat.api.holo.RankingHolograms; +import org.bukkit.entity.Player; +import org.bukkit.scheduler.BukkitRunnable; + +import java.util.ArrayList; +import java.util.Comparator; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.TreeMap; + +import static be4rjp.sclat.Sclat.conf; + +public class RankingUpdater { + public static List ranking = new ArrayList<>(); + public static List killRanking = new ArrayList<>(); + public static List paintRanking = new ArrayList<>(); + + public static void makeRankingAsync() { + BukkitRunnable async = new BukkitRunnable() { + @Override + public void run() { + try { + // かぶらないようにマッピング + Map playerMap = new HashMap<>(); + for (String uuid : conf.getPlayerStatus().getConfigurationSection("Status").getKeys(false)) { + int rate = conf.getPlayerStatus().getInt("Status." + uuid + ".Rank"); + if (rate == 0) + continue; + + while (playerMap.containsKey(rate)) { + rate++; + } + playerMap.put(rate, uuid); + } + + Map treeMap = new TreeMap<>(Comparator.reverseOrder()); + treeMap.putAll(playerMap); + ranking = new ArrayList<>(); + for (Integer key : treeMap.keySet()) + ranking.add(treeMap.get(key)); + } catch (Exception e) { + } + } + }; + async.runTaskAsynchronously(Sclat.getPlugin()); + } + + public static void makeKillRankingAsync() { + BukkitRunnable async = new BukkitRunnable() { + @Override + public void run() { + try { + // かぶらないようにマッピング + Map playerMap = new HashMap<>(); + for (String uuid : conf.getPlayerStatus().getConfigurationSection("Status").getKeys(false)) { + int rate = conf.getPlayerStatus().getInt("Status." + uuid + ".Kill"); + if (rate == 0) + continue; + + while (playerMap.containsKey(rate)) { + rate++; + } + playerMap.put(rate, uuid); + } + + Map treeMap = new TreeMap<>(Comparator.reverseOrder()); + treeMap.putAll(playerMap); + killRanking = new ArrayList<>(); + for (Integer key : treeMap.keySet()) + killRanking.add(treeMap.get(key)); + } catch (Exception e) { + e.printStackTrace(); + } + } + }; + async.runTaskAsynchronously(Sclat.getPlugin()); + } + + public static void makePaintRankingAsync() { + BukkitRunnable async = new BukkitRunnable() { + @Override + public void run() { + try { + // かぶらないようにマッピング + Map playerMap = new HashMap<>(); + for (String uuid : conf.getPlayerStatus().getConfigurationSection("Status").getKeys(false)) { + int rate = conf.getPlayerStatus().getInt("Status." + uuid + ".Paint"); + if (rate == 0) + continue; + + while (playerMap.containsKey(rate)) { + rate++; + } + playerMap.put(rate, uuid); + } + + Map treeMap = new TreeMap<>(Comparator.reverseOrder()); + treeMap.putAll(playerMap); + paintRanking = new ArrayList<>(); + for (Integer key : treeMap.keySet()) + paintRanking.add(treeMap.get(key)); + } catch (Exception e) { + } + } + }; + async.runTaskAsynchronously(Sclat.getPlugin()); + } + + public static void makeRankingTask() { + BukkitRunnable task = new BukkitRunnable() { + @Override + public void run() { + makeRankingAsync(); + makeKillRankingAsync(); + makePaintRankingAsync(); + for (Player player : Sclat.getPlugin().getServer().getOnlinePlayers()) { + try { + Sclat.playerHolograms.ifPresent(player, RankingHolograms::refreshRankingAsync); + } catch (Exception e) { + } + } + } + }; + task.runTaskTimer(Sclat.getPlugin(), 0, conf.getConfig().getInt("MakeRankingPeriod")); + } +} diff --git a/src/main/java/be4rjp/sclat/api/rank/Ratings.java b/src/main/java/be4rjp/sclat/api/rank/Ratings.java new file mode 100644 index 0000000..4efda7e --- /dev/null +++ b/src/main/java/be4rjp/sclat/api/rank/Ratings.java @@ -0,0 +1,79 @@ + +package be4rjp.sclat.api.rank; + +import be4rjp.sclat.manager.PlayerStatusMgr; +import org.bukkit.entity.Player; + +/** + * + * @author Be4rJP + */ +public class Ratings { + + private static final String[] ranks = {"E", "D-", "D", "D+", "C-", "C", "C+", "B-", "B", "B+", "A-", "A", "A+", + "S-", "S", "S+", "MASTER"}; + private static final int MAX_RATE = (ranks.length - 1) * 500; + + // レートを500単位で区切ってランク付けする + public static String toABCRank(int ir) { + return ir >= 0 ? ranks[ir <= MAX_RATE ? ir / 500 : ranks.length - 1] : "UnRanked"; + } + public static int IndicateRankPointmove(Player p, int rankPoint) { + if (rankPoint == 0) + return 0; + + int rank = PlayerStatusMgr.getRank(p); + + double rank_Rate = 1.0; + + if (rank < 500) { + rank_Rate = 3.0; + } else if (rank < 2000) { + rank_Rate = 2.0; + } else if (rank < 3500) { + rank_Rate = 1.5; + } else if (rank < 6500) { + rank_Rate = 1.0; + } else if (rank < 8000) { + rank_Rate = 0.75; + } else if (rank < 20000) { + rank_Rate = 0.5; + } else { + rank_Rate = 0.2; + } + int plus = (int) ((double) rankPoint * rank_Rate); + return plus; + + } + public static void addPlayerRankPoint(String uuid, int rankPoint) { + if (rankPoint == 0) + return; + + int rank = PlayerStatusMgr.getRank(uuid); + + // int MAX_RATE = ranks.length * 500; + + double rank_Rate = 1.0; + + if (rank < 500) { + rank_Rate = 3.0; + } else if (rank < 2000) { + rank_Rate = 2.0; + } else if (rank < 3500) { + rank_Rate = 1.5; + } else if (rank < 6500) { + rank_Rate = 1.0; + } else if (rank < 8000) { + rank_Rate = 0.75; + } else if (rank < 20000) { + rank_Rate = 0.5; + } else { + rank_Rate = 0.2; + } + + int plus = (int) ((double) rankPoint * rank_Rate); + if (plus > 0) { + PlayerStatusMgr.addRank(uuid, plus); + } + } +} diff --git a/src/main/java/be4rjp/sclat/api/status/StatusServer.java b/src/main/java/be4rjp/sclat/api/status/StatusServer.java index 0925dff..9f592b2 100644 --- a/src/main/java/be4rjp/sclat/api/status/StatusServer.java +++ b/src/main/java/be4rjp/sclat/api/status/StatusServer.java @@ -4,9 +4,9 @@ import be4rjp.sclat.api.MessageType; import be4rjp.sclat.api.SclatUtil; import be4rjp.sclat.api.SoundType; +import be4rjp.sclat.api.rank.Ratings; import be4rjp.sclat.manager.PlayerReturnManager; import be4rjp.sclat.manager.PlayerStatusMgr; -import be4rjp.sclat.manager.RankMgr; import be4rjp.sclat.manager.ServerStatusManager; import java.io.BufferedReader; @@ -114,7 +114,7 @@ public void run() { PlayerStatusMgr.addMoney(args[3], Integer.parseInt(args[2])); break; case "rank" : - RankMgr.addPlayerRankPoint(args[3], Integer.parseInt(args[2])); + Ratings.addPlayerRankPoint(args[3], Integer.parseInt(args[2])); break; case "level" : PlayerStatusMgr.addLv(args[3], Integer.parseInt(args[2])); diff --git a/src/main/java/be4rjp/sclat/gui/OpenGUI.java b/src/main/java/be4rjp/sclat/gui/OpenGUI.java index 3cc7c63..ded0aa5 100644 --- a/src/main/java/be4rjp/sclat/gui/OpenGUI.java +++ b/src/main/java/be4rjp/sclat/gui/OpenGUI.java @@ -4,12 +4,12 @@ import be4rjp.sclat.Sclat; import be4rjp.sclat.api.ServerType; import be4rjp.sclat.api.player.PlayerData; +import be4rjp.sclat.api.rank.Ratings; import be4rjp.sclat.data.DataMgr; import be4rjp.sclat.data.Match; import be4rjp.sclat.emblem.EmblemManager; import be4rjp.sclat.manager.MatchMgr; import be4rjp.sclat.manager.PlayerStatusMgr; -import be4rjp.sclat.manager.RankMgr; import be4rjp.sclat.tutorial.Tutorial; import be4rjp.sclat.weapon.Gear; import org.bukkit.Bukkit; @@ -107,7 +107,7 @@ public static void openMenu(Player player) { statusMeta.setDisplayName("§r§e" + player.getName() + " のステータス"); List lores = new ArrayList(); lores.add("§r§6Rank : §r" + PlayerStatusMgr.getRank(player) + " [ §b" - + RankMgr.toABCRank(PlayerStatusMgr.getRank(player)) + " §r]"); + + Ratings.toABCRank(PlayerStatusMgr.getRank(player)) + " §r]"); lores.add("§r§6Lv : §r" + PlayerStatusMgr.getLv(player)); lores.add("§r§bKill(s) : §r" + PlayerStatusMgr.getKill(player)); lores.add("§r§bPaint(s) : §r" + PlayerStatusMgr.getPaint(player)); diff --git a/src/main/java/be4rjp/sclat/lobby/LobbyScoreboardRunnable.java b/src/main/java/be4rjp/sclat/lobby/LobbyScoreboardRunnable.java index b249e99..2e530b0 100644 --- a/src/main/java/be4rjp/sclat/lobby/LobbyScoreboardRunnable.java +++ b/src/main/java/be4rjp/sclat/lobby/LobbyScoreboardRunnable.java @@ -2,12 +2,12 @@ import be4rjp.sclat.Sclat; import be4rjp.sclat.api.player.PlayerData; +import be4rjp.sclat.api.rank.Ratings; import be4rjp.sclat.api.status.ServerStatus; import be4rjp.sclat.api.utils.ObjectiveUtil; import be4rjp.sclat.api.utils.TextAnimation; import be4rjp.sclat.data.DataMgr; import be4rjp.sclat.manager.PlayerStatusMgr; -import be4rjp.sclat.manager.RankMgr; import be4rjp.sclat.manager.ServerStatusManager; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -57,7 +57,7 @@ public void run() { lines.add("§6§lステータス »"); lines.add("§e COIN: §r" + PlayerStatusMgr.getMoney(player)); lines.add("§e TICKET: §r" + PlayerStatusMgr.getTicket(player)); - lines.add("§b RANK: §r" + RankMgr.toABCRank(PlayerStatusMgr.getRank(player)) + " [" + lines.add("§b RANK: §r" + Ratings.toABCRank(PlayerStatusMgr.getRank(player)) + " [" + PlayerStatusMgr.getRank(player) + "]"); lines.add(" "); lines.add("§9§lサーバー »"); diff --git a/src/main/java/be4rjp/sclat/manager/MatchMgr.java b/src/main/java/be4rjp/sclat/manager/MatchMgr.java index 67396c3..883b1c1 100644 --- a/src/main/java/be4rjp/sclat/manager/MatchMgr.java +++ b/src/main/java/be4rjp/sclat/manager/MatchMgr.java @@ -13,6 +13,7 @@ import be4rjp.sclat.api.equipment.EquipmentServerManager; import be4rjp.sclat.api.player.PlayerData; import be4rjp.sclat.api.player.PlayerSettings; +import be4rjp.sclat.api.rank.Ratings; import be4rjp.sclat.api.song.NoteBlockSong; import be4rjp.sclat.api.status.StatusClient; import be4rjp.sclat.api.team.Team; @@ -1517,7 +1518,7 @@ else if (team1 == 100) if (data.getMatch().getJoinedPlayerCount() == 1 || !conf.getConfig().getBoolean("RateMatch")) pRank = 0; - int pMoveRank = RankMgr.IndicateRankPointmove(p, pRank); + int pMoveRank = Ratings.IndicateRankPointmove(p, pRank); PlayerStatusMgr.addRank(p, pRank); PlayerStatusMgr.addLv(p, pLv); @@ -1555,14 +1556,14 @@ else if (team1 == 100) SclatUtil.sendMessage( ChatColor.GOLD + " RankPoint : " + ChatColor.RESET + String.valueOf(pRank) + (Sclat.type == ServerType.NORMAL - ? " [ §b" + RankMgr.toABCRank(getRank(player)) + " §r]" + ? " [ §b" + Ratings.toABCRank(getRank(player)) + " §r]" : ""), MessageType.PLAYER, p); else SclatUtil.sendMessage( ChatColor.GOLD + " RankPoint : " + ChatColor.RESET + "+" + String.valueOf(pMoveRank) + (Sclat.type == ServerType.NORMAL - ? " [ §b" + RankMgr.toABCRank(getRank(player)) + " §r]" + ? " [ §b" + Ratings.toABCRank(getRank(player)) + " §r]" : ""), MessageType.PLAYER, p); SclatUtil.sendMessage("", MessageType.PLAYER, p); diff --git a/src/main/java/be4rjp/sclat/manager/PlayerStatusMgr.java b/src/main/java/be4rjp/sclat/manager/PlayerStatusMgr.java index edcefff..2d01f80 100644 --- a/src/main/java/be4rjp/sclat/manager/PlayerStatusMgr.java +++ b/src/main/java/be4rjp/sclat/manager/PlayerStatusMgr.java @@ -2,6 +2,7 @@ package be4rjp.sclat.manager; import be4rjp.sclat.Sclat; +import be4rjp.sclat.api.rank.Ratings; import com.mojang.authlib.GameProfile; import net.minecraft.server.v1_15_R1.DataWatcherRegistry; import net.minecraft.server.v1_15_R1.EntityArmorStand; @@ -117,7 +118,7 @@ public static void sendHologram(Player player) { as1.setCustomNameVisible(true); as1.setNoGravity(true); as1.setCustomName(CraftChatMessage.fromStringOrNull("§6Rank : §r" + String.valueOf(getRank(player)) + " [ §b" - + RankMgr.toABCRank(getRank(player)) + " §r]")); + + Ratings.toABCRank(getRank(player)) + " §r]")); list1.put(player, as1); @@ -153,7 +154,7 @@ public void run() { EntityArmorStand as1 = list1.get(player); connection.sendPacket(new PacketPlayOutEntityDestroy(as1.getBukkitEntity().getEntityId())); as1.setCustomName(CraftChatMessage.fromStringOrNull("§6Rank : §r" + String.valueOf(getRank(player)) - + " [ §b" + RankMgr.toABCRank(getRank(player)) + " §r]")); + + " [ §b" + Ratings.toABCRank(getRank(player)) + " §r]")); connection.sendPacket(new PacketPlayOutSpawnEntityLiving(as1)); EntityArmorStand as2 = list2.get(player); diff --git a/src/main/java/be4rjp/sclat/manager/RankMgr.java b/src/main/java/be4rjp/sclat/manager/RankMgr.java deleted file mode 100644 index a94e4bc..0000000 --- a/src/main/java/be4rjp/sclat/manager/RankMgr.java +++ /dev/null @@ -1,219 +0,0 @@ - -package be4rjp.sclat.manager; - -import be4rjp.sclat.Sclat; -import be4rjp.sclat.api.holo.RankingHolograms; -import org.bukkit.entity.Player; -import org.bukkit.scheduler.BukkitRunnable; - -import java.util.ArrayList; -import java.util.Comparator; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.TreeMap; - -import static be4rjp.sclat.Sclat.conf; - -/** - * - * @author Be4rJP - */ -public class RankMgr { - - private static final String[] ranks = {"E", "D-", "D", "D+", "C-", "C", "C+", "B-", "B", "B+", "A-", "A", "A+", - "S-", "S", "S+", "MASTER"}; - private static final int MAX_RATE = (ranks.length - 1) * 500; - - public static List ranking = new ArrayList<>(); - public static List killRanking = new ArrayList<>(); - public static List paintRanking = new ArrayList<>(); - - // レートを500単位で区切ってランク付けする - public static String toABCRank(int ir) { - return ir >= 0 ? ranks[ir <= MAX_RATE ? ir / 500 : ranks.length - 1] : "UnRanked"; - } - public static int IndicateRankPointmove(Player p, int rankPoint) { - if (rankPoint == 0) - return 0; - - int rank = PlayerStatusMgr.getRank(p); - - double rank_Rate = 1.0; - - if (rank < 500) { - rank_Rate = 3.0; - } else if (rank < 2000) { - rank_Rate = 2.0; - } else if (rank < 3500) { - rank_Rate = 1.5; - } else if (rank < 6500) { - rank_Rate = 1.0; - } else if (rank < 8000) { - rank_Rate = 0.75; - } else if (rank < 20000) { - rank_Rate = 0.5; - } else { - rank_Rate = 0.2; - } - int plus = (int) ((double) rankPoint * rank_Rate); - return plus; - - } - public static void addPlayerRankPoint(String uuid, int rankPoint) { - if (rankPoint == 0) - return; - - int rank = PlayerStatusMgr.getRank(uuid); - - // int MAX_RATE = ranks.length * 500; - - double rank_Rate = 1.0; - - if (rank < 500) { - rank_Rate = 3.0; - } else if (rank < 2000) { - rank_Rate = 2.0; - } else if (rank < 3500) { - rank_Rate = 1.5; - } else if (rank < 6500) { - rank_Rate = 1.0; - } else if (rank < 8000) { - rank_Rate = 0.75; - } else if (rank < 20000) { - rank_Rate = 0.5; - } else { - rank_Rate = 0.2; - } - - // if(rank >= MAX_RATE) { - // if(rankPoint < 0){ - // double minusRate = (double)MAX_RATE / ((double)MAX_RATE - (double)rank); - // int minus = (int)((double)rankPoint * minusRate); - // PlayerStatusMgr.addRank(uuid, -minus); - // } - // return; - // } - int plus = (int) ((double) rankPoint * rank_Rate); - if (plus > 0) { - // double plusRate = ((double)MAX_RATE - (double)rank) / (double)MAX_RATE; - // int plus = (int)((double)rankPoint * plusRate); - PlayerStatusMgr.addRank(uuid, plus); - } - // }else{ - // double minusRate = (double)MAX_RATE / ((double)MAX_RATE - (double)rank); - // int minus = (int)((double)rankPoint * minusRate); - // PlayerStatusMgr.addRank(uuid, minus); - // } - - } - - public static void makeRankingAsync() { - BukkitRunnable async = new BukkitRunnable() { - @Override - public void run() { - try { - // かぶらないようにマッピング - Map playerMap = new HashMap<>(); - for (String uuid : conf.getPlayerStatus().getConfigurationSection("Status").getKeys(false)) { - int rate = conf.getPlayerStatus().getInt("Status." + uuid + ".Rank"); - if (rate == 0) - continue; - - while (playerMap.containsKey(rate)) { - rate++; - } - playerMap.put(rate, uuid); - } - - Map treeMap = new TreeMap<>(Comparator.reverseOrder()); - treeMap.putAll(playerMap); - ranking = new ArrayList<>(); - for (Integer key : treeMap.keySet()) - ranking.add(treeMap.get(key)); - } catch (Exception e) { - } - } - }; - async.runTaskAsynchronously(Sclat.getPlugin()); - } - - public static void makeKillRankingAsync() { - BukkitRunnable async = new BukkitRunnable() { - @Override - public void run() { - try { - // かぶらないようにマッピング - Map playerMap = new HashMap<>(); - for (String uuid : conf.getPlayerStatus().getConfigurationSection("Status").getKeys(false)) { - int rate = conf.getPlayerStatus().getInt("Status." + uuid + ".Kill"); - if (rate == 0) - continue; - - while (playerMap.containsKey(rate)) { - rate++; - } - playerMap.put(rate, uuid); - } - - Map treeMap = new TreeMap<>(Comparator.reverseOrder()); - treeMap.putAll(playerMap); - killRanking = new ArrayList<>(); - for (Integer key : treeMap.keySet()) - killRanking.add(treeMap.get(key)); - } catch (Exception e) { - e.printStackTrace(); - } - } - }; - async.runTaskAsynchronously(Sclat.getPlugin()); - } - - public static void makePaintRankingAsync() { - BukkitRunnable async = new BukkitRunnable() { - @Override - public void run() { - try { - // かぶらないようにマッピング - Map playerMap = new HashMap<>(); - for (String uuid : conf.getPlayerStatus().getConfigurationSection("Status").getKeys(false)) { - int rate = conf.getPlayerStatus().getInt("Status." + uuid + ".Paint"); - if (rate == 0) - continue; - - while (playerMap.containsKey(rate)) { - rate++; - } - playerMap.put(rate, uuid); - } - - Map treeMap = new TreeMap<>(Comparator.reverseOrder()); - treeMap.putAll(playerMap); - paintRanking = new ArrayList<>(); - for (Integer key : treeMap.keySet()) - paintRanking.add(treeMap.get(key)); - } catch (Exception e) { - } - } - }; - async.runTaskAsynchronously(Sclat.getPlugin()); - } - - public static void makeRankingTask() { - BukkitRunnable task = new BukkitRunnable() { - @Override - public void run() { - makeRankingAsync(); - makeKillRankingAsync(); - makePaintRankingAsync(); - for (Player player : Sclat.getPlugin().getServer().getOnlinePlayers()) { - try { - Sclat.playerHolograms.ifPresent(player, RankingHolograms::refreshRankingAsync); - } catch (Exception e) { - } - } - } - }; - task.runTaskTimer(Sclat.getPlugin(), 0, conf.getConfig().getInt("MakeRankingPeriod")); - } -} From a9210ae9189c56830e6ebd6ad6bc54c55ae3ebe3 Mon Sep 17 00:00:00 2001 From: sysnote8main Date: Sat, 24 Jan 2026 18:10:40 +0900 Subject: [PATCH 15/23] chore: apply format --- .../be4rjp/sclat/api/rank/RankingUpdater.java | 204 +++++++++--------- .../java/be4rjp/sclat/manager/GameMgr.java | 3 +- 2 files changed, 103 insertions(+), 104 deletions(-) diff --git a/src/main/java/be4rjp/sclat/api/rank/RankingUpdater.java b/src/main/java/be4rjp/sclat/api/rank/RankingUpdater.java index d41958b..73c3b41 100644 --- a/src/main/java/be4rjp/sclat/api/rank/RankingUpdater.java +++ b/src/main/java/be4rjp/sclat/api/rank/RankingUpdater.java @@ -15,116 +15,116 @@ import static be4rjp.sclat.Sclat.conf; public class RankingUpdater { - public static List ranking = new ArrayList<>(); - public static List killRanking = new ArrayList<>(); - public static List paintRanking = new ArrayList<>(); + public static List ranking = new ArrayList<>(); + public static List killRanking = new ArrayList<>(); + public static List paintRanking = new ArrayList<>(); - public static void makeRankingAsync() { - BukkitRunnable async = new BukkitRunnable() { - @Override - public void run() { - try { - // かぶらないようにマッピング - Map playerMap = new HashMap<>(); - for (String uuid : conf.getPlayerStatus().getConfigurationSection("Status").getKeys(false)) { - int rate = conf.getPlayerStatus().getInt("Status." + uuid + ".Rank"); - if (rate == 0) - continue; + public static void makeRankingAsync() { + BukkitRunnable async = new BukkitRunnable() { + @Override + public void run() { + try { + // かぶらないようにマッピング + Map playerMap = new HashMap<>(); + for (String uuid : conf.getPlayerStatus().getConfigurationSection("Status").getKeys(false)) { + int rate = conf.getPlayerStatus().getInt("Status." + uuid + ".Rank"); + if (rate == 0) + continue; - while (playerMap.containsKey(rate)) { - rate++; - } - playerMap.put(rate, uuid); - } + while (playerMap.containsKey(rate)) { + rate++; + } + playerMap.put(rate, uuid); + } - Map treeMap = new TreeMap<>(Comparator.reverseOrder()); - treeMap.putAll(playerMap); - ranking = new ArrayList<>(); - for (Integer key : treeMap.keySet()) - ranking.add(treeMap.get(key)); - } catch (Exception e) { - } - } - }; - async.runTaskAsynchronously(Sclat.getPlugin()); - } + Map treeMap = new TreeMap<>(Comparator.reverseOrder()); + treeMap.putAll(playerMap); + ranking = new ArrayList<>(); + for (Integer key : treeMap.keySet()) + ranking.add(treeMap.get(key)); + } catch (Exception e) { + } + } + }; + async.runTaskAsynchronously(Sclat.getPlugin()); + } - public static void makeKillRankingAsync() { - BukkitRunnable async = new BukkitRunnable() { - @Override - public void run() { - try { - // かぶらないようにマッピング - Map playerMap = new HashMap<>(); - for (String uuid : conf.getPlayerStatus().getConfigurationSection("Status").getKeys(false)) { - int rate = conf.getPlayerStatus().getInt("Status." + uuid + ".Kill"); - if (rate == 0) - continue; + public static void makeKillRankingAsync() { + BukkitRunnable async = new BukkitRunnable() { + @Override + public void run() { + try { + // かぶらないようにマッピング + Map playerMap = new HashMap<>(); + for (String uuid : conf.getPlayerStatus().getConfigurationSection("Status").getKeys(false)) { + int rate = conf.getPlayerStatus().getInt("Status." + uuid + ".Kill"); + if (rate == 0) + continue; - while (playerMap.containsKey(rate)) { - rate++; - } - playerMap.put(rate, uuid); - } + while (playerMap.containsKey(rate)) { + rate++; + } + playerMap.put(rate, uuid); + } - Map treeMap = new TreeMap<>(Comparator.reverseOrder()); - treeMap.putAll(playerMap); - killRanking = new ArrayList<>(); - for (Integer key : treeMap.keySet()) - killRanking.add(treeMap.get(key)); - } catch (Exception e) { - e.printStackTrace(); - } - } - }; - async.runTaskAsynchronously(Sclat.getPlugin()); - } + Map treeMap = new TreeMap<>(Comparator.reverseOrder()); + treeMap.putAll(playerMap); + killRanking = new ArrayList<>(); + for (Integer key : treeMap.keySet()) + killRanking.add(treeMap.get(key)); + } catch (Exception e) { + e.printStackTrace(); + } + } + }; + async.runTaskAsynchronously(Sclat.getPlugin()); + } - public static void makePaintRankingAsync() { - BukkitRunnable async = new BukkitRunnable() { - @Override - public void run() { - try { - // かぶらないようにマッピング - Map playerMap = new HashMap<>(); - for (String uuid : conf.getPlayerStatus().getConfigurationSection("Status").getKeys(false)) { - int rate = conf.getPlayerStatus().getInt("Status." + uuid + ".Paint"); - if (rate == 0) - continue; + public static void makePaintRankingAsync() { + BukkitRunnable async = new BukkitRunnable() { + @Override + public void run() { + try { + // かぶらないようにマッピング + Map playerMap = new HashMap<>(); + for (String uuid : conf.getPlayerStatus().getConfigurationSection("Status").getKeys(false)) { + int rate = conf.getPlayerStatus().getInt("Status." + uuid + ".Paint"); + if (rate == 0) + continue; - while (playerMap.containsKey(rate)) { - rate++; - } - playerMap.put(rate, uuid); - } + while (playerMap.containsKey(rate)) { + rate++; + } + playerMap.put(rate, uuid); + } - Map treeMap = new TreeMap<>(Comparator.reverseOrder()); - treeMap.putAll(playerMap); - paintRanking = new ArrayList<>(); - for (Integer key : treeMap.keySet()) - paintRanking.add(treeMap.get(key)); - } catch (Exception e) { - } - } - }; - async.runTaskAsynchronously(Sclat.getPlugin()); - } + Map treeMap = new TreeMap<>(Comparator.reverseOrder()); + treeMap.putAll(playerMap); + paintRanking = new ArrayList<>(); + for (Integer key : treeMap.keySet()) + paintRanking.add(treeMap.get(key)); + } catch (Exception e) { + } + } + }; + async.runTaskAsynchronously(Sclat.getPlugin()); + } - public static void makeRankingTask() { - BukkitRunnable task = new BukkitRunnable() { - @Override - public void run() { - makeRankingAsync(); - makeKillRankingAsync(); - makePaintRankingAsync(); - for (Player player : Sclat.getPlugin().getServer().getOnlinePlayers()) { - try { - Sclat.playerHolograms.ifPresent(player, RankingHolograms::refreshRankingAsync); - } catch (Exception e) { - } - } - } - }; - task.runTaskTimer(Sclat.getPlugin(), 0, conf.getConfig().getInt("MakeRankingPeriod")); - } + public static void makeRankingTask() { + BukkitRunnable task = new BukkitRunnable() { + @Override + public void run() { + makeRankingAsync(); + makeKillRankingAsync(); + makePaintRankingAsync(); + for (Player player : Sclat.getPlugin().getServer().getOnlinePlayers()) { + try { + Sclat.playerHolograms.ifPresent(player, RankingHolograms::refreshRankingAsync); + } catch (Exception e) { + } + } + } + }; + task.runTaskTimer(Sclat.getPlugin(), 0, conf.getConfig().getInt("MakeRankingPeriod")); + } } diff --git a/src/main/java/be4rjp/sclat/manager/GameMgr.java b/src/main/java/be4rjp/sclat/manager/GameMgr.java index 60cd225..5fb3e0b 100644 --- a/src/main/java/be4rjp/sclat/manager/GameMgr.java +++ b/src/main/java/be4rjp/sclat/manager/GameMgr.java @@ -52,7 +52,6 @@ import org.bukkit.craftbukkit.v1_15_R1.inventory.CraftItemStack; import org.bukkit.entity.ArmorStand; import org.bukkit.entity.ItemFrame; -import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; @@ -94,7 +93,7 @@ public void onPlayerJoin(PlayerJoinEvent e) { player.getInventory().clear(); player.getInventory().setHeldItemSlot(0); - ((LivingEntity) player).setCollidable(false); + player.setCollidable(false); // player.setDisplayName(player.getName()); if (PlayerReturnManager.isReturned(player.getUniqueId().toString())) From bda94ce3a2a73aa06635a69f6d8c3da8145bbefb Mon Sep 17 00:00:00 2001 From: sysnote8main Date: Sat, 24 Jan 2026 19:25:44 +0900 Subject: [PATCH 16/23] fix(ci): forget to add protocollib download step --- .github/workflows/build.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index db91bac..5007822 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -58,6 +58,9 @@ jobs: wget "https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar" java -jar BuildTools.jar --rev 1.15.2 + - name: Download ProtocolLib + run: wget -O ./libs/ProtocolLib.jar "https://github.com/dmulloy2/ProtocolLib/releases/download/4.8.0/ProtocolLib.jar" + - name: Build with Gradle run: ./gradlew build From 57beb8bcb1f99ae25bc04cfdf26c396673b35ec9 Mon Sep 17 00:00:00 2001 From: sysnote8main Date: Sat, 24 Jan 2026 19:26:02 +0900 Subject: [PATCH 17/23] feat: use aikar command framework instead of cloud ones --- build.gradle.kts | 2 +- gradle/libs.versions.toml | 8 ++------ 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index d3ba3c8..2b3b693 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -33,7 +33,7 @@ dependencies { compileOnly(libs.dadadachecker) compileOnly(libs.blockstudio) compileOnly(libs.paperApi) - implementation(libs.cloudPaper) + implementation(libs.acfPaper) implementation(libs.jspecify) } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 6a180df..2fabf8e 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,29 +1,25 @@ [versions] -runPaper = "2.3.1" # 3.x.x can't run in Java8 spotless = "6.13.0" # 6.14.0 can't run in Java8 shadow = "8.3.0" -protocolLib = "5.3.0" # 5.4.0 can't run in Java8 paperApi = "1.15.2-R0.1-SNAPSHOT" blockstudio = "-SNAPSHOT" dadadachecker = "1.0.0" noteblockapi = "1.6.3" lunachat = "3.0.16" spigot = "1.15.2-R0.1-SNAPSHOT" -cloudPaper = "2.0.0-beta.10" jspecify = "1.0.0" +acfPaper = "0.5.1-SNAPSHOT" [plugins] -runPaper = { id = "xyz.jpenilla.run-paper", version.ref = "runPaper" } spotless = { id = "com.diffplug.spotless", version.ref = "spotless" } shadow = { id = "com.gradleup.shadow", version.ref = "shadow" } [libraries] -protocolLib = { module = "net.dmulloy2:ProtocolLib", version.ref = "protocolLib" } paperApi = { module = "com.destroystokyo.paper:paper-api", version.ref = "paperApi" } blockstudio = { module = "com.github.Be4rJP:BlockStudio", version.ref = "blockstudio" } dadadachecker = { module = "com.github.Be4rJP:DADADAChecker", version.ref = "dadadachecker" } noteblockapi = { module = "com.github.koca2000:NoteBlockAPI", version.ref = "noteblockapi" } lunachat = { module = "com.github.ucchyocean:LunaChat", version.ref = "lunachat" } spigot = { module = "org.spigotmc:spigot", version.ref = "spigot" } -cloudPaper = { module = "org.incendo:cloud-paper", version.ref = "cloudPaper" } jspecify = { module = "org.jspecify:jspecify", version.ref = "jspecify" } +acfPaper = { module = "co.aikar:acf-paper", version.ref = "acfPaper" } From c37f2c2af74dc1030f1bcf7b96a3c27e802fca6a Mon Sep 17 00:00:00 2001 From: sysnote8main Date: Sat, 24 Jan 2026 20:58:35 +0900 Subject: [PATCH 18/23] feat: migrate to aikars command framework --- src/main/java/be4rjp/sclat/Sclat.java | 12 +- .../be4rjp/sclat/commands/CommanderType.java | 5 - .../be4rjp/sclat/commands/SclatCommand.java | 186 +++++++++ .../sclat/commands/sclatCommandExecutor.java | 365 ------------------ 4 files changed, 195 insertions(+), 373 deletions(-) delete mode 100644 src/main/java/be4rjp/sclat/commands/CommanderType.java create mode 100644 src/main/java/be4rjp/sclat/commands/SclatCommand.java delete mode 100644 src/main/java/be4rjp/sclat/commands/sclatCommandExecutor.java diff --git a/src/main/java/be4rjp/sclat/Sclat.java b/src/main/java/be4rjp/sclat/Sclat.java index 9d8bff4..32e1da8 100644 --- a/src/main/java/be4rjp/sclat/Sclat.java +++ b/src/main/java/be4rjp/sclat/Sclat.java @@ -16,7 +16,7 @@ import be4rjp.sclat.api.rank.RankingUpdater; import be4rjp.sclat.api.status.StatusServer; import be4rjp.sclat.api.wiremesh.Wiremesh; -import be4rjp.sclat.commands.sclatCommandExecutor; +import be4rjp.sclat.commands.SclatCommand; import be4rjp.sclat.config.Config; import be4rjp.sclat.data.DataMgr; import be4rjp.sclat.data.MapData; @@ -37,6 +37,7 @@ import be4rjp.sclat.protocollib.SclatPacketListener; import be4rjp.sclat.tutorial.Tutorial; import be4rjp.sclat.weapon.SnowballListener; +import co.aikar.commands.PaperCommandManager; import com.comphenix.protocol.ProtocolLibrary; import com.comphenix.protocol.ProtocolManager; import com.google.common.io.ByteArrayDataInput; @@ -115,6 +116,8 @@ public class Sclat extends JavaPlugin implements PluginMessageListener { public static final PlayerHolograms playerHolograms = new PlayerHolograms(); + private static PaperCommandManager commandManager; + @Override public void onEnable() { plugin = this; @@ -185,8 +188,9 @@ public void onEnable() { // ------------------------RegisteringCommands------------------------ getLogger().info("Registering Commands..."); - getCommand("sclat").setExecutor(new sclatCommandExecutor()); - getCommand("sclat").setTabCompleter(new sclatCommandExecutor()); + commandManager = new PaperCommandManager(this); +// commandManager.enableUnstableAPI("help"); + commandManager.registerCommand(new SclatCommand(this), true); // ------------------------------------------------------------------- // ------------------------Setup from config-------------------------- @@ -389,6 +393,8 @@ public void onDisable() { e.printStackTrace(); } + commandManager.unregisterCommands(); + // -----------------------Tutorial server list------------------------ if (type == ServerType.LOBBY) { tutorialServers = new CustomConfig(this, "tutorial.yml"); diff --git a/src/main/java/be4rjp/sclat/commands/CommanderType.java b/src/main/java/be4rjp/sclat/commands/CommanderType.java deleted file mode 100644 index c2962a0..0000000 --- a/src/main/java/be4rjp/sclat/commands/CommanderType.java +++ /dev/null @@ -1,5 +0,0 @@ -package be4rjp.sclat.commands; - -public enum CommanderType { - MEMBER, ADMIN, CONSOLE -} diff --git a/src/main/java/be4rjp/sclat/commands/SclatCommand.java b/src/main/java/be4rjp/sclat/commands/SclatCommand.java new file mode 100644 index 0000000..5328513 --- /dev/null +++ b/src/main/java/be4rjp/sclat/commands/SclatCommand.java @@ -0,0 +1,186 @@ +package be4rjp.sclat.commands; + +import be4rjp.sclat.Sclat; +import be4rjp.sclat.api.BungeeCordAPI; +import be4rjp.sclat.api.MessageType; +import be4rjp.sclat.api.SclatUtil; +import be4rjp.sclat.api.SoundType; +import be4rjp.sclat.api.equipment.EquipmentClient; +import be4rjp.sclat.api.status.ServerStatus; +import be4rjp.sclat.data.DataMgr; +import be4rjp.sclat.emblem.EmblemManager; +import be4rjp.sclat.manager.ServerStatusManager; +import co.aikar.commands.BaseCommand; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.CommandCompletion; +import co.aikar.commands.annotation.CommandPermission; +import co.aikar.commands.annotation.Subcommand; +import co.aikar.commands.bukkit.contexts.OnlinePlayer; +import org.bukkit.ChatColor; +import org.bukkit.command.CommandSender; +import org.bukkit.configuration.file.YamlConfiguration; +import org.bukkit.entity.Player; +import org.bukkit.scheduler.BukkitRunnable; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import static be4rjp.sclat.Sclat.conf; + +@CommandAlias("sclat") +@CommandPermission("sclat.admin") +public class SclatCommand extends BaseCommand { + private final Sclat plugin; + public SclatCommand(Sclat plugin) { + this.plugin = plugin; + } + + @Subcommand("setUpdateRate") + public void onSetUpdateRate(CommandSender sender, int rate) { + conf.getConfig().set("BlockUpdateRate", rate); + sender.sendMessage("setConfig [BlockUpdateRate] : " + rate); + } + + @Subcommand("fly") + @CommandCompletion("*") + public void onFly(CommandSender sender, OnlinePlayer targetPlayer) { + String playerName = targetPlayer.player.getName(); + Sclat.flyList.add(playerName); + sender.sendMessage(String.format("%s was added to flyList", playerName)); + } + + @Subcommand("reloadEmblems") + public void onReloadEmblems(CommandSender sender) { + conf.loadEmblemLoreData(); + conf.loadEmblemUserData(); + sender.sendMessage("称号のデータを再読み込みしました。"); + } + + @Subcommand("migrateEmblems") + public void onMigrateEmblems(CommandSender sender) { + if (!conf.emblemsFile.exists()) { + sender.sendMessage(ChatColor.RED + "Old emblem userdata file isn't exists."); + return; + } + + YamlConfiguration oldData = YamlConfiguration.loadConfiguration(conf.emblemsFile); + Set dataUuids = oldData.getKeys(false); + for (String _uuid : dataUuids) { + List userEmblems = oldData.getStringList(_uuid); + for (String emblem : userEmblems) { + conf.getEmblemUserdata().set(_uuid + "." + emblem, 1); + } + } + sender.sendMessage(ChatColor.GREEN + "Migration was succeeded!"); + + try { + conf.saveEmblemUserdata(); + sender.sendMessage(ChatColor.GREEN + "Successfully to save emblem userdata"); + } catch (IOException e) { + sender.sendMessage(ChatColor.RED + "Failed to save emblem userdata"); + e.printStackTrace(); + } + } + + @Subcommand("saveEmblems") + public void onSaveEmblems(CommandSender sender) { + try { + conf.saveEmblemUserdata(); + sender.sendMessage(ChatColor.GREEN + "Successfully to save emblem userdata"); + } catch (IOException e) { + sender.sendMessage(ChatColor.RED + "Failed to save emblem userdata"); + e.printStackTrace(); + } + } + + @Subcommand("checkEmblems") + public void onCheckEmblems(CommandSender sender) { + Map> dataMap = EmblemManager.getDataMap(); + for (String _key : dataMap.keySet()) { + sender.sendMessage(_key); + Map playerUuids = dataMap.getOrDefault(_key, new HashMap<>()); + playerUuids.forEach((k, v) -> sender.sendMessage("- " + k + ": " + v)); + } + } + + @Subcommand("mod") + public void onMod(CommandSender sender, String serverName) { + if (sender instanceof Player) { + for (ServerStatus ss : ServerStatusManager.serverList) { + if (ss.getServerName().equals(serverName)) { + List commands = new ArrayList<>(); + commands.add("mod " + sender.getName()); + commands.add("stop"); + // Todo: use redis. fallbacks PluginMessaging + EquipmentClient sc = new EquipmentClient( + conf.getConfig().getString("EquipShare." + serverName + ".Host"), + conf.getConfig().getInt("EquipShare." + serverName + ".Port"), commands); + sc.startClient(); + + SclatUtil.sendMessage("Moderatorとして転送中...", MessageType.PLAYER, (Player) sender); + SclatUtil.sendMessage("2秒後に転送されます", MessageType.PLAYER, (Player) sender); + SclatUtil.playGameSound((Player) sender, SoundType.SUCCESS); + + BukkitRunnable task = new BukkitRunnable() { + @Override + public void run() { + try { + BungeeCordAPI.PlayerSendServer((Player) sender, ss.getServerName()); + DataMgr.getPlayerData((Player) sender).setServerName(ss.getDisplayName()); + } catch (Exception ignored) { + } + } + }; + task.runTaskLater(Sclat.getPlugin(), 40); + } + } + } else { + sender.sendMessage(ChatColor.RED + "This command is player only."); + } + } + + @Subcommand("ss") + @CommandPermission("sclat.admin") + public class SS extends BaseCommand { + public void onMT(CommandSender sender, String server, boolean toMaintenance) { + for (ServerStatus ss : ServerStatusManager.serverList) { + if (ss.getServerName().equals(server)) { + ss.setMaintenance(toMaintenance); + sender.sendMessage("Switched " + ss.getDisplayName() + " §rto " + + (toMaintenance ? "§cMAINTENANCE" : "§6NORMAL")); + return; + } + } + } + } + + @Subcommand("tutorial") + public class Tutorial extends BaseCommand { + @Subcommand("add") + public void onAdd(CommandSender sender, String server) { + List list = Sclat.tutorialServers.getConfig().getStringList("server-list"); + if (!list.contains(server)) { + list.add(server); + Sclat.tutorialServers.getConfig().set("server-list", list); + } else { + sender.sendMessage(ChatColor.RED + "This server is already exist."); + } + } + + @Subcommand("list") + public void onList(CommandSender sender) { + List list = Sclat.tutorialServers.getConfig().getStringList("server-list"); + sender.sendMessage(list.toString()); + } + + @Subcommand("reload") + public void onReload(CommandSender sender) { + Sclat.tutorialServers.reloadConfig(); + sender.sendMessage(ChatColor.GREEN + "Tutorial config was reloaded!"); + } + } +} diff --git a/src/main/java/be4rjp/sclat/commands/sclatCommandExecutor.java b/src/main/java/be4rjp/sclat/commands/sclatCommandExecutor.java deleted file mode 100644 index 01e6b54..0000000 --- a/src/main/java/be4rjp/sclat/commands/sclatCommandExecutor.java +++ /dev/null @@ -1,365 +0,0 @@ -package be4rjp.sclat.commands; - -import be4rjp.sclat.Sclat; -import be4rjp.sclat.api.BungeeCordAPI; -import be4rjp.sclat.api.MessageType; -import be4rjp.sclat.api.SclatUtil; -import be4rjp.sclat.api.ServerType; -import be4rjp.sclat.api.SoundType; -import be4rjp.sclat.api.equipment.EquipmentClient; -import be4rjp.sclat.api.status.ServerStatus; -import be4rjp.sclat.data.DataMgr; -import be4rjp.sclat.emblem.EmblemManager; -import be4rjp.sclat.manager.ServerStatusManager; -import org.bukkit.ChatColor; -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; -import org.bukkit.command.TabExecutor; -import org.bukkit.configuration.file.YamlConfiguration; -import org.bukkit.entity.Player; -import org.bukkit.scheduler.BukkitRunnable; -import org.jetbrains.annotations.NotNull; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import static be4rjp.sclat.Sclat.conf; - -//sclat Command -// Todo: use cloud command framework -public class sclatCommandExecutor implements CommandExecutor, TabExecutor { - @Override - public boolean onCommand(@NotNull CommandSender sender, @NotNull Command cmd, @NotNull String commandLabel, - String[] args) { - if (args == null) - return false; - if (args.length == 0) - return false; - - // ------------------------Check sender type----------------------------- - CommanderType type = CommanderType.CONSOLE; - if (sender instanceof Player) { - if (sender.hasPermission("sclat.admin")) - type = CommanderType.ADMIN; - else - type = CommanderType.MEMBER; - } - // ---------------------------------------------------------------------- - - // -------------------------/sclat setUpdateRate---------------------------- - if (args[0].equalsIgnoreCase("setUpdateRate") || args[0].equalsIgnoreCase("sur")) { - if (args.length != 2) - return false; - - if (type == CommanderType.MEMBER) { - sender.sendMessage(ChatColor.RED + "You don't have permission."); - SclatUtil.playGameSound((Player) sender, SoundType.ERROR); - return true; - } - - String num = args[1]; - if (SclatUtil.isNumber(num)) { - Sclat.conf.getConfig().set("BlockUpdateRate", Integer.valueOf(num)); - sender.sendMessage("setConfig [BlockUpdateRate] : " + num); - return true; - } else { - sender.sendMessage("Please type with number"); - return false; - } - } - // ------------------------------------------------------------------------- - - // ----------------------------/sclat fly----------------------------------- - if (args[0].equalsIgnoreCase("fly")) { - if (args.length != 2) - return false; - - if (type == CommanderType.MEMBER) { - sender.sendMessage(ChatColor.RED + "You don't have permission."); - SclatUtil.playGameSound((Player) sender, SoundType.ERROR); - return true; - } - - String playerName = args[1]; - for (Player player : Sclat.getPlugin().getServer().getOnlinePlayers()) { - if (playerName.equals(player.getName())) { - Sclat.flyList.add(playerName); - return true; - } - } - } - // ------------------------------------------------------------------------- - - // ----- /sclat refresh-config----- - if (args[0].equalsIgnoreCase("refresh-config")) { - if (args.length != 2) - return false; - - if (type == CommanderType.MEMBER) { - sender.sendMessage(ChatColor.RED + "You don't have permission."); - SclatUtil.playGameSound((Player) sender, SoundType.ERROR); - return true; - } - - if (sender instanceof Player) { - Player player = (Player) sender; - String targetConfig = args[1]; - SclatUtil.sendMessage(String.format("%sの設定を再読み込み中...", targetConfig), MessageType.PLAYER, player); - switch (targetConfig.toLowerCase()) { - case "emblemuserdata" : - conf.loadEmblemUserData(); - break; - case "emblemloredata" : - conf.loadEmblemLoreData(); - break; - default : - SclatUtil.sendMessage("そのオプションは存在しません!", MessageType.PLAYER, player); - return true; - } - SclatUtil.sendMessage("再読み込み完了", MessageType.PLAYER, player); - } - } - // -------------------------------- - - // ----------------/sclat migrate-emblems----------------- - if (args[0].equalsIgnoreCase("migrate-emblems")) { - if (args.length != 1) - return false; - - if (type == CommanderType.MEMBER) { - sender.sendMessage(ChatColor.RED + "You don't have permission."); - SclatUtil.playGameSound((Player) sender, SoundType.ERROR); - return true; - } - - if (!conf.emblemsFile.exists()) { - sender.sendMessage(ChatColor.RED + "Old emblem userdata file isn't exists."); - return true; - } - - YamlConfiguration oldData = YamlConfiguration.loadConfiguration(conf.emblemsFile); - Set dataUuids = oldData.getKeys(false); - for (String _uuid : dataUuids) { - List userEmblems = oldData.getStringList(_uuid); - for (String emblem : userEmblems) { - conf.getEmblemUserdata().set(_uuid + "." + emblem, 1); - } - } - sender.sendMessage(ChatColor.GREEN + "Migration was succeeded!"); - - try { - conf.saveEmblemUserdata(); - sender.sendMessage(ChatColor.GREEN + "Successfully to save emblem userdata"); - } catch (IOException e) { - sender.sendMessage(ChatColor.RED + "Failed to save emblem userdata"); - e.printStackTrace(); - } - return true; - } - // ------------------------------------------------------- - - // ----------------/sclat save-emblems-------------------- - if (args[0].equalsIgnoreCase("save-emblems")) { - if (args.length != 1) - return false; - - if (type == CommanderType.MEMBER) { - sender.sendMessage(ChatColor.RED + "You don't have permission."); - SclatUtil.playGameSound((Player) sender, SoundType.ERROR); - return true; - } - - try { - conf.saveEmblemUserdata(); - sender.sendMessage(ChatColor.GREEN + "Successfully to save emblem userdata"); - } catch (IOException e) { - sender.sendMessage(ChatColor.RED + "Failed to save emblem userdata"); - e.printStackTrace(); - } - return true; - } - // ------------------------------------------------------- - - // ----------------/sclat check-emblems------------------- - if (args[0].equalsIgnoreCase("check-emblems")) { - if (args.length != 1) - return false; - - if (type == CommanderType.MEMBER) { - sender.sendMessage(ChatColor.RED + "You don't have permission."); - SclatUtil.playGameSound((Player) sender, SoundType.ERROR); - return true; - } - - Map> dataMap = EmblemManager.getDataMap(); - for (String _key : dataMap.keySet()) { - sender.sendMessage(_key); - Map playerUuids = dataMap.getOrDefault(_key, new HashMap<>()); - playerUuids.forEach((k, v) -> sender.sendMessage("- " + k + ": " + v)); - } - } - // -------------------------------------------------------- - - // ----------------------------/sclat mod----------------------------------- - if (args[0].equalsIgnoreCase("mod")) { - if (args.length != 2) - return false; - - if (type == CommanderType.MEMBER) { - sender.sendMessage(ChatColor.RED + "You don't have permission."); - SclatUtil.playGameSound((Player) sender, SoundType.ERROR); - return true; - } - - if (sender instanceof Player) { - String serverName = args[1]; - for (ServerStatus ss : ServerStatusManager.serverList) { - if (ss.getServerName().equals(serverName)) { - List commands = new ArrayList<>(); - commands.add("mod " + sender.getName()); - commands.add("stop"); - // Todo: use redis. fallbacks PluginMessaging - EquipmentClient sc = new EquipmentClient( - conf.getConfig().getString("EquipShare." + serverName + ".Host"), - conf.getConfig().getInt("EquipShare." + serverName + ".Port"), commands); - sc.startClient(); - - SclatUtil.sendMessage("Moderatorとして転送中...", MessageType.PLAYER, (Player) sender); - SclatUtil.sendMessage("2秒後に転送されます", MessageType.PLAYER, (Player) sender); - SclatUtil.playGameSound((Player) sender, SoundType.SUCCESS); - - BukkitRunnable task = new BukkitRunnable() { - @Override - public void run() { - try { - BungeeCordAPI.PlayerSendServer((Player) sender, ss.getServerName()); - DataMgr.getPlayerData((Player) sender).setServerName(ss.getDisplayName()); - } catch (Exception ignored) { - } - } - }; - task.runTaskLater(Sclat.getPlugin(), 40); - } - } - return true; - } else { - return false; - } - - } - // ------------------------------------------------------------------------- - - // ------------------/sclat ss --------------------- - if (args[0].equalsIgnoreCase("ss")) { - if (args.length < 4 || Sclat.type != ServerType.LOBBY) - return false; - - if (type == CommanderType.MEMBER) { - sender.sendMessage(ChatColor.RED + "You don't have permission."); - SclatUtil.playGameSound((Player) sender, SoundType.ERROR); - return true; - } - - if (args[1].equals("mt")) { - String server = args[2]; - for (ServerStatus ss : ServerStatusManager.serverList) { - if (ss.getServerName().equals(server)) { - ss.setMaintenance(args[3].equals("true")); - sender.sendMessage("Switched " + ss.getDisplayName() + " §rto " - + (args[3].equals("true") ? "§cMAINTENANCE" : "§6NORMAL")); - return true; - } - } - } - } - // ------------------------------------------------------------------------- - - // ---------------------/sclat tutorial