mirror of
https://github.com/SunNetservers/MiniGames.git
synced 2025-12-04 09:58:47 +01:00
Maintenance changes
Updates KnarLib Updates Spigot Updates code for message generation
This commit is contained in:
4
pom.xml
4
pom.xml
@@ -114,7 +114,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.spigotmc</groupId>
|
<groupId>org.spigotmc</groupId>
|
||||||
<artifactId>spigot-api</artifactId>
|
<artifactId>spigot-api</artifactId>
|
||||||
<version>1.21.4-R0.1-SNAPSHOT</version>
|
<version>1.21.8-R0.1-SNAPSHOT</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
@@ -138,7 +138,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>net.knarcraft</groupId>
|
<groupId>net.knarcraft</groupId>
|
||||||
<artifactId>knarlib</artifactId>
|
<artifactId>knarlib</artifactId>
|
||||||
<version>1.2.7</version>
|
<version>1.2.17</version>
|
||||||
<scope>compile</scope>
|
<scope>compile</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package net.knarcraft.minigames;
|
package net.knarcraft.minigames;
|
||||||
|
|
||||||
import net.knarcraft.knargui.GUIListener;
|
import net.knarcraft.knargui.GUIListener;
|
||||||
|
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||||
import net.knarcraft.knarlib.formatting.StringFormatter;
|
import net.knarcraft.knarlib.formatting.StringFormatter;
|
||||||
import net.knarcraft.knarlib.formatting.Translator;
|
import net.knarcraft.knarlib.formatting.Translator;
|
||||||
import net.knarcraft.knarlib.property.ColorConversion;
|
import net.knarcraft.knarlib.property.ColorConversion;
|
||||||
@@ -108,7 +109,6 @@ public final class MiniGames extends JavaPlugin {
|
|||||||
private ArenaPlayerRegistry<ParkourArena> parkourArenaPlayerRegistry;
|
private ArenaPlayerRegistry<ParkourArena> parkourArenaPlayerRegistry;
|
||||||
private PlayerVisibilityManager playerVisibilityManager;
|
private PlayerVisibilityManager playerVisibilityManager;
|
||||||
private Translator translator;
|
private Translator translator;
|
||||||
private StringFormatter stringFormatter;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets an instance of this plugin
|
* Gets an instance of this plugin
|
||||||
@@ -202,15 +202,6 @@ public final class MiniGames extends JavaPlugin {
|
|||||||
return this.translator;
|
return this.translator;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the string formatter to get formatted messages from
|
|
||||||
*
|
|
||||||
* @return <p>The string formatter</p>
|
|
||||||
*/
|
|
||||||
public StringFormatter getStringFormatter() {
|
|
||||||
return this.stringFormatter;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the current session of the given player
|
* Gets the current session of the given player
|
||||||
*
|
*
|
||||||
@@ -437,12 +428,13 @@ public final class MiniGames extends JavaPlugin {
|
|||||||
translator.registerMessageCategory(MiniGameMessage.ERROR_PLAYER_ONLY);
|
translator.registerMessageCategory(MiniGameMessage.ERROR_PLAYER_ONLY);
|
||||||
translator.loadLanguages(this.getDataFolder(), "en",
|
translator.loadLanguages(this.getDataFolder(), "en",
|
||||||
getConfig().getString("language", "en"));
|
getConfig().getString("language", "en"));
|
||||||
stringFormatter = new StringFormatter(this.getDescription().getName(), translator);
|
StringFormatter stringFormatter = new StringFormatter(this.getDescription().getName(), translator);
|
||||||
stringFormatter.setColorConversion(ColorConversion.RGB);
|
stringFormatter.setColorConversion(ColorConversion.RGB);
|
||||||
stringFormatter.setNamePrefix("#546EED[&r&l");
|
stringFormatter.setNamePrefix("#546EED[&r&l");
|
||||||
stringFormatter.setNameSuffix("#546EED]");
|
stringFormatter.setNameSuffix("#546EED]");
|
||||||
stringFormatter.setErrorColor(ChatColor.RED);
|
stringFormatter.setErrorColor(ChatColor.RED);
|
||||||
stringFormatter.setSuccessColor(ChatColor.GREEN);
|
stringFormatter.setSuccessColor(ChatColor.GREEN);
|
||||||
|
FormatBuilder.setStringFormatter(stringFormatter);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package net.knarcraft.minigames.arena;
|
package net.knarcraft.minigames.arena;
|
||||||
|
|
||||||
import net.knarcraft.knarlib.formatting.StringFormatter;
|
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||||
import net.knarcraft.minigames.MiniGames;
|
import net.knarcraft.minigames.MiniGames;
|
||||||
import net.knarcraft.minigames.arena.reward.RewardCondition;
|
import net.knarcraft.minigames.arena.reward.RewardCondition;
|
||||||
import net.knarcraft.minigames.config.MiniGameMessage;
|
import net.knarcraft.minigames.config.MiniGameMessage;
|
||||||
@@ -47,7 +47,7 @@ public abstract class AbstractArenaSession implements ArenaSession {
|
|||||||
// Make the player visible to everyone
|
// Make the player visible to everyone
|
||||||
MiniGames.getInstance().getPlayerVisibilityManager().showPlayersFor(player);
|
MiniGames.getInstance().getPlayerVisibilityManager().showPlayersFor(player);
|
||||||
|
|
||||||
MiniGames.getInstance().getStringFormatter().displaySuccessMessage(player, MiniGameMessage.SUCCESS_ARENA_QUIT);
|
new FormatBuilder(MiniGameMessage.SUCCESS_ARENA_QUIT).success(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -77,13 +77,12 @@ public abstract class AbstractArenaSession implements ArenaSession {
|
|||||||
case PERSONAL_BEST -> MiniGameMessage.RECORD_ACHIEVED_PERSONAL;
|
case PERSONAL_BEST -> MiniGameMessage.RECORD_ACHIEVED_PERSONAL;
|
||||||
default -> throw new IllegalStateException("Unexpected value: " + recordResult);
|
default -> throw new IllegalStateException("Unexpected value: " + recordResult);
|
||||||
};
|
};
|
||||||
StringFormatter stringFormatter = MiniGames.getInstance().getStringFormatter();
|
|
||||||
String recordInfo = stringFormatter.replacePlaceholder(recordInfoMiniGameMessage, "{recordType}",
|
|
||||||
recordType.name().toLowerCase().replace("_", " "));
|
|
||||||
|
|
||||||
stringFormatter.displaySuccessMessage(player, stringFormatter.replacePlaceholders(
|
new FormatBuilder(MiniGameMessage.SUCCESS_RECORD_ACHIEVED).
|
||||||
MiniGameMessage.SUCCESS_RECORD_ACHIEVED, new String[]{"{gameMode}", "{recordInfo}"},
|
replace("{gameMode}", gameModeString).
|
||||||
new String[]{gameModeString, recordInfo}));
|
replace("{recordInfo}", recordInfoMiniGameMessage).
|
||||||
|
replace("{recordType}", recordType.name().toLowerCase().replace("_", " ")).
|
||||||
|
success(player);
|
||||||
|
|
||||||
// Reward the player
|
// Reward the player
|
||||||
rewardRecord(recordResult, recordType);
|
rewardRecord(recordResult, recordType);
|
||||||
|
|||||||
@@ -17,10 +17,10 @@ import java.util.logging.Level;
|
|||||||
/**
|
/**
|
||||||
* A group containing a list of arenas
|
* A group containing a list of arenas
|
||||||
*
|
*
|
||||||
* @param <K> <p>The type of arena stored</p>
|
* @param <ArenaType> <p>The type of arena stored</p>
|
||||||
* @param <S> <p>The type of arena group stored in the given arena handler</p>
|
* @param <GroupType> <p>The type of arena group stored in the given arena handler</p>
|
||||||
*/
|
*/
|
||||||
public abstract class ArenaGroup<K extends Arena, S extends ArenaGroup<K, S>> implements ConfigurationSerializable {
|
public abstract class ArenaGroup<ArenaType extends Arena, GroupType extends ArenaGroup<ArenaType, GroupType>> implements ConfigurationSerializable {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The unique id for this group of arenas
|
* The unique id for this group of arenas
|
||||||
@@ -35,7 +35,7 @@ public abstract class ArenaGroup<K extends Arena, S extends ArenaGroup<K, S>> im
|
|||||||
/**
|
/**
|
||||||
* The arena handler used to convert uuids to arenas
|
* The arena handler used to convert uuids to arenas
|
||||||
*/
|
*/
|
||||||
private final ArenaHandler<K, S> arenaHandler;
|
private final ArenaHandler<ArenaType, GroupType> arenaHandler;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The arenas in this group, ordered from stage 1 to stage n
|
* The arenas in this group, ordered from stage 1 to stage n
|
||||||
@@ -48,7 +48,7 @@ public abstract class ArenaGroup<K extends Arena, S extends ArenaGroup<K, S>> im
|
|||||||
* @param groupName <p>The name of this group</p>
|
* @param groupName <p>The name of this group</p>
|
||||||
* @param arenaHandler <p>The arena handler used to convert uuids to arenas</p>
|
* @param arenaHandler <p>The arena handler used to convert uuids to arenas</p>
|
||||||
*/
|
*/
|
||||||
protected ArenaGroup(@NotNull String groupName, @NotNull ArenaHandler<K, S> arenaHandler) {
|
protected ArenaGroup(@NotNull String groupName, @NotNull ArenaHandler<ArenaType, GroupType> arenaHandler) {
|
||||||
this.groupId = UUID.randomUUID();
|
this.groupId = UUID.randomUUID();
|
||||||
this.groupName = groupName;
|
this.groupName = groupName;
|
||||||
this.arenas = new ArrayList<>();
|
this.arenas = new ArrayList<>();
|
||||||
@@ -64,7 +64,7 @@ public abstract class ArenaGroup<K extends Arena, S extends ArenaGroup<K, S>> im
|
|||||||
* @param arenaHandler <p>The arena handler used to convert uuids to arenas</p>
|
* @param arenaHandler <p>The arena handler used to convert uuids to arenas</p>
|
||||||
*/
|
*/
|
||||||
protected ArenaGroup(@NotNull UUID groupId, @NotNull String groupName, @NotNull List<UUID> arenas,
|
protected ArenaGroup(@NotNull UUID groupId, @NotNull String groupName, @NotNull List<UUID> arenas,
|
||||||
@NotNull ArenaHandler<K, S> arenaHandler) {
|
@NotNull ArenaHandler<ArenaType, GroupType> arenaHandler) {
|
||||||
this.groupId = groupId;
|
this.groupId = groupId;
|
||||||
this.groupName = groupName;
|
this.groupName = groupName;
|
||||||
this.arenas = new ArrayList<>(arenas);
|
this.arenas = new ArrayList<>(arenas);
|
||||||
@@ -76,7 +76,8 @@ public abstract class ArenaGroup<K extends Arena, S extends ArenaGroup<K, S>> im
|
|||||||
*
|
*
|
||||||
* @return <p>The id of this group</p>
|
* @return <p>The id of this group</p>
|
||||||
*/
|
*/
|
||||||
public @NotNull UUID getGroupId() {
|
@NotNull
|
||||||
|
public UUID getGroupId() {
|
||||||
return this.groupId;
|
return this.groupId;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -85,7 +86,8 @@ public abstract class ArenaGroup<K extends Arena, S extends ArenaGroup<K, S>> im
|
|||||||
*
|
*
|
||||||
* @return <p>The name of this group</p>
|
* @return <p>The name of this group</p>
|
||||||
*/
|
*/
|
||||||
public @NotNull String getGroupName() {
|
@NotNull
|
||||||
|
public String getGroupName() {
|
||||||
return this.groupName;
|
return this.groupName;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -94,7 +96,8 @@ public abstract class ArenaGroup<K extends Arena, S extends ArenaGroup<K, S>> im
|
|||||||
*
|
*
|
||||||
* @return <p>The ids of the arenas in this group</p>
|
* @return <p>The ids of the arenas in this group</p>
|
||||||
*/
|
*/
|
||||||
public @NotNull List<UUID> getArenas() {
|
@NotNull
|
||||||
|
public List<UUID> getArenas() {
|
||||||
return new ArrayList<>(arenas);
|
return new ArrayList<>(arenas);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -103,7 +106,7 @@ public abstract class ArenaGroup<K extends Arena, S extends ArenaGroup<K, S>> im
|
|||||||
*
|
*
|
||||||
* @param arenaId <p>The id of the arena to remove</p>
|
* @param arenaId <p>The id of the arena to remove</p>
|
||||||
*/
|
*/
|
||||||
public void removeArena(UUID arenaId) {
|
public void removeArena(@NotNull UUID arenaId) {
|
||||||
this.arenas.remove(arenaId);
|
this.arenas.remove(arenaId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -112,7 +115,7 @@ public abstract class ArenaGroup<K extends Arena, S extends ArenaGroup<K, S>> im
|
|||||||
*
|
*
|
||||||
* @param arenaId <p>The arena to add to this group</p>
|
* @param arenaId <p>The arena to add to this group</p>
|
||||||
*/
|
*/
|
||||||
public void addArena(UUID arenaId) {
|
public void addArena(@NotNull UUID arenaId) {
|
||||||
addArena(arenaId, this.arenas.size());
|
addArena(arenaId, this.arenas.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -122,7 +125,7 @@ public abstract class ArenaGroup<K extends Arena, S extends ArenaGroup<K, S>> im
|
|||||||
* @param arenaId <p>The arena to add to this group</p>
|
* @param arenaId <p>The arena to add to this group</p>
|
||||||
* @param index <p>The index to put the arena in</p>
|
* @param index <p>The index to put the arena in</p>
|
||||||
*/
|
*/
|
||||||
public void addArena(UUID arenaId, int index) {
|
public void addArena(@NotNull UUID arenaId, int index) {
|
||||||
// Make sure we don't have duplicates
|
// Make sure we don't have duplicates
|
||||||
if (!this.arenas.contains(arenaId)) {
|
if (!this.arenas.contains(arenaId)) {
|
||||||
this.arenas.add(index, arenaId);
|
this.arenas.add(index, arenaId);
|
||||||
@@ -134,7 +137,8 @@ public abstract class ArenaGroup<K extends Arena, S extends ArenaGroup<K, S>> im
|
|||||||
*
|
*
|
||||||
* @return <p>The sanitized group name</p>
|
* @return <p>The sanitized group name</p>
|
||||||
*/
|
*/
|
||||||
public @NotNull String getGroupNameSanitized() {
|
@NotNull
|
||||||
|
public String getGroupNameSanitized() {
|
||||||
return StringSanitizer.sanitizeArenaName(this.getGroupName());
|
return StringSanitizer.sanitizeArenaName(this.getGroupName());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -145,9 +149,9 @@ public abstract class ArenaGroup<K extends Arena, S extends ArenaGroup<K, S>> im
|
|||||||
* @param player <p>The player to check</p>
|
* @param player <p>The player to check</p>
|
||||||
* @return <p>True if the player has beaten all arenas, false otherwise</p>
|
* @return <p>True if the player has beaten all arenas, false otherwise</p>
|
||||||
*/
|
*/
|
||||||
public boolean hasBeatenAll(ArenaGameMode gameMode, Player player) {
|
public boolean hasBeatenAll(@NotNull ArenaGameMode gameMode, @NotNull Player player) {
|
||||||
for (UUID anArenaId : this.getArenas()) {
|
for (UUID anArenaId : this.getArenas()) {
|
||||||
K arena = this.arenaHandler.getArena(anArenaId);
|
ArenaType arena = this.arenaHandler.getArena(anArenaId);
|
||||||
if (arena == null) {
|
if (arena == null) {
|
||||||
// The arena would only be null if the arena has been deleted, but not removed from this group
|
// The arena would only be null if the arena has been deleted, but not removed from this group
|
||||||
MiniGames.log(Level.WARNING, "The dropper group " + this.getGroupName() +
|
MiniGames.log(Level.WARNING, "The dropper group " + this.getGroupName() +
|
||||||
@@ -171,7 +175,8 @@ public abstract class ArenaGroup<K extends Arena, S extends ArenaGroup<K, S>> im
|
|||||||
* @return <p>True if the player is allowed to play the arena</p>
|
* @return <p>True if the player is allowed to play the arena</p>
|
||||||
* @throws IllegalArgumentException <p>If checking an arena not in this group</p>
|
* @throws IllegalArgumentException <p>If checking an arena not in this group</p>
|
||||||
*/
|
*/
|
||||||
public boolean cannotPlay(ArenaGameMode gameMode, Player player, UUID arenaId) throws IllegalArgumentException {
|
public boolean cannotPlay(@NotNull ArenaGameMode gameMode, @NotNull Player player,
|
||||||
|
@NotNull UUID arenaId) throws IllegalArgumentException {
|
||||||
if (!this.arenas.contains(arenaId)) {
|
if (!this.arenas.contains(arenaId)) {
|
||||||
throw new IllegalArgumentException("Cannot check for playability for arena not in this group!");
|
throw new IllegalArgumentException("Cannot check for playability for arena not in this group!");
|
||||||
}
|
}
|
||||||
@@ -182,7 +187,7 @@ public abstract class ArenaGroup<K extends Arena, S extends ArenaGroup<K, S>> im
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
K arena = this.arenaHandler.getArena(anArenaId);
|
ArenaType arena = this.arenaHandler.getArena(anArenaId);
|
||||||
if (arena == null) {
|
if (arena == null) {
|
||||||
// The arena would only be null if the arena has been deleted, but not removed from this group
|
// The arena would only be null if the arena has been deleted, but not removed from this group
|
||||||
MiniGames.log(Level.WARNING, String.format("The dropper group %s contains the" +
|
MiniGames.log(Level.WARNING, String.format("The dropper group %s contains the" +
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package net.knarcraft.minigames.arena.dropper;
|
package net.knarcraft.minigames.arena.dropper;
|
||||||
|
|
||||||
import net.knarcraft.knarlib.formatting.StringFormatter;
|
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||||
import net.knarcraft.minigames.MiniGames;
|
import net.knarcraft.minigames.MiniGames;
|
||||||
import net.knarcraft.minigames.arena.AbstractArenaSession;
|
import net.knarcraft.minigames.arena.AbstractArenaSession;
|
||||||
import net.knarcraft.minigames.arena.PlayerEntryState;
|
import net.knarcraft.minigames.arena.PlayerEntryState;
|
||||||
@@ -98,14 +98,12 @@ public class DropperArenaSession extends AbstractArenaSession {
|
|||||||
registerRecord();
|
registerRecord();
|
||||||
}
|
}
|
||||||
|
|
||||||
StringFormatter stringFormatter = MiniGames.getInstance().getStringFormatter();
|
|
||||||
|
|
||||||
// Mark the arena as cleared
|
// Mark the arena as cleared
|
||||||
if (this.arena.getData().setCompleted(this.gameMode, this.player)) {
|
if (this.arena.getData().setCompleted(this.gameMode, this.player)) {
|
||||||
stringFormatter.displaySuccessMessage(this.player, MiniGameMessage.SUCCESS_ARENA_FIRST_CLEAR);
|
new FormatBuilder(MiniGameMessage.SUCCESS_ARENA_FIRST_CLEAR).success(this.player);
|
||||||
RewardHelper.grantRewards(this.player, this.arena.getRewards(RewardCondition.FIRST_WIN));
|
RewardHelper.grantRewards(this.player, this.arena.getRewards(RewardCondition.FIRST_WIN));
|
||||||
}
|
}
|
||||||
stringFormatter.displaySuccessMessage(this.player, MiniGameMessage.SUCCESS_ARENA_WIN);
|
new FormatBuilder(MiniGameMessage.SUCCESS_ARENA_WIN).success(this.player);
|
||||||
RewardHelper.grantRewards(this.player, this.arena.getRewards(RewardCondition.WIN));
|
RewardHelper.grantRewards(this.player, this.arena.getRewards(RewardCondition.WIN));
|
||||||
|
|
||||||
// Teleport the player out of the arena
|
// Teleport the player out of the arena
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package net.knarcraft.minigames.arena.parkour;
|
package net.knarcraft.minigames.arena.parkour;
|
||||||
|
|
||||||
import net.knarcraft.knarlib.formatting.StringFormatter;
|
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||||
import net.knarcraft.minigames.MiniGames;
|
import net.knarcraft.minigames.MiniGames;
|
||||||
import net.knarcraft.minigames.arena.AbstractArenaSession;
|
import net.knarcraft.minigames.arena.AbstractArenaSession;
|
||||||
import net.knarcraft.minigames.arena.Arena;
|
import net.knarcraft.minigames.arena.Arena;
|
||||||
@@ -112,14 +112,12 @@ public class ParkourArenaSession extends AbstractArenaSession {
|
|||||||
registerRecord();
|
registerRecord();
|
||||||
}
|
}
|
||||||
|
|
||||||
StringFormatter stringFormatter = MiniGames.getInstance().getStringFormatter();
|
|
||||||
|
|
||||||
// Mark the arena as cleared
|
// Mark the arena as cleared
|
||||||
if (this.arena.getData().setCompleted(this.gameMode, this.player)) {
|
if (this.arena.getData().setCompleted(this.gameMode, this.player)) {
|
||||||
stringFormatter.displaySuccessMessage(this.player, MiniGameMessage.SUCCESS_ARENA_FIRST_CLEAR);
|
new FormatBuilder(MiniGameMessage.SUCCESS_ARENA_FIRST_CLEAR).success(this.player);
|
||||||
RewardHelper.grantRewards(this.player, this.arena.getRewards(RewardCondition.FIRST_WIN));
|
RewardHelper.grantRewards(this.player, this.arena.getRewards(RewardCondition.FIRST_WIN));
|
||||||
}
|
}
|
||||||
stringFormatter.displaySuccessMessage(this.player, MiniGameMessage.SUCCESS_ARENA_WIN);
|
new FormatBuilder(MiniGameMessage.SUCCESS_ARENA_WIN).success(this.player);
|
||||||
RewardHelper.grantRewards(this.player, this.arena.getRewards(RewardCondition.WIN));
|
RewardHelper.grantRewards(this.player, this.arena.getRewards(RewardCondition.WIN));
|
||||||
|
|
||||||
// Teleport the player out of the arena
|
// Teleport the player out of the arena
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package net.knarcraft.minigames.arena.reward;
|
package net.knarcraft.minigames.arena.reward;
|
||||||
|
|
||||||
import net.knarcraft.minigames.MiniGames;
|
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||||
import net.knarcraft.minigames.config.MiniGameMessage;
|
import net.knarcraft.minigames.config.MiniGameMessage;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@@ -31,9 +31,8 @@ public class CommandReward implements Reward {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public @NotNull String getGrantMessage() {
|
public @NotNull FormatBuilder getGrantMessage() {
|
||||||
return MiniGames.getInstance().getStringFormatter().replacePlaceholder(
|
return new FormatBuilder(MiniGameMessage.SUCCESS_COMMAND_REWARDED).replace("{command}", command);
|
||||||
MiniGameMessage.SUCCESS_COMMAND_REWARDED, "{command}", command);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package net.knarcraft.minigames.arena.reward;
|
package net.knarcraft.minigames.arena.reward;
|
||||||
|
|
||||||
|
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||||
import net.knarcraft.minigames.MiniGames;
|
import net.knarcraft.minigames.MiniGames;
|
||||||
import net.knarcraft.minigames.config.MiniGameMessage;
|
import net.knarcraft.minigames.config.MiniGameMessage;
|
||||||
import net.knarcraft.minigames.manager.EconomyManager;
|
import net.knarcraft.minigames.manager.EconomyManager;
|
||||||
@@ -38,9 +39,9 @@ public class EconomyReward implements Reward {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public @NotNull String getGrantMessage() {
|
public @NotNull FormatBuilder getGrantMessage() {
|
||||||
return MiniGames.getInstance().getStringFormatter().replacePlaceholder(MiniGameMessage.SUCCESS_ECONOMY_REWARDED,
|
return new FormatBuilder(MiniGameMessage.SUCCESS_ECONOMY_REWARDED).replace("{currency}",
|
||||||
"{currency}", EconomyManager.format(amount));
|
EconomyManager.format(amount));
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package net.knarcraft.minigames.arena.reward;
|
package net.knarcraft.minigames.arena.reward;
|
||||||
|
|
||||||
import net.knarcraft.minigames.MiniGames;
|
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||||
import net.knarcraft.minigames.config.MiniGameMessage;
|
import net.knarcraft.minigames.config.MiniGameMessage;
|
||||||
import org.bukkit.NamespacedKey;
|
import org.bukkit.NamespacedKey;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@@ -43,11 +43,11 @@ public class ItemReward implements Reward {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public @NotNull String getGrantMessage() {
|
public @NotNull FormatBuilder getGrantMessage() {
|
||||||
NamespacedKey key = item.getType().getKeyOrNull();
|
NamespacedKey key = item.getType().getKeyOrNull();
|
||||||
String name = key == null ? "Unnamed item" : key.getKey().replace("_", " ");
|
String name = key == null ? "Unnamed item" : key.getKey().replace("_", " ");
|
||||||
return MiniGames.getInstance().getStringFormatter().replacePlaceholders(MiniGameMessage.SUCCESS_ITEM_REWARDED,
|
return new FormatBuilder(MiniGameMessage.SUCCESS_ITEM_REWARDED).
|
||||||
new String[]{"{amount}", "{item}"}, new String[]{String.valueOf(item.getAmount()), name});
|
replace("{amount}", item.getAmount()).replace("{item}", name);
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package net.knarcraft.minigames.arena.reward;
|
package net.knarcraft.minigames.arena.reward;
|
||||||
|
|
||||||
|
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||||
import net.knarcraft.minigames.MiniGames;
|
import net.knarcraft.minigames.MiniGames;
|
||||||
import net.knarcraft.minigames.config.MiniGameMessage;
|
import net.knarcraft.minigames.config.MiniGameMessage;
|
||||||
import net.knarcraft.minigames.manager.PermissionManager;
|
import net.knarcraft.minigames.manager.PermissionManager;
|
||||||
@@ -47,14 +48,13 @@ public class PermissionReward implements Reward {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public @NotNull String getGrantMessage() {
|
public @NotNull FormatBuilder getGrantMessage() {
|
||||||
if (world == null) {
|
if (world == null) {
|
||||||
return MiniGames.getInstance().getStringFormatter().replacePlaceholder(
|
return new FormatBuilder(MiniGameMessage.SUCCESS_PERMISSION_REWARDED).replace("{permission}",
|
||||||
MiniGameMessage.SUCCESS_PERMISSION_REWARDED, "{permission}", permission);
|
permission);
|
||||||
} else {
|
} else {
|
||||||
return MiniGames.getInstance().getStringFormatter().replacePlaceholders(
|
return new FormatBuilder(MiniGameMessage.SUCCESS_PERMISSION_REWARDED_WORLD).
|
||||||
MiniGameMessage.SUCCESS_PERMISSION_REWARDED_WORLD, new String[]{"{permission}", "{world}"},
|
replace("{permission}", permission).replace("{world}", world.getName());
|
||||||
new String[]{permission, world.getName()});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package net.knarcraft.minigames.arena.reward;
|
package net.knarcraft.minigames.arena.reward;
|
||||||
|
|
||||||
|
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||||
import org.bukkit.configuration.serialization.ConfigurationSerializable;
|
import org.bukkit.configuration.serialization.ConfigurationSerializable;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
@@ -23,6 +24,6 @@ public interface Reward extends ConfigurationSerializable {
|
|||||||
* @return <p>The message to display when this reward is granted</p>
|
* @return <p>The message to display when this reward is granted</p>
|
||||||
*/
|
*/
|
||||||
@NotNull
|
@NotNull
|
||||||
String getGrantMessage();
|
FormatBuilder getGrantMessage();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,107 @@
|
|||||||
|
package net.knarcraft.minigames.command;
|
||||||
|
|
||||||
|
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||||
|
import net.knarcraft.minigames.arena.Arena;
|
||||||
|
import net.knarcraft.minigames.arena.ArenaGroup;
|
||||||
|
import net.knarcraft.minigames.arena.ArenaHandler;
|
||||||
|
import net.knarcraft.minigames.config.MiniGameMessage;
|
||||||
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.command.TabExecutor;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import static net.knarcraft.knarlib.util.TabCompletionHelper.filterMatchingContains;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The command for swapping the order of two arenas in a group
|
||||||
|
*/
|
||||||
|
public abstract class ArenaGroupSwapCommand<ArenaType extends Arena, GroupType extends ArenaGroup<ArenaType, GroupType>> implements TabExecutor {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s,
|
||||||
|
@NotNull String[] arguments) {
|
||||||
|
if (arguments.length < 2) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
ArenaHandler<ArenaType, GroupType> arenaHandler = getArenaHandler();
|
||||||
|
|
||||||
|
ArenaType arena1 = arenaHandler.getArena(arguments[0]);
|
||||||
|
if (arena1 == null) {
|
||||||
|
new FormatBuilder(MiniGameMessage.ERROR_ARENA_1_NOT_FOUND).error(commandSender);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
ArenaType arena2 = arenaHandler.getArena(arguments[1]);
|
||||||
|
if (arena2 == null) {
|
||||||
|
new FormatBuilder(MiniGameMessage.ERROR_ARENA_2_NOT_FOUND).error(commandSender);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
GroupType arena1Group = arenaHandler.getGroup(arena1.getArenaId());
|
||||||
|
GroupType arena2Group = arenaHandler.getGroup(arena2.getArenaId());
|
||||||
|
if (arena1Group == null || !arena1Group.equals(arena2Group)) {
|
||||||
|
new FormatBuilder(MiniGameMessage.ERROR_SWAP_DIFFERENT_GROUPS).error(commandSender);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
arena1Group.swapArenas(arena1Group.getArenas().indexOf(arena1.getArenaId()),
|
||||||
|
arena1Group.getArenas().indexOf(arena2.getArenaId()));
|
||||||
|
new FormatBuilder(MiniGameMessage.SUCCESS_ARENAS_SWAPPED).success(commandSender);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
@Override
|
||||||
|
public List<String> onTabComplete(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s,
|
||||||
|
@NotNull String[] arguments) {
|
||||||
|
ArenaHandler<ArenaType, GroupType> arenaHandler = getArenaHandler();
|
||||||
|
if (arguments.length == 1) {
|
||||||
|
List<String> arenaNames = new ArrayList<>();
|
||||||
|
for (ArenaType arena : arenaHandler.getArenasInAGroup()) {
|
||||||
|
arenaNames.add(arena.getArenaName());
|
||||||
|
}
|
||||||
|
return filterMatchingContains(arenaNames, arguments[0]);
|
||||||
|
} else if (arguments.length == 2) {
|
||||||
|
return filterMatchingContains(getArenaNamesInSameGroup(arguments[0]), arguments[1]);
|
||||||
|
} else {
|
||||||
|
return new ArrayList<>();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected abstract ArenaHandler<ArenaType, GroupType> getArenaHandler();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the names of all arenas in the same group as the specified arena
|
||||||
|
*
|
||||||
|
* @param arenaName <p>The name of the specified arena</p>
|
||||||
|
* @return <p>The names of the arenas in the same group</p>
|
||||||
|
*/
|
||||||
|
private List<String> getArenaNamesInSameGroup(String arenaName) {
|
||||||
|
ArenaHandler<ArenaType, GroupType> arenaHandler = getArenaHandler();
|
||||||
|
ArenaType arena1 = arenaHandler.getArena(arenaName);
|
||||||
|
if (arena1 == null) {
|
||||||
|
return new ArrayList<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Only display other arenas in the selected group
|
||||||
|
List<String> arenaNames = new ArrayList<>();
|
||||||
|
GroupType group = arenaHandler.getGroup(arena1.getArenaId());
|
||||||
|
if (group == null) {
|
||||||
|
return new ArrayList<>();
|
||||||
|
}
|
||||||
|
for (UUID arenaId : group.getArenas()) {
|
||||||
|
ArenaType arena = arenaHandler.getArena(arenaId);
|
||||||
|
if (arena != null && arena.getArenaId() != arena1.getArenaId()) {
|
||||||
|
arenaNames.add(arena.getArenaName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return arenaNames;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,7 +1,6 @@
|
|||||||
package net.knarcraft.minigames.command;
|
package net.knarcraft.minigames.command;
|
||||||
|
|
||||||
import net.knarcraft.knarlib.formatting.StringFormatter;
|
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||||
import net.knarcraft.minigames.MiniGames;
|
|
||||||
import net.knarcraft.minigames.arena.Arena;
|
import net.knarcraft.minigames.arena.Arena;
|
||||||
import net.knarcraft.minigames.arena.ArenaGroup;
|
import net.knarcraft.minigames.arena.ArenaGroup;
|
||||||
import net.knarcraft.minigames.arena.ArenaHandler;
|
import net.knarcraft.minigames.arena.ArenaHandler;
|
||||||
@@ -39,12 +38,10 @@ public abstract class GroupListCommand<
|
|||||||
* @param sender <p>The command sender to display the groups to</p>
|
* @param sender <p>The command sender to display the groups to</p>
|
||||||
*/
|
*/
|
||||||
protected void displayExistingGroups(@NotNull K arenaHandler, @NotNull CommandSender sender) {
|
protected void displayExistingGroups(@NotNull K arenaHandler, @NotNull CommandSender sender) {
|
||||||
StringFormatter stringFormatter = MiniGames.getInstance().getStringFormatter();
|
FormatBuilder builder = new FormatBuilder(MiniGameMessage.SUCCESS_GROUPS).append("\n");
|
||||||
StringBuilder builder = new StringBuilder(stringFormatter.getUnFormattedMessage(
|
|
||||||
MiniGameMessage.SUCCESS_GROUPS)).append("\n");
|
|
||||||
arenaHandler.getAllGroups().stream().sorted().forEachOrdered((group) ->
|
arenaHandler.getAllGroups().stream().sorted().forEachOrdered((group) ->
|
||||||
builder.append("- ").append(group.getGroupName()).append("\n"));
|
builder.append("- ").append(group.getGroupName()).append("\n"));
|
||||||
stringFormatter.displaySuccessMessage(sender, builder.toString());
|
builder.success(sender);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -57,16 +54,14 @@ public abstract class GroupListCommand<
|
|||||||
*/
|
*/
|
||||||
protected boolean displayOrderedArenaNames(@NotNull K arenaHandler, @NotNull CommandSender sender,
|
protected boolean displayOrderedArenaNames(@NotNull K arenaHandler, @NotNull CommandSender sender,
|
||||||
@NotNull String groupName) {
|
@NotNull String groupName) {
|
||||||
StringFormatter stringFormatter = MiniGames.getInstance().getStringFormatter();
|
|
||||||
M arenaGroup = arenaHandler.getGroup(groupName);
|
M arenaGroup = arenaHandler.getGroup(groupName);
|
||||||
if (arenaGroup == null) {
|
if (arenaGroup == null) {
|
||||||
stringFormatter.displayErrorMessage(sender, MiniGameMessage.ERROR_GROUP_NOT_FOUND);
|
new FormatBuilder(MiniGameMessage.ERROR_GROUP_NOT_FOUND).error(sender);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Send a list of all stages (arenas in the group)
|
// Send a list of all stages (arenas in the group)
|
||||||
StringBuilder builder = new StringBuilder(stringFormatter.replacePlaceholder(
|
FormatBuilder builder = new FormatBuilder(MiniGameMessage.SUCCESS_GROUP_STAGES).replace("{group}", groupName);
|
||||||
MiniGameMessage.SUCCESS_GROUP_STAGES, "{group}", groupName));
|
|
||||||
int counter = 1;
|
int counter = 1;
|
||||||
for (UUID arenaId : arenaGroup.getArenas()) {
|
for (UUID arenaId : arenaGroup.getArenas()) {
|
||||||
L arena = arenaHandler.getArena(arenaId);
|
L arena = arenaHandler.getArena(arenaId);
|
||||||
@@ -74,7 +69,7 @@ public abstract class GroupListCommand<
|
|||||||
builder.append("\n").append(counter++).append(". ").append(arena.getArenaName());
|
builder.append("\n").append(counter++).append(". ").append(arena.getArenaName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
stringFormatter.displaySuccessMessage(sender, builder.toString());
|
builder.success(sender);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package net.knarcraft.minigames.command;
|
package net.knarcraft.minigames.command;
|
||||||
|
|
||||||
|
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||||
import net.knarcraft.minigames.MiniGames;
|
import net.knarcraft.minigames.MiniGames;
|
||||||
import net.knarcraft.minigames.arena.ArenaSession;
|
import net.knarcraft.minigames.arena.ArenaSession;
|
||||||
import net.knarcraft.minigames.config.MiniGameMessage;
|
import net.knarcraft.minigames.config.MiniGameMessage;
|
||||||
@@ -22,15 +23,13 @@ public class LeaveArenaCommand implements TabExecutor {
|
|||||||
public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s,
|
public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s,
|
||||||
@NotNull String[] strings) {
|
@NotNull String[] strings) {
|
||||||
if (!(commandSender instanceof Player player)) {
|
if (!(commandSender instanceof Player player)) {
|
||||||
MiniGames.getInstance().getStringFormatter().displayErrorMessage(commandSender,
|
new FormatBuilder(MiniGameMessage.ERROR_PLAYER_ONLY).error(commandSender);
|
||||||
MiniGameMessage.ERROR_PLAYER_ONLY);
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
ArenaSession existingSession = MiniGames.getInstance().getSession(player.getUniqueId());
|
ArenaSession existingSession = MiniGames.getInstance().getSession(player.getUniqueId());
|
||||||
if (existingSession == null) {
|
if (existingSession == null) {
|
||||||
MiniGames.getInstance().getStringFormatter().displayErrorMessage(commandSender,
|
new FormatBuilder(MiniGameMessage.ERROR_NOT_IN_ARENA).error(commandSender);
|
||||||
MiniGameMessage.ERROR_NOT_IN_ARENA);
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package net.knarcraft.minigames.command;
|
package net.knarcraft.minigames.command;
|
||||||
|
|
||||||
import net.knarcraft.minigames.MiniGames;
|
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||||
import net.knarcraft.minigames.config.MiniGameMessage;
|
import net.knarcraft.minigames.config.MiniGameMessage;
|
||||||
import net.knarcraft.minigames.util.GUIHelper;
|
import net.knarcraft.minigames.util.GUIHelper;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
@@ -22,8 +22,7 @@ public class MenuCommand implements TabExecutor {
|
|||||||
public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s,
|
public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s,
|
||||||
@NotNull String[] arguments) {
|
@NotNull String[] arguments) {
|
||||||
if (!(commandSender instanceof Player player)) {
|
if (!(commandSender instanceof Player player)) {
|
||||||
MiniGames.getInstance().getStringFormatter().displayErrorMessage(commandSender,
|
new FormatBuilder(MiniGameMessage.ERROR_PLAYER_ONLY).error(commandSender);
|
||||||
MiniGameMessage.ERROR_PLAYER_ONLY);
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package net.knarcraft.minigames.command;
|
package net.knarcraft.minigames.command;
|
||||||
|
|
||||||
|
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||||
import net.knarcraft.minigames.MiniGames;
|
import net.knarcraft.minigames.MiniGames;
|
||||||
import net.knarcraft.minigames.config.MiniGameMessage;
|
import net.knarcraft.minigames.config.MiniGameMessage;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
@@ -20,8 +21,7 @@ public class ReloadCommand implements TabExecutor {
|
|||||||
public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s,
|
public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s,
|
||||||
@NotNull String[] arguments) {
|
@NotNull String[] arguments) {
|
||||||
MiniGames.getInstance().reload();
|
MiniGames.getInstance().reload();
|
||||||
MiniGames.getInstance().getStringFormatter().displaySuccessMessage(commandSender,
|
new FormatBuilder(MiniGameMessage.SUCCESS_PLUGIN_RELOADED).success(commandSender);
|
||||||
MiniGameMessage.SUCCESS_PLUGIN_RELOADED);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package net.knarcraft.minigames.command;
|
package net.knarcraft.minigames.command;
|
||||||
|
|
||||||
|
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||||
import net.knarcraft.minigames.MiniGames;
|
import net.knarcraft.minigames.MiniGames;
|
||||||
import net.knarcraft.minigames.arena.Arena;
|
import net.knarcraft.minigames.arena.Arena;
|
||||||
import net.knarcraft.minigames.arena.reward.Reward;
|
import net.knarcraft.minigames.arena.reward.Reward;
|
||||||
@@ -24,23 +25,13 @@ public class SetArenaRewardCommand implements CommandExecutor {
|
|||||||
public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s,
|
public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s,
|
||||||
@NotNull String[] arguments) {
|
@NotNull String[] arguments) {
|
||||||
if (!(commandSender instanceof Player player)) {
|
if (!(commandSender instanceof Player player)) {
|
||||||
MiniGames.getInstance().getStringFormatter().displayErrorMessage(commandSender,
|
new FormatBuilder(MiniGameMessage.ERROR_PLAYER_ONLY).error(commandSender);
|
||||||
MiniGameMessage.ERROR_PLAYER_ONLY);
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (arguments.length < 4) {
|
if (arguments.length < 4) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
|
|
||||||
/MiniGamesReward add dropper <name> <condition> <type> [data]
|
|
||||||
/MiniGamesReward add parkour <name> <condition> <type> [data]
|
|
||||||
/MiniGamesReward clear dropper <name> <condition>
|
|
||||||
/MiniGamesReward clear parkour <name> <condition>
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
Arena arena = null;
|
Arena arena = null;
|
||||||
if (arguments[1].equalsIgnoreCase("dropper")) {
|
if (arguments[1].equalsIgnoreCase("dropper")) {
|
||||||
@@ -49,22 +40,19 @@ public class SetArenaRewardCommand implements CommandExecutor {
|
|||||||
arena = MiniGames.getInstance().getParkourArenaHandler().getArena(arguments[2]);
|
arena = MiniGames.getInstance().getParkourArenaHandler().getArena(arguments[2]);
|
||||||
}
|
}
|
||||||
if (arena == null) {
|
if (arena == null) {
|
||||||
MiniGames.getInstance().getStringFormatter().displayErrorMessage(commandSender,
|
new FormatBuilder(MiniGameMessage.ERROR_ARENA_NOT_FOUND).error(commandSender);
|
||||||
MiniGameMessage.ERROR_ARENA_NOT_FOUND);
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
RewardCondition condition = RewardCondition.getFromString(arguments[3]);
|
RewardCondition condition = RewardCondition.getFromString(arguments[3]);
|
||||||
if (condition == null) {
|
if (condition == null) {
|
||||||
MiniGames.getInstance().getStringFormatter().displayErrorMessage(player,
|
new FormatBuilder(MiniGameMessage.ERROR_REWARD_CONDITION_INVALID).error(player);
|
||||||
MiniGameMessage.ERROR_REWARD_CONDITION_INVALID);
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (InputValidationHelper.isEmptyValue(arguments[0])) {
|
if (InputValidationHelper.isEmptyValue(arguments[0])) {
|
||||||
arena.clearRewards(condition);
|
arena.clearRewards(condition);
|
||||||
MiniGames.getInstance().getStringFormatter().displaySuccessMessage(player,
|
new FormatBuilder(MiniGameMessage.SUCCESS_REWARDS_CLEARED).success(player);
|
||||||
MiniGameMessage.SUCCESS_REWARDS_CLEARED);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -80,8 +68,7 @@ public class SetArenaRewardCommand implements CommandExecutor {
|
|||||||
|
|
||||||
if (reward != null) {
|
if (reward != null) {
|
||||||
arena.addReward(condition, reward);
|
arena.addReward(condition, reward);
|
||||||
MiniGames.getInstance().getStringFormatter().displaySuccessMessage(player,
|
new FormatBuilder(MiniGameMessage.SUCCESS_REWARD_ADDED).success(player);
|
||||||
MiniGameMessage.SUCCESS_REWARD_ADDED);
|
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package net.knarcraft.minigames.command.dropper;
|
package net.knarcraft.minigames.command.dropper;
|
||||||
|
|
||||||
|
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||||
import net.knarcraft.minigames.MiniGames;
|
import net.knarcraft.minigames.MiniGames;
|
||||||
import net.knarcraft.minigames.arena.dropper.DropperArena;
|
import net.knarcraft.minigames.arena.dropper.DropperArena;
|
||||||
import net.knarcraft.minigames.arena.dropper.DropperArenaHandler;
|
import net.knarcraft.minigames.arena.dropper.DropperArenaHandler;
|
||||||
@@ -20,8 +21,7 @@ public class CreateDropperArenaCommand implements CommandExecutor {
|
|||||||
public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s,
|
public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s,
|
||||||
@NotNull String[] arguments) {
|
@NotNull String[] arguments) {
|
||||||
if (!(commandSender instanceof Player player)) {
|
if (!(commandSender instanceof Player player)) {
|
||||||
MiniGames.getInstance().getStringFormatter().displayErrorMessage(commandSender,
|
new FormatBuilder(MiniGameMessage.ERROR_PLAYER_ONLY).error(commandSender);
|
||||||
MiniGameMessage.ERROR_PLAYER_ONLY);
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -41,15 +41,13 @@ public class CreateDropperArenaCommand implements CommandExecutor {
|
|||||||
DropperArenaHandler arenaHandler = MiniGames.getInstance().getDropperArenaHandler();
|
DropperArenaHandler arenaHandler = MiniGames.getInstance().getDropperArenaHandler();
|
||||||
DropperArena existingArena = arenaHandler.getArena(arenaName);
|
DropperArena existingArena = arenaHandler.getArena(arenaName);
|
||||||
if (existingArena != null) {
|
if (existingArena != null) {
|
||||||
MiniGames.getInstance().getStringFormatter().displayErrorMessage(commandSender,
|
new FormatBuilder(MiniGameMessage.ERROR_ARENA_NAME_COLLISION).error(commandSender);
|
||||||
MiniGameMessage.ERROR_ARENA_NAME_COLLISION);
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
DropperArena arena = new DropperArena(arenaName, player.getLocation(), arenaHandler);
|
DropperArena arena = new DropperArena(arenaName, player.getLocation(), arenaHandler);
|
||||||
arenaHandler.addArena(arena);
|
arenaHandler.addArena(arena);
|
||||||
MiniGames.getInstance().getStringFormatter().displaySuccessMessage(commandSender,
|
new FormatBuilder(MiniGameMessage.SUCCESS_ARENA_CREATED).success(commandSender);
|
||||||
MiniGameMessage.SUCCESS_ARENA_CREATED);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package net.knarcraft.minigames.command.dropper;
|
package net.knarcraft.minigames.command.dropper;
|
||||||
|
|
||||||
|
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||||
import net.knarcraft.minigames.MiniGames;
|
import net.knarcraft.minigames.MiniGames;
|
||||||
import net.knarcraft.minigames.arena.dropper.DropperArena;
|
import net.knarcraft.minigames.arena.dropper.DropperArena;
|
||||||
import net.knarcraft.minigames.arena.dropper.DropperArenaGroup;
|
import net.knarcraft.minigames.arena.dropper.DropperArenaGroup;
|
||||||
@@ -35,8 +36,7 @@ public class DropperGroupSetCommand implements TabExecutor {
|
|||||||
|
|
||||||
DropperArena specifiedArena = arenaHandler.getArena(arguments[0]);
|
DropperArena specifiedArena = arenaHandler.getArena(arguments[0]);
|
||||||
if (specifiedArena == null) {
|
if (specifiedArena == null) {
|
||||||
MiniGames.getInstance().getStringFormatter().displayErrorMessage(commandSender,
|
new FormatBuilder(MiniGameMessage.ERROR_ARENA_NOT_FOUND).error(commandSender);
|
||||||
MiniGameMessage.ERROR_ARENA_NOT_FOUND);
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -58,8 +58,7 @@ public class DropperGroupSetCommand implements TabExecutor {
|
|||||||
|
|
||||||
arenaHandler.setGroup(specifiedArena.getArenaId(), arenaGroup);
|
arenaHandler.setGroup(specifiedArena.getArenaId(), arenaGroup);
|
||||||
|
|
||||||
MiniGames.getInstance().getStringFormatter().displaySuccessMessage(commandSender,
|
new FormatBuilder(MiniGameMessage.SUCCESS_ARENA_GROUP_UPDATED).success(commandSender);
|
||||||
MiniGameMessage.SUCCESS_ARENA_GROUP_UPDATED);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,107 +1,19 @@
|
|||||||
package net.knarcraft.minigames.command.dropper;
|
package net.knarcraft.minigames.command.dropper;
|
||||||
|
|
||||||
import net.knarcraft.knarlib.formatting.StringFormatter;
|
|
||||||
import net.knarcraft.minigames.MiniGames;
|
import net.knarcraft.minigames.MiniGames;
|
||||||
|
import net.knarcraft.minigames.arena.ArenaHandler;
|
||||||
import net.knarcraft.minigames.arena.dropper.DropperArena;
|
import net.knarcraft.minigames.arena.dropper.DropperArena;
|
||||||
import net.knarcraft.minigames.arena.dropper.DropperArenaGroup;
|
import net.knarcraft.minigames.arena.dropper.DropperArenaGroup;
|
||||||
import net.knarcraft.minigames.arena.dropper.DropperArenaHandler;
|
import net.knarcraft.minigames.command.ArenaGroupSwapCommand;
|
||||||
import net.knarcraft.minigames.config.MiniGameMessage;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.command.TabExecutor;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
import org.jetbrains.annotations.Nullable;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import static net.knarcraft.knarlib.util.TabCompletionHelper.filterMatchingContains;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The command for swapping the order of two arenas in a group
|
* The command for swapping the order of two arenas in a group
|
||||||
*/
|
*/
|
||||||
public class DropperGroupSwapCommand implements TabExecutor {
|
public class DropperGroupSwapCommand extends ArenaGroupSwapCommand<DropperArena, DropperArenaGroup> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s,
|
protected ArenaHandler<DropperArena, DropperArenaGroup> getArenaHandler() {
|
||||||
@NotNull String[] arguments) {
|
return MiniGames.getInstance().getDropperArenaHandler();
|
||||||
if (arguments.length < 2) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
StringFormatter stringFormatter = MiniGames.getInstance().getStringFormatter();
|
|
||||||
DropperArenaHandler arenaHandler = MiniGames.getInstance().getDropperArenaHandler();
|
|
||||||
|
|
||||||
DropperArena arena1 = arenaHandler.getArena(arguments[0]);
|
|
||||||
if (arena1 == null) {
|
|
||||||
stringFormatter.displayErrorMessage(commandSender, MiniGameMessage.ERROR_ARENA_1_NOT_FOUND);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
DropperArena arena2 = arenaHandler.getArena(arguments[1]);
|
|
||||||
if (arena2 == null) {
|
|
||||||
stringFormatter.displayErrorMessage(commandSender, MiniGameMessage.ERROR_ARENA_2_NOT_FOUND);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
DropperArenaGroup arena1Group = arenaHandler.getGroup(arena1.getArenaId());
|
|
||||||
DropperArenaGroup arena2Group = arenaHandler.getGroup(arena2.getArenaId());
|
|
||||||
if (arena1Group == null || !arena1Group.equals(arena2Group)) {
|
|
||||||
stringFormatter.displayErrorMessage(commandSender, MiniGameMessage.ERROR_SWAP_DIFFERENT_GROUPS);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
arena1Group.swapArenas(arena1Group.getArenas().indexOf(arena1.getArenaId()),
|
|
||||||
arena1Group.getArenas().indexOf(arena2.getArenaId()));
|
|
||||||
stringFormatter.displaySuccessMessage(commandSender, MiniGameMessage.SUCCESS_ARENAS_SWAPPED);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Nullable
|
|
||||||
@Override
|
|
||||||
public List<String> onTabComplete(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s,
|
|
||||||
@NotNull String[] arguments) {
|
|
||||||
DropperArenaHandler arenaHandler = MiniGames.getInstance().getDropperArenaHandler();
|
|
||||||
if (arguments.length == 1) {
|
|
||||||
List<String> arenaNames = new ArrayList<>();
|
|
||||||
for (DropperArena dropperArena : arenaHandler.getArenasInAGroup()) {
|
|
||||||
arenaNames.add(dropperArena.getArenaName());
|
|
||||||
}
|
|
||||||
return filterMatchingContains(arenaNames, arguments[0]);
|
|
||||||
} else if (arguments.length == 2) {
|
|
||||||
return filterMatchingContains(getArenaNamesInSameGroup(arguments[0]), arguments[1]);
|
|
||||||
} else {
|
|
||||||
return new ArrayList<>();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the names of all arenas in the same group as the specified arena
|
|
||||||
*
|
|
||||||
* @param arenaName <p>The name of the specified arena</p>
|
|
||||||
* @return <p>The names of the arenas in the same group</p>
|
|
||||||
*/
|
|
||||||
private List<String> getArenaNamesInSameGroup(String arenaName) {
|
|
||||||
DropperArenaHandler arenaHandler = MiniGames.getInstance().getDropperArenaHandler();
|
|
||||||
DropperArena arena1 = arenaHandler.getArena(arenaName);
|
|
||||||
if (arena1 == null) {
|
|
||||||
return new ArrayList<>();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Only display other arenas in the selected group
|
|
||||||
List<String> arenaNames = new ArrayList<>();
|
|
||||||
DropperArenaGroup group = arenaHandler.getGroup(arena1.getArenaId());
|
|
||||||
if (group == null) {
|
|
||||||
return new ArrayList<>();
|
|
||||||
}
|
|
||||||
for (UUID arenaId : group.getArenas()) {
|
|
||||||
DropperArena arena = arenaHandler.getArena(arenaId);
|
|
||||||
if (arena != null && arena.getArenaId() != arena1.getArenaId()) {
|
|
||||||
arenaNames.add(arena.getArenaName());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return arenaNames;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package net.knarcraft.minigames.command.dropper;
|
package net.knarcraft.minigames.command.dropper;
|
||||||
|
|
||||||
import net.knarcraft.knarlib.formatting.StringFormatter;
|
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||||
import net.knarcraft.minigames.MiniGames;
|
import net.knarcraft.minigames.MiniGames;
|
||||||
import net.knarcraft.minigames.arena.dropper.DropperArena;
|
import net.knarcraft.minigames.arena.dropper.DropperArena;
|
||||||
import net.knarcraft.minigames.arena.dropper.DropperArenaEditableProperty;
|
import net.knarcraft.minigames.arena.dropper.DropperArenaEditableProperty;
|
||||||
@@ -30,9 +30,8 @@ public class EditDropperArenaCommand extends EditArenaCommand {
|
|||||||
@Override
|
@Override
|
||||||
public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s,
|
public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s,
|
||||||
@NotNull String[] arguments) {
|
@NotNull String[] arguments) {
|
||||||
StringFormatter stringFormatter = MiniGames.getInstance().getStringFormatter();
|
|
||||||
if (!(commandSender instanceof Player player)) {
|
if (!(commandSender instanceof Player player)) {
|
||||||
stringFormatter.displayErrorMessage(commandSender, MiniGameMessage.ERROR_PLAYER_ONLY);
|
new FormatBuilder(MiniGameMessage.ERROR_PLAYER_ONLY).error(commandSender);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -42,31 +41,30 @@ public class EditDropperArenaCommand extends EditArenaCommand {
|
|||||||
|
|
||||||
DropperArena specifiedArena = MiniGames.getInstance().getDropperArenaHandler().getArena(arguments[0]);
|
DropperArena specifiedArena = MiniGames.getInstance().getDropperArenaHandler().getArena(arguments[0]);
|
||||||
if (specifiedArena == null) {
|
if (specifiedArena == null) {
|
||||||
stringFormatter.displayErrorMessage(commandSender, MiniGameMessage.ERROR_ARENA_NOT_FOUND);
|
new FormatBuilder(MiniGameMessage.ERROR_ARENA_NOT_FOUND).error(commandSender);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
DropperArenaEditableProperty editableProperty = DropperArenaEditableProperty.getFromArgumentString(arguments[1]);
|
DropperArenaEditableProperty editableProperty = DropperArenaEditableProperty.getFromArgumentString(arguments[1]);
|
||||||
if (editableProperty == null) {
|
if (editableProperty == null) {
|
||||||
stringFormatter.displayErrorMessage(commandSender, MiniGameMessage.ERROR_UNKNOWN_PROPERTY);
|
new FormatBuilder(MiniGameMessage.ERROR_UNKNOWN_PROPERTY).error(commandSender);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (arguments.length < 3) {
|
if (arguments.length < 3) {
|
||||||
// Print the current value of the property
|
// Print the current value of the property
|
||||||
String value = editableProperty.getCurrentValueAsString(specifiedArena);
|
String value = editableProperty.getCurrentValueAsString(specifiedArena);
|
||||||
stringFormatter.displaySuccessMessage(commandSender, stringFormatter.replacePlaceholders(
|
new FormatBuilder(MiniGameMessage.SUCCESS_CURRENT_VALUE).
|
||||||
MiniGameMessage.SUCCESS_CURRENT_VALUE, new String[]{"{property}", "{value}"},
|
replace("{property}", editableProperty.getArgumentString()).
|
||||||
new String[]{editableProperty.getArgumentString(), value}));
|
replace("{value}", value).success(commandSender);
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
boolean successful = changeValue(specifiedArena, editableProperty, arguments[2], player);
|
boolean successful = changeValue(specifiedArena, editableProperty, arguments[2], player);
|
||||||
if (successful) {
|
if (successful) {
|
||||||
stringFormatter.displaySuccessMessage(player, stringFormatter.replacePlaceholder(
|
new FormatBuilder(MiniGameMessage.SUCCESS_PROPERTY_CHANGED).
|
||||||
MiniGameMessage.SUCCESS_PROPERTY_CHANGED, "{property}",
|
replace("{property}", editableProperty.getArgumentString()).success(player);
|
||||||
editableProperty.getArgumentString()));
|
|
||||||
} else {
|
} else {
|
||||||
stringFormatter.displayErrorMessage(player, MiniGameMessage.ERROR_PROPERTY_INPUT_INVALID);
|
new FormatBuilder(MiniGameMessage.ERROR_PROPERTY_INPUT_INVALID).error(player);
|
||||||
}
|
}
|
||||||
return successful;
|
return successful;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package net.knarcraft.minigames.command.dropper;
|
package net.knarcraft.minigames.command.dropper;
|
||||||
|
|
||||||
import net.knarcraft.knarlib.formatting.StringFormatter;
|
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||||
import net.knarcraft.minigames.MiniGames;
|
import net.knarcraft.minigames.MiniGames;
|
||||||
import net.knarcraft.minigames.arena.ArenaPlayerRegistry;
|
import net.knarcraft.minigames.arena.ArenaPlayerRegistry;
|
||||||
import net.knarcraft.minigames.arena.dropper.DropperArena;
|
import net.knarcraft.minigames.arena.dropper.DropperArena;
|
||||||
@@ -26,9 +26,8 @@ public class JoinDropperArenaCommand implements CommandExecutor {
|
|||||||
@Override
|
@Override
|
||||||
public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s,
|
public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s,
|
||||||
@NotNull String[] arguments) {
|
@NotNull String[] arguments) {
|
||||||
StringFormatter stringFormatter = MiniGames.getInstance().getStringFormatter();
|
|
||||||
if (!(commandSender instanceof Player player)) {
|
if (!(commandSender instanceof Player player)) {
|
||||||
stringFormatter.displayErrorMessage(commandSender, MiniGameMessage.ERROR_PLAYER_ONLY);
|
new FormatBuilder(MiniGameMessage.ERROR_PLAYER_ONLY).error(commandSender);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -37,33 +36,33 @@ public class JoinDropperArenaCommand implements CommandExecutor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (GeyserHelper.isGeyserPlayer(player)) {
|
if (GeyserHelper.isGeyserPlayer(player)) {
|
||||||
stringFormatter.displayErrorMessage(commandSender, MiniGameMessage.ERROR_GEYSER_DROPPER);
|
new FormatBuilder(MiniGameMessage.ERROR_GEYSER_DROPPER).error(commandSender);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Disallow joining if the player is already in a mini-game arena
|
// Disallow joining if the player is already in a mini-game arena
|
||||||
if (MiniGames.getInstance().getSession(player.getUniqueId()) != null) {
|
if (MiniGames.getInstance().getSession(player.getUniqueId()) != null) {
|
||||||
stringFormatter.displayErrorMessage(commandSender, MiniGameMessage.ERROR_ALREADY_PLAYING);
|
new FormatBuilder(MiniGameMessage.ERROR_ALREADY_PLAYING).error(commandSender);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make sure the arena exists
|
// Make sure the arena exists
|
||||||
DropperArena specifiedArena = MiniGames.getInstance().getDropperArenaHandler().getArena(arguments[0]);
|
DropperArena specifiedArena = MiniGames.getInstance().getDropperArenaHandler().getArena(arguments[0]);
|
||||||
if (specifiedArena == null) {
|
if (specifiedArena == null) {
|
||||||
stringFormatter.displayErrorMessage(commandSender, MiniGameMessage.ERROR_ARENA_NOT_FOUND);
|
new FormatBuilder(MiniGameMessage.ERROR_ARENA_NOT_FOUND).error(commandSender);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Deny vehicles as allowing this is tricky, and will cause problems in some cases
|
// Deny vehicles as allowing this is tricky, and will cause problems in some cases
|
||||||
if (player.isInsideVehicle() || !player.getPassengers().isEmpty()) {
|
if (player.isInsideVehicle() || !player.getPassengers().isEmpty()) {
|
||||||
stringFormatter.displayErrorMessage(commandSender, MiniGameMessage.ERROR_JOIN_IN_VEHICLE_OR_PASSENGER);
|
new FormatBuilder(MiniGameMessage.ERROR_JOIN_IN_VEHICLE_OR_PASSENGER).error(commandSender);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Deny joining full arenas
|
// Deny joining full arenas
|
||||||
int playingNow = MiniGames.getInstance().getDropperArenaPlayerRegistry().getPlayingPlayers(specifiedArena).size();
|
int playingNow = MiniGames.getInstance().getDropperArenaPlayerRegistry().getPlayingPlayers(specifiedArena).size();
|
||||||
if (specifiedArena.getMaxPlayers() > 0 && playingNow >= specifiedArena.getMaxPlayers()) {
|
if (specifiedArena.getMaxPlayers() > 0 && playingNow >= specifiedArena.getMaxPlayers()) {
|
||||||
stringFormatter.displayErrorMessage(commandSender, MiniGameMessage.ERROR_JOIN_ARENA_FULL);
|
new FormatBuilder(MiniGameMessage.ERROR_JOIN_ARENA_FULL).error(commandSender);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -93,13 +92,11 @@ public class JoinDropperArenaCommand implements CommandExecutor {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
StringFormatter stringFormatter = MiniGames.getInstance().getStringFormatter();
|
|
||||||
|
|
||||||
// Make sure the player has beaten the arena once in normal mode before playing another mode
|
// Make sure the player has beaten the arena once in normal mode before playing another mode
|
||||||
if (MiniGames.getInstance().getDropperConfiguration().mustDoNormalModeFirst() &&
|
if (MiniGames.getInstance().getDropperConfiguration().mustDoNormalModeFirst() &&
|
||||||
gameMode != DropperArenaGameMode.DEFAULT &&
|
gameMode != DropperArenaGameMode.DEFAULT &&
|
||||||
specifiedArena.getData().hasNotCompleted(DropperArenaGameMode.DEFAULT, player)) {
|
specifiedArena.getData().hasNotCompleted(DropperArenaGameMode.DEFAULT, player)) {
|
||||||
stringFormatter.displayErrorMessage(player, MiniGameMessage.ERROR_NORMAL_MODE_REQUIRED);
|
new FormatBuilder(MiniGameMessage.ERROR_NORMAL_MODE_REQUIRED).error(player);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -114,14 +111,14 @@ public class JoinDropperArenaCommand implements CommandExecutor {
|
|||||||
// Try to teleport the player to the arena
|
// Try to teleport the player to the arena
|
||||||
boolean teleported = PlayerTeleporter.teleportPlayer(player, specifiedArena.getSpawnLocation(), false, false);
|
boolean teleported = PlayerTeleporter.teleportPlayer(player, specifiedArena.getSpawnLocation(), false, false);
|
||||||
if (!teleported) {
|
if (!teleported) {
|
||||||
stringFormatter.displayErrorMessage(player, MiniGameMessage.ERROR_ARENA_TELEPORT_FAILED);
|
new FormatBuilder(MiniGameMessage.ERROR_ARENA_TELEPORT_FAILED).error(player);
|
||||||
newSession.triggerQuit(false, true);
|
newSession.triggerQuit(false, true);
|
||||||
} else {
|
} else {
|
||||||
// Update the player's state to follow the arena's rules
|
// Update the player's state to follow the arena's rules
|
||||||
newSession.getEntryState().setArenaState();
|
newSession.getEntryState().setArenaState();
|
||||||
|
|
||||||
player.getInventory().addItem(GUIHelper.getGUIOpenItem(player));
|
player.getInventory().addItem(GUIHelper.getGUIOpenItem(player));
|
||||||
stringFormatter.displaySuccessMessage(player, MiniGameMessage.SUCCESS_ARENA_JOINED);
|
new FormatBuilder(MiniGameMessage.SUCCESS_ARENA_JOINED).success(player);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -136,19 +133,18 @@ public class JoinDropperArenaCommand implements CommandExecutor {
|
|||||||
*/
|
*/
|
||||||
private boolean doGroupChecks(@NotNull DropperArena dropperArena, @NotNull DropperArenaGroup arenaGroup,
|
private boolean doGroupChecks(@NotNull DropperArena dropperArena, @NotNull DropperArenaGroup arenaGroup,
|
||||||
@NotNull DropperArenaGameMode arenaGameMode, @NotNull Player player) {
|
@NotNull DropperArenaGameMode arenaGameMode, @NotNull Player player) {
|
||||||
StringFormatter stringFormatter = MiniGames.getInstance().getStringFormatter();
|
|
||||||
DropperConfiguration configuration = MiniGames.getInstance().getDropperConfiguration();
|
DropperConfiguration configuration = MiniGames.getInstance().getDropperConfiguration();
|
||||||
// Require that players beat all arenas in the group in the normal game-mode before trying challenge modes
|
// Require that players beat all arenas in the group in the normal game-mode before trying challenge modes
|
||||||
if (configuration.mustDoNormalModeFirst() && arenaGameMode != DropperArenaGameMode.DEFAULT &&
|
if (configuration.mustDoNormalModeFirst() && arenaGameMode != DropperArenaGameMode.DEFAULT &&
|
||||||
!arenaGroup.hasBeatenAll(DropperArenaGameMode.DEFAULT, player)) {
|
!arenaGroup.hasBeatenAll(DropperArenaGameMode.DEFAULT, player)) {
|
||||||
stringFormatter.displayErrorMessage(player, MiniGameMessage.ERROR_GROUP_NORMAL_MODE_REQUIRED);
|
new FormatBuilder(MiniGameMessage.ERROR_GROUP_NORMAL_MODE_REQUIRED).error(player);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Require that the player has beaten the previous arena on the same game-mode before trying this one
|
// Require that the player has beaten the previous arena on the same game-mode before trying this one
|
||||||
if (configuration.mustDoGroupedInSequence() &&
|
if (configuration.mustDoGroupedInSequence() &&
|
||||||
arenaGroup.cannotPlay(arenaGameMode, player, dropperArena.getArenaId())) {
|
arenaGroup.cannotPlay(arenaGameMode, player, dropperArena.getArenaId())) {
|
||||||
stringFormatter.displayErrorMessage(player, MiniGameMessage.ERROR_PREVIOUS_ARENA_REQUIRED);
|
new FormatBuilder(MiniGameMessage.ERROR_PREVIOUS_ARENA_REQUIRED).error(player);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package net.knarcraft.minigames.command.dropper;
|
package net.knarcraft.minigames.command.dropper;
|
||||||
|
|
||||||
import net.knarcraft.minigames.MiniGames;
|
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||||
import net.knarcraft.minigames.config.MiniGameMessage;
|
import net.knarcraft.minigames.config.MiniGameMessage;
|
||||||
import net.knarcraft.minigames.util.TabCompleteHelper;
|
import net.knarcraft.minigames.util.TabCompleteHelper;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
@@ -20,12 +20,11 @@ public class ListDropperArenaCommand implements TabExecutor {
|
|||||||
@Override
|
@Override
|
||||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label,
|
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label,
|
||||||
@NotNull String[] arguments) {
|
@NotNull String[] arguments) {
|
||||||
StringBuilder builder = new StringBuilder(MiniGames.getInstance().getTranslator().getTranslatedMessage(
|
FormatBuilder builder = new FormatBuilder(MiniGameMessage.SUCCESS_DROPPER_ARENAS_LIST);
|
||||||
MiniGameMessage.SUCCESS_DROPPER_ARENAS_LIST));
|
|
||||||
for (String arenaName : TabCompleteHelper.getDropperArenas()) {
|
for (String arenaName : TabCompleteHelper.getDropperArenas()) {
|
||||||
builder.append("\n").append(arenaName);
|
builder.append("\n").append(arenaName);
|
||||||
}
|
}
|
||||||
MiniGames.getInstance().getStringFormatter().displaySuccessMessage(sender, builder.toString());
|
builder.success(sender);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package net.knarcraft.minigames.command.dropper;
|
package net.knarcraft.minigames.command.dropper;
|
||||||
|
|
||||||
import net.knarcraft.knarlib.formatting.StringFormatter;
|
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||||
import net.knarcraft.minigames.MiniGames;
|
import net.knarcraft.minigames.MiniGames;
|
||||||
import net.knarcraft.minigames.arena.dropper.DropperArena;
|
import net.knarcraft.minigames.arena.dropper.DropperArena;
|
||||||
import net.knarcraft.minigames.config.MiniGameMessage;
|
import net.knarcraft.minigames.config.MiniGameMessage;
|
||||||
@@ -22,18 +22,16 @@ public class RemoveDropperArenaCommand implements CommandExecutor {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
StringFormatter stringFormatter = MiniGames.getInstance().getStringFormatter();
|
|
||||||
|
|
||||||
// Get the specified arena
|
// Get the specified arena
|
||||||
DropperArena targetArena = MiniGames.getInstance().getDropperArenaHandler().getArena(arguments[0]);
|
DropperArena targetArena = MiniGames.getInstance().getDropperArenaHandler().getArena(arguments[0]);
|
||||||
if (targetArena == null) {
|
if (targetArena == null) {
|
||||||
stringFormatter.displayErrorMessage(commandSender, MiniGameMessage.ERROR_ARENA_NOT_FOUND);
|
new FormatBuilder(MiniGameMessage.ERROR_ARENA_NOT_FOUND).error(commandSender);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remove the arena
|
// Remove the arena
|
||||||
MiniGames.getInstance().getDropperArenaHandler().removeArena(targetArena);
|
MiniGames.getInstance().getDropperArenaHandler().removeArena(targetArena);
|
||||||
stringFormatter.displaySuccessMessage(commandSender, MiniGameMessage.SUCCESS_ARENA_REMOVED);
|
new FormatBuilder(MiniGameMessage.SUCCESS_ARENA_REMOVED).success(commandSender);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package net.knarcraft.minigames.command.parkour;
|
package net.knarcraft.minigames.command.parkour;
|
||||||
|
|
||||||
import net.knarcraft.knarlib.formatting.StringFormatter;
|
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||||
import net.knarcraft.minigames.MiniGames;
|
import net.knarcraft.minigames.MiniGames;
|
||||||
import net.knarcraft.minigames.arena.parkour.ParkourArena;
|
import net.knarcraft.minigames.arena.parkour.ParkourArena;
|
||||||
import net.knarcraft.minigames.arena.parkour.ParkourArenaHandler;
|
import net.knarcraft.minigames.arena.parkour.ParkourArenaHandler;
|
||||||
@@ -20,9 +20,8 @@ public class CreateParkourArenaCommand implements CommandExecutor {
|
|||||||
@Override
|
@Override
|
||||||
public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s,
|
public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s,
|
||||||
@NotNull String[] arguments) {
|
@NotNull String[] arguments) {
|
||||||
StringFormatter stringFormatter = MiniGames.getInstance().getStringFormatter();
|
|
||||||
if (!(commandSender instanceof Player player)) {
|
if (!(commandSender instanceof Player player)) {
|
||||||
stringFormatter.displayErrorMessage(commandSender, MiniGameMessage.ERROR_PLAYER_ONLY);
|
new FormatBuilder(MiniGameMessage.ERROR_PLAYER_ONLY).error(commandSender);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -42,13 +41,13 @@ public class CreateParkourArenaCommand implements CommandExecutor {
|
|||||||
ParkourArenaHandler arenaHandler = MiniGames.getInstance().getParkourArenaHandler();
|
ParkourArenaHandler arenaHandler = MiniGames.getInstance().getParkourArenaHandler();
|
||||||
ParkourArena existingArena = arenaHandler.getArena(arenaName);
|
ParkourArena existingArena = arenaHandler.getArena(arenaName);
|
||||||
if (existingArena != null) {
|
if (existingArena != null) {
|
||||||
stringFormatter.displayErrorMessage(commandSender, MiniGameMessage.ERROR_ARENA_NAME_COLLISION);
|
new FormatBuilder(MiniGameMessage.ERROR_ARENA_NAME_COLLISION).error(commandSender);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
ParkourArena arena = new ParkourArena(arenaName, player.getLocation(), arenaHandler);
|
ParkourArena arena = new ParkourArena(arenaName, player.getLocation(), arenaHandler);
|
||||||
arenaHandler.addArena(arena);
|
arenaHandler.addArena(arena);
|
||||||
stringFormatter.displaySuccessMessage(commandSender, MiniGameMessage.SUCCESS_ARENA_CREATED);
|
new FormatBuilder(MiniGameMessage.SUCCESS_ARENA_CREATED).success(commandSender);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package net.knarcraft.minigames.command.parkour;
|
package net.knarcraft.minigames.command.parkour;
|
||||||
|
|
||||||
import net.knarcraft.knarlib.formatting.StringFormatter;
|
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||||
import net.knarcraft.minigames.MiniGames;
|
import net.knarcraft.minigames.MiniGames;
|
||||||
import net.knarcraft.minigames.arena.parkour.ParkourArena;
|
import net.knarcraft.minigames.arena.parkour.ParkourArena;
|
||||||
import net.knarcraft.minigames.arena.parkour.ParkourArenaEditableProperty;
|
import net.knarcraft.minigames.arena.parkour.ParkourArenaEditableProperty;
|
||||||
@@ -27,9 +27,8 @@ public class EditParkourArenaCommand extends EditArenaCommand {
|
|||||||
@Override
|
@Override
|
||||||
public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s,
|
public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s,
|
||||||
@NotNull String[] arguments) {
|
@NotNull String[] arguments) {
|
||||||
StringFormatter stringFormatter = MiniGames.getInstance().getStringFormatter();
|
|
||||||
if (!(commandSender instanceof Player player)) {
|
if (!(commandSender instanceof Player player)) {
|
||||||
stringFormatter.displayErrorMessage(commandSender, MiniGameMessage.ERROR_PLAYER_ONLY);
|
new FormatBuilder(MiniGameMessage.ERROR_PLAYER_ONLY).error(commandSender);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -39,22 +38,22 @@ public class EditParkourArenaCommand extends EditArenaCommand {
|
|||||||
|
|
||||||
ParkourArena specifiedArena = MiniGames.getInstance().getParkourArenaHandler().getArena(arguments[0]);
|
ParkourArena specifiedArena = MiniGames.getInstance().getParkourArenaHandler().getArena(arguments[0]);
|
||||||
if (specifiedArena == null) {
|
if (specifiedArena == null) {
|
||||||
stringFormatter.displayErrorMessage(commandSender, MiniGameMessage.ERROR_ARENA_NOT_FOUND);
|
new FormatBuilder(MiniGameMessage.ERROR_ARENA_NOT_FOUND).error(commandSender);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
ParkourArenaEditableProperty editableProperty = ParkourArenaEditableProperty.getFromArgumentString(arguments[1]);
|
ParkourArenaEditableProperty editableProperty = ParkourArenaEditableProperty.getFromArgumentString(arguments[1]);
|
||||||
if (editableProperty == null) {
|
if (editableProperty == null) {
|
||||||
stringFormatter.displayErrorMessage(commandSender, MiniGameMessage.ERROR_UNKNOWN_PROPERTY);
|
new FormatBuilder(MiniGameMessage.ERROR_UNKNOWN_PROPERTY).error(commandSender);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (arguments.length < 3) {
|
if (arguments.length < 3) {
|
||||||
// Print the current value of the property
|
// Print the current value of the property
|
||||||
String value = editableProperty.getCurrentValueAsString(specifiedArena);
|
String value = editableProperty.getCurrentValueAsString(specifiedArena);
|
||||||
stringFormatter.displaySuccessMessage(commandSender, stringFormatter.replacePlaceholders(
|
new FormatBuilder(MiniGameMessage.SUCCESS_CURRENT_VALUE).
|
||||||
MiniGameMessage.SUCCESS_CURRENT_VALUE, new String[]{"{property}", "{value}"},
|
replace("{property}", editableProperty.getArgumentString()).
|
||||||
new String[]{editableProperty.getArgumentString(), value}));
|
replace("{value}", value).success(commandSender);
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
boolean successful;
|
boolean successful;
|
||||||
@@ -64,11 +63,10 @@ public class EditParkourArenaCommand extends EditArenaCommand {
|
|||||||
successful = false;
|
successful = false;
|
||||||
}
|
}
|
||||||
if (successful) {
|
if (successful) {
|
||||||
stringFormatter.displaySuccessMessage(player, stringFormatter.replacePlaceholder(
|
new FormatBuilder(MiniGameMessage.SUCCESS_PROPERTY_CHANGED).replace("{property}",
|
||||||
MiniGameMessage.SUCCESS_PROPERTY_CHANGED, "{property}",
|
editableProperty.getArgumentString()).success(player);
|
||||||
editableProperty.getArgumentString()));
|
|
||||||
} else {
|
} else {
|
||||||
stringFormatter.displayErrorMessage(player, MiniGameMessage.ERROR_PROPERTY_INPUT_INVALID);
|
new FormatBuilder(MiniGameMessage.ERROR_PROPERTY_INPUT_INVALID).error(player);
|
||||||
}
|
}
|
||||||
return successful;
|
return successful;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package net.knarcraft.minigames.command.parkour;
|
package net.knarcraft.minigames.command.parkour;
|
||||||
|
|
||||||
import net.knarcraft.knarlib.formatting.StringFormatter;
|
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||||
import net.knarcraft.minigames.MiniGames;
|
import net.knarcraft.minigames.MiniGames;
|
||||||
import net.knarcraft.minigames.arena.ArenaPlayerRegistry;
|
import net.knarcraft.minigames.arena.ArenaPlayerRegistry;
|
||||||
import net.knarcraft.minigames.arena.parkour.ParkourArena;
|
import net.knarcraft.minigames.arena.parkour.ParkourArena;
|
||||||
@@ -25,9 +25,8 @@ public class JoinParkourArenaCommand implements CommandExecutor {
|
|||||||
@Override
|
@Override
|
||||||
public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s,
|
public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s,
|
||||||
@NotNull String[] arguments) {
|
@NotNull String[] arguments) {
|
||||||
StringFormatter stringFormatter = MiniGames.getInstance().getStringFormatter();
|
|
||||||
if (!(commandSender instanceof Player player)) {
|
if (!(commandSender instanceof Player player)) {
|
||||||
stringFormatter.displayErrorMessage(commandSender, MiniGameMessage.ERROR_PLAYER_ONLY);
|
new FormatBuilder(MiniGameMessage.ERROR_PLAYER_ONLY).error(commandSender);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -37,27 +36,27 @@ public class JoinParkourArenaCommand implements CommandExecutor {
|
|||||||
|
|
||||||
// Disallow joining if the player is already in a mini-game arena
|
// Disallow joining if the player is already in a mini-game arena
|
||||||
if (MiniGames.getInstance().getSession(player.getUniqueId()) != null) {
|
if (MiniGames.getInstance().getSession(player.getUniqueId()) != null) {
|
||||||
stringFormatter.displayErrorMessage(commandSender, MiniGameMessage.ERROR_ALREADY_PLAYING);
|
new FormatBuilder(MiniGameMessage.ERROR_ALREADY_PLAYING).error(commandSender);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make sure the arena exists
|
// Make sure the arena exists
|
||||||
ParkourArena specifiedArena = MiniGames.getInstance().getParkourArenaHandler().getArena(arguments[0]);
|
ParkourArena specifiedArena = MiniGames.getInstance().getParkourArenaHandler().getArena(arguments[0]);
|
||||||
if (specifiedArena == null) {
|
if (specifiedArena == null) {
|
||||||
stringFormatter.displayErrorMessage(commandSender, MiniGameMessage.ERROR_ARENA_NOT_FOUND);
|
new FormatBuilder(MiniGameMessage.ERROR_ARENA_NOT_FOUND).error(commandSender);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Deny vehicles as allowing this is tricky, and will cause problems in some cases
|
// Deny vehicles as allowing this is tricky, and will cause problems in some cases
|
||||||
if (player.isInsideVehicle() || !player.getPassengers().isEmpty()) {
|
if (player.isInsideVehicle() || !player.getPassengers().isEmpty()) {
|
||||||
stringFormatter.displayErrorMessage(commandSender, MiniGameMessage.ERROR_JOIN_IN_VEHICLE_OR_PASSENGER);
|
new FormatBuilder(MiniGameMessage.ERROR_JOIN_IN_VEHICLE_OR_PASSENGER).error(commandSender);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Deny joining full arenas
|
// Deny joining full arenas
|
||||||
int playingNow = MiniGames.getInstance().getParkourArenaPlayerRegistry().getPlayingPlayers(specifiedArena).size();
|
int playingNow = MiniGames.getInstance().getParkourArenaPlayerRegistry().getPlayingPlayers(specifiedArena).size();
|
||||||
if (specifiedArena.getMaxPlayers() > 0 && playingNow >= specifiedArena.getMaxPlayers()) {
|
if (specifiedArena.getMaxPlayers() > 0 && playingNow >= specifiedArena.getMaxPlayers()) {
|
||||||
stringFormatter.displayErrorMessage(commandSender, MiniGameMessage.ERROR_JOIN_ARENA_FULL);
|
new FormatBuilder(MiniGameMessage.ERROR_JOIN_ARENA_FULL).error(commandSender);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -83,8 +82,7 @@ public class JoinParkourArenaCommand implements CommandExecutor {
|
|||||||
|
|
||||||
// Don't allow joining the hardcore game-mode if there are no checkpoints to skip
|
// Don't allow joining the hardcore game-mode if there are no checkpoints to skip
|
||||||
if (specifiedArena.hasNoCheckpoints() && gameMode == ParkourArenaGameMode.HARDCORE) {
|
if (specifiedArena.hasNoCheckpoints() && gameMode == ParkourArenaGameMode.HARDCORE) {
|
||||||
MiniGames.getInstance().getStringFormatter().displayErrorMessage(player,
|
new FormatBuilder(MiniGameMessage.ERROR_HARDCORE_NO_CHECKPOINTS).error(player);
|
||||||
MiniGameMessage.ERROR_HARDCORE_NO_CHECKPOINTS);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -105,16 +103,14 @@ public class JoinParkourArenaCommand implements CommandExecutor {
|
|||||||
// Try to teleport the player to the arena
|
// Try to teleport the player to the arena
|
||||||
boolean teleported = PlayerTeleporter.teleportPlayer(player, specifiedArena.getSpawnLocation(), false, false);
|
boolean teleported = PlayerTeleporter.teleportPlayer(player, specifiedArena.getSpawnLocation(), false, false);
|
||||||
if (!teleported) {
|
if (!teleported) {
|
||||||
MiniGames.getInstance().getStringFormatter().displayErrorMessage(player,
|
new FormatBuilder(MiniGameMessage.ERROR_ARENA_TELEPORT_FAILED).error(player);
|
||||||
MiniGameMessage.ERROR_ARENA_TELEPORT_FAILED);
|
|
||||||
newSession.triggerQuit(false, true);
|
newSession.triggerQuit(false, true);
|
||||||
} else {
|
} else {
|
||||||
// Update the player's state to follow the arena's rules
|
// Update the player's state to follow the arena's rules
|
||||||
newSession.getEntryState().setArenaState();
|
newSession.getEntryState().setArenaState();
|
||||||
|
|
||||||
player.getInventory().addItem(GUIHelper.getGUIOpenItem(player));
|
player.getInventory().addItem(GUIHelper.getGUIOpenItem(player));
|
||||||
MiniGames.getInstance().getStringFormatter().displaySuccessMessage(player,
|
new FormatBuilder(MiniGameMessage.SUCCESS_ARENA_JOINED).success(player);
|
||||||
MiniGameMessage.SUCCESS_ARENA_JOINED);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -134,8 +130,7 @@ public class JoinParkourArenaCommand implements CommandExecutor {
|
|||||||
// Require that the player has beaten the previous arena on the same game-mode before trying this one
|
// Require that the player has beaten the previous arena on the same game-mode before trying this one
|
||||||
if (configuration.mustDoGroupedInSequence() &&
|
if (configuration.mustDoGroupedInSequence() &&
|
||||||
arenaGroup.cannotPlay(arenaGameMode, player, parkourArena.getArenaId())) {
|
arenaGroup.cannotPlay(arenaGameMode, player, parkourArena.getArenaId())) {
|
||||||
MiniGames.getInstance().getStringFormatter().displayErrorMessage(player,
|
new FormatBuilder(MiniGameMessage.ERROR_PREVIOUS_ARENA_REQUIRED).error(player);
|
||||||
MiniGameMessage.ERROR_PREVIOUS_ARENA_REQUIRED);
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package net.knarcraft.minigames.command.parkour;
|
package net.knarcraft.minigames.command.parkour;
|
||||||
|
|
||||||
import net.knarcraft.minigames.MiniGames;
|
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||||
import net.knarcraft.minigames.config.MiniGameMessage;
|
import net.knarcraft.minigames.config.MiniGameMessage;
|
||||||
import net.knarcraft.minigames.util.TabCompleteHelper;
|
import net.knarcraft.minigames.util.TabCompleteHelper;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
@@ -20,12 +20,11 @@ public class ListParkourArenaCommand implements TabExecutor {
|
|||||||
@Override
|
@Override
|
||||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label,
|
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label,
|
||||||
@NotNull String[] arguments) {
|
@NotNull String[] arguments) {
|
||||||
StringBuilder builder = new StringBuilder(MiniGames.getInstance().getTranslator().getTranslatedMessage(
|
FormatBuilder builder = new FormatBuilder(MiniGameMessage.SUCCESS_PARKOUR_ARENAS_LIST);
|
||||||
MiniGameMessage.SUCCESS_PARKOUR_ARENAS_LIST));
|
|
||||||
for (String arenaName : TabCompleteHelper.getParkourArenas()) {
|
for (String arenaName : TabCompleteHelper.getParkourArenas()) {
|
||||||
builder.append("\n").append(arenaName);
|
builder.append("\n").append(arenaName);
|
||||||
}
|
}
|
||||||
MiniGames.getInstance().getStringFormatter().displaySuccessMessage(sender, builder.toString());
|
builder.success(sender);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package net.knarcraft.minigames.command.parkour;
|
package net.knarcraft.minigames.command.parkour;
|
||||||
|
|
||||||
import net.knarcraft.knarlib.formatting.StringFormatter;
|
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||||
import net.knarcraft.minigames.MiniGames;
|
import net.knarcraft.minigames.MiniGames;
|
||||||
import net.knarcraft.minigames.arena.parkour.ParkourArena;
|
import net.knarcraft.minigames.arena.parkour.ParkourArena;
|
||||||
import net.knarcraft.minigames.arena.parkour.ParkourArenaGroup;
|
import net.knarcraft.minigames.arena.parkour.ParkourArenaGroup;
|
||||||
@@ -32,12 +32,11 @@ public class ParkourGroupSetCommand implements TabExecutor {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
StringFormatter stringFormatter = MiniGames.getInstance().getStringFormatter();
|
|
||||||
ParkourArenaHandler arenaHandler = MiniGames.getInstance().getParkourArenaHandler();
|
ParkourArenaHandler arenaHandler = MiniGames.getInstance().getParkourArenaHandler();
|
||||||
|
|
||||||
ParkourArena specifiedArena = arenaHandler.getArena(arguments[0]);
|
ParkourArena specifiedArena = arenaHandler.getArena(arguments[0]);
|
||||||
if (specifiedArena == null) {
|
if (specifiedArena == null) {
|
||||||
stringFormatter.displayErrorMessage(commandSender, MiniGameMessage.ERROR_ARENA_NOT_FOUND);
|
new FormatBuilder(MiniGameMessage.ERROR_ARENA_NOT_FOUND).error(commandSender);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -59,7 +58,7 @@ public class ParkourGroupSetCommand implements TabExecutor {
|
|||||||
|
|
||||||
arenaHandler.setGroup(specifiedArena.getArenaId(), arenaGroup);
|
arenaHandler.setGroup(specifiedArena.getArenaId(), arenaGroup);
|
||||||
|
|
||||||
stringFormatter.displaySuccessMessage(commandSender, MiniGameMessage.SUCCESS_ARENA_GROUP_UPDATED);
|
new FormatBuilder(MiniGameMessage.SUCCESS_ARENA_GROUP_UPDATED).success(commandSender);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,107 +1,19 @@
|
|||||||
package net.knarcraft.minigames.command.parkour;
|
package net.knarcraft.minigames.command.parkour;
|
||||||
|
|
||||||
import net.knarcraft.knarlib.formatting.StringFormatter;
|
|
||||||
import net.knarcraft.minigames.MiniGames;
|
import net.knarcraft.minigames.MiniGames;
|
||||||
|
import net.knarcraft.minigames.arena.ArenaHandler;
|
||||||
import net.knarcraft.minigames.arena.parkour.ParkourArena;
|
import net.knarcraft.minigames.arena.parkour.ParkourArena;
|
||||||
import net.knarcraft.minigames.arena.parkour.ParkourArenaGroup;
|
import net.knarcraft.minigames.arena.parkour.ParkourArenaGroup;
|
||||||
import net.knarcraft.minigames.arena.parkour.ParkourArenaHandler;
|
import net.knarcraft.minigames.command.ArenaGroupSwapCommand;
|
||||||
import net.knarcraft.minigames.config.MiniGameMessage;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.command.TabExecutor;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
import org.jetbrains.annotations.Nullable;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import static net.knarcraft.knarlib.util.TabCompletionHelper.filterMatchingContains;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The command for swapping the order of two arenas in a group
|
* The command for swapping the order of two arenas in a group
|
||||||
*/
|
*/
|
||||||
public class ParkourGroupSwapCommand implements TabExecutor {
|
public class ParkourGroupSwapCommand extends ArenaGroupSwapCommand<ParkourArena, ParkourArenaGroup> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s,
|
protected ArenaHandler<ParkourArena, ParkourArenaGroup> getArenaHandler() {
|
||||||
@NotNull String[] arguments) {
|
return MiniGames.getInstance().getParkourArenaHandler();
|
||||||
if (arguments.length < 2) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
ParkourArenaHandler arenaHandler = MiniGames.getInstance().getParkourArenaHandler();
|
|
||||||
StringFormatter stringFormatter = MiniGames.getInstance().getStringFormatter();
|
|
||||||
|
|
||||||
ParkourArena arena1 = arenaHandler.getArena(arguments[0]);
|
|
||||||
if (arena1 == null) {
|
|
||||||
stringFormatter.displayErrorMessage(commandSender, MiniGameMessage.ERROR_ARENA_1_NOT_FOUND);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
ParkourArena arena2 = arenaHandler.getArena(arguments[1]);
|
|
||||||
if (arena2 == null) {
|
|
||||||
stringFormatter.displayErrorMessage(commandSender, MiniGameMessage.ERROR_ARENA_2_NOT_FOUND);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
ParkourArenaGroup arena1Group = arenaHandler.getGroup(arena1.getArenaId());
|
|
||||||
ParkourArenaGroup arena2Group = arenaHandler.getGroup(arena2.getArenaId());
|
|
||||||
if (arena1Group == null || !arena1Group.equals(arena2Group)) {
|
|
||||||
stringFormatter.displayErrorMessage(commandSender, MiniGameMessage.ERROR_SWAP_DIFFERENT_GROUPS);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
arena1Group.swapArenas(arena1Group.getArenas().indexOf(arena1.getArenaId()),
|
|
||||||
arena1Group.getArenas().indexOf(arena2.getArenaId()));
|
|
||||||
stringFormatter.displaySuccessMessage(commandSender, MiniGameMessage.SUCCESS_ARENAS_SWAPPED);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Nullable
|
|
||||||
@Override
|
|
||||||
public List<String> onTabComplete(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s,
|
|
||||||
@NotNull String[] arguments) {
|
|
||||||
ParkourArenaHandler arenaHandler = MiniGames.getInstance().getParkourArenaHandler();
|
|
||||||
if (arguments.length == 1) {
|
|
||||||
List<String> arenaNames = new ArrayList<>();
|
|
||||||
for (ParkourArena parkourArena : arenaHandler.getArenasInAGroup()) {
|
|
||||||
arenaNames.add(parkourArena.getArenaName());
|
|
||||||
}
|
|
||||||
return filterMatchingContains(arenaNames, arguments[0]);
|
|
||||||
} else if (arguments.length == 2) {
|
|
||||||
return filterMatchingContains(getArenaNamesInSameGroup(arguments[0]), arguments[1]);
|
|
||||||
} else {
|
|
||||||
return new ArrayList<>();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the names of all arenas in the same group as the specified arena
|
|
||||||
*
|
|
||||||
* @param arenaName <p>The name of the specified arena</p>
|
|
||||||
* @return <p>The names of the arenas in the same group</p>
|
|
||||||
*/
|
|
||||||
private List<String> getArenaNamesInSameGroup(String arenaName) {
|
|
||||||
ParkourArenaHandler arenaHandler = MiniGames.getInstance().getParkourArenaHandler();
|
|
||||||
ParkourArena arena1 = arenaHandler.getArena(arenaName);
|
|
||||||
if (arena1 == null) {
|
|
||||||
return new ArrayList<>();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Only display other arenas in the selected group
|
|
||||||
List<String> arenaNames = new ArrayList<>();
|
|
||||||
ParkourArenaGroup group = arenaHandler.getGroup(arena1.getArenaId());
|
|
||||||
if (group == null) {
|
|
||||||
return new ArrayList<>();
|
|
||||||
}
|
|
||||||
for (UUID arenaId : group.getArenas()) {
|
|
||||||
ParkourArena arena = arenaHandler.getArena(arenaId);
|
|
||||||
if (arena != null && arena.getArenaId() != arena1.getArenaId()) {
|
|
||||||
arenaNames.add(arena.getArenaName());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return arenaNames;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package net.knarcraft.minigames.command.parkour;
|
package net.knarcraft.minigames.command.parkour;
|
||||||
|
|
||||||
import net.knarcraft.knarlib.formatting.StringFormatter;
|
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||||
import net.knarcraft.minigames.MiniGames;
|
import net.knarcraft.minigames.MiniGames;
|
||||||
import net.knarcraft.minigames.arena.parkour.ParkourArena;
|
import net.knarcraft.minigames.arena.parkour.ParkourArena;
|
||||||
import net.knarcraft.minigames.config.MiniGameMessage;
|
import net.knarcraft.minigames.config.MiniGameMessage;
|
||||||
@@ -22,18 +22,16 @@ public class RemoveParkourArenaCommand implements CommandExecutor {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
StringFormatter stringFormatter = MiniGames.getInstance().getStringFormatter();
|
|
||||||
|
|
||||||
// Get the specified arena
|
// Get the specified arena
|
||||||
ParkourArena targetArena = MiniGames.getInstance().getParkourArenaHandler().getArena(arguments[0]);
|
ParkourArena targetArena = MiniGames.getInstance().getParkourArenaHandler().getArena(arguments[0]);
|
||||||
if (targetArena == null) {
|
if (targetArena == null) {
|
||||||
stringFormatter.displayErrorMessage(commandSender, MiniGameMessage.ERROR_ARENA_NOT_FOUND);
|
new FormatBuilder(MiniGameMessage.ERROR_ARENA_NOT_FOUND).error(commandSender);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remove the arena
|
// Remove the arena
|
||||||
MiniGames.getInstance().getParkourArenaHandler().removeArena(targetArena);
|
MiniGames.getInstance().getParkourArenaHandler().removeArena(targetArena);
|
||||||
stringFormatter.displaySuccessMessage(commandSender, MiniGameMessage.SUCCESS_ARENA_REMOVED);
|
new FormatBuilder(MiniGameMessage.SUCCESS_ARENA_REMOVED).success(commandSender);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package net.knarcraft.minigames.listener;
|
package net.knarcraft.minigames.listener;
|
||||||
|
|
||||||
|
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||||
import net.knarcraft.minigames.MiniGames;
|
import net.knarcraft.minigames.MiniGames;
|
||||||
import net.knarcraft.minigames.arena.ArenaSession;
|
import net.knarcraft.minigames.arena.ArenaSession;
|
||||||
import net.knarcraft.minigames.config.MiniGameMessage;
|
import net.knarcraft.minigames.config.MiniGameMessage;
|
||||||
@@ -43,7 +44,7 @@ public class CommandListener implements Listener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
MiniGames.getInstance().getStringFormatter().displayErrorMessage(player, MiniGameMessage.ERROR_ILLEGAL_COMMAND);
|
new FormatBuilder(MiniGameMessage.ERROR_ILLEGAL_COMMAND).error(player);
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package net.knarcraft.minigames.listener;
|
package net.knarcraft.minigames.listener;
|
||||||
|
|
||||||
|
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||||
import net.knarcraft.minigames.MiniGames;
|
import net.knarcraft.minigames.MiniGames;
|
||||||
import net.knarcraft.minigames.arena.Arena;
|
import net.knarcraft.minigames.arena.Arena;
|
||||||
import net.knarcraft.minigames.arena.ArenaSession;
|
import net.knarcraft.minigames.arena.ArenaSession;
|
||||||
@@ -130,8 +131,7 @@ public class MoveListener implements Listener {
|
|||||||
|
|
||||||
// Register the checkpoint
|
// Register the checkpoint
|
||||||
arenaSession.registerCheckpoint(checkpoint.clone());
|
arenaSession.registerCheckpoint(checkpoint.clone());
|
||||||
MiniGames.getInstance().getStringFormatter().displaySuccessMessage(player,
|
new FormatBuilder(MiniGameMessage.SUCCESS_CHECKPOINT_REACHED).success(player);
|
||||||
MiniGameMessage.SUCCESS_CHECKPOINT_REACHED);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package net.knarcraft.minigames.util;
|
package net.knarcraft.minigames.util;
|
||||||
|
|
||||||
|
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||||
import net.knarcraft.minigames.MiniGames;
|
import net.knarcraft.minigames.MiniGames;
|
||||||
import net.knarcraft.minigames.arena.ArenaGameMode;
|
import net.knarcraft.minigames.arena.ArenaGameMode;
|
||||||
import net.knarcraft.minigames.arena.ArenaRecordsRegistry;
|
import net.knarcraft.minigames.arena.ArenaRecordsRegistry;
|
||||||
@@ -198,9 +199,9 @@ public final class DropperArenaStorageHelper {
|
|||||||
DropperArenaStorageKey.WIN_BLOCK_TYPE.getKey());
|
DropperArenaStorageKey.WIN_BLOCK_TYPE.getKey());
|
||||||
|
|
||||||
if (arenaName == null || spawnLocation == null) {
|
if (arenaName == null || spawnLocation == null) {
|
||||||
MiniGames.log(Level.SEVERE, MiniGames.getInstance().getStringFormatter().replacePlaceholders(
|
MiniGames.log(Level.SEVERE, new FormatBuilder(MiniGameMessage.ERROR_ARENA_NOT_LOADED).
|
||||||
MiniGameMessage.ERROR_ARENA_NOT_LOADED, new String[]{"{section}", "{file}"},
|
replace("{section}", configurationSection.getName()).
|
||||||
new String[]{configurationSection.getName(), "dropper_arenas"}));
|
replace("{file}", "dropper_arenas").toString());
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
if (winBlockType == null) {
|
if (winBlockType == null) {
|
||||||
@@ -213,8 +214,8 @@ public final class DropperArenaStorageHelper {
|
|||||||
// Generate new, empty arena data if not available
|
// Generate new, empty arena data if not available
|
||||||
DropperArenaData arenaData = loadDropperArenaData(arenaId);
|
DropperArenaData arenaData = loadDropperArenaData(arenaId);
|
||||||
if (arenaData == null) {
|
if (arenaData == null) {
|
||||||
MiniGames.log(Level.SEVERE, MiniGames.getInstance().getStringFormatter().replacePlaceholder(
|
MiniGames.log(Level.SEVERE, new FormatBuilder(MiniGameMessage.ERROR_ARENA_DATA_NOT_LOADED).
|
||||||
MiniGameMessage.ERROR_ARENA_DATA_NOT_LOADED, "{arena}", arenaId.toString()));
|
replace("{arena}", arenaId.toString()).toString());
|
||||||
arenaData = getEmptyDropperData(arenaId);
|
arenaData = getEmptyDropperData(arenaId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package net.knarcraft.minigames.util;
|
package net.knarcraft.minigames.util;
|
||||||
|
|
||||||
|
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||||
import net.knarcraft.minigames.MiniGames;
|
import net.knarcraft.minigames.MiniGames;
|
||||||
import net.knarcraft.minigames.arena.ArenaGameMode;
|
import net.knarcraft.minigames.arena.ArenaGameMode;
|
||||||
import net.knarcraft.minigames.arena.ArenaRecordsRegistry;
|
import net.knarcraft.minigames.arena.ArenaRecordsRegistry;
|
||||||
@@ -238,9 +239,10 @@ public final class ParkourArenaStorageHelper {
|
|||||||
|
|
||||||
// The arena name and spawn location must be present
|
// The arena name and spawn location must be present
|
||||||
if (arenaName == null || spawnLocation == null) {
|
if (arenaName == null || spawnLocation == null) {
|
||||||
MiniGames.log(Level.SEVERE, MiniGames.getInstance().getStringFormatter().replacePlaceholders(
|
|
||||||
MiniGameMessage.ERROR_ARENA_NOT_LOADED, new String[]{"{section}", "{file}"},
|
MiniGames.log(Level.SEVERE, new FormatBuilder(MiniGameMessage.ERROR_ARENA_NOT_LOADED).
|
||||||
new String[]{configurationSection.getName(), "parkour_arena"}));
|
replace("{section}", configurationSection.getName()).
|
||||||
|
replace("{file}", "parkour_arena").toString());
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -252,8 +254,8 @@ public final class ParkourArenaStorageHelper {
|
|||||||
// Generate new, empty arena data if not available
|
// Generate new, empty arena data if not available
|
||||||
ParkourArenaData arenaData = loadParkourArenaData(arenaId);
|
ParkourArenaData arenaData = loadParkourArenaData(arenaId);
|
||||||
if (arenaData == null) {
|
if (arenaData == null) {
|
||||||
MiniGames.log(Level.SEVERE, MiniGames.getInstance().getStringFormatter().replacePlaceholder(
|
MiniGames.log(Level.SEVERE, new FormatBuilder(MiniGameMessage.ERROR_ARENA_DATA_NOT_LOADED).
|
||||||
MiniGameMessage.ERROR_ARENA_DATA_NOT_LOADED, "{arena}", arenaId.toString()));
|
replace("{arena}", arenaId.toString()).toString());
|
||||||
arenaData = getEmptyParkourData(arenaId);
|
arenaData = getEmptyParkourData(arenaId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package net.knarcraft.minigames.util;
|
package net.knarcraft.minigames.util;
|
||||||
|
|
||||||
|
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||||
import net.knarcraft.minigames.MiniGames;
|
import net.knarcraft.minigames.MiniGames;
|
||||||
import net.knarcraft.minigames.config.MiniGameMessage;
|
import net.knarcraft.minigames.config.MiniGameMessage;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
@@ -36,8 +37,7 @@ public final class PlayerTeleporter {
|
|||||||
passenger.teleport(location);
|
passenger.teleport(location);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
MiniGames.getInstance().getStringFormatter().displayErrorMessage(player,
|
new FormatBuilder(MiniGameMessage.ERROR_TELEPORT_WITH_PASSENGER).error(player);
|
||||||
MiniGameMessage.ERROR_TELEPORT_WITH_PASSENGER);
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -47,8 +47,7 @@ public final class PlayerTeleporter {
|
|||||||
player.eject();
|
player.eject();
|
||||||
vehicle.teleport(location);
|
vehicle.teleport(location);
|
||||||
} else {
|
} else {
|
||||||
MiniGames.getInstance().getStringFormatter().displayErrorMessage(player,
|
new FormatBuilder(MiniGameMessage.ERROR_TELEPORT_IN_VEHICLE).error(player);
|
||||||
MiniGameMessage.ERROR_TELEPORT_IN_VEHICLE);
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package net.knarcraft.minigames.util;
|
package net.knarcraft.minigames.util;
|
||||||
|
|
||||||
import net.knarcraft.knarlib.formatting.StringFormatter;
|
import net.knarcraft.knarlib.formatting.FormatBuilder;
|
||||||
import net.knarcraft.knarlib.util.MaterialHelper;
|
import net.knarcraft.knarlib.util.MaterialHelper;
|
||||||
import net.knarcraft.minigames.MiniGames;
|
import net.knarcraft.minigames.MiniGames;
|
||||||
import net.knarcraft.minigames.arena.reward.CommandReward;
|
import net.knarcraft.minigames.arena.reward.CommandReward;
|
||||||
@@ -37,11 +37,10 @@ public final class RewardHelper {
|
|||||||
* @param rewards <p>The rewards to give</p>
|
* @param rewards <p>The rewards to give</p>
|
||||||
*/
|
*/
|
||||||
public static void grantRewards(@NotNull Player player, @NotNull Collection<Reward> rewards) {
|
public static void grantRewards(@NotNull Player player, @NotNull Collection<Reward> rewards) {
|
||||||
StringFormatter stringFormatter = MiniGames.getInstance().getStringFormatter();
|
|
||||||
for (Reward reward : rewards) {
|
for (Reward reward : rewards) {
|
||||||
boolean granted = reward.grant(player);
|
boolean granted = reward.grant(player);
|
||||||
if (granted) {
|
if (granted) {
|
||||||
stringFormatter.displaySuccessMessage(player, reward.getGrantMessage());
|
reward.getGrantMessage().success(player);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -63,8 +62,7 @@ public final class RewardHelper {
|
|||||||
@NotNull String[] allArguments) {
|
@NotNull String[] allArguments) {
|
||||||
RewardType rewardType = RewardType.getFromString(typeString);
|
RewardType rewardType = RewardType.getFromString(typeString);
|
||||||
if (rewardType == null) {
|
if (rewardType == null) {
|
||||||
MiniGames.getInstance().getStringFormatter().displayErrorMessage(player,
|
new FormatBuilder(MiniGameMessage.ERROR_REWARD_TYPE_INVALID).error(player);
|
||||||
MiniGameMessage.ERROR_REWARD_TYPE_INVALID);
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -80,7 +78,7 @@ public final class RewardHelper {
|
|||||||
case ITEM -> new ItemReward(getItem(player, firstArgument, secondArgument));
|
case ITEM -> new ItemReward(getItem(player, firstArgument, secondArgument));
|
||||||
};
|
};
|
||||||
} catch (IllegalArgumentException exception) {
|
} catch (IllegalArgumentException exception) {
|
||||||
MiniGames.getInstance().getStringFormatter().displayErrorMessage(player, exception.getMessage());
|
new FormatBuilder(exception.getMessage()).error(player);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user