Date: Fri, 10 Sep 2021 21:57:28 +0200
Subject: [PATCH 015/127] Now users can use placeholderapi placeholders in
bossbar, titles, without player specified
---
CHANGELOG.md | 1 +
.../projects/murdermystery/HookManager.java | 4 +-
.../plugily/projects/murdermystery/Main.java | 2 +-
.../projects/murdermystery/arena/Arena.java | 49 +++++++++++--------
.../murdermystery/arena/role/Role.java | 6 +--
.../arguments/game/RoleSelectorArgument.java | 7 ++-
.../murdermystery/events/LobbyEvent.java | 11 +++--
.../murdermystery/handlers/ChatManager.java | 6 ++-
.../murdermystery/handlers/CorpseHandler.java | 4 +-
.../handlers/setup/SetupUtilities.java | 25 +++++++---
.../handlers/trails/BowTrailsHandler.java | 11 +++--
11 files changed, 74 insertions(+), 52 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index b28394fe..f03b865b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,7 @@
* Improved leaderboard command
* Added murderer and detective chance placeholders to scoreboard
* Now weather changing will be cancelled when a game is running
+* Now users can use placeholderapi placeholders in bossbar, titles, without player specified
### 1.7.9 Release (30.05.2021 - 01.08.2021)
* Added forcestart item
diff --git a/src/main/java/plugily/projects/murdermystery/HookManager.java b/src/main/java/plugily/projects/murdermystery/HookManager.java
index 879a951c..3c641cc7 100644
--- a/src/main/java/plugily/projects/murdermystery/HookManager.java
+++ b/src/main/java/plugily/projects/murdermystery/HookManager.java
@@ -57,12 +57,10 @@ private void enableHooks() {
}
public boolean isFeatureEnabled(HookFeature feature) {
- Boolean b = hooks.get(feature);
- return b != null && b;
+ return hooks.getOrDefault(feature, false);
}
public enum HookFeature {
- //todo hidden name tags hook
CORPSES(Hook.CORPSE_REBORN);
private final Hook[] requiredHooks;
diff --git a/src/main/java/plugily/projects/murdermystery/Main.java b/src/main/java/plugily/projects/murdermystery/Main.java
index d9cc70b4..b19ec16e 100644
--- a/src/main/java/plugily/projects/murdermystery/Main.java
+++ b/src/main/java/plugily/projects/murdermystery/Main.java
@@ -293,7 +293,7 @@ private void checkUpdate() {
private void setupFiles() {
for(String fileName : Arrays.asList("arenas", "bungee", "rewards", "stats", "special_items", "mysql", "specialblocks")) {
- File file = new File(getDataFolder() + File.separator + fileName + ".yml");
+ File file = new File(getDataFolder(), fileName + ".yml");
if(!file.exists()) {
saveResource(fileName + ".yml", false);
}
diff --git a/src/main/java/plugily/projects/murdermystery/arena/Arena.java b/src/main/java/plugily/projects/murdermystery/arena/Arena.java
index 1d5722f7..b002fdbf 100644
--- a/src/main/java/plugily/projects/murdermystery/arena/Arena.java
+++ b/src/main/java/plugily/projects/murdermystery/arena/Arena.java
@@ -116,7 +116,7 @@ public Arena(String id) {
arenaOptions.put(option, option.getDefaultValue());
}
if(ServerVersion.Version.isCurrentEqualOrHigher(ServerVersion.Version.v1_9_R1) && plugin.getConfigPreferences().getOption(ConfigPreferences.Option.BOSSBAR_ENABLED)) {
- gameBar = Bukkit.createBossBar(chatManager.colorMessage("Bossbar.Main-Title"), BarColor.BLUE, BarStyle.SOLID);
+ gameBar = Bukkit.createBossBar(chatManager.colorMessage("Bossbar.Main-Title", null), BarColor.BLUE, BarStyle.SOLID);
}
scoreboardManager = new ScoreboardManager(this);
}
@@ -166,7 +166,7 @@ public void run() {
}
} else {
if(gameBar != null) {
- gameBar.setTitle(chatManager.colorMessage("Bossbar.Waiting-For-Players"));
+ gameBar.setTitle(chatManager.colorMessage("Bossbar.Waiting-For-Players", null));
}
chatManager.broadcast(this, chatManager.colorMessage("In-Game.Messages.Lobby-Messages.Enough-Players-To-Start"));
setArenaState(ArenaState.STARTING);
@@ -187,7 +187,7 @@ public void run() {
double startWaitingTime = plugin.getConfig().getDouble("Starting-Waiting-Time", 60);
if(gameBar != null) {
- gameBar.setTitle(chatManager.colorMessage("Bossbar.Starting-In").replace("%time%", Integer.toString(timer)));
+ gameBar.setTitle(chatManager.colorMessage("Bossbar.Starting-In", null).replace("%time%", Integer.toString(timer)));
gameBar.setProgress(timer / startWaitingTime);
}
@@ -202,7 +202,7 @@ public void run() {
if(!forceStart && players.size() < minimumPlayers) {
if(gameBar != null) {
- gameBar.setTitle(chatManager.colorMessage("Bossbar.Waiting-For-Players"));
+ gameBar.setTitle(chatManager.colorMessage("Bossbar.Waiting-For-Players", null));
gameBar.setProgress(1.0);
}
@@ -233,7 +233,7 @@ public void run() {
}
if(!hideChances) {
- String message = chatManager.colorMessage("In-Game.Messages.Lobby-Messages.Role-Chances-Action-Bar");
+ String message = chatManager.colorMessage("In-Game.Messages.Lobby-Messages.Role-Chances-Action-Bar", null);
for(Player p : players) {
VersionUtils.sendActionBar(p, formatRoleChance(message, plugin.getUserManager().getUser(p), totalMurderer, totalDetective));
@@ -317,6 +317,9 @@ public void run() {
Object[] sortedMurdererArray = sortedMurderer.keySet().toArray();
+ String murdererTitle = chatManager.colorMessage("In-Game.Messages.Role-Set.Murderer-Title", null);
+ String murdererSubTitle = chatManager.colorMessage("In-Game.Messages.Role-Set.Murderer-Subtitle", null);
+
for(int i = 0; i < maxmurderer; i++) {
if (i >= sortedMurdererArray.length)
break;
@@ -329,8 +332,7 @@ public void run() {
allMurderer.add(murderer);
user.setStat(StatsStorage.StatisticType.CONTRIBUTION_MURDERER, 1);
playersToSet.remove(murderer);
- VersionUtils.sendTitles(murderer, chatManager.colorMessage("In-Game.Messages.Role-Set.Murderer-Title"),
- chatManager.colorMessage("In-Game.Messages.Role-Set.Murderer-Subtitle"), 5, 40, 5);
+ VersionUtils.sendTitles(murderer, murdererTitle, murdererSubTitle, 5, 40, 5);
}
detectiveChances.remove(user);
@@ -345,6 +347,9 @@ public void run() {
Object[] sortedDetArray = sortedDetective.keySet().toArray();
+ String detectiveTitle = chatManager.colorMessage("In-Game.Messages.Role-Set.Detective-Title", null);
+ String detectiveSubTitle = chatManager.colorMessage("In-Game.Messages.Role-Set.Detective-Subtitle", null);
+
for(int i = 0; i < maxdetectives; i++) {
if (i >= sortedDetArray.length)
break;
@@ -358,8 +363,9 @@ public void run() {
setCharacter(CharacterType.DETECTIVE, detective);
allDetectives.add(detective);
user.setStat(StatsStorage.StatisticType.CONTRIBUTION_DETECTIVE, 1);
- VersionUtils.sendTitles(detective, chatManager.colorMessage("In-Game.Messages.Role-Set.Detective-Title"),
- chatManager.colorMessage("In-Game.Messages.Role-Set.Detective-Subtitle"), 5, 40, 5);
+
+ VersionUtils.sendTitles(detective, detectiveTitle, detectiveSubTitle, 5, 40, 5);
+
playersToSet.remove(detective);
detective.getInventory().setHeldItemSlot(0);
ItemPosition.setItem(detective, ItemPosition.BOW, new ItemStack(Material.BOW, 1));
@@ -368,14 +374,14 @@ public void run() {
Debugger.debug("Arena: {0} | Detectives = {1}, Murders = {2}, Players = {3} | Players: Detectives = {4}, Murders = {5}",
getId(), maxdetectives, maxmurderer, playersSize, allDetectives, allMurderer);
- String innocentTitle = chatManager.colorMessage("In-Game.Messages.Role-Set.Innocent-Title");
- String innocentSubTitle = chatManager.colorMessage("In-Game.Messages.Role-Set.Innocent-Subtitle");
+ String innocentTitle = chatManager.colorMessage("In-Game.Messages.Role-Set.Innocent-Title", null);
+ String innocentSubTitle = chatManager.colorMessage("In-Game.Messages.Role-Set.Innocent-Subtitle", null);
for(Player p : playersToSet) {
VersionUtils.sendTitles(p, innocentTitle, innocentSubTitle, 5, 40, 5);
}
if(gameBar != null) {
- gameBar.setTitle(chatManager.colorMessage("Bossbar.In-Game-Info"));
+ gameBar.setTitle(chatManager.colorMessage("Bossbar.In-Game-Info", null));
}
// Load and append special blocks hologram
@@ -435,8 +441,9 @@ public void run() {
if(currentTimer == 30 || currentTimer == 60) {
String strTimer = Integer.toString(currentTimer);
- String title = chatManager.colorMessage("In-Game.Messages.Seconds-Left-Title").replace("%time%", strTimer);
- String subtitle = chatManager.colorMessage("In-Game.Messages.Seconds-Left-Subtitle").replace("%time%", strTimer);
+ String title = chatManager.colorMessage("In-Game.Messages.Seconds-Left-Title", null).replace("%time%", strTimer);
+ String subtitle = chatManager.colorMessage("In-Game.Messages.Seconds-Left-Subtitle", null).replace("%time%", strTimer);
+
for(Player p : players) {
VersionUtils.sendTitles(p, title, subtitle, 5, 40, 5);
}
@@ -453,9 +460,9 @@ public void run() {
} else {
//winner check
if(playersLeft.size() == aliveMurderer()) {
- String loseTitle = chatManager.colorMessage("In-Game.Messages.Game-End-Messages.Titles.Lose");
- String murdererKill = chatManager.colorMessage("In-Game.Messages.Game-End-Messages.Subtitles.Murderer-Kill-Everyone");
- String titleWin = chatManager.colorMessage("In-Game.Messages.Game-End-Messages.Titles.Win");
+ String loseTitle = chatManager.colorMessage("In-Game.Messages.Game-End-Messages.Titles.Lose", null);
+ String murdererKill = chatManager.colorMessage("In-Game.Messages.Game-End-Messages.Subtitles.Murderer-Kill-Everyone", null);
+ String titleWin = chatManager.colorMessage("In-Game.Messages.Game-End-Messages.Titles.Win", null);
for(Player p : players) {
VersionUtils.sendTitles(p, loseTitle, murdererKill, 5, 40, 5);
@@ -496,7 +503,7 @@ public void run() {
}
if(getTimer() <= 0) {
if(gameBar != null) {
- gameBar.setTitle(chatManager.colorMessage("Bossbar.Game-Ended"));
+ gameBar.setTitle(chatManager.colorMessage("Bossbar.Game-Ended", null));
}
for(Player player : new ArrayList<>(players)) {
@@ -561,7 +568,7 @@ public void run() {
}
}
if(gameBar != null) {
- gameBar.setTitle(chatManager.colorMessage("Bossbar.Waiting-For-Players"));
+ gameBar.setTitle(chatManager.colorMessage("Bossbar.Waiting-For-Players", null));
}
if(goldVisuals) {
@@ -967,11 +974,11 @@ public void loadSpecialBlock(SpecialBlock block) {
switch(block.getSpecialBlockType()) {
case MYSTERY_CAULDRON:
- block.setArmorStandHologram(new ArmorStandHologram(Utils.getBlockCenter(block.getLocation()), chatManager.colorMessage("In-Game.Messages.Special-Blocks.Cauldron-Hologram")));
+ block.setArmorStandHologram(new ArmorStandHologram(Utils.getBlockCenter(block.getLocation()), chatManager.colorMessage("In-Game.Messages.Special-Blocks.Cauldron-Hologram", null)));
break;
case PRAISE_DEVELOPER:
ArmorStandHologram prayer = new ArmorStandHologram(Utils.getBlockCenter(block.getLocation()));
- for(String str : chatManager.colorMessage("In-Game.Messages.Special-Blocks.Praise-Hologram").split(";")) {
+ for(String str : chatManager.colorMessage("In-Game.Messages.Special-Blocks.Praise-Hologram", null).split(";")) {
prayer.appendLine(str);
}
block.setArmorStandHologram(prayer);
diff --git a/src/main/java/plugily/projects/murdermystery/arena/role/Role.java b/src/main/java/plugily/projects/murdermystery/arena/role/Role.java
index dcc603ed..1f1f1529 100644
--- a/src/main/java/plugily/projects/murdermystery/arena/role/Role.java
+++ b/src/main/java/plugily/projects/murdermystery/arena/role/Role.java
@@ -22,8 +22,6 @@
import plugily.projects.murdermystery.arena.Arena;
import plugily.projects.murdermystery.arena.ArenaRegistry;
-import java.util.Arrays;
-
/**
* @author Plajer
*
@@ -114,6 +112,8 @@ public static boolean isAnyRole(Player player) {
return isAnyRole(player, ArenaRegistry.getArena(player));
}
+ private static final java.util.stream.Stream roles = java.util.Arrays.stream(Role.values());
+
/**
* Checks whether player is playing a role or not
*
@@ -122,6 +122,6 @@ public static boolean isAnyRole(Player player) {
* @return true if is playing one role, false otherwise
*/
public static boolean isAnyRole(Player player, Arena arena) {
- return arena != null && Arrays.stream(Role.values()).anyMatch(role -> isRole(role, player, arena));
+ return arena != null && roles.anyMatch(role -> isRole(role, player, arena));
}
}
diff --git a/src/main/java/plugily/projects/murdermystery/commands/arguments/game/RoleSelectorArgument.java b/src/main/java/plugily/projects/murdermystery/commands/arguments/game/RoleSelectorArgument.java
index 3426f69b..b770b564 100644
--- a/src/main/java/plugily/projects/murdermystery/commands/arguments/game/RoleSelectorArgument.java
+++ b/src/main/java/plugily/projects/murdermystery/commands/arguments/game/RoleSelectorArgument.java
@@ -23,17 +23,16 @@
public class RoleSelectorArgument implements Listener {
-
public RoleSelectorArgument(ArgumentsRegistry registry) {
registry.mapArgument("murdermystery", new LabeledCommandArgument("roleselector", "murdermystery.roleselector", CommandArgument.ExecutorType.PLAYER,
new LabelData("/mm roleselector", "/mm roleselector", "&7Select a role\n&6Permission: &7murdermystery.roleselector")) {
@Override
public void execute(CommandSender sender, String[] args) {
Player player = (Player) sender;
- if(!Utils.checkIsInGameInstance(player)) {
- return;
+
+ if(Utils.checkIsInGameInstance(player)) {
+ openRolePassMenu(player, registry.getPlugin());
}
- openRolePassMenu((Player) sender, registry.getPlugin());
}
});
}
diff --git a/src/main/java/plugily/projects/murdermystery/events/LobbyEvent.java b/src/main/java/plugily/projects/murdermystery/events/LobbyEvent.java
index 33adc9be..bcfff911 100644
--- a/src/main/java/plugily/projects/murdermystery/events/LobbyEvent.java
+++ b/src/main/java/plugily/projects/murdermystery/events/LobbyEvent.java
@@ -75,12 +75,12 @@ public void onLobbyDamage(EntityDamageEvent event) {
@EventHandler
public void onItemFrameRotate(PlayerInteractEntityEvent event) {
- Player player = event.getPlayer();
- Arena arena = ArenaRegistry.getArena(player);
+ Arena arena = ArenaRegistry.getArena(event.getPlayer());
if(arena == null || arena.getArenaState() == ArenaState.IN_GAME) {
return;
}
- if(event.getRightClicked() instanceof ItemFrame && !((ItemFrame) event.getRightClicked()).getItem().getType().equals(Material.AIR)) {
+
+ if(event.getRightClicked() instanceof ItemFrame && ((ItemFrame) event.getRightClicked()).getItem().getType() != Material.AIR) {
event.setCancelled(true);
}
}
@@ -90,11 +90,12 @@ public void onHangingBreak(HangingBreakByEntityEvent event) {
if(event.getEntity().getType() != EntityType.PLAYER) {
return;
}
- Player player = (Player) event.getEntity();
- Arena arena = ArenaRegistry.getArena(player);
+
+ Arena arena = ArenaRegistry.getArena((Player) event.getEntity());
if(arena == null || arena.getArenaState() == ArenaState.IN_GAME) {
return;
}
+
event.setCancelled(true);
}
diff --git a/src/main/java/plugily/projects/murdermystery/handlers/ChatManager.java b/src/main/java/plugily/projects/murdermystery/handlers/ChatManager.java
index 824d6eee..82884ed6 100644
--- a/src/main/java/plugily/projects/murdermystery/handlers/ChatManager.java
+++ b/src/main/java/plugily/projects/murdermystery/handlers/ChatManager.java
@@ -69,11 +69,13 @@ public String colorRawMessage(String message) {
return ChatColor.translateAlternateColorCodes('&', message);
}
- public String colorMessage(String message, Player player) {
- String returnString = LanguageManager.getLanguageMessage(message);
+ public String colorMessage(String path, Player player) {
+ String returnString = LanguageManager.getLanguageMessage(path);
+
if(plugin.getServer().getPluginManager().isPluginEnabled("PlaceholderAPI")) {
returnString = PlaceholderAPI.setPlaceholders(player, returnString);
}
+
return colorRawMessage(returnString);
}
diff --git a/src/main/java/plugily/projects/murdermystery/handlers/CorpseHandler.java b/src/main/java/plugily/projects/murdermystery/handlers/CorpseHandler.java
index 1aa601c3..de52dc06 100644
--- a/src/main/java/plugily/projects/murdermystery/handlers/CorpseHandler.java
+++ b/src/main/java/plugily/projects/murdermystery/handlers/CorpseHandler.java
@@ -54,7 +54,6 @@
public class CorpseHandler implements Listener {
private final Main plugin;
- private final ChatManager chatManager;
private Corpses.CorpseData lastSpawnedCorpse;
private final Map registeredLastWords = new HashMap<>();
@@ -62,7 +61,6 @@ public class CorpseHandler implements Listener {
public CorpseHandler(Main plugin) {
this.plugin = plugin;
- chatManager = plugin.getChatManager();
//run bit later than hook manager to ensure it's not null
Bukkit.getScheduler().runTaskLater(plugin, () -> {
if(plugin.getHookManager().isFeatureEnabled(HookManager.HookFeature.CORPSES)) {
@@ -116,7 +114,7 @@ public void spawnCorpse(Player p, Arena arena) {
private ArmorStandHologram getLastWordsHologram(Player player) {
ArmorStandHologram hologram = new ArmorStandHologram(player.getLocation());
- hologram.appendLine(chatManager.colorMessage("In-Game.Messages.Corpse-Last-Words", player).replace("%player%", player.getName()));
+ hologram.appendLine(plugin.getChatManager().colorMessage("In-Game.Messages.Corpse-Last-Words", player).replace("%player%", player.getName()));
hologram.appendLine(plugin.getLastWordsManager().getRandomLastWord(player));
return hologram;
}
diff --git a/src/main/java/plugily/projects/murdermystery/handlers/setup/SetupUtilities.java b/src/main/java/plugily/projects/murdermystery/handlers/setup/SetupUtilities.java
index 3b827995..a77aed3d 100644
--- a/src/main/java/plugily/projects/murdermystery/handlers/setup/SetupUtilities.java
+++ b/src/main/java/plugily/projects/murdermystery/handlers/setup/SetupUtilities.java
@@ -43,29 +43,40 @@ public class SetupUtilities {
}
public String isOptionDone(String path) {
- if(config.isSet(path)) {
- return chatManager.colorRawMessage("&a&l✔ Completed &7(value: &8" + config.getString(path) + "&7)");
+ String option = config.getString(path);
+
+ if(option != null) {
+ return chatManager.colorRawMessage("&a&l✔ Completed &7(value: &8" + option + "&7)");
}
+
return chatManager.colorRawMessage("&c&l✘ Not Completed");
}
public String isOptionDoneList(String path, int minimum) {
- if(config.isSet(path)) {
- if(config.getStringList(path).size() < minimum) {
+ int listSize = config.getStringList(path).size();
+
+ if(listSize != 0) {
+ if(listSize < minimum) {
return chatManager.colorRawMessage("&c&l✘ Not Completed | &cPlease add more spawns");
}
- return chatManager.colorRawMessage("&a&l✔ Completed &7(value: &8" + config.getStringList(path).size() + "&7)");
+
+ return chatManager.colorRawMessage("&a&l✔ Completed &7(value: &8" + listSize + "&7)");
}
+
return chatManager.colorRawMessage("&c&l✘ Not Completed");
}
public String isOptionDoneBool(String path) {
- if(config.isSet(path)) {
- if(Bukkit.getServer().getWorlds().get(0).getSpawnLocation().equals(LocationSerializer.getLocation(config.getString(path)))) {
+ String option = config.getString(path);
+
+ if(option != null) {
+ if(Bukkit.getServer().getWorlds().get(0).getSpawnLocation().equals(LocationSerializer.getLocation(option))) {
return chatManager.colorRawMessage("&c&l✘ Not Completed");
}
+
return chatManager.colorRawMessage("&a&l✔ Completed");
}
+
return chatManager.colorRawMessage("&c&l✘ Not Completed");
}
diff --git a/src/main/java/plugily/projects/murdermystery/handlers/trails/BowTrailsHandler.java b/src/main/java/plugily/projects/murdermystery/handlers/trails/BowTrailsHandler.java
index 998e005f..45fdfb61 100644
--- a/src/main/java/plugily/projects/murdermystery/handlers/trails/BowTrailsHandler.java
+++ b/src/main/java/plugily/projects/murdermystery/handlers/trails/BowTrailsHandler.java
@@ -50,14 +50,19 @@ public void onArrowShoot(EntityShootBowEvent event) {
if(!(event.getEntity() instanceof Player && event.getProjectile() instanceof Arrow)) {
return;
}
- Player player = (Player) event.getEntity();
+
Entity projectile = event.getProjectile();
- if(!ArenaRegistry.isInArena(player) || projectile.isDead() || projectile.isOnGround()) {
+
+ if(projectile.isDead() || projectile.isOnGround()) {
return;
}
- if(!plugin.getTrailsManager().gotAnyTrails(player)) {
+
+ Player player = (Player) event.getEntity();
+
+ if(!ArenaRegistry.isInArena(player) || !plugin.getTrailsManager().gotAnyTrails(player)) {
return;
}
+
Trail trail = plugin.getTrailsManager().getRandomTrail(player);
Debugger.debug("Spawning particle with perm {0} for player {1}", trail.getPermission(), player.getName());
new BukkitRunnable() {
From 38ba1ba4870ecdc912233ddd9cf281af94a946f1 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Fri, 10 Sep 2021 19:58:02 +0000
Subject: [PATCH 016/127] Bump pom.xml from 1.7.9-dev6 to 1.7.9-dev7
---
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index dd6038cd..2109fc84 100644
--- a/pom.xml
+++ b/pom.xml
@@ -24,7 +24,7 @@
plugily.projects
murdermystery
- 1.7.9-dev6
+ 1.7.9-dev7
MurderMystery
From 4b1c05f8f562a33ee4f4ee247a9b170c9b6c1457 Mon Sep 17 00:00:00 2001
From: montlikadani
Date: Fri, 10 Sep 2021 22:15:37 +0200
Subject: [PATCH 017/127] Added option to determine if the deletion of arena
needs confirmation or not
---
CHANGELOG.md | 1 +
.../arguments/admin/arena/DeleteArgument.java | 23 +++++++++++++------
.../handlers/language/LanguageMigrator.java | 7 +++++-
src/main/resources/config.yml | 5 +++-
4 files changed, 27 insertions(+), 9 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index f03b865b..fa4bbc6c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,7 @@
* Added murderer and detective chance placeholders to scoreboard
* Now weather changing will be cancelled when a game is running
* Now users can use placeholderapi placeholders in bossbar, titles, without player specified
+* Added option to determine if the deletion of arena needs confirmation or not
### 1.7.9 Release (30.05.2021 - 01.08.2021)
* Added forcestart item
diff --git a/src/main/java/plugily/projects/murdermystery/commands/arguments/admin/arena/DeleteArgument.java b/src/main/java/plugily/projects/murdermystery/commands/arguments/admin/arena/DeleteArgument.java
index fd47dcd2..86f3d379 100644
--- a/src/main/java/plugily/projects/murdermystery/commands/arguments/admin/arena/DeleteArgument.java
+++ b/src/main/java/plugily/projects/murdermystery/commands/arguments/admin/arena/DeleteArgument.java
@@ -41,7 +41,7 @@
*/
public class DeleteArgument {
- private final Set confirmations = new HashSet<>();
+ private Set confirmations;
public DeleteArgument(ArgumentsRegistry registry, ChatManager chatManager) {
registry.mapArgument("murdermysteryadmin", new LabeledCommandArgument("delete", "murdermystery.admin.delete", CommandArgument.ExecutorType.PLAYER,
@@ -53,22 +53,31 @@ public void execute(CommandSender sender, String[] args) {
sender.sendMessage(chatManager.getPrefix() + chatManager.colorMessage("Commands.Type-Arena-Name"));
return;
}
+
Arena arena = ArenaRegistry.getArena(args[1]);
if(arena == null) {
sender.sendMessage(chatManager.getPrefix() + chatManager.colorMessage("Commands.No-Arena-Like-That"));
return;
}
- if(!confirmations.contains(sender)) {
- confirmations.add(sender);
- Bukkit.getScheduler().runTaskLater(registry.getPlugin(), () -> confirmations.remove(sender), 20 * 10);
- sender.sendMessage(chatManager.getPrefix() + chatManager.colorRawMessage("&cAre you sure you want to do this action? Type the command again &6within 10 seconds &cto confirm!"));
- return;
+
+ if (registry.getPlugin().getConfig().getBoolean("Deleting-Arena-Needs-Confirmation", true)) {
+ if (confirmations == null)
+ confirmations = new HashSet<>();
+
+ if(!confirmations.remove(sender)) {
+ confirmations.add(sender);
+ Bukkit.getScheduler().runTaskLater(registry.getPlugin(), () -> confirmations.remove(sender), 20 * 10);
+ sender.sendMessage(chatManager.getPrefix() + chatManager.colorRawMessage("&cAre you sure you want to do this action? Type the command again &6within 10 seconds &cto confirm!"));
+ return;
+ }
}
- confirmations.remove(sender);
+
ArenaManager.stopGame(true, arena);
+
FileConfiguration config = ConfigUtils.getConfig(registry.getPlugin(), "arenas");
config.set("instances." + args[1], null);
ConfigUtils.saveConfig(registry.getPlugin(), config, "arenas");
+
ArenaRegistry.unregisterArena(arena);
sender.sendMessage(chatManager.getPrefix() + chatManager.colorMessage("Commands.Removed-Game-Instance"));
}
diff --git a/src/main/java/plugily/projects/murdermystery/handlers/language/LanguageMigrator.java b/src/main/java/plugily/projects/murdermystery/handlers/language/LanguageMigrator.java
index b6778b31..dda9cf1b 100644
--- a/src/main/java/plugily/projects/murdermystery/handlers/language/LanguageMigrator.java
+++ b/src/main/java/plugily/projects/murdermystery/handlers/language/LanguageMigrator.java
@@ -34,7 +34,7 @@
@SuppressWarnings("deprecation")
public class LanguageMigrator {
- public static final int CONFIG_FILE_VERSION = 23;
+ public static final int CONFIG_FILE_VERSION = 24;
public static final int LANGUAGE_FILE_VERSION = 8;
private final Main plugin;
@@ -210,6 +210,11 @@ private void configUpdate() {
" - \"block_crack\"\r\n" +
" - \"item_crack\"\r\n" +
" - \"block_dust\"\r\n");
+ break;
+ case 23:
+ MigratorUtils.addNewLines(file, "\r\n# Should the /mma delete command awaits the confirmation to delete the arena?\r\n"
+ + "Deleting-Arena-Needs-Confirmation: true\r\n");
+ break;
default:
break;
}
diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml
index 56944520..58120c36 100644
--- a/src/main/resources/config.yml
+++ b/src/main/resources/config.yml
@@ -145,6 +145,9 @@ Enable-Short-Commands: false
# Should /mm leave command be blocked?
Disable-Leave-Command: false
+# Should the /mma delete command awaits the confirmation to delete the arena?
+Deleting-Arena-Needs-Confirmation: true
+
# Should players get no fall damage?
Disable-Fall-Damage: false
@@ -203,6 +206,6 @@ Blacklisted-Trails:
- "block_dust"
# Don't modify.
-Version: 23
+Version: 24
# No way! You've reached the end! But... where's the dragon!?
\ No newline at end of file
From 86c2a3fffa33498806365b4e50d9e810cd056630 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Fri, 10 Sep 2021 20:16:06 +0000
Subject: [PATCH 018/127] Bump pom.xml from 1.7.9-dev7 to 1.7.9-dev8
---
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index 2109fc84..a97bea7a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -24,7 +24,7 @@
plugily.projects
murdermystery
- 1.7.9-dev7
+ 1.7.9-dev8
MurderMystery
From bfe8f7af043d83526b94f1de28419acdde1723f6 Mon Sep 17 00:00:00 2001
From: montlikadani
Date: Fri, 17 Sep 2021 21:33:49 +0200
Subject: [PATCH 019/127] Fixed nullPointer issue when party member is not
found so the elements of List contained some unwanted null keys
---
.../murdermystery/arena/ArenaManager.java | 7 +++--
.../handlers/party/PAFBPartyHandlerImpl.java | 27 ++++++++---------
.../handlers/party/PAFSPartyHandlerImpl.java | 29 ++++++++----------
.../party/PartiesPartyHandlerImpl.java | 30 ++++++++-----------
.../handlers/party/PartyHandler.java | 2 --
.../party/PartySupportInitializer.java | 5 ----
6 files changed, 44 insertions(+), 56 deletions(-)
diff --git a/src/main/java/plugily/projects/murdermystery/arena/ArenaManager.java b/src/main/java/plugily/projects/murdermystery/arena/ArenaManager.java
index 53761010..78360ad8 100644
--- a/src/main/java/plugily/projects/murdermystery/arena/ArenaManager.java
+++ b/src/main/java/plugily/projects/murdermystery/arena/ArenaManager.java
@@ -97,11 +97,14 @@ public static void joinAttempt(Player player, Arena arena) {
}
//check if player is in party and send party members to the game
- if(plugin.getPartyHandler().isPlayerInParty(player)) {
+ GameParty party = plugin.getPartyHandler().getParty(player);
+
+ if(party != null) {
Debugger.debug("{0} is in a party", player.getName());
- GameParty party = plugin.getPartyHandler().getParty(player);
+
if(party.getLeader().equals(player)) {
Debugger.debug("{0} is partyleader", player.getName());
+
if(arena.getMaximumPlayers() - arena.getPlayers().size() >= party.getPlayers().size()) {
for(Player partyPlayer : party.getPlayers()) {
if(player.equals(partyPlayer)) {
diff --git a/src/main/java/plugily/projects/murdermystery/handlers/party/PAFBPartyHandlerImpl.java b/src/main/java/plugily/projects/murdermystery/handlers/party/PAFBPartyHandlerImpl.java
index daddeb27..2b5da0a5 100644
--- a/src/main/java/plugily/projects/murdermystery/handlers/party/PAFBPartyHandlerImpl.java
+++ b/src/main/java/plugily/projects/murdermystery/handlers/party/PAFBPartyHandlerImpl.java
@@ -22,6 +22,7 @@
import de.simonsator.partyandfriends.spigot.api.pafplayers.PAFPlayerManager;
import de.simonsator.partyandfriends.spigot.api.party.PartyManager;
import de.simonsator.partyandfriends.spigot.api.party.PlayerParty;
+
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
@@ -32,27 +33,25 @@
*/
public class PAFBPartyHandlerImpl implements PartyHandler {
- @Override
- public boolean isPlayerInParty(Player player) {
- return PartyManager.getInstance().getParty(PAFPlayerManager.getInstance().getPlayer(player.getUniqueId())) != null;
- }
-
@Override
public GameParty getParty(Player player) {
- PartyManager api = PartyManager.getInstance();
PAFPlayer partyPlayer = PAFPlayerManager.getInstance().getPlayer(player.getUniqueId());
- PlayerParty party = api.getParty(partyPlayer);
+ if (partyPlayer == null)
+ return null;
- java.util.List players = new java.util.ArrayList<>();
+ PlayerParty party = PartyManager.getInstance().getParty(partyPlayer);
+ if (party == null)
+ return null;
- for (PAFPlayer localPlayer : party.getAllPlayers()) {
- Player pl = Bukkit.getPlayer(localPlayer.getUniqueId());
+ Player leader = Bukkit.getPlayer(party.getLeader().getUniqueId());
+ if (leader == null)
+ return null;
- if (pl != null)
- players.add(pl);
- }
+ java.util.List allMembers = party.getAllPlayers().stream()
+ .map(localPlayer -> Bukkit.getPlayer(localPlayer.getUniqueId()))
+ .filter(java.util.Objects::nonNull).collect(java.util.stream.Collectors.toList());
- return new GameParty(players, Bukkit.getPlayer(party.getLeader().getUniqueId()));
+ return new GameParty(allMembers, leader);
}
@Override
diff --git a/src/main/java/plugily/projects/murdermystery/handlers/party/PAFSPartyHandlerImpl.java b/src/main/java/plugily/projects/murdermystery/handlers/party/PAFSPartyHandlerImpl.java
index f962b714..3f9df35e 100644
--- a/src/main/java/plugily/projects/murdermystery/handlers/party/PAFSPartyHandlerImpl.java
+++ b/src/main/java/plugily/projects/murdermystery/handlers/party/PAFSPartyHandlerImpl.java
@@ -18,9 +18,11 @@
package plugily.projects.murdermystery.handlers.party;
-import de.simonsator.partyandfriends.api.pafplayers.OnlinePAFPlayer;
import de.simonsator.partyandfriends.api.party.PartyManager;
import de.simonsator.partyandfriends.api.party.PlayerParty;
+
+import java.util.stream.Collectors;
+
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
@@ -31,26 +33,21 @@
*/
public class PAFSPartyHandlerImpl implements PartyHandler {
- @Override
- public boolean isPlayerInParty(Player player) {
- return PartyManager.getInstance().getParty(player.getUniqueId()) != null;
- }
-
@Override
public GameParty getParty(Player player) {
- PartyManager api = PartyManager.getInstance();
- PlayerParty party = api.getParty(player.getUniqueId());
-
- java.util.List players = new java.util.ArrayList<>();
+ PlayerParty party = PartyManager.getInstance().getParty(player.getUniqueId());
+ if (party == null)
+ return null;
- for (OnlinePAFPlayer localPlayer : party.getAllPlayers()) {
- Player pl = Bukkit.getPlayer(localPlayer.getUniqueId());
+ Player leader = Bukkit.getPlayer(party.getLeader().getUniqueId());
+ if (leader == null)
+ return null;
- if (pl != null)
- players.add(pl);
- }
+ java.util.List allMembers = party.getAllPlayers().stream()
+ .map(localPlayer -> Bukkit.getPlayer(localPlayer.getUniqueId()))
+ .filter(java.util.Objects::nonNull).collect(Collectors.toList());
- return new GameParty(players, Bukkit.getPlayer(party.getLeader().getUniqueId()));
+ return new GameParty(allMembers, leader);
}
@Override
diff --git a/src/main/java/plugily/projects/murdermystery/handlers/party/PartiesPartyHandlerImpl.java b/src/main/java/plugily/projects/murdermystery/handlers/party/PartiesPartyHandlerImpl.java
index 067005b7..90031664 100644
--- a/src/main/java/plugily/projects/murdermystery/handlers/party/PartiesPartyHandlerImpl.java
+++ b/src/main/java/plugily/projects/murdermystery/handlers/party/PartiesPartyHandlerImpl.java
@@ -22,6 +22,7 @@
import com.alessiodp.parties.api.interfaces.PartiesAPI;
import com.alessiodp.parties.api.interfaces.Party;
import com.alessiodp.parties.api.interfaces.PartyPlayer;
+
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
@@ -33,31 +34,26 @@
public class PartiesPartyHandlerImpl implements PartyHandler {
@Override
- public boolean isPlayerInParty(Player player) {
+ public GameParty getParty(Player player) {
PartiesAPI api = Parties.getApi();
PartyPlayer partyPlayer = api.getPartyPlayer(player.getUniqueId());
- if(partyPlayer == null) return false;
- Party party = api.getParty(partyPlayer.getPartyId());
- return party != null && party.getMembers().size() > 1;
- }
+ if (partyPlayer == null)
+ return null;
- @Override
- public GameParty getParty(Player player) {
- PartiesAPI api = Parties.getApi();
- PartyPlayer partyPlayer = api.getPartyPlayer(player.getUniqueId());
Party party = api.getParty(partyPlayer.getPartyId());
+ if (party == null || party.getMembers().size() <= 1)
+ return null;
- java.util.List players = new java.util.ArrayList<>();
-
- for (PartyPlayer localPlayer : party.getOnlineMembers(true)) {
- Player pl = Bukkit.getPlayer(localPlayer.getPlayerUUID());
+ Player leader = Bukkit.getPlayer(party.getLeader());
+ if (leader == null)
+ return null;
- if (pl != null)
- players.add(pl);
- }
+ java.util.List members = party.getOnlineMembers(true).stream()
+ .map(localPlayer -> Bukkit.getPlayer(localPlayer.getPlayerUUID()))
+ .filter(java.util.Objects::nonNull).collect(java.util.stream.Collectors.toList());
- return new GameParty(players, Bukkit.getPlayer(party.getLeader()));
+ return new GameParty(members, leader);
}
@Override
diff --git a/src/main/java/plugily/projects/murdermystery/handlers/party/PartyHandler.java b/src/main/java/plugily/projects/murdermystery/handlers/party/PartyHandler.java
index d12359a3..8de280c2 100644
--- a/src/main/java/plugily/projects/murdermystery/handlers/party/PartyHandler.java
+++ b/src/main/java/plugily/projects/murdermystery/handlers/party/PartyHandler.java
@@ -27,8 +27,6 @@
*/
public interface PartyHandler {
- boolean isPlayerInParty(Player player);
-
GameParty getParty(Player player);
boolean partiesSupported();
diff --git a/src/main/java/plugily/projects/murdermystery/handlers/party/PartySupportInitializer.java b/src/main/java/plugily/projects/murdermystery/handlers/party/PartySupportInitializer.java
index 7e283f8c..6ca7f87c 100644
--- a/src/main/java/plugily/projects/murdermystery/handlers/party/PartySupportInitializer.java
+++ b/src/main/java/plugily/projects/murdermystery/handlers/party/PartySupportInitializer.java
@@ -42,11 +42,6 @@ public PartyHandler initialize(Main plugin) {
}
}
partyHandler = new PartyHandler() {
- @Override
- public boolean isPlayerInParty(Player player) {
- return false;
- }
-
@Override
public GameParty getParty(Player player) {
return null;
From b8bb80ef8294a0a194163ecd583159e9d86212f3 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Fri, 17 Sep 2021 19:34:27 +0000
Subject: [PATCH 020/127] Bump pom.xml from 1.7.9-dev8 to 1.7.9-dev9
---
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index a97bea7a..ce342f3a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -24,7 +24,7 @@
plugily.projects
murdermystery
- 1.7.9-dev8
+ 1.7.9-dev9
MurderMystery
From a1e21231e356ff729f8dd3f1499f87191a03b04f Mon Sep 17 00:00:00 2001
From: montlikadani
Date: Thu, 23 Sep 2021 19:35:35 +0200
Subject: [PATCH 021/127] Stream will be closed automatically, so we need to
create a new one on each invokation
---
.../java/plugily/projects/murdermystery/arena/role/Role.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/main/java/plugily/projects/murdermystery/arena/role/Role.java b/src/main/java/plugily/projects/murdermystery/arena/role/Role.java
index 1f1f1529..3ea133cf 100644
--- a/src/main/java/plugily/projects/murdermystery/arena/role/Role.java
+++ b/src/main/java/plugily/projects/murdermystery/arena/role/Role.java
@@ -112,7 +112,7 @@ public static boolean isAnyRole(Player player) {
return isAnyRole(player, ArenaRegistry.getArena(player));
}
- private static final java.util.stream.Stream roles = java.util.Arrays.stream(Role.values());
+ private static final Role[] roles = Role.values();
/**
* Checks whether player is playing a role or not
@@ -122,6 +122,6 @@ public static boolean isAnyRole(Player player) {
* @return true if is playing one role, false otherwise
*/
public static boolean isAnyRole(Player player, Arena arena) {
- return arena != null && roles.anyMatch(role -> isRole(role, player, arena));
+ return arena != null && java.util.Arrays.stream(roles).anyMatch(role -> isRole(role, player, arena));
}
}
From 83becdc93a031543da241b83426de13056172bda Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Thu, 23 Sep 2021 17:36:12 +0000
Subject: [PATCH 022/127] Bump pom.xml from 1.7.9-dev9 to 1.7.9-dev10
---
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index ce342f3a..f701aec2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -24,7 +24,7 @@
plugily.projects
murdermystery
- 1.7.9-dev9
+ 1.7.9-dev10
MurderMystery
From 3e845d755fbc2dc402809b4f021e2b2a616c4ee2 Mon Sep 17 00:00:00 2001
From: montlikadani
Date: Tue, 2 Nov 2021 15:50:08 +0100
Subject: [PATCH 023/127] Fix when setCooldown method is not existed in 1.9 or
later versions
- Also fixed initialization issue for partyHandler
---
.../projects/murdermystery/events/Events.java | 2 +-
.../party/PartySupportInitializer.java | 31 +++++++++----------
2 files changed, 16 insertions(+), 17 deletions(-)
diff --git a/src/main/java/plugily/projects/murdermystery/events/Events.java b/src/main/java/plugily/projects/murdermystery/events/Events.java
index 937e3618..5f8e38fe 100644
--- a/src/main/java/plugily/projects/murdermystery/events/Events.java
+++ b/src/main/java/plugily/projects/murdermystery/events/Events.java
@@ -120,7 +120,7 @@ public void onSwordThrow(PlayerInteractEvent e) {
attackerUser.setCooldown("sword_shoot", swordFlyCooldown);
- if(ServerVersion.Version.isCurrentLower(ServerVersion.Version.v1_9_R1)) {
+ if(ServerVersion.Version.isCurrentLower(ServerVersion.Version.v1_10_R1)) {
attackerUser.setCooldown("sword_attack", (plugin.getConfig().getInt("Murderer-Sword-Attack-Cooldown", 1)));
} else {
attacker.setCooldown(plugin.getConfigPreferences().getMurdererSword().getType(), 20 * (plugin.getConfig().getInt("Murderer-Sword-Attack-Cooldown", 1)));
diff --git a/src/main/java/plugily/projects/murdermystery/handlers/party/PartySupportInitializer.java b/src/main/java/plugily/projects/murdermystery/handlers/party/PartySupportInitializer.java
index 6ca7f87c..bf81cb38 100644
--- a/src/main/java/plugily/projects/murdermystery/handlers/party/PartySupportInitializer.java
+++ b/src/main/java/plugily/projects/murdermystery/handlers/party/PartySupportInitializer.java
@@ -31,7 +31,6 @@
public class PartySupportInitializer {
public PartyHandler initialize(Main plugin) {
- PartyHandler partyHandler;
if(!plugin.getConfigPreferences().getOption(ConfigPreferences.Option.DISABLE_PARTIES)) {
if(Bukkit.getServer().getPluginManager().getPlugin("Parties") != null) {
return new PartiesPartyHandlerImpl();
@@ -41,23 +40,23 @@ public PartyHandler initialize(Main plugin) {
return new PAFSPartyHandlerImpl();
}
}
- partyHandler = new PartyHandler() {
- @Override
- public GameParty getParty(Player player) {
- return null;
- }
- @Override
- public boolean partiesSupported() {
- return false;
- }
+ return new PartyHandler() {
+ @Override
+ public GameParty getParty(Player player) {
+ return null;
+ }
- @Override
- public PartyPluginType getPartyPluginType() {
- return PartyPluginType.NONE;
- }
- };
- return partyHandler;
+ @Override
+ public boolean partiesSupported() {
+ return false;
+ }
+
+ @Override
+ public PartyPluginType getPartyPluginType() {
+ return PartyPluginType.NONE;
+ }
+ };
}
}
From 3befdcd3185f7c3d67025086e7e648db1379e472 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Tue, 2 Nov 2021 14:50:35 +0000
Subject: [PATCH 024/127] Bump pom.xml from 1.7.9-dev10 to 1.7.9-dev11
---
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index f701aec2..082b9449 100644
--- a/pom.xml
+++ b/pom.xml
@@ -24,7 +24,7 @@
plugily.projects
murdermystery
- 1.7.9-dev10
+ 1.7.9-dev11
MurderMystery
From 04997b3c1252825c173dda28e1226cea3c645803 Mon Sep 17 00:00:00 2001
From: Tigerpanzer_02
Date: Tue, 7 Dec 2021 21:38:55 +0100
Subject: [PATCH 025/127] Updated repo links to https
---
pom.xml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/pom.xml b/pom.xml
index 082b9449..42b3cb39 100644
--- a/pom.xml
+++ b/pom.xml
@@ -49,7 +49,7 @@
papi-repo
- http://repo.extendedclip.com/content/repositories/placeholderapi/
+ https://repo.extendedclip.com/content/repositories/placeholderapi/
plugilyprojects
@@ -61,7 +61,7 @@
simonsators-repo
- http://simonsator.de/repo/
+ https://simonsator.de/repo/
alessiodp-repo
From 860b6ebb3a21ed4eb25eaed94e5ee71caaa7743a Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Tue, 7 Dec 2021 20:39:26 +0000
Subject: [PATCH 026/127] Bump pom.xml from 1.7.9-dev11 to 1.7.9-dev12
---
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index 42b3cb39..700dd802 100644
--- a/pom.xml
+++ b/pom.xml
@@ -24,7 +24,7 @@
plugily.projects
murdermystery
- 1.7.9-dev11
+ 1.7.9-dev12
MurderMystery
From d873dd38746159859618ff7ff92e10fe5c30678d Mon Sep 17 00:00:00 2001
From: Tigerpanzer_02
Date: Tue, 5 Apr 2022 23:23:39 +0200
Subject: [PATCH 027/127] Implementation core update (1/2)
---
pom.xml | 134 +-
.../murdermystery/ConfigPreferences.java | 104 --
.../projects/murdermystery/HookManager.java | 12 +-
.../plugily/projects/murdermystery/Main.java | 1183 ++++++++++++-----
.../murdermystery/api/StatsStorage.java | 150 ---
.../api/events/MurderMysteryEvent.java | 43 -
.../events/game/MMGameJoinAttemptEvent.java | 68 -
.../events/game/MMGameLeaveAttemptEvent.java | 55 -
.../api/events/game/MMGameStartEvent.java | 48 -
.../events/game/MMGameStateChangeEvent.java | 54 -
.../api/events/game/MMGameStopEvent.java | 48 -
.../player/MMPlayerStatisticChangeEvent.java | 99 --
.../projects/murdermystery/arena/Arena.java | 1054 ++-------------
.../murdermystery/arena/ArenaEvents.java | 384 +++---
.../murdermystery/arena/ArenaManager.java | 639 +++------
.../murdermystery/arena/ArenaRegistry.java | 232 ++--
.../murdermystery/arena/ArenaState.java | 48 -
.../murdermystery/arena/ArenaUtils.java | 325 ++---
.../murdermystery/arena/corpse/Corpse.java | 1 +
.../murdermystery/arena/corpse/Stand.java | 1 +
.../arena/managers/MapRestorerManager.java | 73 +
.../arena/managers/ScoreboardManager.java | 210 +--
.../arena/options/ArenaOption.java | 49 -
.../murdermystery/arena/role/Role.java | 38 +-
.../arena/special/SpecialBlock.java | 1 +
.../arena/special/SpecialBlockEvents.java | 22 +-
.../mysterypotion/MysteryPotionRegistry.java | 4 +-
.../arena/special/pray/PrayerRegistry.java | 17 +-
.../arena/states/InGameState.java | 166 +++
.../arena/states/RestartingState.java | 46 +
.../arena/states/StartingState.java | 233 ++++
.../commands/arguments/ArgumentsRegistry.java | 207 +--
.../arguments/admin/ListArenasArgument.java | 57 -
.../arguments/admin/RolePassArgument.java | 43 +-
.../arguments/admin/SpectateArgument.java | 30 -
.../arguments/admin/TeleportArgument.java | 108 --
.../arguments/admin/arena/DeleteArgument.java | 87 --
.../admin/arena/ForceStartArgument.java | 46 -
.../arguments/admin/arena/ReloadArgument.java | 93 --
.../arena/SpecialBlockRemoverArgument.java | 127 +-
.../arguments/admin/arena/StopArgument.java | 58 -
.../arguments/data/CommandArgument.java | 68 -
.../commands/arguments/data/LabelData.java | 62 -
.../data/LabeledCommandArgument.java | 48 -
.../arguments/game/ArenaSelectorArgument.java | 142 --
.../arguments/game/CreateArgument.java | 11 +-
.../arguments/game/JoinArguments.java | 118 --
.../arguments/game/LeaderboardArgument.java | 112 --
.../arguments/game/LeaveArgument.java | 63 -
.../arguments/game/RoleSelectorArgument.java | 70 +-
.../arguments/game/StatsArgument.java | 64 -
.../completion/CompletableArgument.java | 60 -
.../commands/completion/TabCompletion.java | 87 --
.../murdermystery/events/ChatEvents.java | 106 --
.../projects/murdermystery/events/Events.java | 393 ------
.../murdermystery/events/JoinEvent.java | 108 --
.../murdermystery/events/LobbyEvent.java | 102 --
.../murdermystery/events/PluginEvents.java | 238 ++++
.../murdermystery/events/QuitEvent.java | 63 -
.../events/spectator/SpectatorEvents.java | 189 ---
.../events/spectator/SpectatorItemEvents.java | 130 --
.../spectator/SpectatorSettingsMenu.java | 118 --
.../murdermystery/handlers/BungeeManager.java | 114 --
.../murdermystery/handlers/ChatManager.java | 149 ---
.../murdermystery/handlers/CorpseHandler.java | 23 +-
.../handlers/PermissionsManager.java | 64 -
.../handlers/PlaceholderManager.java | 105 --
.../handlers/items/SpecialItem.java | 67 -
.../handlers/items/SpecialItemManager.java | 127 --
.../handlers/language/LanguageManager.java | 224 ----
.../handlers/language/LanguageMigrator.java | 327 -----
.../handlers/lastwords/LastWordsManager.java | 28 +-
.../handlers/party/PAFBPartyHandlerImpl.java | 66 -
.../handlers/party/PAFSPartyHandlerImpl.java | 62 -
.../party/PartiesPartyHandlerImpl.java | 68 -
.../handlers/party/PartyHandler.java | 40 -
.../party/PartySupportInitializer.java | 62 -
.../handlers/rewards/Reward.java | 108 --
.../handlers/rewards/RewardsFactory.java | 130 --
.../handlers/setup/SetupInventory.java | 429 ++++--
.../handlers/setup/SetupUtilities.java | 88 --
.../components/ArenaRegisterComponent.java | 158 ---
.../setup/components/MiscComponents.java | 218 ---
.../components/PlayerAmountComponents.java | 161 ---
.../setup/components/SetupComponent.java | 35 -
.../setup/components/SpawnComponents.java | 124 --
.../components/SpecialBlocksComponents.java | 121 --
.../handlers/sign/ArenaSign.java | 89 --
.../handlers/sign/SignManager.java | 274 ----
.../sword/SwordSkin.java} | 36 +-
.../skins/sword/SwordSkinManager.java | 106 ++
.../handlers/trails/BowTrailsHandler.java | 12 +-
.../handlers/trails/TrailsManager.java | 25 +-
.../projects/murdermystery/old/Main.java | 357 +++++
.../projects/murdermystery/user/User.java | 144 --
.../murdermystery/user/UserManager.java | 120 --
.../murdermystery/user/data/FileStats.java | 71 -
.../murdermystery/user/data/MysqlManager.java | 151 ---
.../murdermystery/user/data/UserDatabase.java | 66 -
.../murdermystery/utils/Debugger.java | 113 --
.../utils/ExceptionLogHandler.java | 85 --
.../murdermystery/utils/ItemPosition.java | 28 +-
.../murdermystery/utils/MessageUtils.java | 67 -
.../murdermystery/utils/UpdateChecker.java | 327 -----
.../projects/murdermystery/utils/Utils.java | 173 ---
.../SimpleConversationBuilder.java | 62 -
.../utils/services/ServiceRegistry.java | 92 --
.../services/exception/ReportedException.java | 62 -
.../services/exception/ReporterService.java | 71 -
.../utils/services/locale/Locale.java | 87 --
.../utils/services/locale/LocaleRegistry.java | 70 -
.../utils/services/locale/LocaleService.java | 186 ---
.../services/metrics/MetricsService.java | 107 --
src/main/resources/arena_selector.yml | 6 +
src/main/resources/arenas.yml | 14 +-
src/main/resources/bungee.yml | 15 +-
src/main/resources/config.yml | 342 +++--
src/main/resources/internal/data.yml | 29 +
.../resources/internal/leaderboards_data.yml | 1 +
src/main/resources/language.yml | 653 +++++----
src/main/resources/lastwords.yml | 18 +
src/main/resources/leaderboards.yml | 6 +
.../resources/locales/language_default.yml | 511 ++++---
src/main/resources/mysql.yml | 13 +-
src/main/resources/permissions.yml | 53 +
src/main/resources/plugin.yml | 20 +-
src/main/resources/rewards.yml | 46 +-
src/main/resources/signs.yml | 6 +
src/main/resources/skins.yml | 7 +
src/main/resources/special_items.yml | 132 +-
src/main/resources/spectator.yml | 97 ++
src/main/resources/stats.yml | 1 +
src/main/resources/trails.yml | 6 +
133 files changed, 4650 insertions(+), 12154 deletions(-)
delete mode 100644 src/main/java/plugily/projects/murdermystery/ConfigPreferences.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/api/StatsStorage.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/api/events/MurderMysteryEvent.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/api/events/game/MMGameJoinAttemptEvent.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/api/events/game/MMGameLeaveAttemptEvent.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/api/events/game/MMGameStartEvent.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/api/events/game/MMGameStateChangeEvent.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/api/events/game/MMGameStopEvent.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/api/events/player/MMPlayerStatisticChangeEvent.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/arena/ArenaState.java
create mode 100644 src/main/java/plugily/projects/murdermystery/arena/managers/MapRestorerManager.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/arena/options/ArenaOption.java
create mode 100644 src/main/java/plugily/projects/murdermystery/arena/states/InGameState.java
create mode 100644 src/main/java/plugily/projects/murdermystery/arena/states/RestartingState.java
create mode 100644 src/main/java/plugily/projects/murdermystery/arena/states/StartingState.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/commands/arguments/admin/ListArenasArgument.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/commands/arguments/admin/SpectateArgument.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/commands/arguments/admin/TeleportArgument.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/commands/arguments/admin/arena/DeleteArgument.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/commands/arguments/admin/arena/ForceStartArgument.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/commands/arguments/admin/arena/ReloadArgument.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/commands/arguments/admin/arena/StopArgument.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/commands/arguments/data/CommandArgument.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/commands/arguments/data/LabelData.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/commands/arguments/data/LabeledCommandArgument.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/commands/arguments/game/ArenaSelectorArgument.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/commands/arguments/game/JoinArguments.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/commands/arguments/game/LeaderboardArgument.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/commands/arguments/game/LeaveArgument.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/commands/arguments/game/StatsArgument.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/commands/completion/CompletableArgument.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/commands/completion/TabCompletion.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/events/ChatEvents.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/events/Events.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/events/JoinEvent.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/events/LobbyEvent.java
create mode 100644 src/main/java/plugily/projects/murdermystery/events/PluginEvents.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/events/QuitEvent.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/events/spectator/SpectatorEvents.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/events/spectator/SpectatorItemEvents.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/events/spectator/SpectatorSettingsMenu.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/handlers/BungeeManager.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/handlers/ChatManager.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/handlers/PermissionsManager.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/handlers/PlaceholderManager.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/handlers/items/SpecialItem.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/handlers/items/SpecialItemManager.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/handlers/language/LanguageManager.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/handlers/language/LanguageMigrator.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/handlers/party/PAFBPartyHandlerImpl.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/handlers/party/PAFSPartyHandlerImpl.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/handlers/party/PartiesPartyHandlerImpl.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/handlers/party/PartyHandler.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/handlers/party/PartySupportInitializer.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/handlers/rewards/Reward.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/handlers/rewards/RewardsFactory.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/handlers/setup/SetupUtilities.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/handlers/setup/components/ArenaRegisterComponent.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/handlers/setup/components/MiscComponents.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/handlers/setup/components/PlayerAmountComponents.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/handlers/setup/components/SetupComponent.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/handlers/setup/components/SpawnComponents.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/handlers/setup/components/SpecialBlocksComponents.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/handlers/sign/ArenaSign.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/handlers/sign/SignManager.java
rename src/main/java/plugily/projects/murdermystery/handlers/{party/GameParty.java => skins/sword/SwordSkin.java} (60%)
create mode 100644 src/main/java/plugily/projects/murdermystery/handlers/skins/sword/SwordSkinManager.java
create mode 100644 src/main/java/plugily/projects/murdermystery/old/Main.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/user/User.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/user/UserManager.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/user/data/FileStats.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/user/data/MysqlManager.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/user/data/UserDatabase.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/utils/Debugger.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/utils/ExceptionLogHandler.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/utils/MessageUtils.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/utils/UpdateChecker.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/utils/Utils.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/utils/conversation/SimpleConversationBuilder.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/utils/services/ServiceRegistry.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/utils/services/exception/ReportedException.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/utils/services/exception/ReporterService.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/utils/services/locale/Locale.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/utils/services/locale/LocaleRegistry.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/utils/services/locale/LocaleService.java
delete mode 100644 src/main/java/plugily/projects/murdermystery/utils/services/metrics/MetricsService.java
create mode 100644 src/main/resources/arena_selector.yml
create mode 100644 src/main/resources/internal/data.yml
create mode 100644 src/main/resources/internal/leaderboards_data.yml
create mode 100644 src/main/resources/lastwords.yml
create mode 100644 src/main/resources/leaderboards.yml
create mode 100644 src/main/resources/permissions.yml
create mode 100644 src/main/resources/signs.yml
create mode 100644 src/main/resources/skins.yml
create mode 100644 src/main/resources/spectator.yml
create mode 100644 src/main/resources/trails.yml
diff --git a/pom.xml b/pom.xml
index 700dd802..b4046290 100644
--- a/pom.xml
+++ b/pom.xml
@@ -47,26 +47,14 @@
papermc
https://papermc.io/repo/repository/maven-public/
-
- papi-repo
- https://repo.extendedclip.com/content/repositories/placeholderapi/
-
plugilyprojects
- https://maven.plugily.xyz/
+ https://maven.plugily.xyz/releases
codemc-repo
https://repo.codemc.org/repository/maven-public/
-
- simonsators-repo
- https://simonsator.de/repo/
-
-
- alessiodp-repo
- https://repo.alessiodp.com/releases/
-
spigot-repo
https://hub.spigotmc.org/nexus/content/repositories/snapshots/
@@ -80,55 +68,6 @@
1.17.1-R0.1-SNAPSHOT
provided
-
- plugily.projects
- commons-box-classic
- 1.3.3
- compile
-
-
- plugily.projects
- commons-box-database
- 1.3.3
- compile
-
-
- plugily.projects
- commons-box-minecraft
- 1.3.3
- compile
-
-
- me.tigerhix.lib
- scoreboard
- 1.0.9
- compile
-
-
- plugily.projects.inventoryframework
- IF
- 0.10.0
- compile
- legacy-jar-with-dependencies
-
-
- me.clip
- placeholderapi
- 2.10.9
- provided
-
-
- com.alessiodp.parties
- parties-api
- 3.1.0
- provided
-
-
-
- org.bstats
- bstats-bukkit
- 2.2.1
-
org.jetbrains
@@ -144,48 +83,11 @@
${project.basedir}/lib/CorpseReborn.jar
- com.google.code.findbugs
- jsr305
- 3.0.2
- provided
-
-
-
- commons-io
- commons-io
- 2.10.0
+ plugily.projects
+ MiniGamesBox-Classic
+ 1.0.0-SNAPSHOT
compile
-
-
- de.simonsator
- partyandfriends
- 1.0.52
- system
- ${project.basedir}/lib/PAFSpigot.jar
-
-
- de.simonsator
- Party-and-Friends-MySQL-Edition-Spigot-API
- 1.3.2
- provided
-
-
- be.maximvdw
- MVdWPlaceholderAPI
-
-
-
-
- de.simonsator
- Spigot-Party-API-For-RedisBungee
- 1.0-SNAPSHOT
- provided
-
-
- redis.clients
- jedis
-
-
+ true
@@ -244,27 +146,18 @@
-
- plugily.projects.inventoryframework
- plugily.projects.murdermystery.utils.inventoryframework
-
-
com.zaxxer.hikari
plugily.projects.murdermystery.database.hikari
- me.tigerhix.lib.scoreboard
- plugily.projects.murdermystery.utils.scoreboard
+ plugily.projects.minigamesbox
+ plugily.projects.murdermystery.minigamesbox
plugily.projects.commonsbox
plugily.projects.murdermystery.commonsbox
-
- org.bstats
- plugily.projects.murdermystery.utils.bstats
-
false
@@ -286,21 +179,20 @@
org.apache.maven.wagon
- wagon-ftp
- 3.4.3
+ wagon-ssh
+ 3.5.1
-
- plugily-projects-repo
- ftp://81.19.211.8
+ plugily-projects-releases-repository
+ https://maven.plugily.xyz/releases
plugily-projects-java-docs
- murdermystery
- ftp://81.19.211.8
+ MurderMystery
+ sftp://91.229.245.16/var/www/jd
diff --git a/src/main/java/plugily/projects/murdermystery/ConfigPreferences.java b/src/main/java/plugily/projects/murdermystery/ConfigPreferences.java
deleted file mode 100644
index fd512064..00000000
--- a/src/main/java/plugily/projects/murdermystery/ConfigPreferences.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * MurderMystery - Find the murderer, kill him and survive!
- * Copyright (C) 2020 Plugily Projects - maintained by Tigerpanzer_02, 2Wild4You and contributors
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-package plugily.projects.murdermystery;
-
-import org.bukkit.inventory.ItemStack;
-
-import plugily.projects.commonsbox.minecraft.compat.xseries.XMaterial;
-import plugily.projects.murdermystery.utils.Debugger;
-import plugily.projects.murdermystery.utils.MessageUtils;
-
-import java.util.Map;
-
-/**
- * @author Plajer
- *
- * Created at 22.12.2018
- */
-public class ConfigPreferences {
-
- private final Main plugin;
- private ItemStack murdererSword;
- private final Map