Refactor and optimize redundant code across the project
Removed unused imports and variables to streamline the codebase. Consolidated lambda expressions and improved formatting for better readability. Simplified methods by removing unnecessary parameters and redundant logic.
This commit is contained in:
parent
816c429346
commit
fa8d320da9
|
|
@ -38,7 +38,6 @@ import java.util.stream.Collectors;
|
||||||
public class Main extends JavaPlugin {
|
public class Main extends JavaPlugin {
|
||||||
|
|
||||||
private GameManager gameManager = null;
|
private GameManager gameManager = null;
|
||||||
private Flag flag;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onEnable() {
|
public void onEnable() {
|
||||||
|
|
@ -53,7 +52,7 @@ public class Main extends JavaPlugin {
|
||||||
this.gameManager = new GameManager(worldBorderApi);
|
this.gameManager = new GameManager(worldBorderApi);
|
||||||
registerTeams(); //Skipped in reloadConfig if gameManager is not created yet
|
registerTeams(); //Skipped in reloadConfig if gameManager is not created yet
|
||||||
loadPlayerStats(); //Skipped in reloadConfig if gameManager is not created yet
|
loadPlayerStats(); //Skipped in reloadConfig if gameManager is not created yet
|
||||||
flag = new Flag(this, gameManager);
|
Flag flag = new Flag(this, gameManager);
|
||||||
new CommandManager(this, gameManager, flag, worldBorderApi);
|
new CommandManager(this, gameManager, flag, worldBorderApi);
|
||||||
//Ensuring immediate respawn is on in all worlds
|
//Ensuring immediate respawn is on in all worlds
|
||||||
enableImmediateRespawn();
|
enableImmediateRespawn();
|
||||||
|
|
@ -163,4 +162,4 @@ public class Main extends JavaPlugin {
|
||||||
scheduledExecutorService.scheduleAtFixedRate(runnable, 0, 1, java.util.concurrent.TimeUnit.MINUTES);
|
scheduledExecutorService.scheduleAtFixedRate(runnable, 0, 1, java.util.concurrent.TimeUnit.MINUTES);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,16 +3,10 @@ package com.alttd.ctf.commands.subcommands;
|
||||||
import com.alttd.ctf.commands.SubCommand;
|
import com.alttd.ctf.commands.SubCommand;
|
||||||
import com.alttd.ctf.config.Messages;
|
import com.alttd.ctf.config.Messages;
|
||||||
import com.alttd.ctf.game.GameManager;
|
import com.alttd.ctf.game.GameManager;
|
||||||
import com.alttd.ctf.team.Team;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
|
|
||||||
import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver;
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
|
||||||
|
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public class SkipPhase extends SubCommand {
|
public class SkipPhase extends SubCommand {
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,6 @@ import com.alttd.ctf.Main;
|
||||||
import com.alttd.ctf.game.GamePhase;
|
import com.alttd.ctf.game.GamePhase;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.inventory.ItemStack;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.time.Duration;
|
import java.time.Duration;
|
||||||
|
|
|
||||||
|
|
@ -195,7 +195,7 @@ public class Flag implements Runnable {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
LinkedList<Location> particleTrail = new LinkedList<>();
|
private final LinkedList<Location> particleTrail = new LinkedList<>();
|
||||||
|
|
||||||
private void spawnTrail() {
|
private void spawnTrail() {
|
||||||
TeamColor color = winningTeam.getColor();
|
TeamColor color = winningTeam.getColor();
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,6 @@ import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.player.PlayerInteractEvent;
|
import org.bukkit.event.player.PlayerInteractEvent;
|
||||||
import org.bukkit.inventory.EquipmentSlot;
|
|
||||||
|
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,6 @@ import java.time.Duration;
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
|
||||||
import java.util.concurrent.ScheduledExecutorService;
|
import java.util.concurrent.ScheduledExecutorService;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,6 @@ import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
|
|
|
||||||
|
|
@ -71,18 +71,17 @@ public class EndedPhase implements GamePhaseExecutor {
|
||||||
return messages;
|
return messages;
|
||||||
} else if (topTeams.size() > 1) { // Draw scenario, multiple teams have the same top score
|
} else if (topTeams.size() > 1) { // Draw scenario, multiple teams have the same top score
|
||||||
messages.add(miniMessage.deserialize("<yellow>It's a draw! Top teams:</yellow>"));
|
messages.add(miniMessage.deserialize("<yellow>It's a draw! Top teams:</yellow>"));
|
||||||
topTeams.forEach(team -> {
|
topTeams.forEach(team -> messages.add(
|
||||||
messages.add(miniMessage.deserialize("<team> had <score> captures.",
|
miniMessage.deserialize("<team> had <score> captures.",
|
||||||
Placeholder.component("team", team.getName()),
|
Placeholder.component("team", team.getName()),
|
||||||
Placeholder.parsed("score", String.valueOf(highestScore))));
|
Placeholder.parsed("score", String.valueOf(highestScore)))));
|
||||||
});
|
|
||||||
addOtherTeamsScore(wins, highestScore, messages);
|
addOtherTeamsScore(wins, highestScore, messages);
|
||||||
return messages;
|
return messages;
|
||||||
} else { // Single winner
|
} else { // Single winner
|
||||||
Team winner = topTeams.getFirst();
|
Team winner = topTeams.getFirst();
|
||||||
messages.add(miniMessage.deserialize("<green><team> has won with <score> captures!</green>",
|
messages.add(miniMessage.deserialize("<green><team> has won with <score> captures!</green>",
|
||||||
Placeholder.component("team", winner.getName()),
|
Placeholder.component("team", winner.getName()),
|
||||||
Placeholder.parsed("score", String.valueOf(highestScore))));
|
Placeholder.parsed("score", String.valueOf(highestScore))));
|
||||||
if (wins.size() <= 1) {
|
if (wins.size() <= 1) {
|
||||||
return messages;
|
return messages;
|
||||||
}
|
}
|
||||||
|
|
@ -97,8 +96,8 @@ public class EndedPhase implements GamePhaseExecutor {
|
||||||
wins.entrySet().stream()
|
wins.entrySet().stream()
|
||||||
.filter(entry -> entry.getValue() < winningScore)
|
.filter(entry -> entry.getValue() < winningScore)
|
||||||
.forEach(entry -> messages.add(miniMessage.deserialize("<yellow><team> had <score> captures.</yellow>",
|
.forEach(entry -> messages.add(miniMessage.deserialize("<yellow><team> had <score> captures.</yellow>",
|
||||||
Placeholder.component("team", entry.getKey().getName()),
|
Placeholder.component("team", entry.getKey().getName()),
|
||||||
Placeholder.parsed("score", String.valueOf(entry.getValue())))));
|
Placeholder.parsed("score", String.valueOf(entry.getValue())))));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -36,14 +36,13 @@ public class GatheringPhase implements GamePhaseExecutor {
|
||||||
log.error("Unable to update world border due to missing Flag");
|
log.error("Unable to update world border due to missing Flag");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
gameManager.getTeams().forEach(team -> {
|
gameManager.getTeams()
|
||||||
team.getPlayers().forEach(teamPlayer -> {
|
.forEach(team -> team.getPlayers().forEach(teamPlayer -> {
|
||||||
Player player = Bukkit.getPlayer(teamPlayer.getUuid());
|
Player player = Bukkit.getPlayer(teamPlayer.getUuid());
|
||||||
if (player == null || !player.isOnline()) {
|
if (player == null || !player.isOnline()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
teamPlayer.resetWorldBorder(player, worldBorderApi, nextPhase, flag.getFlagLocation());
|
teamPlayer.resetWorldBorder(player, worldBorderApi, nextPhase, flag.getFlagLocation());
|
||||||
});
|
}));
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,9 +12,7 @@ public class GameClassRetrieval {
|
||||||
|
|
||||||
public static HashMap<Integer, List<GameClass>> getGameClassesForAllTeams(GameManager gameManager) {
|
public static HashMap<Integer, List<GameClass>> getGameClassesForAllTeams(GameManager gameManager) {
|
||||||
final HashMap<Integer, List<GameClass>> gameClasses = new HashMap<>();
|
final HashMap<Integer, List<GameClass>> gameClasses = new HashMap<>();
|
||||||
gameManager.getTeams().forEach(team -> {
|
gameManager.getTeams().forEach(team -> gameClasses.put(team.getId(), getGameClassesForTeam(team)));
|
||||||
gameClasses.put(team.getId(), getGameClassesForTeam(team));
|
|
||||||
});
|
|
||||||
return gameClasses;
|
return gameClasses;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@ package com.alttd.ctf.game_class.creation;
|
||||||
|
|
||||||
import com.alttd.ctf.game_class.GameClass;
|
import com.alttd.ctf.game_class.GameClass;
|
||||||
import com.alttd.ctf.game_class.implementations.Engineer;
|
import com.alttd.ctf.game_class.implementations.Engineer;
|
||||||
import com.alttd.ctf.game_class.implementations.Fighter;
|
|
||||||
import com.alttd.ctf.team.TeamColor;
|
import com.alttd.ctf.team.TeamColor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.kyori.adventure.text.minimessage.MiniMessage;
|
import net.kyori.adventure.text.minimessage.MiniMessage;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
package com.alttd.ctf.game_class.creation;
|
package com.alttd.ctf.game_class.creation;
|
||||||
|
|
||||||
import com.alttd.ctf.game_class.GameClass;
|
import com.alttd.ctf.game_class.GameClass;
|
||||||
import com.alttd.ctf.game_class.implementations.Fighter;
|
|
||||||
import com.alttd.ctf.game_class.implementations.Mage;
|
import com.alttd.ctf.game_class.implementations.Mage;
|
||||||
import com.alttd.ctf.team.TeamColor;
|
import com.alttd.ctf.team.TeamColor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
@ -10,8 +9,6 @@ import org.bukkit.Material;
|
||||||
import org.bukkit.enchantments.Enchantment;
|
import org.bukkit.enchantments.Enchantment;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.meta.ItemMeta;
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
import org.bukkit.inventory.meta.PotionMeta;
|
|
||||||
import org.bukkit.potion.PotionType;
|
|
||||||
import org.jetbrains.annotations.Contract;
|
import org.jetbrains.annotations.Contract;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Unmodifiable;
|
import org.jetbrains.annotations.Unmodifiable;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
package com.alttd.ctf.game_class.creation;
|
package com.alttd.ctf.game_class.creation;
|
||||||
|
|
||||||
import com.alttd.ctf.game_class.GameClass;
|
import com.alttd.ctf.game_class.GameClass;
|
||||||
import com.alttd.ctf.game_class.implementations.Fighter;
|
|
||||||
import com.alttd.ctf.game_class.implementations.Tank;
|
import com.alttd.ctf.game_class.implementations.Tank;
|
||||||
import com.alttd.ctf.team.TeamColor;
|
import com.alttd.ctf.team.TeamColor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,6 @@ import org.jetbrains.annotations.Unmodifiable;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.IntStream;
|
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class TrapperCreator {
|
public class TrapperCreator {
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,9 @@
|
||||||
package com.alttd.ctf.game_class.implementations;
|
package com.alttd.ctf.game_class.implementations;
|
||||||
|
|
||||||
import com.alttd.ctf.game_class.GameClass;
|
import com.alttd.ctf.game_class.GameClass;
|
||||||
import com.alttd.ctf.team.TeamColor;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,6 @@ package com.alttd.ctf.gui;
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.inventory.Inventory;
|
import org.bukkit.inventory.Inventory;
|
||||||
import org.bukkit.inventory.Merchant;
|
|
||||||
import org.bukkit.inventory.MerchantInventory;
|
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
|
||||||
|
|
@ -56,9 +56,7 @@ public class DiscordTeam {
|
||||||
}
|
}
|
||||||
Member nullableMember = guild.getMemberById(player.getDiscordID());
|
Member nullableMember = guild.getMemberById(player.getDiscordID());
|
||||||
if (nullableMember == null) {
|
if (nullableMember == null) {
|
||||||
guild.retrieveMemberById(player.getDiscordID()).queue(member -> {
|
guild.retrieveMemberById(player.getDiscordID()).queue(member -> consumer.apply(role, member));
|
||||||
consumer.apply(role, member);
|
|
||||||
});
|
|
||||||
} else {
|
} else {
|
||||||
consumer.apply(role, nullableMember);
|
consumer.apply(role, nullableMember);
|
||||||
}
|
}
|
||||||
|
|
@ -83,9 +81,7 @@ public class DiscordTeam {
|
||||||
gameManager.getTeams().forEach(otherTeam ->
|
gameManager.getTeams().forEach(otherTeam ->
|
||||||
member.getRoles().stream()
|
member.getRoles().stream()
|
||||||
.filter(otherRole -> otherRole.getIdLong() == otherTeam.getDiscordRole())
|
.filter(otherRole -> otherRole.getIdLong() == otherTeam.getDiscordRole())
|
||||||
.forEach(otherRole -> {
|
.forEach(otherRole -> member.getGuild().removeRoleFromMember(member, otherRole).queue()));
|
||||||
member.getGuild().removeRoleFromMember(member, otherRole).queue();
|
|
||||||
}));
|
|
||||||
member.getGuild().addRoleToMember(member, role).queue(ignored -> kickFromVoiceIfNeeded(member));
|
member.getGuild().addRoleToMember(member, role).queue(ignored -> kickFromVoiceIfNeeded(member));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,6 @@ package com.alttd.ctf.team;
|
||||||
|
|
||||||
import com.alttd.ctf.game.GameManager;
|
import com.alttd.ctf.game.GameManager;
|
||||||
import com.alttd.ctf.game.GamePhase;
|
import com.alttd.ctf.game.GamePhase;
|
||||||
import io.papermc.paper.scoreboard.numbers.NumberFormat;
|
|
||||||
import net.kyori.adventure.text.event.ClickEvent;
|
|
||||||
import net.kyori.adventure.text.format.*;
|
import net.kyori.adventure.text.format.*;
|
||||||
import net.kyori.adventure.text.minimessage.MiniMessage;
|
import net.kyori.adventure.text.minimessage.MiniMessage;
|
||||||
import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer;
|
import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer;
|
||||||
|
|
@ -44,17 +42,17 @@ public class TeamScoreboard {
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void setScore(int newScore) {
|
protected void setScore(int newScore) {
|
||||||
Objective objective = getOrCreateObjective("teamScores", "<gold>CTF score</gold>");
|
Objective objective = getOrCreateObjective();
|
||||||
Score score = objective.getScore(team.getLegacyTeamColor() +
|
Score score = objective.getScore(team.getLegacyTeamColor() +
|
||||||
PlainTextComponentSerializer.plainText().serialize(team.getName()));
|
PlainTextComponentSerializer.plainText().serialize(team.getName()));
|
||||||
score.setScore(newScore);
|
score.setScore(newScore);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Objective getOrCreateObjective(String internalName, String displayName) {
|
private static Objective getOrCreateObjective() {
|
||||||
Objective objective = scoreboard.getObjective(internalName);
|
Objective objective = scoreboard.getObjective("teamScores");
|
||||||
if (objective == null) {
|
if (objective == null) {
|
||||||
objective = scoreboard.registerNewObjective(internalName, Criteria.DUMMY,
|
objective = scoreboard.registerNewObjective("teamScores", Criteria.DUMMY,
|
||||||
MiniMessage.miniMessage().deserialize(displayName));
|
MiniMessage.miniMessage().deserialize("<gold>CTF score</gold>"));
|
||||||
objective.setDisplaySlot(DisplaySlot.SIDEBAR);
|
objective.setDisplaySlot(DisplaySlot.SIDEBAR);
|
||||||
}
|
}
|
||||||
return objective;
|
return objective;
|
||||||
|
|
@ -64,11 +62,11 @@ public class TeamScoreboard {
|
||||||
private static PhaseScore phaseScore = null;
|
private static PhaseScore phaseScore = null;
|
||||||
private static void updateTime(GamePhase gamePhase, Duration duration) {
|
private static void updateTime(GamePhase gamePhase, Duration duration) {
|
||||||
if (phaseScore == null) {
|
if (phaseScore == null) {
|
||||||
phaseScore = new PhaseScore(gamePhase, getOrCreateObjective("teamScores", "<gold>CTF score</gold>")
|
phaseScore = new PhaseScore(gamePhase, getOrCreateObjective()
|
||||||
.getScore(ChatColor.GREEN + PlainTextComponentSerializer.plainText().serialize(gamePhase.getDisplayName())));
|
.getScore(ChatColor.GREEN + PlainTextComponentSerializer.plainText().serialize(gamePhase.getDisplayName())));
|
||||||
} else if (phaseScore.gamePhase() != gamePhase) {
|
} else if (phaseScore.gamePhase() != gamePhase) {
|
||||||
phaseScore.score.resetScore();
|
phaseScore.score.resetScore();
|
||||||
phaseScore = new PhaseScore(gamePhase, getOrCreateObjective("teamScores", "<gold>CTF score</gold>")
|
phaseScore = new PhaseScore(gamePhase, getOrCreateObjective()
|
||||||
.getScore(ChatColor.GREEN + PlainTextComponentSerializer.plainText().serialize(gamePhase.getDisplayName())));
|
.getScore(ChatColor.GREEN + PlainTextComponentSerializer.plainText().serialize(gamePhase.getDisplayName())));
|
||||||
}
|
}
|
||||||
phaseScore.score.setScore(duration.toMinutesPart() == 0 ? duration.toSecondsPart() : duration.toMinutesPart());
|
phaseScore.score.setScore(duration.toMinutesPart() == 0 ? duration.toSecondsPart() : duration.toMinutesPart());
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user