diff --git a/src/main/java/net/knarcraft/minigames/arena/ArenaHandler.java b/src/main/java/net/knarcraft/minigames/arena/ArenaHandler.java
index f55338b..5b539ca 100644
--- a/src/main/java/net/knarcraft/minigames/arena/ArenaHandler.java
+++ b/src/main/java/net/knarcraft/minigames/arena/ArenaHandler.java
@@ -15,22 +15,22 @@ import java.util.logging.Level;
/**
* An interface describing a generic arena handler
*
- * @param The type of arena stored
- * @param The type of arena group stored
+ * @param The type of arena stored
+ * @param The type of arena group stored
*/
-public abstract class ArenaHandler> {
+public abstract class ArenaHandler> {
- protected Map arenas = new HashMap<>();
- protected Map arenaGroups = new HashMap<>();
+ protected Map arenas = new HashMap<>();
+ protected Map arenaGroups = new HashMap<>();
protected Map arenaNameLookup = new HashMap<>();
- private final ArenaPlayerRegistry playerRegistry;
+ private final ArenaPlayerRegistry playerRegistry;
/**
* Instantiates a new arena handler
*
* @param playerRegistry The registry keeping track of player sessions
*/
- public ArenaHandler(ArenaPlayerRegistry playerRegistry) {
+ public ArenaHandler(@NotNull ArenaPlayerRegistry playerRegistry) {
this.playerRegistry = playerRegistry;
}
@@ -39,8 +39,8 @@ public abstract class ArenaHandler>
*
* @return All arenas in a group
*/
- public @NotNull Set getArenasInAGroup() {
- Set arenas = new HashSet<>();
+ public @NotNull Set getArenasInAGroup() {
+ Set arenas = new HashSet<>();
for (UUID arenaId : arenaGroups.keySet()) {
arenas.add(this.arenas.get(arenaId));
}
@@ -52,7 +52,7 @@ public abstract class ArenaHandler>
*
* @return All arena groups
*/
- public Set getAllGroups() {
+ public Set getAllGroups() {
return new HashSet<>(arenaGroups.values());
}
@@ -62,7 +62,7 @@ public abstract class ArenaHandler>
* @param arenaId The id of the arena to get the group of
* @return The group the arena belongs to, or null if not in a group
*/
- public @Nullable S getGroup(@NotNull UUID arenaId) {
+ public @Nullable GroupType getGroup(@NotNull UUID arenaId) {
return this.arenaGroups.get(arenaId);
}
@@ -72,7 +72,7 @@ public abstract class ArenaHandler>
* @param arenaId The id of the arena to change
* @param arenaGroup The group to add the arena to, or null to remove the current group
*/
- public void setGroup(@NotNull UUID arenaId, @Nullable S arenaGroup) {
+ public void setGroup(@NotNull UUID arenaId, @Nullable GroupType arenaGroup) {
if (arenaGroup == null) {
// No need to remove something non-existing
if (!this.arenaGroups.containsKey(arenaId)) {
@@ -80,7 +80,7 @@ public abstract class ArenaHandler>
}
// Remove the existing group
- S oldGroup = this.arenaGroups.remove(arenaId);
+ GroupType oldGroup = this.arenaGroups.remove(arenaId);
oldGroup.removeArena(arenaId);
} else {
// Make sure to remove the arena from the old group's internal tracking
@@ -100,9 +100,9 @@ public abstract class ArenaHandler>
* @param groupName The name of the group to get
* @return The group, or null if not found
*/
- public @Nullable S getGroup(String groupName) {
+ public @Nullable GroupType getGroup(@NotNull String groupName) {
String sanitized = StringSanitizer.sanitizeArenaName(groupName);
- for (S arenaGroup : this.arenaGroups.values()) {
+ for (GroupType arenaGroup : this.arenaGroups.values()) {
if (arenaGroup.getGroupNameSanitized().equals(sanitized)) {
return arenaGroup;
}
@@ -128,7 +128,7 @@ public abstract class ArenaHandler>
*
* @param arena The arena to add
*/
- public void addArena(@NotNull K arena) {
+ public void addArena(@NotNull ArenaType arena) {
this.arenas.put(arena.getArenaId(), arena);
this.arenaNameLookup.put(arena.getArenaNameSanitized(), arena.getArenaId());
this.saveArenas();
@@ -140,7 +140,7 @@ public abstract class ArenaHandler>
* @param arenaId The id of the arena to get
* @return The arena, or null if no arena could be found
*/
- public @Nullable K getArena(@NotNull UUID arenaId) {
+ public @Nullable ArenaType getArena(@NotNull UUID arenaId) {
return this.arenas.get(arenaId);
}
@@ -150,7 +150,7 @@ public abstract class ArenaHandler>
* @param arenaName The arena to get
* @return The arena with the given name, or null if not found
*/
- public @Nullable K getArena(@NotNull String arenaName) {
+ public @Nullable ArenaType getArena(@NotNull String arenaName) {
try {
return this.arenas.get(UUID.fromString(arenaName));
} catch (IllegalArgumentException exception) {
@@ -163,7 +163,7 @@ public abstract class ArenaHandler>
*
* @return All known arenas
*/
- public @NotNull Map getArenas() {
+ public @NotNull Map getArenas() {
return new HashMap<>(this.arenas);
}
@@ -172,7 +172,7 @@ public abstract class ArenaHandler>
*
* @param arena The arena to remove
*/
- public void removeArena(@NotNull K arena) {
+ public void removeArena(@NotNull ArenaType arena) {
UUID arenaId = arena.getArenaId();
this.playerRegistry.removeForArena(arena, false);
this.arenas.remove(arenaId);
@@ -190,8 +190,8 @@ public abstract class ArenaHandler>
*
* @param arenaId The id of the arena whose data should be saved
*/
- public void saveData(UUID arenaId) {
- K arena = getArena(arenaId);
+ public void saveData(@NotNull UUID arenaId) {
+ ArenaType arena = getArena(arenaId);
if (arena != null) {
if (!arena.saveData()) {
MiniGames.log(Level.WARNING, "Unable to save data for arena with id " + arenaId +
diff --git a/src/main/java/net/knarcraft/minigames/arena/ArenaRecordsRegistry.java b/src/main/java/net/knarcraft/minigames/arena/ArenaRecordsRegistry.java
index e1ed506..bd2c6e0 100644
--- a/src/main/java/net/knarcraft/minigames/arena/ArenaRecordsRegistry.java
+++ b/src/main/java/net/knarcraft/minigames/arena/ArenaRecordsRegistry.java
@@ -54,6 +54,7 @@ public abstract class ArenaRecordsRegistry implements ConfigurationSerializable
*
* @return Existing death records
*/
+ @NotNull
public Set> getLeastDeathsRecords() {
return new HashSet<>(this.leastDeaths);
}
@@ -63,6 +64,7 @@ public abstract class ArenaRecordsRegistry implements ConfigurationSerializable
*
* @return Existing time records
*/
+ @NotNull
public Set> getShortestTimeMilliSecondsRecords() {
return new HashSet<>(this.shortestTimeMilliSeconds);
}
@@ -74,7 +76,8 @@ public abstract class ArenaRecordsRegistry implements ConfigurationSerializable
* @param deaths The number of deaths suffered before the player finished the arena
* @return The result explaining what type of record was achieved
*/
- public @NotNull RecordResult registerDeathRecord(@NotNull UUID playerId, int deaths) {
+ @NotNull
+ public RecordResult registerDeathRecord(@NotNull UUID playerId, int deaths) {
Consumer consumer = (value) -> {
leastDeaths.removeIf((item) -> item.getUserId().equals(playerId));
leastDeaths.add(new IntegerRecord(playerId, value));
@@ -89,7 +92,8 @@ public abstract class ArenaRecordsRegistry implements ConfigurationSerializable
* @param milliseconds The number of milliseconds it took the player to finish the dropper arena
* @return The result explaining what type of record was achieved
*/
- public @NotNull RecordResult registerTimeRecord(@NotNull UUID playerId, long milliseconds) {
+ @NotNull
+ public RecordResult registerTimeRecord(@NotNull UUID playerId, long milliseconds) {
Consumer consumer = (value) -> {
shortestTimeMilliSeconds.removeIf((item) -> item.getUserId().equals(playerId));
shortestTimeMilliSeconds.add(new LongRecord(playerId, value));
@@ -111,9 +115,10 @@ public abstract class ArenaRecordsRegistry implements ConfigurationSerializable
* @param amount The amount of whatever the player achieved
* @return The result of the player's record attempt
*/
- private > @NotNull RecordResult registerRecord(@NotNull Set> existingRecords,
- @NotNull Consumer recordSetter,
- @NotNull UUID playerId, T amount) {
+ @NotNull
+ private > RecordResult registerRecord(@NotNull Set> existingRecords,
+ @NotNull Consumer recordSetter,
+ @NotNull UUID playerId, RecordType amount) {
RecordResult result;
if (existingRecords.stream().allMatch((entry) -> amount.compareTo(entry.getRecord()) < 0)) {
// If the given value is less than all other values, that's a world record!
@@ -123,7 +128,7 @@ public abstract class ArenaRecordsRegistry implements ConfigurationSerializable
return result;
}
- ArenaRecord playerRecord = getRecord(existingRecords, playerId);
+ ArenaRecord playerRecord = getRecord(existingRecords, playerId);
if (playerRecord != null && amount.compareTo(playerRecord.getRecord()) < 0) {
// If the given value is less than the player's previous value, that's a personal best!
result = RecordResult.PERSONAL_BEST;
@@ -146,12 +151,13 @@ public abstract class ArenaRecordsRegistry implements ConfigurationSerializable
*
* @param existingRecords The existing records to look through
* @param playerId The id of the player to look for
- * @param The type of the stored record
+ * @param The type of the stored record
* @return The record, or null if not found
*/
- private > @Nullable ArenaRecord getRecord(@NotNull Set> existingRecords,
- @NotNull UUID playerId) {
- AtomicReference> record = new AtomicReference<>();
+ @Nullable
+ private > ArenaRecord getRecord(@NotNull Set> existingRecords,
+ @NotNull UUID playerId) {
+ AtomicReference> record = new AtomicReference<>();
existingRecords.forEach((item) -> {
if (item.getUserId().equals(playerId)) {
record.set(item);
diff --git a/src/main/java/net/knarcraft/minigames/arena/dropper/DropperArena.java b/src/main/java/net/knarcraft/minigames/arena/dropper/DropperArena.java
index cdb250f..d095c1a 100644
--- a/src/main/java/net/knarcraft/minigames/arena/dropper/DropperArena.java
+++ b/src/main/java/net/knarcraft/minigames/arena/dropper/DropperArena.java
@@ -35,23 +35,27 @@ public class DropperArena implements Arena {
/**
* An unique and persistent identifier for this arena
*/
+ @NotNull
private final UUID arenaId;
/**
* A name used when listing and storing this arena.
*/
- private @NotNull String arenaName;
+ @NotNull
+ private String arenaName;
/**
* The location players are teleported to when joining this arena.
*/
- private @NotNull Location spawnLocation;
+ @NotNull
+ private Location spawnLocation;
/**
* The location players will be sent to when they win or lose the arena. If not set, their entry location should be
* used instead.
*/
- private @Nullable Location exitLocation;
+ @Nullable
+ private Location exitLocation;
/**
* The velocity in the y-direction to apply to all players in this arena.
@@ -73,27 +77,34 @@ public class DropperArena implements Arena {
/**
* Types of damage that won't be blocked in this arena
*/
+ @NotNull
private Set allowedDamageCauses;
/**
* Types of damage that will trigger a loss in this arena
*/
+ @NotNull
private Set lossTriggerDamageCauses;
/**
* The material of the block players have to hit to win this dropper arena
*/
- private @NotNull Material winBlockType;
+ @NotNull
+ private Material winBlockType;
/**
* The arena data for this arena
*/
+ @NotNull
private final DropperArenaData dropperArenaData;
+ @NotNull
private final DropperArenaHandler dropperArenaHandler;
+ @NotNull
private Map> rewards = new HashMap<>();
+ @NotNull
private static final DropperConfiguration dropperConfiguration = MiniGames.getInstance().getDropperConfiguration();
/**
@@ -168,27 +179,32 @@ public class DropperArena implements Arena {
}
@Override
- public @NotNull DropperArenaData getData() {
+ @NotNull
+ public DropperArenaData getData() {
return this.dropperArenaData;
}
@Override
- public @NotNull UUID getArenaId() {
+ @NotNull
+ public UUID getArenaId() {
return this.arenaId;
}
@Override
- public @NotNull String getArenaName() {
+ @NotNull
+ public String getArenaName() {
return this.arenaName;
}
@Override
- public @NotNull Location getSpawnLocation() {
+ @NotNull
+ public Location getSpawnLocation() {
return this.spawnLocation.clone();
}
@Override
- public @Nullable Location getExitLocation() {
+ @Nullable
+ public Location getExitLocation() {
return this.exitLocation != null ? this.exitLocation.clone() : null;
}
@@ -206,7 +222,8 @@ public class DropperArena implements Arena {
}
@Override
- public @NotNull Set getRewards(RewardCondition rewardCondition) {
+ @NotNull
+ public Set getRewards(@NotNull RewardCondition rewardCondition) {
if (this.rewards.containsKey(rewardCondition) && this.rewards.get(rewardCondition) != null) {
return this.rewards.get(rewardCondition);
} else {
@@ -231,12 +248,14 @@ public class DropperArena implements Arena {
}
@Override
- public @NotNull Set getAllowedDamageCauses() {
+ @NotNull
+ public Set getAllowedDamageCauses() {
return this.allowedDamageCauses;
}
@Override
- public @NotNull Set getLossTriggerDamageCauses() {
+ @NotNull
+ public Set getLossTriggerDamageCauses() {
return this.lossTriggerDamageCauses;
}
@@ -414,11 +433,8 @@ public class DropperArena implements Arena {
}
@Override
- public boolean equals(Object other) {
- if (!(other instanceof DropperArena otherArena)) {
- return false;
- }
- return this.getArenaNameSanitized().equals(otherArena.getArenaNameSanitized());
+ public boolean equals(@Nullable Object other) {
+ return other instanceof DropperArena otherArena && this.getArenaNameSanitized().equals(otherArena.getArenaNameSanitized());
}
}
diff --git a/src/main/java/net/knarcraft/minigames/arena/dropper/DropperArenaData.java b/src/main/java/net/knarcraft/minigames/arena/dropper/DropperArenaData.java
index c6aa6cb..3051e95 100644
--- a/src/main/java/net/knarcraft/minigames/arena/dropper/DropperArenaData.java
+++ b/src/main/java/net/knarcraft/minigames/arena/dropper/DropperArenaData.java
@@ -44,7 +44,8 @@ public class DropperArenaData extends ArenaData {
* @return The deserialized dropper arena data
*/
@SuppressWarnings({"unused", "unchecked"})
- public static @NotNull DropperArenaData deserialize(@NotNull Map data) {
+ @NotNull
+ public static DropperArenaData deserialize(@NotNull Map data) {
SerializableUUID serializableUUID = (SerializableUUID) data.get("arenaId");
Map recordsRegistry =
(Map) data.get("recordsRegistry");
diff --git a/src/main/java/net/knarcraft/minigames/arena/dropper/DropperArenaEditableProperty.java b/src/main/java/net/knarcraft/minigames/arena/dropper/DropperArenaEditableProperty.java
index 7dee509..65ff9c0 100644
--- a/src/main/java/net/knarcraft/minigames/arena/dropper/DropperArenaEditableProperty.java
+++ b/src/main/java/net/knarcraft/minigames/arena/dropper/DropperArenaEditableProperty.java
@@ -77,8 +77,9 @@ public enum DropperArenaEditableProperty {
*
* @param argumentString The argument string used to specify this property
*/
- DropperArenaEditableProperty(@NotNull String argumentString, Function currentValueProvider,
- EditablePropertyType propertyType) {
+ DropperArenaEditableProperty(@NotNull String argumentString,
+ @NotNull Function currentValueProvider,
+ @NotNull EditablePropertyType propertyType) {
this.argumentString = argumentString;
this.currentValueProvider = currentValueProvider;
this.propertyType = propertyType;
@@ -89,6 +90,7 @@ public enum DropperArenaEditableProperty {
*
* @return The type of this property
*/
+ @NotNull
public EditablePropertyType getPropertyType() {
return this.propertyType;
}
@@ -99,7 +101,8 @@ public enum DropperArenaEditableProperty {
* @param arena The arena to check the value for
* @return The current value as a string
*/
- public String getCurrentValueAsString(DropperArena arena) {
+ @NotNull
+ public String getCurrentValueAsString(@NotNull DropperArena arena) {
return this.currentValueProvider.apply(arena);
}
@@ -108,7 +111,8 @@ public enum DropperArenaEditableProperty {
*
* @return The argument string
*/
- public @NotNull String getArgumentString() {
+ @NotNull
+ public String getArgumentString() {
return this.argumentString;
}
@@ -118,7 +122,8 @@ public enum DropperArenaEditableProperty {
* @param argumentString The argument string used to specify an editable property
* @return The corresponding editable property, or null if not found
*/
- public static @Nullable DropperArenaEditableProperty getFromArgumentString(String argumentString) {
+ @Nullable
+ public static DropperArenaEditableProperty getFromArgumentString(@NotNull String argumentString) {
for (DropperArenaEditableProperty property : DropperArenaEditableProperty.values()) {
if (property.argumentString.equalsIgnoreCase(argumentString)) {
return property;
diff --git a/src/main/java/net/knarcraft/minigames/arena/dropper/DropperArenaGameMode.java b/src/main/java/net/knarcraft/minigames/arena/dropper/DropperArenaGameMode.java
index 1a60463..cdef49e 100644
--- a/src/main/java/net/knarcraft/minigames/arena/dropper/DropperArenaGameMode.java
+++ b/src/main/java/net/knarcraft/minigames/arena/dropper/DropperArenaGameMode.java
@@ -34,7 +34,8 @@ public enum DropperArenaGameMode implements ConfigurationSerializable, ArenaGame
* @param gameMode The game-mode string to match
* @return The specified arena game-mode
*/
- public static @NotNull DropperArenaGameMode matchGameMode(@NotNull String gameMode) {
+ @NotNull
+ public static DropperArenaGameMode matchGameMode(@NotNull String gameMode) {
String sanitized = gameMode.trim().toLowerCase();
if (sanitized.matches("(invert(ed)?|inverse)")) {
return DropperArenaGameMode.INVERTED;
@@ -60,12 +61,14 @@ public enum DropperArenaGameMode implements ConfigurationSerializable, ArenaGame
* @return The deserialized arena game-mode
*/
@SuppressWarnings("unused")
- public static DropperArenaGameMode deserialize(Map data) {
+ @NotNull
+ public static DropperArenaGameMode deserialize(@NotNull Map data) {
return DropperArenaGameMode.valueOf((String) data.get("name"));
}
@Override
- public @NotNull DropperArenaGameMode[] getValues() {
+ @NotNull
+ public DropperArenaGameMode[] getValues() {
return DropperArenaGameMode.values();
}
diff --git a/src/main/java/net/knarcraft/minigames/arena/dropper/DropperArenaGroup.java b/src/main/java/net/knarcraft/minigames/arena/dropper/DropperArenaGroup.java
index 4ed2236..817b03d 100644
--- a/src/main/java/net/knarcraft/minigames/arena/dropper/DropperArenaGroup.java
+++ b/src/main/java/net/knarcraft/minigames/arena/dropper/DropperArenaGroup.java
@@ -43,7 +43,8 @@ public class DropperArenaGroup extends ArenaGroupThe deserialized arena group
*/
@SuppressWarnings({"unused", "unchecked"})
- public static @NotNull DropperArenaGroup deserialize(@NotNull Map data) {
+ @NotNull
+ public static DropperArenaGroup deserialize(@NotNull Map data) {
UUID id = ((SerializableUUID) data.get("groupId")).getRawValue();
String name = (String) data.get("groupName");
List serializableArenas = (List) data.get("arenas");
diff --git a/src/main/java/net/knarcraft/minigames/arena/dropper/DropperArenaHandler.java b/src/main/java/net/knarcraft/minigames/arena/dropper/DropperArenaHandler.java
index 1bb3f5b..9e98984 100644
--- a/src/main/java/net/knarcraft/minigames/arena/dropper/DropperArenaHandler.java
+++ b/src/main/java/net/knarcraft/minigames/arena/dropper/DropperArenaHandler.java
@@ -5,6 +5,7 @@ import net.knarcraft.minigames.arena.ArenaHandler;
import net.knarcraft.minigames.arena.ArenaPlayerRegistry;
import net.knarcraft.minigames.config.MiniGameMessage;
import net.knarcraft.minigames.util.DropperArenaStorageHelper;
+import org.jetbrains.annotations.NotNull;
import java.io.IOException;
import java.util.HashMap;
@@ -24,7 +25,7 @@ public class DropperArenaHandler extends ArenaHandlerThe registry keeping track of player sessions
*/
- public DropperArenaHandler(ArenaPlayerRegistry playerRegistry) {
+ public DropperArenaHandler(@NotNull ArenaPlayerRegistry playerRegistry) {
super(playerRegistry);
}
diff --git a/src/main/java/net/knarcraft/minigames/arena/dropper/DropperArenaPlayerRegistry.java b/src/main/java/net/knarcraft/minigames/arena/dropper/DropperArenaPlayerRegistry.java
index 8e82940..0ed7660 100644
--- a/src/main/java/net/knarcraft/minigames/arena/dropper/DropperArenaPlayerRegistry.java
+++ b/src/main/java/net/knarcraft/minigames/arena/dropper/DropperArenaPlayerRegistry.java
@@ -1,6 +1,7 @@
package net.knarcraft.minigames.arena.dropper;
import net.knarcraft.minigames.arena.AbstractArenaPlayerRegistry;
+import org.jetbrains.annotations.NotNull;
/**
* A registry to keep track of which players are playing in which arenas
@@ -8,6 +9,7 @@ import net.knarcraft.minigames.arena.AbstractArenaPlayerRegistry;
public class DropperArenaPlayerRegistry extends AbstractArenaPlayerRegistry {
@Override
+ @NotNull
protected String getEntryStateStorageKey() {
return "dropper";
}
diff --git a/src/main/java/net/knarcraft/minigames/arena/dropper/DropperArenaRecordsRegistry.java b/src/main/java/net/knarcraft/minigames/arena/dropper/DropperArenaRecordsRegistry.java
index b23266b..8324afd 100644
--- a/src/main/java/net/knarcraft/minigames/arena/dropper/DropperArenaRecordsRegistry.java
+++ b/src/main/java/net/knarcraft/minigames/arena/dropper/DropperArenaRecordsRegistry.java
@@ -50,7 +50,8 @@ public class DropperArenaRecordsRegistry extends ArenaRecordsRegistry {
* @return The deserialized records registry
*/
@SuppressWarnings({"unused", "unchecked"})
- public static DropperArenaRecordsRegistry deserialize(Map data) {
+ @NotNull
+ public static DropperArenaRecordsRegistry deserialize(@NotNull Map data) {
UUID arenaId = ((SerializableUUID) data.get("arenaId")).getRawValue();
Set leastDeaths =
(Set) data.getOrDefault("leastDeaths", new HashMap<>());
diff --git a/src/main/java/net/knarcraft/minigames/arena/dropper/DropperArenaSession.java b/src/main/java/net/knarcraft/minigames/arena/dropper/DropperArenaSession.java
index 0bc0588..0e38901 100644
--- a/src/main/java/net/knarcraft/minigames/arena/dropper/DropperArenaSession.java
+++ b/src/main/java/net/knarcraft/minigames/arena/dropper/DropperArenaSession.java
@@ -23,9 +23,12 @@ import java.util.logging.Level;
*/
public class DropperArenaSession extends AbstractArenaSession {
- private final @NotNull DropperArena arena;
- private final @NotNull Player player;
- private final @NotNull DropperArenaGameMode gameMode;
+ @NotNull
+ private final DropperArena arena;
+ @NotNull
+ private final Player player;
+ @NotNull
+ private final DropperArenaGameMode gameMode;
private boolean startedMoving = false;
/**
@@ -67,7 +70,8 @@ public class DropperArenaSession extends AbstractArenaSession {
*
* @return This session's player
*/
- public @NotNull Player getPlayer() {
+ @NotNull
+ public Player getPlayer() {
return this.player;
}
@@ -76,12 +80,14 @@ public class DropperArenaSession extends AbstractArenaSession {
*
* @return The game-mode for this session
*/
- public @NotNull DropperArenaGameMode getGameMode() {
+ @NotNull
+ public DropperArenaGameMode getGameMode() {
return this.gameMode;
}
@Override
- public @NotNull PlayerEntryState getEntryState() {
+ @NotNull
+ public PlayerEntryState getEntryState() {
return this.entryState;
}
@@ -120,12 +126,14 @@ public class DropperArenaSession extends AbstractArenaSession {
}
@Override
- public @NotNull DropperArena getArena() {
+ @NotNull
+ public DropperArena getArena() {
return this.arena;
}
@Override
- public @NotNull ArenaGUI getGUI() {
+ @NotNull
+ public ArenaGUI getGUI() {
if (GeyserHelper.isGeyserPlayer(this.player)) {
return new DropperGUIBedrock(this.player);
} else {
@@ -151,6 +159,7 @@ public class DropperArenaSession extends AbstractArenaSession {
}
@Override
+ @NotNull
protected String getGameModeString() {
return switch (this.gameMode) {
case DEFAULT -> "default";
diff --git a/src/main/java/net/knarcraft/minigames/arena/dropper/DropperArenaStorageKey.java b/src/main/java/net/knarcraft/minigames/arena/dropper/DropperArenaStorageKey.java
index 033edd7..d8065e8 100644
--- a/src/main/java/net/knarcraft/minigames/arena/dropper/DropperArenaStorageKey.java
+++ b/src/main/java/net/knarcraft/minigames/arena/dropper/DropperArenaStorageKey.java
@@ -69,7 +69,8 @@ public enum DropperArenaStorageKey implements StorageKey {
LOSS_TRIGGER_DAMAGE_CAUSES("lossTriggerDamageCauses"),
;
- private final @NotNull String key;
+ @NotNull
+ private final String key;
/**
* Instantiates a new arena storage key
@@ -81,7 +82,8 @@ public enum DropperArenaStorageKey implements StorageKey {
}
@Override
- public @NotNull String getKey() {
+ @NotNull
+ public String getKey() {
return this.key;
}
diff --git a/src/main/java/net/knarcraft/minigames/arena/dropper/DropperPlayerEntryState.java b/src/main/java/net/knarcraft/minigames/arena/dropper/DropperPlayerEntryState.java
index e02e0c7..ee4284f 100644
--- a/src/main/java/net/knarcraft/minigames/arena/dropper/DropperPlayerEntryState.java
+++ b/src/main/java/net/knarcraft/minigames/arena/dropper/DropperPlayerEntryState.java
@@ -20,6 +20,7 @@ public class DropperPlayerEntryState extends AbstractPlayerEntryState {
private final float originalFlySpeed;
private final float horizontalVelocity;
+ @NotNull
private final DropperArenaGameMode arenaGameMode;
/**
@@ -118,7 +119,8 @@ public class DropperPlayerEntryState extends AbstractPlayerEntryState {
* @return The data to deserialize
*/
@SuppressWarnings({"unused", "unchecked"})
- public static DropperPlayerEntryState deserialize(Map data) {
+ @NotNull
+ public static DropperPlayerEntryState deserialize(@NotNull Map data) {
UUID playerId = ((SerializableUUID) data.get("playerId")).getRawValue();
Location entryLocation = (Location) data.get("entryLocation");
boolean originalIsFlying = getBoolean(data, "originalIsFlying");
diff --git a/src/main/java/net/knarcraft/minigames/arena/parkour/ParkourArena.java b/src/main/java/net/knarcraft/minigames/arena/parkour/ParkourArena.java
index a7bab58..ea5e776 100644
--- a/src/main/java/net/knarcraft/minigames/arena/parkour/ParkourArena.java
+++ b/src/main/java/net/knarcraft/minigames/arena/parkour/ParkourArena.java
@@ -38,53 +38,63 @@ public class ParkourArena implements Arena {
/**
* An unique and persistent identifier for this arena
*/
- private final @NotNull UUID arenaId;
+ @NotNull
+ private final UUID arenaId;
/**
* A name used when listing and storing this arena.
*/
- private @NotNull String arenaName;
+ @NotNull
+ private String arenaName;
/**
* The location players are teleported to when joining this arena.
*/
- private @NotNull Location spawnLocation;
+ @NotNull
+ private Location spawnLocation;
/**
* The location players will be sent to when they win or lose the arena. If not set, their entry location should be
* used instead.
*/
- private @Nullable Location exitLocation;
+ @Nullable
+ private Location exitLocation;
/**
* The material of the block players have to hit to win this parkour arena
*/
- private @NotNull Material winBlockType;
+ @NotNull
+ private Material winBlockType;
/**
* The location the player has to reach to win. If not set, winBlockType is used instead
*/
- private @Nullable Location winLocation;
+ @Nullable
+ private Location winLocation;
/**
* The names of the block types constituting this arena's kill plane
*/
- private @Nullable Set killPlaneBlockNames;
+ @Nullable
+ private Set killPlaneBlockNames;
/**
* The block types constituting this arena's kill plane
*/
- private @Nullable Set killPlaneBlocks;
+ @Nullable
+ private Set killPlaneBlocks;
/**
* The names of the block types serving as obstacles for this arena
*/
- private @Nullable Set obstacleBlockNames;
+ @Nullable
+ private Set obstacleBlockNames;
/**
* The block types serving as obstacles for this arena
*/
- private @Nullable Set obstacleBlocks;
+ @Nullable
+ private Set obstacleBlocks;
/**
* The maximum amount of players able to join this arena at any time
@@ -94,25 +104,31 @@ public class ParkourArena implements Arena {
/**
* Types of damage that won't be blocked in this arena
*/
+ @NotNull
private Set allowedDamageCauses;
/**
* Types of damage that will trigger a loss in this arena
*/
+ @NotNull
private Set lossTriggerDamageCauses;
/**
* The checkpoints for this arena. Entering a checkpoint overrides the player's spawn location.
*/
- private final @NotNull List checkpoints;
+ @NotNull
+ private final List checkpoints;
/**
* The arena data for this arena
*/
- private final @NotNull ParkourArenaData parkourArenaData;
+ @NotNull
+ private final ParkourArenaData parkourArenaData;
- private final @NotNull ParkourArenaHandler parkourArenaHandler;
+ @NotNull
+ private final ParkourArenaHandler parkourArenaHandler;
+ @NotNull
private Map> rewards = new HashMap<>();
/**
@@ -198,27 +214,32 @@ public class ParkourArena implements Arena {
}
@Override
- public @NotNull ParkourArenaData getData() {
+ @NotNull
+ public ParkourArenaData getData() {
return this.parkourArenaData;
}
@Override
- public @NotNull UUID getArenaId() {
+ @NotNull
+ public UUID getArenaId() {
return this.arenaId;
}
@Override
- public @NotNull String getArenaName() {
+ @NotNull
+ public String getArenaName() {
return this.arenaName;
}
@Override
- public @NotNull Location getSpawnLocation() {
+ @NotNull
+ public Location getSpawnLocation() {
return this.spawnLocation;
}
@Override
- public @Nullable Location getExitLocation() {
+ @Nullable
+ public Location getExitLocation() {
return this.exitLocation;
}
@@ -236,7 +257,8 @@ public class ParkourArena implements Arena {
}
@Override
- public @NotNull Set getRewards(RewardCondition rewardCondition) {
+ @NotNull
+ public Set getRewards(@NotNull RewardCondition rewardCondition) {
if (this.rewards.containsKey(rewardCondition)) {
return this.rewards.get(rewardCondition);
} else {
@@ -261,12 +283,14 @@ public class ParkourArena implements Arena {
}
@Override
- public @NotNull Set getAllowedDamageCauses() {
+ @NotNull
+ public Set getAllowedDamageCauses() {
return this.allowedDamageCauses;
}
@Override
- public @NotNull Set getLossTriggerDamageCauses() {
+ @NotNull
+ public Set getLossTriggerDamageCauses() {
return this.lossTriggerDamageCauses;
}
@@ -297,7 +321,8 @@ public class ParkourArena implements Arena {
*
* @return The win trigger's location
*/
- public @Nullable Location getWinLocation() {
+ @Nullable
+ public Location getWinLocation() {
return this.winLocation != null ? this.winLocation.clone() : null;
}
@@ -306,7 +331,8 @@ public class ParkourArena implements Arena {
*
* @return The types of blocks that cause a loss
*/
- public @NotNull Set getKillPlaneBlocks() {
+ @NotNull
+ public Set getKillPlaneBlocks() {
if (this.killPlaneBlocks != null) {
return new HashSet<>(this.killPlaneBlocks);
} else {
@@ -319,7 +345,8 @@ public class ParkourArena implements Arena {
*
* @return The names of the types of blocks that cause a loss
*/
- public @Nullable Set getKillPlaneBlockNames() {
+ @Nullable
+ public Set getKillPlaneBlockNames() {
return this.killPlaneBlockNames;
}
@@ -328,7 +355,8 @@ public class ParkourArena implements Arena {
*
* @return The types of blocks used as obstacles
*/
- public @NotNull Set getObstacleBlocks() {
+ @NotNull
+ public Set getObstacleBlocks() {
if (this.obstacleBlocks != null) {
return new HashSet<>(this.obstacleBlocks);
} else {
@@ -341,7 +369,8 @@ public class ParkourArena implements Arena {
*
* @return The names of the blocks used as this arena's obstacle blocks
*/
- public @Nullable Set getObstacleBlockNames() {
+ @Nullable
+ public Set getObstacleBlockNames() {
return this.obstacleBlockNames;
}
@@ -350,6 +379,7 @@ public class ParkourArena implements Arena {
*
* @return All checkpoint locations for this arena
*/
+ @NotNull
public List getCheckpoints() {
List copy = new ArrayList<>(this.checkpoints.size());
for (Location location : this.checkpoints) {
@@ -569,11 +599,8 @@ public class ParkourArena implements Arena {
}
@Override
- public boolean equals(Object other) {
- if (!(other instanceof ParkourArena otherArena)) {
- return false;
- }
- return this.getArenaNameSanitized().equals(otherArena.getArenaNameSanitized());
+ public boolean equals(@Nullable Object other) {
+ return other instanceof ParkourArena otherArena && this.getArenaNameSanitized().equals(otherArena.getArenaNameSanitized());
}
}
diff --git a/src/main/java/net/knarcraft/minigames/arena/parkour/ParkourArenaData.java b/src/main/java/net/knarcraft/minigames/arena/parkour/ParkourArenaData.java
index 3b5db09..aa5c9c9 100644
--- a/src/main/java/net/knarcraft/minigames/arena/parkour/ParkourArenaData.java
+++ b/src/main/java/net/knarcraft/minigames/arena/parkour/ParkourArenaData.java
@@ -44,7 +44,8 @@ public class ParkourArenaData extends ArenaData {
* @return The deserialized parkour arena data
*/
@SuppressWarnings({"unused", "unchecked"})
- public static @NotNull ParkourArenaData deserialize(@NotNull Map data) {
+ @NotNull
+ public static ParkourArenaData deserialize(@NotNull Map data) {
SerializableUUID serializableUUID = (SerializableUUID) data.get("arenaId");
Map recordsRegistry =
(Map) data.get("recordsRegistry");
diff --git a/src/main/java/net/knarcraft/minigames/arena/parkour/ParkourArenaEditableProperty.java b/src/main/java/net/knarcraft/minigames/arena/parkour/ParkourArenaEditableProperty.java
index 7aad2de..fe260e7 100644
--- a/src/main/java/net/knarcraft/minigames/arena/parkour/ParkourArenaEditableProperty.java
+++ b/src/main/java/net/knarcraft/minigames/arena/parkour/ParkourArenaEditableProperty.java
@@ -91,8 +91,11 @@ public enum ParkourArenaEditableProperty {
EditablePropertyType.DAMAGE_CAUSE_LIST),
;
- private final @NotNull String argumentString;
+ @NotNull
+ private final String argumentString;
+ @NotNull
private final Function currentValueProvider;
+ @NotNull
private final EditablePropertyType propertyType;
/**
@@ -100,8 +103,8 @@ public enum ParkourArenaEditableProperty {
*
* @param argumentString The argument string used to specify this property
*/
- ParkourArenaEditableProperty(@NotNull String argumentString, Function currentValueProvider,
- EditablePropertyType propertyType) {
+ ParkourArenaEditableProperty(@NotNull String argumentString, @NotNull Function currentValueProvider,
+ @NotNull EditablePropertyType propertyType) {
this.argumentString = argumentString;
this.currentValueProvider = currentValueProvider;
this.propertyType = propertyType;
@@ -112,6 +115,7 @@ public enum ParkourArenaEditableProperty {
*
* @return The type of this property
*/
+ @NotNull
public EditablePropertyType getPropertyType() {
return this.propertyType;
}
@@ -122,7 +126,8 @@ public enum ParkourArenaEditableProperty {
* @param arena The arena to check the value for
* @return The current value as a string
*/
- public String getCurrentValueAsString(ParkourArena arena) {
+ @NotNull
+ public String getCurrentValueAsString(@NotNull ParkourArena arena) {
return this.currentValueProvider.apply(arena);
}
@@ -141,7 +146,8 @@ public enum ParkourArenaEditableProperty {
* @param argumentString The argument string used to specify an editable property
* @return The corresponding editable property, or null if not found
*/
- public static @Nullable ParkourArenaEditableProperty getFromArgumentString(String argumentString) {
+ @Nullable
+ public static ParkourArenaEditableProperty getFromArgumentString(@NotNull String argumentString) {
for (ParkourArenaEditableProperty property : ParkourArenaEditableProperty.values()) {
if (property.argumentString.equalsIgnoreCase(argumentString)) {
return property;
diff --git a/src/main/java/net/knarcraft/minigames/arena/parkour/ParkourArenaGameMode.java b/src/main/java/net/knarcraft/minigames/arena/parkour/ParkourArenaGameMode.java
index 1f0aceb..cb6cd11 100644
--- a/src/main/java/net/knarcraft/minigames/arena/parkour/ParkourArenaGameMode.java
+++ b/src/main/java/net/knarcraft/minigames/arena/parkour/ParkourArenaGameMode.java
@@ -29,7 +29,8 @@ public enum ParkourArenaGameMode implements ConfigurationSerializable, ArenaGame
* @param gameMode The game-mode string to match
* @return The specified arena game-mode
*/
- public static @NotNull ParkourArenaGameMode matchGameMode(@NotNull String gameMode) {
+ @NotNull
+ public static ParkourArenaGameMode matchGameMode(@NotNull String gameMode) {
try {
return ParkourArenaGameMode.valueOf(gameMode.toUpperCase());
} catch (IllegalArgumentException exception) {
@@ -52,12 +53,14 @@ public enum ParkourArenaGameMode implements ConfigurationSerializable, ArenaGame
* @return The deserialized arena game-mode
*/
@SuppressWarnings("unused")
- public static ParkourArenaGameMode deserialize(Map data) {
+ @NotNull
+ public static ParkourArenaGameMode deserialize(@NotNull Map data) {
return ParkourArenaGameMode.valueOf((String) data.get("name"));
}
@Override
- public @NotNull ParkourArenaGameMode[] getValues() {
+ @NotNull
+ public ParkourArenaGameMode[] getValues() {
return ParkourArenaGameMode.values();
}
diff --git a/src/main/java/net/knarcraft/minigames/arena/parkour/ParkourArenaGroup.java b/src/main/java/net/knarcraft/minigames/arena/parkour/ParkourArenaGroup.java
index e21babd..fe4898a 100644
--- a/src/main/java/net/knarcraft/minigames/arena/parkour/ParkourArenaGroup.java
+++ b/src/main/java/net/knarcraft/minigames/arena/parkour/ParkourArenaGroup.java
@@ -42,7 +42,8 @@ public class ParkourArenaGroup extends ArenaGroupThe deserialized arena group
*/
@SuppressWarnings({"unused", "unchecked"})
- public static @NotNull ParkourArenaGroup deserialize(@NotNull Map data) {
+ @NotNull
+ public static ParkourArenaGroup deserialize(@NotNull Map data) {
UUID id = ((SerializableUUID) data.get("groupId")).getRawValue();
String name = (String) data.get("groupName");
List serializableArenas = (List) data.get("arenas");
diff --git a/src/main/java/net/knarcraft/minigames/arena/parkour/ParkourArenaHandler.java b/src/main/java/net/knarcraft/minigames/arena/parkour/ParkourArenaHandler.java
index ba769da..8396a2a 100644
--- a/src/main/java/net/knarcraft/minigames/arena/parkour/ParkourArenaHandler.java
+++ b/src/main/java/net/knarcraft/minigames/arena/parkour/ParkourArenaHandler.java
@@ -5,6 +5,7 @@ import net.knarcraft.minigames.arena.ArenaHandler;
import net.knarcraft.minigames.arena.ArenaPlayerRegistry;
import net.knarcraft.minigames.config.MiniGameMessage;
import net.knarcraft.minigames.util.ParkourArenaStorageHelper;
+import org.jetbrains.annotations.NotNull;
import java.io.IOException;
import java.util.HashMap;
@@ -24,7 +25,7 @@ public class ParkourArenaHandler extends ArenaHandlerThe registry keeping track of player sessions
*/
- public ParkourArenaHandler(ArenaPlayerRegistry playerRegistry) {
+ public ParkourArenaHandler(@NotNull ArenaPlayerRegistry playerRegistry) {
super(playerRegistry);
}
diff --git a/src/main/java/net/knarcraft/minigames/arena/parkour/ParkourArenaPlayerRegistry.java b/src/main/java/net/knarcraft/minigames/arena/parkour/ParkourArenaPlayerRegistry.java
index f863e18..3819e66 100644
--- a/src/main/java/net/knarcraft/minigames/arena/parkour/ParkourArenaPlayerRegistry.java
+++ b/src/main/java/net/knarcraft/minigames/arena/parkour/ParkourArenaPlayerRegistry.java
@@ -1,6 +1,7 @@
package net.knarcraft.minigames.arena.parkour;
import net.knarcraft.minigames.arena.AbstractArenaPlayerRegistry;
+import org.jetbrains.annotations.NotNull;
/**
* A registry to keep track of which players are playing in which arenas
@@ -8,6 +9,7 @@ import net.knarcraft.minigames.arena.AbstractArenaPlayerRegistry;
public class ParkourArenaPlayerRegistry extends AbstractArenaPlayerRegistry {
@Override
+ @NotNull
protected String getEntryStateStorageKey() {
return "parkour";
}
diff --git a/src/main/java/net/knarcraft/minigames/arena/parkour/ParkourArenaRecordsRegistry.java b/src/main/java/net/knarcraft/minigames/arena/parkour/ParkourArenaRecordsRegistry.java
index c6027c5..c95f2f9 100644
--- a/src/main/java/net/knarcraft/minigames/arena/parkour/ParkourArenaRecordsRegistry.java
+++ b/src/main/java/net/knarcraft/minigames/arena/parkour/ParkourArenaRecordsRegistry.java
@@ -51,7 +51,8 @@ public class ParkourArenaRecordsRegistry extends ArenaRecordsRegistry {
* @return The deserialized records registry
*/
@SuppressWarnings({"unused", "unchecked"})
- public static ParkourArenaRecordsRegistry deserialize(Map data) {
+ @NotNull
+ public static ParkourArenaRecordsRegistry deserialize(@NotNull Map data) {
UUID arenaId = ((SerializableUUID) data.get("arenaId")).getRawValue();
Set leastDeaths =
(Set) data.getOrDefault("leastDeaths", new HashMap<>());
diff --git a/src/main/java/net/knarcraft/minigames/arena/parkour/ParkourArenaSession.java b/src/main/java/net/knarcraft/minigames/arena/parkour/ParkourArenaSession.java
index 615ec7d..5da7a40 100644
--- a/src/main/java/net/knarcraft/minigames/arena/parkour/ParkourArenaSession.java
+++ b/src/main/java/net/knarcraft/minigames/arena/parkour/ParkourArenaSession.java
@@ -33,11 +33,16 @@ import java.util.logging.Level;
*/
public class ParkourArenaSession extends AbstractArenaSession {
- private static final @NotNull Map> changedLevers = new HashMap<>();
- private final @NotNull ParkourArena arena;
- private final @NotNull Player player;
- private final @NotNull ParkourArenaGameMode gameMode;
- private @Nullable Location reachedCheckpoint = null;
+ @NotNull
+ private static final Map> changedLevers = new HashMap<>();
+ @NotNull
+ private final ParkourArena arena;
+ @NotNull
+ private final Player player;
+ @NotNull
+ private final ParkourArenaGameMode gameMode;
+ @Nullable
+ private Location reachedCheckpoint = null;
/**
* Instantiates a new parkour arena session
@@ -62,7 +67,8 @@ public class ParkourArenaSession extends AbstractArenaSession {
*
* @return The game-mode for this session
*/
- public @NotNull ParkourArenaGameMode getGameMode() {
+ @NotNull
+ public ParkourArenaGameMode getGameMode() {
return this.gameMode;
}
@@ -90,12 +96,14 @@ public class ParkourArenaSession extends AbstractArenaSession {
*
* @return The registered checkpoint, or null if not set
*/
- public @Nullable Location getRegisteredCheckpoint() {
+ @Nullable
+ public Location getRegisteredCheckpoint() {
return this.reachedCheckpoint;
}
@Override
- public @NotNull PlayerEntryState getEntryState() {
+ @NotNull
+ public PlayerEntryState getEntryState() {
return this.entryState;
}
@@ -139,12 +147,14 @@ public class ParkourArenaSession extends AbstractArenaSession {
}
@Override
- public @NotNull ParkourArena getArena() {
+ @NotNull
+ public ParkourArena getArena() {
return this.arena;
}
@Override
- public @NotNull ArenaGUI getGUI() {
+ @NotNull
+ public ArenaGUI getGUI() {
if (GeyserHelper.isGeyserPlayer(this.player)) {
return new ParkourGUIBedrock(this.player);
} else {
@@ -173,6 +183,7 @@ public class ParkourArenaSession extends AbstractArenaSession {
}
@Override
+ @NotNull
protected String getGameModeString() {
return switch (this.gameMode) {
case DEFAULT -> "default";
diff --git a/src/main/java/net/knarcraft/minigames/arena/parkour/ParkourArenaStorageKey.java b/src/main/java/net/knarcraft/minigames/arena/parkour/ParkourArenaStorageKey.java
index d744ed9..66fa8dd 100644
--- a/src/main/java/net/knarcraft/minigames/arena/parkour/ParkourArenaStorageKey.java
+++ b/src/main/java/net/knarcraft/minigames/arena/parkour/ParkourArenaStorageKey.java
@@ -91,7 +91,8 @@ public enum ParkourArenaStorageKey implements StorageKey {
}
@Override
- public @NotNull String getKey() {
+ @NotNull
+ public String getKey() {
return this.key;
}
diff --git a/src/main/java/net/knarcraft/minigames/arena/parkour/ParkourPlayerEntryState.java b/src/main/java/net/knarcraft/minigames/arena/parkour/ParkourPlayerEntryState.java
index 61d54e0..271f80a 100644
--- a/src/main/java/net/knarcraft/minigames/arena/parkour/ParkourPlayerEntryState.java
+++ b/src/main/java/net/knarcraft/minigames/arena/parkour/ParkourPlayerEntryState.java
@@ -42,10 +42,10 @@ public class ParkourPlayerEntryState extends AbstractPlayerEntryState {
* @param originalHealth The health of the player when joining the arena
* @param originalSaturation The saturation of the player when joining the arena
*/
- public ParkourPlayerEntryState(@NotNull UUID playerId, Location entryLocation,
- boolean originalIsFlying, GameMode originalGameMode, boolean originalAllowFlight,
+ public ParkourPlayerEntryState(@NotNull UUID playerId, @NotNull Location entryLocation,
+ boolean originalIsFlying, @NotNull GameMode originalGameMode, boolean originalAllowFlight,
boolean originalInvulnerable, boolean originalIsSwimming,
- boolean originalCollideAble, Collection originalPotionEffects,
+ boolean originalCollideAble, @NotNull Collection originalPotionEffects,
double originalHealth, float originalSaturation) {
super(playerId, entryLocation, originalIsFlying, originalGameMode, originalAllowFlight,
originalInvulnerable, originalIsSwimming, originalCollideAble, originalPotionEffects, originalHealth,
@@ -70,7 +70,8 @@ public class ParkourPlayerEntryState extends AbstractPlayerEntryState {
* @return The data to deserialize
*/
@SuppressWarnings({"unused", "unchecked"})
- public static ParkourPlayerEntryState deserialize(Map data) {
+ @NotNull
+ public static ParkourPlayerEntryState deserialize(@NotNull Map data) {
UUID playerId = ((SerializableUUID) data.get("playerId")).getRawValue();
Location entryLocation = (Location) data.get("entryLocation");
boolean originalIsFlying = getBoolean(data, "originalIsFlying");
diff --git a/src/main/java/net/knarcraft/minigames/arena/record/ArenaRecord.java b/src/main/java/net/knarcraft/minigames/arena/record/ArenaRecord.java
index 942c68f..935f8d5 100644
--- a/src/main/java/net/knarcraft/minigames/arena/record/ArenaRecord.java
+++ b/src/main/java/net/knarcraft/minigames/arena/record/ArenaRecord.java
@@ -3,6 +3,7 @@ package net.knarcraft.minigames.arena.record;
import net.knarcraft.minigames.container.SerializableUUID;
import org.bukkit.configuration.serialization.ConfigurationSerializable;
import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
import java.util.HashMap;
import java.util.Map;
@@ -12,16 +13,16 @@ import java.util.UUID;
/**
* A record stored for an arena
*/
-public abstract class ArenaRecord> implements Comparable>, ConfigurationSerializable {
+public abstract class ArenaRecord> implements Comparable>, ConfigurationSerializable {
private final UUID userId;
- private final K record;
+ private final RecordType record;
/**
* @param userId The id of the player that achieved the record
* @param record The record achieved
*/
- public ArenaRecord(UUID userId, K record) {
+ public ArenaRecord(@NotNull UUID userId, @NotNull RecordType record) {
this.userId = userId;
this.record = record;
}
@@ -31,6 +32,7 @@ public abstract class ArenaRecord> implements Comparable
*
* @return The record's achiever
*/
+ @NotNull
public UUID getUserId() {
return userId;
}
@@ -40,7 +42,8 @@ public abstract class ArenaRecord> implements Comparable
*
* @return The record value
*/
- public K getRecord() {
+ @NotNull
+ public RecordType getRecord() {
return record;
}
@@ -52,12 +55,12 @@ public abstract class ArenaRecord> implements Comparable
public abstract String getAsString();
@Override
- public boolean equals(Object other) {
+ public boolean equals(@Nullable Object other) {
return other instanceof ArenaRecord> && userId.equals(((ArenaRecord>) other).userId);
}
@Override
- public int compareTo(@NotNull ArenaRecord other) {
+ public int compareTo(@NotNull ArenaRecord other) {
return record.compareTo(other.record);
}
diff --git a/src/main/java/net/knarcraft/minigames/arena/record/IntegerRecord.java b/src/main/java/net/knarcraft/minigames/arena/record/IntegerRecord.java
index ba7bb6e..76a422d 100644
--- a/src/main/java/net/knarcraft/minigames/arena/record/IntegerRecord.java
+++ b/src/main/java/net/knarcraft/minigames/arena/record/IntegerRecord.java
@@ -2,6 +2,7 @@ package net.knarcraft.minigames.arena.record;
import net.knarcraft.minigames.container.SerializableUUID;
import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
import java.util.Map;
import java.util.UUID;
@@ -12,25 +13,29 @@ import java.util.UUID;
public class IntegerRecord extends SummableArenaRecord {
/**
+ * Instantiates a new integer record
+ *
* @param userId The id of the player that achieved the record
* @param record The record achieved
*/
- public IntegerRecord(UUID userId, Integer record) {
+ public IntegerRecord(@NotNull UUID userId, @NotNull Integer record) {
super(userId, record);
}
@Override
+ @NotNull
public String getAsString() {
return String.valueOf(this.getRecord());
}
@Override
- public SummableArenaRecord sum(Integer value) {
+ @NotNull
+ public SummableArenaRecord sum(@NotNull Integer value) {
return new IntegerRecord(this.getUserId(), this.getRecord() + value);
}
@Override
- public boolean equals(Object other) {
+ public boolean equals(@Nullable Object other) {
return other instanceof IntegerRecord && this.getUserId().equals(((IntegerRecord) other).getUserId());
}
@@ -41,6 +46,7 @@ public class IntegerRecord extends SummableArenaRecord {
* @return The deserialized data
*/
@SuppressWarnings("unused")
+ @NotNull
public static IntegerRecord deserialize(@NotNull Map data) {
return new IntegerRecord(((SerializableUUID) data.get("userId")).getRawValue(), (Integer) data.get("record"));
}
diff --git a/src/main/java/net/knarcraft/minigames/arena/record/LongRecord.java b/src/main/java/net/knarcraft/minigames/arena/record/LongRecord.java
index 547a2fd..44edd29 100644
--- a/src/main/java/net/knarcraft/minigames/arena/record/LongRecord.java
+++ b/src/main/java/net/knarcraft/minigames/arena/record/LongRecord.java
@@ -2,6 +2,7 @@ package net.knarcraft.minigames.arena.record;
import net.knarcraft.minigames.container.SerializableUUID;
import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
import java.util.Map;
import java.util.UUID;
@@ -12,24 +13,28 @@ import java.util.UUID;
public class LongRecord extends SummableArenaRecord {
/**
+ * Instantiates a new long record
+ *
* @param userId The id of the player that achieved the record
* @param record The record achieved
*/
- public LongRecord(UUID userId, Long record) {
+ public LongRecord(@NotNull UUID userId, @NotNull Long record) {
super(userId, record);
}
@Override
- public boolean equals(Object other) {
+ public boolean equals(@Nullable Object other) {
return other instanceof LongRecord && this.getUserId().equals(((LongRecord) other).getUserId());
}
@Override
- public SummableArenaRecord sum(Long value) {
+ @NotNull
+ public SummableArenaRecord sum(@NotNull Long value) {
return new LongRecord(this.getUserId(), this.getRecord() + value);
}
@Override
+ @NotNull
public String getAsString() {
double seconds = getRecord() / 1000.0;
double minutes = 0;
@@ -52,6 +57,7 @@ public class LongRecord extends SummableArenaRecord {
* @return The deserialized data
*/
@SuppressWarnings("unused")
+ @NotNull
public static LongRecord deserialize(@NotNull Map data) {
return new LongRecord(((SerializableUUID) data.get("userId")).getRawValue(),
((Number) data.get("record")).longValue());
diff --git a/src/main/java/net/knarcraft/minigames/arena/record/SummableArenaRecord.java b/src/main/java/net/knarcraft/minigames/arena/record/SummableArenaRecord.java
index 9c0ead6..7bebb17 100644
--- a/src/main/java/net/knarcraft/minigames/arena/record/SummableArenaRecord.java
+++ b/src/main/java/net/knarcraft/minigames/arena/record/SummableArenaRecord.java
@@ -1,19 +1,21 @@
package net.knarcraft.minigames.arena.record;
+import org.jetbrains.annotations.NotNull;
+
import java.util.UUID;
/**
* A type of arena record which can be summed together
*
- * @param The type of the stored value
+ * @param The type of the stored value
*/
-public abstract class SummableArenaRecord> extends ArenaRecord {
+public abstract class SummableArenaRecord> extends ArenaRecord {
/**
* @param userId The id of the player that achieved the record
* @param record The record achieved
*/
- public SummableArenaRecord(UUID userId, K record) {
+ public SummableArenaRecord(@NotNull UUID userId, @NotNull RecordType record) {
super(userId, record);
}
@@ -23,6 +25,7 @@ public abstract class SummableArenaRecord> extends Arena
* @param value The value to add to the existing value
* @return A record with the sum of this record and the given value
*/
- public abstract SummableArenaRecord sum(K value);
+ @NotNull
+ public abstract SummableArenaRecord sum(@NotNull RecordType value);
}
diff --git a/src/main/java/net/knarcraft/minigames/arena/reward/CommandReward.java b/src/main/java/net/knarcraft/minigames/arena/reward/CommandReward.java
index bfa3d70..0538753 100644
--- a/src/main/java/net/knarcraft/minigames/arena/reward/CommandReward.java
+++ b/src/main/java/net/knarcraft/minigames/arena/reward/CommandReward.java
@@ -31,7 +31,8 @@ public class CommandReward implements Reward {
}
@Override
- public @NotNull FormatBuilder getGrantMessage() {
+ @NotNull
+ public FormatBuilder getGrantMessage() {
return new FormatBuilder(MiniGameMessage.SUCCESS_COMMAND_REWARDED).replace("{command}", command);
}
@@ -50,6 +51,7 @@ public class CommandReward implements Reward {
* @param input The input containing a name placeholder
* @return The input with the placeholder replaced
*/
+ @NotNull
private String replaceNamePlaceholder(@NotNull Player player, @NotNull String input) {
return input.replaceAll("[<%(\\[{]player[_\\-]?(name)?[>%)\\]}]", player.getName());
}
@@ -61,7 +63,8 @@ public class CommandReward implements Reward {
* @return The deserialized data
*/
@SuppressWarnings("unused")
- public static CommandReward deserialize(Map data) {
+ @NotNull
+ public static CommandReward deserialize(@NotNull Map data) {
return new CommandReward((String) data.get("command"));
}
diff --git a/src/main/java/net/knarcraft/minigames/arena/reward/EconomyReward.java b/src/main/java/net/knarcraft/minigames/arena/reward/EconomyReward.java
index 193d0dc..e001764 100644
--- a/src/main/java/net/knarcraft/minigames/arena/reward/EconomyReward.java
+++ b/src/main/java/net/knarcraft/minigames/arena/reward/EconomyReward.java
@@ -39,7 +39,8 @@ public class EconomyReward implements Reward {
}
@Override
- public @NotNull FormatBuilder getGrantMessage() {
+ @NotNull
+ public FormatBuilder getGrantMessage() {
return new FormatBuilder(MiniGameMessage.SUCCESS_ECONOMY_REWARDED).replace("{currency}",
EconomyManager.format(amount));
}
@@ -59,7 +60,8 @@ public class EconomyReward implements Reward {
* @return The deserialized data
*/
@SuppressWarnings("unused")
- public static EconomyReward deserialize(Map data) {
+ @NotNull
+ public static EconomyReward deserialize(@NotNull Map data) {
return new EconomyReward((Double) data.get("amount"));
}
diff --git a/src/main/java/net/knarcraft/minigames/arena/reward/ItemReward.java b/src/main/java/net/knarcraft/minigames/arena/reward/ItemReward.java
index 3ea5f8a..bfc6cf7 100644
--- a/src/main/java/net/knarcraft/minigames/arena/reward/ItemReward.java
+++ b/src/main/java/net/knarcraft/minigames/arena/reward/ItemReward.java
@@ -43,7 +43,8 @@ public class ItemReward implements Reward {
}
@Override
- public @NotNull FormatBuilder getGrantMessage() {
+ @NotNull
+ public FormatBuilder getGrantMessage() {
NamespacedKey key = item.getType().getKeyOrNull();
String name = key == null ? "Unnamed item" : key.getKey().replace("_", " ");
return new FormatBuilder(MiniGameMessage.SUCCESS_ITEM_REWARDED).
@@ -65,7 +66,8 @@ public class ItemReward implements Reward {
* @return The deserialized data
*/
@SuppressWarnings("unused")
- public static ItemReward deserialize(Map data) {
+ @NotNull
+ public static ItemReward deserialize(@NotNull Map data) {
return new ItemReward((ItemStack) data.get("item"));
}
@@ -75,7 +77,7 @@ public class ItemReward implements Reward {
* @param inventory The inventory to check
* @return True if the inventory can fit the item
*/
- private boolean canFitItem(Inventory inventory) {
+ private boolean canFitItem(@NotNull Inventory inventory) {
// If a slot is available, there is no problem
if (inventory.firstEmpty() != -1) {
return true;
diff --git a/src/main/java/net/knarcraft/minigames/arena/reward/PermissionReward.java b/src/main/java/net/knarcraft/minigames/arena/reward/PermissionReward.java
index 095a5ab..51bd5b0 100644
--- a/src/main/java/net/knarcraft/minigames/arena/reward/PermissionReward.java
+++ b/src/main/java/net/knarcraft/minigames/arena/reward/PermissionReward.java
@@ -48,7 +48,8 @@ public class PermissionReward implements Reward {
}
@Override
- public @NotNull FormatBuilder getGrantMessage() {
+ @NotNull
+ public FormatBuilder getGrantMessage() {
if (world == null) {
return new FormatBuilder(MiniGameMessage.SUCCESS_PERMISSION_REWARDED).replace("{permission}",
permission);
@@ -76,7 +77,8 @@ public class PermissionReward implements Reward {
* @return The deserialized data
*/
@SuppressWarnings("unused")
- public static PermissionReward deserialize(Map data) {
+ @NotNull
+ public static PermissionReward deserialize(@NotNull Map data) {
World world = (World) data.getOrDefault("world", null);
String permission = (String) data.get("permission");
return new PermissionReward(world, permission);
diff --git a/src/main/java/net/knarcraft/minigames/arena/reward/RewardCondition.java b/src/main/java/net/knarcraft/minigames/arena/reward/RewardCondition.java
index 4c8693e..9916a44 100644
--- a/src/main/java/net/knarcraft/minigames/arena/reward/RewardCondition.java
+++ b/src/main/java/net/knarcraft/minigames/arena/reward/RewardCondition.java
@@ -50,7 +50,8 @@ public enum RewardCondition implements ConfigurationSerializable {
* @param condition The string specifying a reward condition
* @return The matching reward condition, or null if not found
*/
- public static @Nullable RewardCondition getFromString(@NotNull String condition) {
+ @Nullable
+ public static RewardCondition getFromString(@NotNull String condition) {
for (RewardCondition rewardCondition : RewardCondition.values()) {
if (rewardCondition.name().equalsIgnoreCase(condition.replace("-", "_"))) {
return rewardCondition;
@@ -75,7 +76,8 @@ public enum RewardCondition implements ConfigurationSerializable {
* @return The deserialized reward condition
*/
@SuppressWarnings({"unused"})
- public static @NotNull RewardCondition deserialize(@NotNull Map data) {
+ @NotNull
+ public static RewardCondition deserialize(@NotNull Map data) {
RewardCondition rewardCondition = getFromString(String.valueOf(data.get("condition")));
return Objects.requireNonNullElse(rewardCondition, RewardCondition.FIRST_WIN);
}
diff --git a/src/main/java/net/knarcraft/minigames/arena/reward/RewardType.java b/src/main/java/net/knarcraft/minigames/arena/reward/RewardType.java
index c3778ca..acdac1d 100644
--- a/src/main/java/net/knarcraft/minigames/arena/reward/RewardType.java
+++ b/src/main/java/net/knarcraft/minigames/arena/reward/RewardType.java
@@ -1,6 +1,7 @@
package net.knarcraft.minigames.arena.reward;
import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
/**
* The type of a specific reward
@@ -34,6 +35,7 @@ public enum RewardType {
* @param condition The string specifying a reward type
* @return The matching reward type, or null if not found
*/
+ @Nullable
public static RewardType getFromString(@NotNull String condition) {
for (RewardType rewardType : RewardType.values()) {
if (rewardType.name().equalsIgnoreCase(condition.replace("-", "_"))) {