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>
<artifactId>KenshinsHideAndSeek</artifactId>
<version>1.8.2</version>
@@ -61,7 +63,8 @@
</filter>
</filters>
<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>
</transformer>
</transformers>
@@ -96,6 +99,7 @@
<url>https://repo.extendedclip.com/content/repositories/placeholderapi/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.spigotmc</groupId>
@@ -129,7 +133,7 @@
<dependency>
<groupId>com.github.cryptomorin</groupId>
<artifactId>XSeries</artifactId>
<version>11.3.0</version>
<version>13.0.0</version>
</dependency>
<dependency>
<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.GoTo;
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.List;
import dev.tylerm.khs.command.map.blockhunt.blocks.Remove;
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.database.Database;
import dev.tylerm.khs.game.*;
import dev.tylerm.khs.game.events.AntiFire;
import dev.tylerm.khs.game.events.Blockchange;
import dev.tylerm.khs.game.listener.*;
import dev.tylerm.khs.game.util.Status;
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.command.Command;
import org.bukkit.command.CommandSender;
@@ -34,177 +35,180 @@ import java.util.Arrays;
import java.util.regex.Matcher;
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;
public class Main extends JavaPlugin implements Listener {
private static Main instance;
private static int version;
private static Main instance;
private static int version;
private static int sub_version;
private Database database;
private Board board;
private Disguiser disguiser;
private EntityHider entityHider;
private Game game;
private CommandGroup commandGroup;
private boolean loaded;
private Database database;
private Board board;
private Disguiser disguiser;
private EntityHider entityHider;
private Game game;
private CommandGroup commandGroup;
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");
Main.instance = this;
getLogger().info("Loading Kenshin's Hide and Seek");
Main.instance = this;
getLogger().info("Getting minecraft version...");
this.updateVersion();;
getLogger().info("Getting minecraft version...");
this.updateVersion();
;
try {
getLogger().info("Loading config.yml...");
Config.loadConfig();
getLogger().info("Loading maps.yml...");
Maps.loadMaps();
getLogger().info("Loading localization.yml...");
Localization.loadLocalization();
getLogger().info("Loading items.yml...");
Items.loadItems();
getLogger().info("Loading leaderboard.yml...");
Leaderboard.loadLeaderboard();
} catch (Exception e) {
getLogger().severe(e.getMessage());
Bukkit.getPluginManager().disablePlugin(this);
return;
}
try {
getLogger().info("Loading config.yml...");
Config.loadConfig();
getLogger().info("Loading maps.yml...");
Maps.loadMaps();
getLogger().info("Loading localization.yml...");
Localization.loadLocalization();
getLogger().info("Loading items.yml...");
Items.loadItems();
getLogger().info("Loading leaderboard.yml...");
Leaderboard.loadLeaderboard();
} catch (Exception e) {
getLogger().severe(e.getMessage());
Bukkit.getPluginManager().disablePlugin(this);
return;
}
getLogger().info("Creating internal scoreboard...");
this.board = new Board();
getLogger().info("Connecting to database...");
this.database = new Database();
getLogger().info("Loading disguises...");
this.disguiser = new Disguiser();
getLogger().info("Loading entity hider...");
this.entityHider = new EntityHider(this, EntityHider.Policy.BLACKLIST);
getLogger().info("Registering listeners...");
this.registerListeners();
getLogger().info("Creating internal scoreboard...");
this.board = new Board();
getLogger().info("Connecting to database...");
this.database = new Database();
getLogger().info("Loading disguises...");
this.disguiser = new Disguiser();
getLogger().info("Loading entity hider...");
this.entityHider = new EntityHider(this, EntityHider.Policy.BLACKLIST);
getLogger().info("Registering listeners...");
this.registerListeners();
getLogger().info("Registering commands...");
this.commandGroup = new CommandGroup("hs",
new Help(),
new Reload(),
new Join(),
new Leave(),
new Send(),
new Start(),
new Stop(),
new CommandGroup("map",
new CommandGroup("blockhunt",
new CommandGroup("blocks",
new Add(),
new Remove(),
new List()
),
new Enabled()
),
new CommandGroup("set",
new Lobby(),
new Spawn(),
new SeekerLobby(),
new Border(),
new Bounds()
),
new CommandGroup("unset",
new dev.tylerm.khs.command.map.unset.Border()
),
new dev.tylerm.khs.command.map.Add(),
new dev.tylerm.khs.command.map.Remove(),
new dev.tylerm.khs.command.map.List(),
new dev.tylerm.khs.command.map.Status(),
new Save(),
new Debug(),
new GoTo()
),
new CommandGroup("world",
new Create(),
new Delete(),
new dev.tylerm.khs.command.world.List(),
new Tp()
),
new SetExitLocation(),
new Top(),
new Wins(),
new Confirm()
);
getLogger().info("Registering commands...");
this.commandGroup = new CommandGroup("hs",
new Help(),
new Reload(),
new Join(),
new Leave(),
new Send(),
new Start(),
new Stop(),
new CommandGroup("map",
new CommandGroup("blockhunt",
new CommandGroup("blocks",
new Add(),
new Remove(),
new List()
),
new Enabled()
),
new CommandGroup("set",
new Lobby(),
new Spawn(),
new SeekerLobby(),
new Border(),
new Bounds()
),
new CommandGroup("unset",
new dev.tylerm.khs.command.map.unset.Border()
),
new dev.tylerm.khs.command.map.Add(),
new dev.tylerm.khs.command.map.Remove(),
new dev.tylerm.khs.command.map.List(),
new dev.tylerm.khs.command.map.Status(),
new Save(),
new Debug(),
new GoTo()
),
new CommandGroup("world",
new Create(),
new Delete(),
new dev.tylerm.khs.command.world.List(),
new Tp()
),
new SetExitLocation(),
new Top(),
new Wins(),
new Confirm()
);
getLogger().info("Loading game...");
game = new Game(null, board);
getLogger().info("Loading game...");
game = new Game(null, board);
getLogger().info("Scheduling tick tasks...");
getServer().getScheduler().runTaskTimer(this, this::onTick,0,1).getTaskId();
getLogger().info("Scheduling tick tasks...");
getServer().getScheduler().runTaskTimer(this, this::onTick, 0, 1).getTaskId();
getLogger().info("Registering outgoing bungeecord plugin channel...");
Bukkit.getServer().getMessenger().registerOutgoingPluginChannel(this, "BungeeCord");
getLogger().info("Registering outgoing bungeecord plugin channel...");
Bukkit.getServer().getMessenger().registerOutgoingPluginChannel(this, "BungeeCord");
getLogger().info("Checking for PlaceholderAPI...");
if (getServer().getPluginManager().getPlugin("PlaceholderAPI") != null) {
getLogger().info("PlaceholderAPI found...");
getLogger().info("Registering PlaceholderAPI expansion...");
new PAPIExpansion().register();
}
getLogger().info("Checking for PlaceholderAPI...");
if (getServer().getPluginManager().getPlugin("PlaceholderAPI") != null) {
getLogger().info("PlaceholderAPI found...");
getLogger().info("Registering PlaceholderAPI expansion...");
new PAPIExpansion().register();
}
long end = System.currentTimeMillis();
getLogger().info("Finished loading plugin ("+(end-start)+"ms)");
loaded = true;
long end = System.currentTimeMillis();
getLogger().info("Finished loading plugin (" + (end - start) + "ms)");
loaded = true;
}
}
public void onDisable() {
public void onDisable() {
version = 0;
version = 0;
if(board != null) {
board.getPlayers().forEach(player -> {
board.removeBoard(player);
PlayerLoader.unloadPlayer(player);
exitPosition.teleport(player);
});
board.cleanup();
}
if (board != null) {
board.getPlayers().forEach(player -> {
board.removeBoard(player);
PlayerLoader.unloadPlayer(player);
exitPosition.teleport(player);
});
board.cleanup();
}
if(disguiser != null) {
disguiser.cleanUp();
}
if (disguiser != null) {
disguiser.cleanUp();
}
Bukkit.getServer().getMessenger().unregisterOutgoingPluginChannel(this);
}
Bukkit.getServer().getMessenger().unregisterOutgoingPluginChannel(this);
}
private void onTick() {
if(game.getStatus() == Status.ENDED) game = new Game(game.getCurrentMap(), board);
game.onTick();
disguiser.check();
}
private void onTick() {
if (game.getStatus() == Status.ENDED) game = new Game(game.getCurrentMap(), board);
game.onTick();
disguiser.check();
}
private void registerListeners() {
getServer().getPluginManager().registerEvents(new BlockedCommandHandler(), this);
getServer().getPluginManager().registerEvents(new ChatHandler(), this);
getServer().getPluginManager().registerEvents(new DamageHandler(), this);
getServer().getPluginManager().registerEvents(new DisguiseHandler(), this);
getServer().getPluginManager().registerEvents(new InteractHandler(), this);
getServer().getPluginManager().registerEvents(new InventoryHandler(), this);
getServer().getPluginManager().registerEvents(new JoinLeaveHandler(), this);
getServer().getPluginManager().registerEvents(new MovementHandler(), this);
getServer().getPluginManager().registerEvents(new PlayerHandler(), this);
getServer().getPluginManager().registerEvents(new RespawnHandler(), this);
getServer().getPluginManager().registerEvents(new WorldInteractHandler(), this);
getServer().getPluginManager().registerEvents(new Blockchange(), this);
}
private void registerListeners() {
getServer().getPluginManager().registerEvents(new BlockedCommandHandler(), this);
getServer().getPluginManager().registerEvents(new ChatHandler(), this);
getServer().getPluginManager().registerEvents(new DamageHandler(), this);
getServer().getPluginManager().registerEvents(new DisguiseHandler(), this);
getServer().getPluginManager().registerEvents(new InteractHandler(), this);
getServer().getPluginManager().registerEvents(new InventoryHandler(), this);
getServer().getPluginManager().registerEvents(new JoinLeaveHandler(), this);
getServer().getPluginManager().registerEvents(new MovementHandler(), this);
getServer().getPluginManager().registerEvents(new PlayerHandler(), this);
getServer().getPluginManager().registerEvents(new RespawnHandler(), this);
getServer().getPluginManager().registerEvents(new WorldInteractHandler(), this);
getServer().getPluginManager().registerEvents(new Blockchange(), this);
getServer().getPluginManager().registerEvents(new AntiFire(), this);
}
private void updateVersion(){
Matcher matcher = Pattern.compile("MC: \\d\\.(\\d+).(\\d+)").matcher(Bukkit.getVersion());
if (matcher.find()) {
version = Integer.parseInt(matcher.group(1));
sub_version = Integer.parseInt(matcher.group(2));
private void updateVersion() {
Matcher matcher = Pattern.compile("MC: \\d\\.(\\d+).(\\d+)").matcher(Bukkit.getVersion());
if (matcher.find()) {
version = Integer.parseInt(matcher.group(1));
sub_version = Integer.parseInt(matcher.group(2));
getLogger().info("Identified server version: " + 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());
if (matcher.find()) {
version = Integer.parseInt(matcher.group(1));
sub_version = 0;
if (matcher.find()) {
version = Integer.parseInt(matcher.group(1));
sub_version = 0;
getLogger().info("Identified server version: " + version);
return;
}
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);
}
throw new IllegalArgumentException("Failed to parse server version from: " + Bukkit.getVersion());
}
public static Main getInstance() {
return instance;
}
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 File getWorldContainer() {
return this.getServer().getWorldContainer();
}
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 Database getDatabase() {
return database;
}
public static Main getInstance() {
return instance;
}
public Board getBoard(){
return board;
}
public File getWorldContainer() {
return this.getServer().getWorldContainer();
}
public Game getGame(){
return game;
}
public Database getDatabase() {
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){
return version >= v;
}
public EntityHider getEntityHider() {
return entityHider;
}
public boolean supports(int v, int s){
return (version == v) ? sub_version >= s : version >= v;
}
public CommandGroup getCommandGroup() {
return commandGroup;
}
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 supports(int v) {
return version >= v;
}
public boolean isLoaded() {
return loaded;
}
public boolean supports(int v, int s) {
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);
}
}
}