Merge pull request #54 from bobby29831/1.4.3

More refactoring for cleaner code
This commit is contained in:
Tyler Murphy 2022-05-14 10:27:16 -04:00 committed by GitHub
commit 6ec675b8be
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
15 changed files with 144 additions and 107 deletions

View file

@ -30,7 +30,7 @@ jobs:
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2
- name: Upload artificats
- name: Upload artifacts
uses: actions/upload-artifact@v2
with:
name: artifacts-beta

View file

@ -40,7 +40,7 @@ public class SetBorder implements ICommand {
return;
}
if (args.length < 3) {
worldborderEnabled = false;
worldBorderEnabled = false;
addToConfig("worldBorder.enabled",false);
saveConfig();
sender.sendMessage(messagePrefix + message("WORLDBORDER_DISABLE"));
@ -68,26 +68,26 @@ public class SetBorder implements ICommand {
sender.sendMessage(errorPrefix + message("WORLDBORDER_CHANGE_SIZE"));
return;
}
Vector newWorldborderPosition = new Vector();
Vector vec = new Vector();
Player player = (Player) sender;
newWorldborderPosition.setX(player.getLocation().getBlockX());
newWorldborderPosition.setY(0);
newWorldborderPosition.setZ(player.getLocation().getBlockZ());
if (spawnPosition.distance(newWorldborderPosition) > 100) {
vec.setX(player.getLocation().getBlockX());
vec.setY(0);
vec.setZ(player.getLocation().getBlockZ());
if (spawnPosition.distance(vec) > 100) {
sender.sendMessage(errorPrefix + message("WORLDBORDER_POSITION"));
return;
}
worldborderPosition = newWorldborderPosition;
worldborderSize = num;
worldborderDelay = delay;
worldborderChange = change;
worldborderEnabled = true;
addToConfig("worldBorder.x", worldborderPosition.getBlockX());
addToConfig("worldBorder.z", worldborderPosition.getBlockZ());
addToConfig("worldBorder.delay", worldborderDelay);
addToConfig("worldBorder.size", worldborderSize);
worldBorderPosition = vec;
worldBorderSize = num;
worldBorderDelay = delay;
worldBorderChange = change;
worldBorderEnabled = true;
addToConfig("worldBorder.x", worldBorderPosition.getBlockX());
addToConfig("worldBorder.z", worldBorderPosition.getBlockZ());
addToConfig("worldBorder.delay", worldBorderDelay);
addToConfig("worldBorder.size", worldBorderSize);
addToConfig("worldBorder.enabled", true);
addToConfig("worldBorder.move", worldborderChange);
addToConfig("worldBorder.move", worldBorderChange);
sender.sendMessage(messagePrefix + message("WORLDBORDER_ENABLE").addAmount(num).addAmount(delay));
saveConfig();
Main.getInstance().getGame().getBorder().resetWorldBorder(spawnWorld);

View file

@ -54,7 +54,7 @@ public class Top implements ICommand {
return;
}
for(PlayerInfo info : infos) {
String name = Main.getInstance().getServer().getOfflinePlayer(info.uuid).getName();
String name = Main.getInstance().getServer().getOfflinePlayer(info.getUniqueId()).getName();
ChatColor color;
switch (i) {
case 1: color = ChatColor.YELLOW; break;
@ -63,7 +63,7 @@ public class Top implements ICommand {
default: color = ChatColor.WHITE; break;
}
message.append(String.format("%s%s. %s%s %s%s\n",
color, i, ChatColor.RED, info.seeker_wins+info.hider_wins, ChatColor.WHITE, name));
color, i, ChatColor.RED, info.getSeekerWins() +info.getHiderWins(), ChatColor.WHITE, name));
i++;
}
sender.sendMessage(message.toString());

View file

@ -64,8 +64,8 @@ public class Wins implements ICommand {
message = message + message("INFORMATION_FOR").addPlayer(name) + "\n";
message = message + "==============================\n";
message = message + String.format("%sTOTAL WINS: %s%s\n%sHIDER WINS: %s%s\n%sSEEKER WINS: %s%s\n%sGAMES PLAYED: %s",
ChatColor.YELLOW, ChatColor.WHITE, info.seeker_wins+info.hider_wins, ChatColor.GOLD, ChatColor.WHITE, info.hider_wins,
ChatColor.RED, ChatColor.WHITE, info.seeker_wins, ChatColor.WHITE, info.seeker_games+info.hider_games);
ChatColor.YELLOW, ChatColor.WHITE, info.getSeekerWins() +info.getHiderWins(), ChatColor.GOLD, ChatColor.WHITE, info.getHiderWins(),
ChatColor.RED, ChatColor.WHITE, info.getSeekerWins(), ChatColor.WHITE, info.getSeekerGames() +info.getHiderGames());
message = message + ChatColor.WHITE + "" + ChatColor.BOLD + "\n==============================";
sender.sendMessage(message);

View file

@ -36,7 +36,7 @@ public class SetSpawnLocation implements ICommand {
Player player = (Player) sender;
LocationUtils.setLocation(player, Locations.GAME, vector -> {
if (worldborderEnabled && vector.distance(worldborderPosition) > 100) {
if (worldBorderEnabled && vector.distance(worldBorderPosition) > 100) {
sender.sendMessage(errorPrefix + message("WORLDBORDER_POSITION"));
throw new RuntimeException("World border not enabled or not in valid position!");
}

View file

@ -46,9 +46,9 @@ public class Config {
messagePrefix,
errorPrefix,
tauntPrefix,
worldborderPrefix,
worldBorderPrefix,
abortPrefix,
gameoverPrefix,
gameOverPrefix,
warningPrefix,
spawnWorld,
exitWorld,
@ -62,13 +62,13 @@ public class Config {
spawnPosition,
lobbyPosition,
exitPosition,
worldborderPosition;
worldBorderPosition;
public static boolean
nametagsVisible,
public static boolean
nameTagsVisible,
permissionsRequired,
announceMessagesToNonPlayers,
worldborderEnabled,
worldBorderEnabled,
tauntEnabled,
tauntCountdown,
tauntLast,
@ -87,10 +87,10 @@ public class Config {
public static int
minPlayers,
worldborderSize,
worldborderDelay,
worldBorderSize,
worldBorderDelay,
currentWorldborderSize,
worldborderChange,
worldBorderChange,
gameLength,
saveMinX,
saveMinZ,
@ -183,15 +183,15 @@ public class Config {
exitWorld = config.getString("spawns.exit.world");
//World border
worldborderPosition = new Vector(
worldBorderPosition = new Vector(
config.getInt("worldBorder.x"),
0,
config.getInt("worldBorder.z")
);
worldborderSize = Math.max(100, config.getInt("worldBorder.size"));
worldborderDelay = Math.max(1, config.getInt("worldBorder.delay"));
worldborderEnabled = config.getBoolean("worldBorder.enabled");
worldborderChange = config.getInt("worldBorder.moveAmount");
worldBorderSize = Math.max(100, config.getInt("worldBorder.size"));
worldBorderDelay = Math.max(1, config.getInt("worldBorder.delay"));
worldBorderEnabled = config.getBoolean("worldBorder.enabled");
worldBorderChange = config.getInt("worldBorder.moveAmount");
//Prefix
char SYMBOLE = '\u00A7';
@ -200,9 +200,9 @@ public class Config {
messagePrefix = config.getString("prefix.default").replace("&", SYMBOLE_STRING);
errorPrefix = config.getString("prefix.error").replace("&", SYMBOLE_STRING);
tauntPrefix = config.getString("prefix.taunt").replace("&", SYMBOLE_STRING);
worldborderPrefix = config.getString("prefix.border").replace("&", SYMBOLE_STRING);
worldBorderPrefix = config.getString("prefix.border").replace("&", SYMBOLE_STRING);
abortPrefix = config.getString("prefix.abort").replace("&", SYMBOLE_STRING);
gameoverPrefix = config.getString("prefix.gameover").replace("&", SYMBOLE_STRING);
gameOverPrefix = config.getString("prefix.gameover").replace("&", SYMBOLE_STRING);
warningPrefix = config.getString("prefix.warning").replace("&", SYMBOLE_STRING);
//Map Bounds
@ -248,7 +248,7 @@ public class Config {
ringingSound = ringingOptional.orElse(XSound.BLOCK_NOTE_BLOCK_PLING);
//Other
nametagsVisible = config.getBoolean("nametagsVisible");
nameTagsVisible = config.getBoolean("nametagsVisible");
permissionsRequired = config.getBoolean("permissionsRequired");
gameLength = config.getInt("gameLength");
pvpEnabled = config.getBoolean("pvp");

View file

@ -23,25 +23,62 @@ import java.util.UUID;
public class PlayerInfo {
public final UUID uuid;
public final int hider_wins;
public final int seeker_wins;
public final int hider_games;
public final int seeker_games;
public final int hider_kills;
public final int seeker_kills;
public final int hider_deaths;
public final int seeker_deaths;
private final UUID uniqueId;
private final int hiderWins;
private final int seekerWins;
private final int hiderGames;
private final int seekerGames;
private final int hiderKills;
private final int seekerKills;
private final int hiderDeaths;
private final int seekerDeaths;
public PlayerInfo(UUID uuid, int hider_wins, int seeker_wins, int hider_games, int seeker_games, int hider_kills, int seeker_kills, int hider_deaths, int seeker_deaths) {
this.uuid = uuid;
this.hider_wins = hider_wins;
this.seeker_wins = seeker_wins;
this.hider_games = hider_games;
this.seeker_games = seeker_games;
this.hider_kills = hider_kills;
this.seeker_kills = seeker_kills;
this.hider_deaths = hider_deaths;
this.seeker_deaths = seeker_deaths;
public PlayerInfo(UUID uniqueId, int hiderWins, int seekerWins, int hiderGames, int seekerGames, int hiderKills, int seekerKills, int hiderDeaths, int seekerDeaths) {
this.uniqueId = uniqueId;
this.hiderWins = hiderWins;
this.seekerWins = seekerWins;
this.hiderGames = hiderGames;
this.seekerGames = seekerGames;
this.hiderKills = hiderKills;
this.seekerKills = seekerKills;
this.hiderDeaths = hiderDeaths;
this.seekerDeaths = seekerDeaths;
}
public UUID getUniqueId() {
return uniqueId;
}
public int getHiderWins() {
return hiderWins;
}
public int getSeekerWins() {
return seekerWins;
}
public int getHiderGames() {
return hiderGames;
}
public int getSeekerGames() {
return seekerGames;
}
public int getHiderKills() {
return hiderKills;
}
public int getSeekerKills() {
return seekerKills;
}
public int getHiderDeaths() {
return hiderDeaths;
}
public int getSeekerDeaths() {
return seekerDeaths;
}
}

View file

@ -177,14 +177,14 @@ public class PlayerInfoTable {
}
try(Connection connection = database.connect(); PreparedStatement statement = connection.prepareStatement(sql)) {
statement.setBytes(1, database.encodeUUID(uuid));
statement.setInt(2, info.hider_wins + (winners.contains(uuid) && type == WinType.HIDER_WIN ? 1 : 0));
statement.setInt(3, info.seeker_wins + (winners.contains(uuid) && type == WinType.SEEKER_WIN ? 1 : 0));
statement.setInt(4, info.hider_games + (board.isHider(uuid) || (board.isSeeker(uuid) && !board.getFirstSeeker().getUniqueId().equals(uuid)) ? 1 : 0));
statement.setInt(5, info.seeker_games + (board.getFirstSeeker().getUniqueId().equals(uuid) ? 1 : 0));
statement.setInt(6, info.hider_kills + hider_kills.getOrDefault(uuid.toString(), 0));
statement.setInt(7, info.seeker_kills + seeker_kills.getOrDefault(uuid.toString(), 0));
statement.setInt(8, info.hider_deaths + hider_deaths.getOrDefault(uuid.toString(), 0));
statement.setInt(9, info.seeker_deaths + seeker_deaths.getOrDefault(uuid.toString(), 0));
statement.setInt(2, info.getHiderWins() + (winners.contains(uuid) && type == WinType.HIDER_WIN ? 1 : 0));
statement.setInt(3, info.getSeekerWins() + (winners.contains(uuid) && type == WinType.SEEKER_WIN ? 1 : 0));
statement.setInt(4, info.getHiderGames() + (board.isHider(uuid) || (board.isSeeker(uuid) && !board.getFirstSeeker().getUniqueId().equals(uuid)) ? 1 : 0));
statement.setInt(5, info.getSeekerGames() + (board.getFirstSeeker().getUniqueId().equals(uuid) ? 1 : 0));
statement.setInt(6, info.getHiderKills() + hider_kills.getOrDefault(uuid.toString(), 0));
statement.setInt(7, info.getSeekerKills() + seeker_kills.getOrDefault(uuid.toString(), 0));
statement.setInt(8, info.getHiderDeaths() + hider_deaths.getOrDefault(uuid.toString(), 0));
statement.setInt(9, info.getSeekerDeaths() + seeker_deaths.getOrDefault(uuid.toString(), 0));
statement.execute();
} catch (SQLException e) {
Main.getInstance().getLogger().severe("SQL Error: " + e.getMessage());

View file

@ -265,7 +265,7 @@ public class Board {
String value = getTeam(player);
board.setLine(String.valueOf(i), line.replace("{TEAM}", value));
} else if (line.contains("{BORDER}")) {
if (!worldborderEnabled) continue;
if (!worldBorderEnabled) continue;
if (worldBorder == null || status == Status.STARTING) {
board.setLine(String.valueOf(i), line.replace("{BORDER}", BORDER_COUNTING.replace("{AMOUNT}", "0")));
} else if (!worldBorder.isRunning()) {
@ -401,7 +401,7 @@ class CustomBoard {
for(Player player : Main.getInstance().getBoard().getSeekers())
seekerTeam.addEntry(player.getName());
if (Version.atLeast("1.9")) {
if (nametagsVisible) {
if (nameTagsVisible) {
hiderTeam.setOption(Team.Option.NAME_TAG_VISIBILITY, Team.OptionStatus.FOR_OWN_TEAM);
seekerTeam.setOption(Team.Option.NAME_TAG_VISIBILITY, Team.OptionStatus.FOR_OTHER_TEAMS);
} else {
@ -409,7 +409,7 @@ class CustomBoard {
seekerTeam.setOption(Team.Option.NAME_TAG_VISIBILITY, Team.OptionStatus.NEVER);
}
} else {
if (nametagsVisible) {
if (nameTagsVisible) {
hiderTeam.setNameTagVisibility(NameTagVisibility.HIDE_FOR_OTHER_TEAMS);
seekerTeam.setNameTagVisibility(NameTagVisibility.HIDE_FOR_OWN_TEAM);
} else {

View file

@ -303,7 +303,7 @@ public class Game {
board.reloadGameBoards();
gameTimer--;
}
if (worldborderEnabled) worldBorder.update();
if (worldBorderEnabled) worldBorder.update();
if (tauntEnabled) taunt.update();
if (glowEnabled) glow.update();
}
@ -336,12 +336,12 @@ public class Game {
private void checkWinConditions() {
if (board.sizeHider() < 1) {
if (hiderLeft) {
if (announceMessagesToNonPlayers) Bukkit.broadcastMessage(gameoverPrefix + message("GAME_GAMEOVER_HIDERS_QUIT"));
else broadcastMessage(gameoverPrefix + message("GAME_GAMEOVER_HIDERS_QUIT"));
if (announceMessagesToNonPlayers) Bukkit.broadcastMessage(gameOverPrefix + message("GAME_GAMEOVER_HIDERS_QUIT"));
else broadcastMessage(gameOverPrefix + message("GAME_GAMEOVER_HIDERS_QUIT"));
stop(WinType.NONE);
} else {
if (announceMessagesToNonPlayers) Bukkit.broadcastMessage(gameoverPrefix + message("GAME_GAMEOVER_HIDERS_FOUND"));
else broadcastMessage(gameoverPrefix + message("GAME_GAMEOVER_HIDERS_FOUND"));
if (announceMessagesToNonPlayers) Bukkit.broadcastMessage(gameOverPrefix + message("GAME_GAMEOVER_HIDERS_FOUND"));
else broadcastMessage(gameOverPrefix + message("GAME_GAMEOVER_HIDERS_FOUND"));
stop(WinType.SEEKER_WIN);
}
} else if (board.sizeSeeker() < 1) {
@ -349,8 +349,8 @@ public class Game {
else broadcastMessage(abortPrefix + message("GAME_GAMEOVER_SEEKERS_QUIT"));
stop(WinType.NONE);
} else if (gameTimer < 1) {
if (announceMessagesToNonPlayers) Bukkit.broadcastMessage(gameoverPrefix + message("GAME_GAMEOVER_TIME"));
else broadcastMessage(gameoverPrefix + message("GAME_GAMEOVER_TIME"));
if (announceMessagesToNonPlayers) Bukkit.broadcastMessage(gameOverPrefix + message("GAME_GAMEOVER_TIME"));
else broadcastMessage(gameOverPrefix + message("GAME_GAMEOVER_TIME"));
stop(WinType.HIDER_WIN);
}
hiderLeft = false;

View file

@ -13,31 +13,31 @@ public class Border {
private boolean running;
public Border() {
delay = 60 * worldborderDelay;
delay = 60 * worldBorderDelay;
}
public void update() {
if (delay == 30 && !running) {
Main.getInstance().getGame().broadcastMessage(worldborderPrefix + message("WORLDBORDER_WARN"));
Main.getInstance().getGame().broadcastMessage(worldBorderPrefix + message("WORLDBORDER_WARN"));
} else if (delay == 0) {
if (running) {
delay = 60 * worldborderDelay;
delay = 60 * worldBorderDelay;
running = false;
}
else decreaceWorldborder();
else decreaseWorldBorder();
}
delay--;
}
private void decreaceWorldborder() {
private void decreaseWorldBorder() {
if (currentWorldborderSize == 100) return;
int change = worldborderChange;
if (currentWorldborderSize-worldborderChange < 100) {
int change = worldBorderChange;
if (currentWorldborderSize-worldBorderChange < 100) {
change = currentWorldborderSize-100;
}
running = true;
Main.getInstance().getGame().broadcastMessage(worldborderPrefix + message("WORLDBORDER_DECREASING").addAmount(change));
currentWorldborderSize -= worldborderChange;
Main.getInstance().getGame().broadcastMessage(worldBorderPrefix + message("WORLDBORDER_DECREASING").addAmount(change));
currentWorldborderSize -= worldBorderChange;
World world = Bukkit.getWorld(Main.getInstance().getGame().getGameWorld());
assert world != null;
org.bukkit.WorldBorder border = world.getWorldBorder();
@ -49,15 +49,15 @@ public class Border {
World world = Bukkit.getWorld(worldName);
assert world != null;
org.bukkit.WorldBorder border = world.getWorldBorder();
if (worldborderEnabled) {
border.setSize(worldborderSize);
border.setCenter(worldborderPosition.getX(), worldborderPosition.getZ());
currentWorldborderSize = worldborderSize;
if (worldBorderEnabled) {
border.setSize(worldBorderSize);
border.setCenter(worldBorderPosition.getX(), worldBorderPosition.getZ());
currentWorldborderSize = worldBorderSize;
} else {
border.setSize(30000000);
border.setCenter(0, 0);
}
delay = 60 * worldborderDelay;
delay = 60 * worldBorderDelay;
}
public int getDelay() {

View file

@ -82,7 +82,7 @@ public class CommandHandler {
try {
COMMAND_REGISTER.get(args[0].toLowerCase()).execute(sender,Arrays.copyOfRange(args, 1, args.length));
} catch (Exception e) {
sender.sendMessage(errorPrefix + "An error has occured.");
sender.sendMessage(errorPrefix + "An error has occurred.");
e.printStackTrace();
}
}

View file

@ -57,7 +57,7 @@ public class PAPIExpansion extends PlaceholderExpansion {
if (args[0].equals("rank-score")) {
return getValue(info, args[1]);
} else {
return Main.getInstance().getServer().getOfflinePlayer(info.uuid).getName();
return Main.getInstance().getServer().getOfflinePlayer(info.getUniqueId()).getName();
}
} else if (args[0].equals("rank-place") && args.length == 2) {
if (getRanking(args[1]) == null) { return placeholderError; }
@ -83,29 +83,29 @@ public class PAPIExpansion extends PlaceholderExpansion {
if (query == null) return null;
switch (query) {
case "total-wins":
return String.valueOf(info.hider_wins + info.seeker_wins);
return String.valueOf(info.getHiderWins() + info.getSeekerWins());
case "hider-wins":
return String.valueOf(info.hider_wins);
return String.valueOf(info.getHiderWins());
case "seeker-wins":
return String.valueOf(info.seeker_wins);
return String.valueOf(info.getSeekerWins());
case "total-games":
return String.valueOf(info.hider_games + info.seeker_games);
return String.valueOf(info.getHiderGames() + info.getSeekerGames());
case "hider-games":
return String.valueOf(info.hider_games);
return String.valueOf(info.getHiderGames());
case "seeker-games":
return String.valueOf(info.seeker_games);
return String.valueOf(info.getSeekerGames());
case "total-kills":
return String.valueOf(info.hider_kills + info.seeker_kills);
return String.valueOf(info.getHiderKills() + info.getSeekerKills());
case "hider-kills":
return String.valueOf(info.hider_kills);
return String.valueOf(info.getHiderKills());
case "seeker-kills":
return String.valueOf(info.seeker_kills);
return String.valueOf(info.getSeekerKills());
case "total-deaths":
return String.valueOf(info.hider_deaths + info.seeker_deaths);
return String.valueOf(info.getHiderDeaths() + info.getSeekerDeaths());
case "hider-deaths":
return String.valueOf(info.hider_deaths);
return String.valueOf(info.getHiderDeaths());
case "seeker-deaths":
return String.valueOf(info.seeker_deaths);
return String.valueOf(info.getSeekerDeaths());
default:
return null;
}

View file

@ -94,8 +94,8 @@ leaveServer: hub
# default: true
mapSaveEnabled: true
# The worldborder closes every interval, which is evey [delay] in minutes.
# Thw worldborder starts at [size], and decreases 100 blocks every interval.
# The world border closes every interval, which is evey [delay] in minutes.
# Thw world border starts at [size], and decreases 100 blocks every interval.
# x & z are the center location. [enabled] is whenever the border is enabled.
# You can choose if Hiders are warned 30 seconds before the border moves.
worldBorder:

View file

@ -42,7 +42,7 @@ permissions:
description: Allows you to reload the config
default: op
hideandseek.setborder:
description: Allows you to set the game worldborder
description: Allows you to set the game world border
default: op
hideandseek.setspawn:
description: Allows you to set the game spawn point