mirror of
				https://github.com/SunNetservers/MiniGames.git
				synced 2025-11-04 03:33:47 +01:00 
			
		
		
		
	Adds a message when a player joins an arena
This commit is contained in:
		@@ -61,7 +61,7 @@ public abstract class AbstractArenaSession implements ArenaSession {
 | 
				
			|||||||
            case PERSONAL_BEST -> Message.RECORD_ACHIEVED_PERSONAL;
 | 
					            case PERSONAL_BEST -> Message.RECORD_ACHIEVED_PERSONAL;
 | 
				
			||||||
            default -> throw new IllegalStateException("Unexpected value: " + recordResult);
 | 
					            default -> throw new IllegalStateException("Unexpected value: " + recordResult);
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
        String recordInfo = recordInfoMessage.getMessage("{recordType}", type);
 | 
					        String recordInfo = recordInfoMessage.getPartialMessage("{recordType}", type);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        PlaceholderContainer placeholderContainer = new PlaceholderContainer().add("{gameMode}", gameModeString);
 | 
					        PlaceholderContainer placeholderContainer = new PlaceholderContainer().add("{gameMode}", gameModeString);
 | 
				
			||||||
        placeholderContainer.add("{recordInfo}", recordInfo);
 | 
					        placeholderContainer.add("{recordInfo}", recordInfo);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -99,6 +99,7 @@ public class JoinDropperArenaCommand implements CommandExecutor {
 | 
				
			|||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
            // Make sure to update the state again in the air to remove a potential swimming state
 | 
					            // Make sure to update the state again in the air to remove a potential swimming state
 | 
				
			||||||
            newSession.getEntryState().setArenaState();
 | 
					            newSession.getEntryState().setArenaState();
 | 
				
			||||||
 | 
					            player.sendMessage(Message.SUCCESS_ARENA_JOINED.getMessage());
 | 
				
			||||||
            return true;
 | 
					            return true;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -91,6 +91,7 @@ public class JoinParkourArenaCommand implements CommandExecutor {
 | 
				
			|||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
            // Make sure to update the state again in the air to remove a potential swimming state
 | 
					            // Make sure to update the state again in the air to remove a potential swimming state
 | 
				
			||||||
            newSession.getEntryState().setArenaState();
 | 
					            newSession.getEntryState().setArenaState();
 | 
				
			||||||
 | 
					            player.sendMessage(Message.SUCCESS_ARENA_JOINED.getMessage());
 | 
				
			||||||
            return true;
 | 
					            return true;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -12,47 +12,222 @@ import java.util.Map;
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
public enum Message {
 | 
					public enum Message {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /* ************** *
 | 
				
			||||||
 | 
					     * Error messages *
 | 
				
			||||||
 | 
					     * ************** */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * The message displayed if saving arena groups fails
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
    ERROR_CANNOT_SAVE_ARENA_GROUPS("&cUnable to save current arena groups! Data loss can occur!"),
 | 
					    ERROR_CANNOT_SAVE_ARENA_GROUPS("&cUnable to save current arena groups! Data loss can occur!"),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * The message displayed if an un-parse-able message is given by a user
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
    ERROR_MATERIAL_NOT_PARSE_ABLE("&cUnable to parse material: {material}"),
 | 
					    ERROR_MATERIAL_NOT_PARSE_ABLE("&cUnable to parse material: {material}"),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * The message displayed if a player tries to be teleported to/from an arena with a passenger
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
    ERROR_TELEPORT_WITH_PASSENGER("&cYou cannot be teleported with a passenger!"),
 | 
					    ERROR_TELEPORT_WITH_PASSENGER("&cYou cannot be teleported with a passenger!"),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * The message displayed if a player tries to be teleported to/from an arena with a vehicle
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
    ERROR_TELEPORT_IN_VEHICLE("&cYou cannot be teleported while in a vehicle"),
 | 
					    ERROR_TELEPORT_IN_VEHICLE("&cYou cannot be teleported while in a vehicle"),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * The message displayed if an arena cannot be loaded
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
    ERROR_ARENA_NOT_LOADED("&cCould not load the arena at configuration section {section}. Please check " +
 | 
					    ERROR_ARENA_NOT_LOADED("&cCould not load the arena at configuration section {section}. Please check " +
 | 
				
			||||||
            "the {file} storage file for issues."),
 | 
					            "the {file} storage file for issues."),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * The message displayed if an arena's data cannot be loaded
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
    ERROR_ARENA_DATA_NOT_LOADED("&cUnable to load arena data for dropper arena: {arena}"),
 | 
					    ERROR_ARENA_DATA_NOT_LOADED("&cUnable to load arena data for dropper arena: {arena}"),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * The message displayed if the user specifies an unrecognized arena
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
    ERROR_ARENA_NOT_FOUND("&cUnable to find the specified arena."),
 | 
					    ERROR_ARENA_NOT_FOUND("&cUnable to find the specified arena."),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * The message displayed if the user specifies an unrecognized group
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
    ERROR_GROUP_NOT_FOUND("&cUnable to find the specified group!"),
 | 
					    ERROR_GROUP_NOT_FOUND("&cUnable to find the specified group!"),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * The message displayed if the console tries to execute a player-only command
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
    ERROR_PLAYER_ONLY("&cThis command must be used by a player"),
 | 
					    ERROR_PLAYER_ONLY("&cThis command must be used by a player"),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * The message displayed if the name of an arena is duplicated
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
    ERROR_ARENA_NAME_COLLISION("&cThere already exists an arena with that name!"),
 | 
					    ERROR_ARENA_NAME_COLLISION("&cThere already exists an arena with that name!"),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * The message displayed if the player is required to win on the default difficulty first
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
    ERROR_NORMAL_MODE_REQUIRED("&cYou must complete this arena in normal mode first!"),
 | 
					    ERROR_NORMAL_MODE_REQUIRED("&cYou must complete this arena in normal mode first!"),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * The message displayed if the player is required to win on the default difficulty for all arenas in the group first
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
    ERROR_GROUP_NORMAL_MODE_REQUIRED("&cYou have not yet beaten the default game-mode for all arenas in this group!"),
 | 
					    ERROR_GROUP_NORMAL_MODE_REQUIRED("&cYou have not yet beaten the default game-mode for all arenas in this group!"),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * The message displayed if the player is required to beat the previous arena in the group
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
    ERROR_PREVIOUS_ARENA_REQUIRED("&cYou have not yet beaten the previous arena!"),
 | 
					    ERROR_PREVIOUS_ARENA_REQUIRED("&cYou have not yet beaten the previous arena!"),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * The message displayed if player teleportation failed for some reason
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
    ERROR_ARENA_TELEPORT_FAILED("&cUnable to teleport you to the arena."),
 | 
					    ERROR_ARENA_TELEPORT_FAILED("&cUnable to teleport you to the arena."),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * The message displayed if the player tries to quit the arena while not in an arena
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
    ERROR_NOT_IN_ARENA("&cYou are not in a mini-games arena!"),
 | 
					    ERROR_NOT_IN_ARENA("&cYou are not in a mini-games arena!"),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * The message displayed if the player tries to join an arena while already playing
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * <p>This should in theory be impossible, as players cannot use any commands except /miniGamesLeave while playing
 | 
				
			||||||
 | 
					     * in an arena.</p>
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
    ERROR_ALREADY_PLAYING("&cYou are already playing a mini-game!"),
 | 
					    ERROR_ALREADY_PLAYING("&cYou are already playing a mini-game!"),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * The message displayed if a player tries to join an arena with a passenger or riding a vehicle
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
    ERROR_JOIN_IN_VEHICLE_OR_PASSENGER("&cYou cannot join an arena while inside a vehicle or carrying a passenger."),
 | 
					    ERROR_JOIN_IN_VEHICLE_OR_PASSENGER("&cYou cannot join an arena while inside a vehicle or carrying a passenger."),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * The message displayed if the player tries to change an unrecognized arena property
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
    ERROR_UNKNOWN_PROPERTY("&cUnknown property specified."),
 | 
					    ERROR_UNKNOWN_PROPERTY("&cUnknown property specified."),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * The message displayed if the given input to /dEdit or /pEdit's value is invalid
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
    ERROR_PROPERTY_INPUT_INVALID("&cUnable to change the property. Make sure your input is valid!"),
 | 
					    ERROR_PROPERTY_INPUT_INVALID("&cUnable to change the property. Make sure your input is valid!"),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * The message displayed if the first arena specified in /dgSwap or /pgSwap is invalid
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
    ERROR_ARENA_1_NOT_FOUND("&cUnable to find the first specified arena."),
 | 
					    ERROR_ARENA_1_NOT_FOUND("&cUnable to find the first specified arena."),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * The message displayed if the second arena specified in /dgSwap or /pgSwap is invalid
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
    ERROR_ARENA_2_NOT_FOUND("&cUnable to find the second specified dropper arena."),
 | 
					    ERROR_ARENA_2_NOT_FOUND("&cUnable to find the second specified dropper arena."),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * The message displayed if the two groups specified for /dgSwap or /pgSwap are in different arenas
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
    ERROR_SWAP_DIFFERENT_GROUPS("&cYou cannot swap arenas in different groups!"),
 | 
					    ERROR_SWAP_DIFFERENT_GROUPS("&cYou cannot swap arenas in different groups!"),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * The message displayed if a player tries to use any command other than /mLeave while in an arena
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
    ERROR_ILLEGAL_COMMAND("&cYou cannot use that command while in an arena!"),
 | 
					    ERROR_ILLEGAL_COMMAND("&cYou cannot use that command while in an arena!"),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /* **************** *
 | 
				
			||||||
 | 
					     * Success messages *
 | 
				
			||||||
 | 
					     * **************** */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * The message displayed if an arena's group has been changed
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
    SUCCESS_ARENA_GROUP_UPDATED("&aThe arena's group has been updated"),
 | 
					    SUCCESS_ARENA_GROUP_UPDATED("&aThe arena's group has been updated"),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * The message displayed if the MiniGames plugin is reloaded
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
    SUCCESS_PLUGIN_RELOADED("&aPlugin reloaded!"),
 | 
					    SUCCESS_PLUGIN_RELOADED("&aPlugin reloaded!"),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * The message displayed if a new arena has been created
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
    SUCCESS_ARENA_CREATED("&aThe arena was successfully created!"),
 | 
					    SUCCESS_ARENA_CREATED("&aThe arena was successfully created!"),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * The message displayed if a player clears/wins an arena for the first time
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
    SUCCESS_ARENA_FIRST_CLEAR("&aYou cleared the arena!"),
 | 
					    SUCCESS_ARENA_FIRST_CLEAR("&aYou cleared the arena!"),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * The message displayed when a player wins an arena
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
    SUCCESS_ARENA_WIN("&aYou won!"),
 | 
					    SUCCESS_ARENA_WIN("&aYou won!"),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * The message displayed when a player quits an arena
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
    SUCCESS_ARENA_QUIT("&aYou quit the arena!"),
 | 
					    SUCCESS_ARENA_QUIT("&aYou quit the arena!"),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * The message used to display the current value of an arena property
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
    SUCCESS_CURRENT_VALUE("&aCurrent value of {property} is: {value}"),
 | 
					    SUCCESS_CURRENT_VALUE("&aCurrent value of {property} is: {value}"),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * The message used to announce that an arena property has been changed
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
    SUCCESS_PROPERTY_CHANGED("&aProperty {property} successfully changed"),
 | 
					    SUCCESS_PROPERTY_CHANGED("&aProperty {property} successfully changed"),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * The message displayed when two arenas' order in a group have been swapped
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
    SUCCESS_ARENAS_SWAPPED("&aThe arenas have been swapped!"),
 | 
					    SUCCESS_ARENAS_SWAPPED("&aThe arenas have been swapped!"),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * The message displayed when an arena has been removed
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
    SUCCESS_ARENA_REMOVED("&aThe specified arena has been successfully removed"),
 | 
					    SUCCESS_ARENA_REMOVED("&aThe specified arena has been successfully removed"),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * The header displayed before listing all dropper arenas
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
    SUCCESS_DROPPER_ARENAS_LIST("&aDropper arenas:&r"),
 | 
					    SUCCESS_DROPPER_ARENAS_LIST("&aDropper arenas:&r"),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * The header displayed before listing all parkour arenas
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
    SUCCESS_PARKOUR_ARENAS_LIST("&aParkour arenas:&r"),
 | 
					    SUCCESS_PARKOUR_ARENAS_LIST("&aParkour arenas:&r"),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * The message displayed when a player reaches a new checkpoint in a parkour arena
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
    SUCCESS_CHECKPOINT_REACHED("&aCheckpoint reached!"),
 | 
					    SUCCESS_CHECKPOINT_REACHED("&aCheckpoint reached!"),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * The header displayed before listing all arenas (stages) in a group
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
    SUCCESS_GROUP_STAGES("&a{group}'s stages:&r"),
 | 
					    SUCCESS_GROUP_STAGES("&a{group}'s stages:&r"),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * The message displayed when a new record has been achieved
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
    SUCCESS_RECORD_ACHIEVED("&aYou just set a {recordInfo} on the {gameMode} game-mode!"),
 | 
					    SUCCESS_RECORD_ACHIEVED("&aYou just set a {recordInfo} on the {gameMode} game-mode!"),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * The partial message used to describe that the player achieved a world record
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
    RECORD_ACHIEVED_GLOBAL("new {recordType} record"),
 | 
					    RECORD_ACHIEVED_GLOBAL("new {recordType} record"),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * The partial message used to describe that the player achieved a personal best record
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
    RECORD_ACHIEVED_PERSONAL("personal {recordType} record"),
 | 
					    RECORD_ACHIEVED_PERSONAL("personal {recordType} record"),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * The message displayed when a player joins an arena
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    SUCCESS_ARENA_JOINED("&aYou joined the arena."),
 | 
				
			||||||
    ;
 | 
					    ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private final @NotNull String defaultMessage;
 | 
					    private final @NotNull String defaultMessage;
 | 
				
			||||||
@@ -86,6 +261,17 @@ public enum Message {
 | 
				
			|||||||
        return formatMessage(this.defaultMessage.replace(placeholder, replacement));
 | 
					        return formatMessage(this.defaultMessage.replace(placeholder, replacement));
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Gets the message this enum represents, intended for display within another message
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @param placeholder <p>The placeholder to replace</p>
 | 
				
			||||||
 | 
					     * @param replacement <p>The replacement to use</p>
 | 
				
			||||||
 | 
					     * @return <p>The formatted message</p>
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public @NotNull String getPartialMessage(@NotNull String placeholder, @NotNull String replacement) {
 | 
				
			||||||
 | 
					        return ColorHelper.translateAllColorCodes(this.defaultMessage.replace(placeholder, replacement));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Gets the message this enum represents
 | 
					     * Gets the message this enum represents
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user