Update to latest version

This commit is contained in:
Bensonheimer992 committed 2025-02-06 17:41:02 +01:00
1 parent 16d554bbf7
commit 6a99e651b7
4 files changed
+263 -224

No files matched your search

+9
View File
@@ -0,0 +1,9 @@
<?xml version="1.0" ?>
<!DOCTYPE xml>
<project name="hideandseek" default="Build">
<xmlproperty file="pom.xml" prefix="pom" keeproot="false"/>
<target name="Build">
<jar jarfile="C:\Users\alex\Downloads\HS Test\plugins\${ant.project.name}.jar" basedir="./target/classes/" includes="**/*">
</jar>
</target>
</project>
+7 -3
View File
@@ -1,4 +1,6 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>dev.tylerm</groupId> <groupId>dev.tylerm</groupId>
<artifactId>KenshinsHideAndSeek</artifactId> <artifactId>KenshinsHideAndSeek</artifactId>
<version>1.8.2</version> <version>1.8.2</version>
@@ -61,7 +63,8 @@
</filter> </filter>
</filters> </filters>
<transformers> <transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> <transformer
implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/services/java.sql.Driver</resource> <resource>META-INF/services/java.sql.Driver</resource>
</transformer> </transformer>
</transformers> </transformers>
@@ -96,6 +99,7 @@
<url>https://repo.extendedclip.com/content/repositories/placeholderapi/</url> <url>https://repo.extendedclip.com/content/repositories/placeholderapi/</url>
</repository> </repository>
</repositories> </repositories>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>org.spigotmc</groupId> <groupId>org.spigotmc</groupId>
@@ -129,7 +133,7 @@
<dependency> <dependency>
<groupId>com.github.cryptomorin</groupId> <groupId>com.github.cryptomorin</groupId>
<artifactId>XSeries</artifactId> <artifactId>XSeries</artifactId>
<version>11.3.0</version> <version>13.0.0</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>me.clip</groupId> <groupId>me.clip</groupId>
+232 -221
View File
@@ -4,22 +4,23 @@ import dev.tylerm.khs.command.*;
import dev.tylerm.khs.command.map.Debug; import dev.tylerm.khs.command.map.Debug;
import dev.tylerm.khs.command.map.GoTo; import dev.tylerm.khs.command.map.GoTo;
import dev.tylerm.khs.command.map.Save; import dev.tylerm.khs.command.map.Save;
import dev.tylerm.khs.command.map.blockhunt.Enabled;
import dev.tylerm.khs.command.map.blockhunt.blocks.Add; import dev.tylerm.khs.command.map.blockhunt.blocks.Add;
import dev.tylerm.khs.command.map.blockhunt.blocks.List; import dev.tylerm.khs.command.map.blockhunt.blocks.List;
import dev.tylerm.khs.command.map.blockhunt.blocks.Remove; import dev.tylerm.khs.command.map.blockhunt.blocks.Remove;
import dev.tylerm.khs.command.map.set.*; import dev.tylerm.khs.command.map.set.*;
import dev.tylerm.khs.command.util.CommandGroup;
import dev.tylerm.khs.command.world.Create;
import dev.tylerm.khs.command.world.Delete;
import dev.tylerm.khs.command.world.Tp;
import dev.tylerm.khs.configuration.*; import dev.tylerm.khs.configuration.*;
import dev.tylerm.khs.database.Database;
import dev.tylerm.khs.game.*; import dev.tylerm.khs.game.*;
import dev.tylerm.khs.game.events.AntiFire;
import dev.tylerm.khs.game.events.Blockchange; import dev.tylerm.khs.game.events.Blockchange;
import dev.tylerm.khs.game.listener.*; import dev.tylerm.khs.game.listener.*;
import dev.tylerm.khs.game.util.Status; import dev.tylerm.khs.game.util.Status;
import dev.tylerm.khs.util.PAPIExpansion; import dev.tylerm.khs.util.PAPIExpansion;
import dev.tylerm.khs.command.map.blockhunt.Enabled;
import dev.tylerm.khs.command.world.Create;
import dev.tylerm.khs.command.world.Delete;
import dev.tylerm.khs.command.world.Tp;
import dev.tylerm.khs.database.Database;
import dev.tylerm.khs.command.util.CommandGroup;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@@ -34,177 +35,180 @@ import java.util.Arrays;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import static dev.tylerm.khs.configuration.Config.*; import static dev.tylerm.khs.configuration.Config.errorPrefix;
import static dev.tylerm.khs.configuration.Config.exitPosition;
import static dev.tylerm.khs.configuration.Localization.message; import static dev.tylerm.khs.configuration.Localization.message;
public class Main extends JavaPlugin implements Listener { public class Main extends JavaPlugin implements Listener {
private static Main instance; private static Main instance;
private static int version; private static int version;
private static int sub_version; private static int sub_version;
private Database database; private Database database;
private Board board; private Board board;
private Disguiser disguiser; private Disguiser disguiser;
private EntityHider entityHider; private EntityHider entityHider;
private Game game; private Game game;
private CommandGroup commandGroup; private CommandGroup commandGroup;
private boolean loaded; private boolean loaded;
public void onEnable() { public void onEnable() {
long start = System.currentTimeMillis(); long start = System.currentTimeMillis();
getLogger().info("Loading Kenshin's Hide and Seek"); getLogger().info("Loading Kenshin's Hide and Seek");
Main.instance = this; Main.instance = this;
getLogger().info("Getting minecraft version..."); getLogger().info("Getting minecraft version...");
this.updateVersion();; this.updateVersion();
;
try { try {
getLogger().info("Loading config.yml..."); getLogger().info("Loading config.yml...");
Config.loadConfig(); Config.loadConfig();
getLogger().info("Loading maps.yml..."); getLogger().info("Loading maps.yml...");
Maps.loadMaps(); Maps.loadMaps();
getLogger().info("Loading localization.yml..."); getLogger().info("Loading localization.yml...");
Localization.loadLocalization(); Localization.loadLocalization();
getLogger().info("Loading items.yml..."); getLogger().info("Loading items.yml...");
Items.loadItems(); Items.loadItems();
getLogger().info("Loading leaderboard.yml..."); getLogger().info("Loading leaderboard.yml...");
Leaderboard.loadLeaderboard(); Leaderboard.loadLeaderboard();
} catch (Exception e) { } catch (Exception e) {
getLogger().severe(e.getMessage()); getLogger().severe(e.getMessage());
Bukkit.getPluginManager().disablePlugin(this); Bukkit.getPluginManager().disablePlugin(this);
return; return;
} }
getLogger().info("Creating internal scoreboard..."); getLogger().info("Creating internal scoreboard...");
this.board = new Board(); this.board = new Board();
getLogger().info("Connecting to database..."); getLogger().info("Connecting to database...");
this.database = new Database(); this.database = new Database();
getLogger().info("Loading disguises..."); getLogger().info("Loading disguises...");
this.disguiser = new Disguiser(); this.disguiser = new Disguiser();
getLogger().info("Loading entity hider..."); getLogger().info("Loading entity hider...");
this.entityHider = new EntityHider(this, EntityHider.Policy.BLACKLIST); this.entityHider = new EntityHider(this, EntityHider.Policy.BLACKLIST);
getLogger().info("Registering listeners..."); getLogger().info("Registering listeners...");
this.registerListeners(); this.registerListeners();
getLogger().info("Registering commands..."); getLogger().info("Registering commands...");
this.commandGroup = new CommandGroup("hs", this.commandGroup = new CommandGroup("hs",
new Help(), new Help(),
new Reload(), new Reload(),
new Join(), new Join(),
new Leave(), new Leave(),
new Send(), new Send(),
new Start(), new Start(),
new Stop(), new Stop(),
new CommandGroup("map", new CommandGroup("map",
new CommandGroup("blockhunt", new CommandGroup("blockhunt",
new CommandGroup("blocks", new CommandGroup("blocks",
new Add(), new Add(),
new Remove(), new Remove(),
new List() new List()
), ),
new Enabled() new Enabled()
), ),
new CommandGroup("set", new CommandGroup("set",
new Lobby(), new Lobby(),
new Spawn(), new Spawn(),
new SeekerLobby(), new SeekerLobby(),
new Border(), new Border(),
new Bounds() new Bounds()
), ),
new CommandGroup("unset", new CommandGroup("unset",
new dev.tylerm.khs.command.map.unset.Border() new dev.tylerm.khs.command.map.unset.Border()
), ),
new dev.tylerm.khs.command.map.Add(), new dev.tylerm.khs.command.map.Add(),
new dev.tylerm.khs.command.map.Remove(), new dev.tylerm.khs.command.map.Remove(),
new dev.tylerm.khs.command.map.List(), new dev.tylerm.khs.command.map.List(),
new dev.tylerm.khs.command.map.Status(), new dev.tylerm.khs.command.map.Status(),
new Save(), new Save(),
new Debug(), new Debug(),
new GoTo() new GoTo()
), ),
new CommandGroup("world", new CommandGroup("world",
new Create(), new Create(),
new Delete(), new Delete(),
new dev.tylerm.khs.command.world.List(), new dev.tylerm.khs.command.world.List(),
new Tp() new Tp()
), ),
new SetExitLocation(), new SetExitLocation(),
new Top(), new Top(),
new Wins(), new Wins(),
new Confirm() new Confirm()
); );
getLogger().info("Loading game..."); getLogger().info("Loading game...");
game = new Game(null, board); game = new Game(null, board);
getLogger().info("Scheduling tick tasks..."); getLogger().info("Scheduling tick tasks...");
getServer().getScheduler().runTaskTimer(this, this::onTick,0,1).getTaskId(); getServer().getScheduler().runTaskTimer(this, this::onTick, 0, 1).getTaskId();
getLogger().info("Registering outgoing bungeecord plugin channel..."); getLogger().info("Registering outgoing bungeecord plugin channel...");
Bukkit.getServer().getMessenger().registerOutgoingPluginChannel(this, "BungeeCord"); Bukkit.getServer().getMessenger().registerOutgoingPluginChannel(this, "BungeeCord");
getLogger().info("Checking for PlaceholderAPI..."); getLogger().info("Checking for PlaceholderAPI...");
if (getServer().getPluginManager().getPlugin("PlaceholderAPI") != null) { if (getServer().getPluginManager().getPlugin("PlaceholderAPI") != null) {
getLogger().info("PlaceholderAPI found..."); getLogger().info("PlaceholderAPI found...");
getLogger().info("Registering PlaceholderAPI expansion..."); getLogger().info("Registering PlaceholderAPI expansion...");
new PAPIExpansion().register(); new PAPIExpansion().register();
} }
long end = System.currentTimeMillis(); long end = System.currentTimeMillis();
getLogger().info("Finished loading plugin ("+(end-start)+"ms)"); getLogger().info("Finished loading plugin (" + (end - start) + "ms)");
loaded = true; loaded = true;
} }
public void onDisable() { public void onDisable() {
version = 0; version = 0;
if(board != null) { if (board != null) {
board.getPlayers().forEach(player -> { board.getPlayers().forEach(player -> {
board.removeBoard(player); board.removeBoard(player);
PlayerLoader.unloadPlayer(player); PlayerLoader.unloadPlayer(player);
exitPosition.teleport(player); exitPosition.teleport(player);
}); });
board.cleanup(); board.cleanup();
} }
if(disguiser != null) { if (disguiser != null) {
disguiser.cleanUp(); disguiser.cleanUp();
} }
Bukkit.getServer().getMessenger().unregisterOutgoingPluginChannel(this); Bukkit.getServer().getMessenger().unregisterOutgoingPluginChannel(this);
} }
private void onTick() { private void onTick() {
if(game.getStatus() == Status.ENDED) game = new Game(game.getCurrentMap(), board); if (game.getStatus() == Status.ENDED) game = new Game(game.getCurrentMap(), board);
game.onTick(); game.onTick();
disguiser.check(); disguiser.check();
} }
private void registerListeners() { private void registerListeners() {
getServer().getPluginManager().registerEvents(new BlockedCommandHandler(), this); getServer().getPluginManager().registerEvents(new BlockedCommandHandler(), this);
getServer().getPluginManager().registerEvents(new ChatHandler(), this); getServer().getPluginManager().registerEvents(new ChatHandler(), this);
getServer().getPluginManager().registerEvents(new DamageHandler(), this); getServer().getPluginManager().registerEvents(new DamageHandler(), this);
getServer().getPluginManager().registerEvents(new DisguiseHandler(), this); getServer().getPluginManager().registerEvents(new DisguiseHandler(), this);
getServer().getPluginManager().registerEvents(new InteractHandler(), this); getServer().getPluginManager().registerEvents(new InteractHandler(), this);
getServer().getPluginManager().registerEvents(new InventoryHandler(), this); getServer().getPluginManager().registerEvents(new InventoryHandler(), this);
getServer().getPluginManager().registerEvents(new JoinLeaveHandler(), this); getServer().getPluginManager().registerEvents(new JoinLeaveHandler(), this);
getServer().getPluginManager().registerEvents(new MovementHandler(), this); getServer().getPluginManager().registerEvents(new MovementHandler(), this);
getServer().getPluginManager().registerEvents(new PlayerHandler(), this); getServer().getPluginManager().registerEvents(new PlayerHandler(), this);
getServer().getPluginManager().registerEvents(new RespawnHandler(), this); getServer().getPluginManager().registerEvents(new RespawnHandler(), this);
getServer().getPluginManager().registerEvents(new WorldInteractHandler(), this); getServer().getPluginManager().registerEvents(new WorldInteractHandler(), this);
getServer().getPluginManager().registerEvents(new Blockchange(), this); getServer().getPluginManager().registerEvents(new Blockchange(), this);
} getServer().getPluginManager().registerEvents(new AntiFire(), this);
}
private void updateVersion(){ private void updateVersion() {
Matcher matcher = Pattern.compile("MC: \\d\\.(\\d+).(\\d+)").matcher(Bukkit.getVersion()); Matcher matcher = Pattern.compile("MC: \\d\\.(\\d+).(\\d+)").matcher(Bukkit.getVersion());
if (matcher.find()) { if (matcher.find()) {
version = Integer.parseInt(matcher.group(1)); version = Integer.parseInt(matcher.group(1));
sub_version = Integer.parseInt(matcher.group(2)); sub_version = Integer.parseInt(matcher.group(2));
getLogger().info("Identified server version: " + version); getLogger().info("Identified server version: " + version);
getLogger().info("Identified server sub version: " + sub_version); getLogger().info("Identified server sub version: " + sub_version);
@@ -213,91 +217,98 @@ public class Main extends JavaPlugin implements Listener {
} }
matcher = Pattern.compile("MC: \\d\\.(\\d+)").matcher(Bukkit.getVersion()); matcher = Pattern.compile("MC: \\d\\.(\\d+)").matcher(Bukkit.getVersion());
if (matcher.find()) { if (matcher.find()) {
version = Integer.parseInt(matcher.group(1)); version = Integer.parseInt(matcher.group(1));
sub_version = 0; sub_version = 0;
getLogger().info("Identified server version: " + version); getLogger().info("Identified server version: " + version);
return; return;
} }
throw new IllegalArgumentException("Failed to parse server version from: " + Bukkit.getVersion()); throw new IllegalArgumentException("Failed to parse server version from: " + Bukkit.getVersion());
} }
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command cmd, @NotNull String label, String[] args) {
if (!(sender instanceof Player)) {
sender.sendMessage(errorPrefix + message("COMMAND_PLAYER_ONLY"));
return true;
}
commandGroup.handleCommand((Player)sender, args);
return true;
}
public java.util.List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
if (!(sender instanceof Player)) {
sender.sendMessage(errorPrefix + message("COMMAND_PLAYER_ONLY"));
return new ArrayList<>();
}
return commandGroup.handleTabComplete((Player)sender, args);
}
public static Main getInstance() { public boolean onCommand(@NotNull CommandSender sender, @NotNull Command cmd, @NotNull String label, String[] args) {
return instance; if (!(sender instanceof Player)) {
} sender.sendMessage(errorPrefix + message("COMMAND_PLAYER_ONLY"));
return true;
}
commandGroup.handleCommand((Player) sender, args);
return true;
}
public File getWorldContainer() { public java.util.List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
return this.getServer().getWorldContainer(); if (!(sender instanceof Player)) {
} sender.sendMessage(errorPrefix + message("COMMAND_PLAYER_ONLY"));
return new ArrayList<>();
}
return commandGroup.handleTabComplete((Player) sender, args);
}
public Database getDatabase() { public static Main getInstance() {
return database; return instance;
} }
public Board getBoard(){ public File getWorldContainer() {
return board; return this.getServer().getWorldContainer();
} }
public Game getGame(){ public Database getDatabase() {
return game; return database;
} }
public Disguiser getDisguiser() { return disguiser; } public Board getBoard() {
return board;
}
public EntityHider getEntityHider() { return entityHider; } public Game getGame() {
return game;
}
public CommandGroup getCommandGroup() { return commandGroup; } public Disguiser getDisguiser() {
return disguiser;
}
public boolean supports(int v){ public EntityHider getEntityHider() {
return version >= v; return entityHider;
} }
public boolean supports(int v, int s){ public CommandGroup getCommandGroup() {
return (version == v) ? sub_version >= s : version >= v; return commandGroup;
} }
public java.util.List<String> getWorlds() { public boolean supports(int v) {
java.util.List<String> worlds = new ArrayList<>(); return version >= v;
File[] containers = getWorldContainer().listFiles(); }
if(containers != null) {
Arrays.stream(containers).forEach(file -> {
if (!file.isDirectory()) return;
String[] files = file.list();
if (files == null) return;
if (!Arrays.asList(files).contains("session.lock") && !Arrays.asList(files).contains("level.dat")) return;
worlds.add(file.getName());
});
}
return worlds;
}
public boolean isLoaded() { public boolean supports(int v, int s) {
return loaded; return (version == v) ? sub_version >= s : version >= v;
} }
public java.util.List<String> getWorlds() {
java.util.List<String> worlds = new ArrayList<>();
File[] containers = getWorldContainer().listFiles();
if (containers != null) {
Arrays.stream(containers).forEach(file -> {
if (!file.isDirectory()) return;
String[] files = file.list();
if (files == null) return;
if (!Arrays.asList(files).contains("session.lock") && !Arrays.asList(files).contains("level.dat"))
return;
worlds.add(file.getName());
});
}
return worlds;
}
public boolean isLoaded() {
return loaded;
}
public void scheduleTask(Runnable task) {
if (!isEnabled()) return;
Bukkit.getServer().getScheduler().runTask(this, task);
}
public void scheduleTask(Runnable task) {
if(!isEnabled()) return;
Bukkit.getServer().getScheduler().runTask(this, task);
}
} }
@@ -0,0 +1,15 @@
package dev.tylerm.khs.game.events;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityCombustEvent;
public class AntiFire implements Listener {
@EventHandler
public void onPlayerFireTick(EntityCombustEvent event) {
if (event.getEntity() instanceof Player) {
event.setCancelled(true);
}
}
}