PlayerDataCommon.java
package team.aura_dev.auraban.platform.common.player;
import com.google.common.collect.ImmutableMap;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import java.util.Map;
import java.util.UUID;
import javax.annotation.Nonnull;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NonNull;
import team.aura_dev.auraban.api.player.PlayerData;
import team.aura_dev.auraban.api.punishment.Punishment;
/**
* Simple class to represent players in a platform independent way.
*
* <p>If the platform offers a way to display a display name (like with added prefixes/suffixes or a
* nickname) then it needs to override this class.
*/
@SuppressFBWarnings(
value = "RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE",
justification = "Code generated by lombok.")
@Data
@Getter(onMethod = @__({@Nonnull}))
@EqualsAndHashCode(of = "uuid")
public class PlayerDataCommon implements PlayerData {
@NonNull private final UUID uuid;
@NonNull private final String playerName;
@NonNull private final Map<Integer, Punishment> punishments;
/**
* A nice name for the player.<br>
* Can be overridden to allow showing of prefixes and nicknames.
*
* @return a nicer variant of the player name
*/
@Override
@Nonnull
public String getDisplayName() {
return playerName;
}
@Override
public ImmutableMap<Integer, Punishment> getPunishments() {
return ImmutableMap.copyOf(punishments);
}
}