Skip to content
This repository has been archived by the owner on Jan 24, 2024. It is now read-only.

Commit

Permalink
Replace 'RankColors' with 'RankUtil' and update references (#6)
Browse files Browse the repository at this point in the history
* Add new gamemode commands and update plugin descriptions

This commit introduces new gamemode commands including 'gm', 'gmc', 'gms', 'gma', and 'gmsp' related to creative, survival, adventure, and spectator modes respectively. Command descriptions were added in plugin.yml file. Moreover, validations for player name were added using PlayerValidator class. Minor changes include addition of a description in pom.xml and command registerations in Loader class.

* Replace 'RankColors' with 'RankUtil' and update references

Developed the 'RankUtil' class by replacing 'RankColors' for more functional role. The old 'RankColors' class was deleted and references to it in chat and tablist subsystems were updated. These changes better support rank management's extended tasks and also retain the color assigning feature of the older class.
  • Loading branch information
mathiasclari authored Jan 2, 2024
1 parent e97b650 commit ecde408
Show file tree
Hide file tree
Showing 5 changed files with 103 additions and 62 deletions.
36 changes: 18 additions & 18 deletions src/main/java/net/cherrycraft/cherrycore/chatsystem/ChatSystem.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import me.clip.placeholderapi.PlaceholderAPI;
import net.cherrycraft.cherrycore.CherryCore;
import net.cherrycraft.cherrycore.chatsystem.utils.RankColors;
import net.cherrycraft.cherrycore.chatsystem.utils.RankUtil;
import net.kyori.adventure.text.minimessage.MiniMessage;
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
import net.luckperms.api.LuckPerms;
Expand All @@ -27,55 +27,55 @@ public void onPlayerPlaceholderChat(AsyncPlayerChatEvent event) {
String roleColor = "";
switch (primaryGroup.toLowerCase()) {
case "owner":
roleColor = RankColors.OWNER.getColor();
roleColor = RankUtil.OWNER.getColor();
break;
case "manager":
roleColor = RankColors.MANAGER.getColor();
roleColor = RankUtil.MANAGER.getColor();
break;
case "developer":
roleColor = RankColors.DEVELOPER.getColor();
roleColor = RankUtil.DEVELOPER.getColor();
break;
case "game-master":
roleColor = RankColors.GAME_MASTER.getColor();
roleColor = RankUtil.GAME_MASTER.getColor();
break;
case "admin":
roleColor = RankColors.ADMIN.getColor();
roleColor = RankUtil.ADMIN.getColor();
break;
case "moderator":
roleColor = RankColors.MODERATOR.getColor();
roleColor = RankUtil.MODERATOR.getColor();
break;
case "trainee":
roleColor = RankColors.TRAINEE.getColor();
roleColor = RankUtil.TRAINEE.getColor();
break;
case "designer":
roleColor = RankColors.DESIGNER.getColor();
roleColor = RankUtil.DESIGNER.getColor();
break;
case "builder":
roleColor = RankColors.BUILDER.getColor();
roleColor = RankUtil.BUILDER.getColor();
break;
case "youtuber":
roleColor = RankColors.YOUTUBE.getColor();
roleColor = RankUtil.YOUTUBE.getColor();
break;
case "cherry-platinum-lifetime":
roleColor = RankColors.CHERRY_PLATINUM_LIFETIME.getColor();
roleColor = RankUtil.CHERRY_PLATINUM_LIFETIME.getColor();
break;
case "cherry-platinum":
roleColor = RankColors.CHERRY_PLATINUM.getColor();
roleColor = RankUtil.CHERRY_PLATINUM.getColor();
break;
case "cherry-gold-lifetime":
roleColor = RankColors.CHERRY_GOLD_LIFETIME.getColor();
roleColor = RankUtil.CHERRY_GOLD_LIFETIME.getColor();
break;
case "cherry-gold":
roleColor = RankColors.CHERRY_GOLD.getColor();
roleColor = RankUtil.CHERRY_GOLD.getColor();
break;
case "cherry-lifetime":
roleColor = RankColors.CHERRY_LIFETIME.getColor();
roleColor = RankUtil.CHERRY_LIFETIME.getColor();
break;
case "cherry":
roleColor = RankColors.CHERRY.getColor();
roleColor = RankUtil.CHERRY.getColor();
break;
default:
roleColor = RankColors.DEFAULT.getColor();
roleColor = RankUtil.DEFAULT.getColor();
break;
}
event.setFormat(serializer.serialize(miniMessage.deserialize(PlaceholderAPI.setPlaceholders(event.getPlayer(), CherryCore.getInstance().getConfig().getString("format", "%luckperms_prefix%{display_name} %luckperms_suffix% &#1883C4» &#7D878C{message}").replace("{name}", event.getPlayer().getName()).replace("{display_name}", event.getPlayer().getDisplayName())))).replace("{message}", event.getMessage().replace("%", "‰")).replace("{playername}", serializer.serialize(miniMessage.deserialize(roleColor + player.getName()))));
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package net.cherrycraft.cherrycore.chatsystem.utils;

import net.luckperms.api.LuckPermsProvider;

public class PlayerRankUtils {

public static String getPlayerRank(String playerName) {
Boolean player = PlayerValidator.isPlayerNameValid(playerName) ? PlayerValidator.isPlayerNameValid(playerName) : null;
assert player != null;
if (!player) {
LuckPermsProvider.get().getUserManager().getUser(playerName).getPrimaryGroup();
return "success";
}
return "error";
}

public static String setPlayerRank(String playerName, String rank) {
Boolean player = PlayerValidator.isPlayerNameValid(playerName) ? PlayerValidator.isPlayerNameValid(playerName) : null;
assert player != null;
if (!player) {
if (LuckPermsProvider.get().getGroupManager().getGroup(rank) != null) {
return "error";
}
LuckPermsProvider.get().getUserManager().getUser(playerName).setPrimaryGroup(rank);
return "success";
}
return "error";
}


}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
package net.cherrycraft.cherrycore.chatsystem.utils;

import net.luckperms.api.LuckPermsProvider;
import net.luckperms.api.model.group.Group;
import org.checkerframework.checker.nullness.qual.Nullable;

public enum RankUtil {
OWNER("<gradient:#fabf37:#fff024:0>", 1, "owner"),
MANAGER("<gradient:#ff8624:#ff2479:1>", 2, "manager"),
DEVELOPER("<#e3ff24>", 3, "developer"),
GAME_MASTER("<#e3ff24>", 4, "game-master"),
ADMIN("<#c624ff>", 5, "admin"),
MODERATOR("<#24a8ff>", 6, "moderator"),
TRAINEE("<#7bc9fc>", 7, "trainee"),
DESIGNER("<gradient:#ee7bfc:#7bb7fc:0>", 8, "designer"),
BUILDER("<#10c4b7>", 9, "builder"),
YOUTUBE("<#ea4444>", 10, "youtube"),
CHERRY_PLATINUM_LIFETIME("<gradient:#a0b2c6:#abcdf3:0>", 11, "cherry-platinum-lifetime"),
CHERRY_PLATINUM("<#a0b2c6>", 12, "cherry-platinum"),
CHERRY_GOLD_LIFETIME("<gradient:#f3dfab:#f8c373:1>", 13, "cherry-gold-lifetime"),
CHERRY_GOLD("<#f3dfab>", 14, "cherry-gold"),
CHERRY_LIFETIME("<gradient:#ae0a0a:#f32424:1>", 15, "cherry-lifetime"),
CHERRY("<#f32424>", 16, "cherry"),
DEFAULT("<gray>", 17, "default");

private final String color;
private final int priority;
private final String groupName;

RankUtil(String color, int priority, String groupName) {
this.color = color;
this.priority = priority;
this.groupName = groupName;
}

public static int compareRanks(RankUtil rank1, RankUtil rank2) {
return Integer.compare(rank1.getPriority(), rank2.getPriority());
}

public @Nullable Group getLPRank() {
return LuckPermsProvider.get().getGroupManager().getGroup(this.groupName);
}

public String getColor() {
return color;
}

public int getPriority() {
return priority;
}
}
6 changes: 3 additions & 3 deletions src/main/java/net/cherrycraft/cherrycore/tablist/Tablist.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import me.clip.placeholderapi.PlaceholderAPI;
import net.cherrycraft.cherrycore.CherryCore;
import net.cherrycraft.cherrycore.chatsystem.utils.RankColors;
import net.cherrycraft.cherrycore.chatsystem.utils.RankUtil;
import net.kyori.adventure.text.minimessage.MiniMessage;
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
import net.luckperms.api.LuckPerms;
Expand Down Expand Up @@ -41,7 +41,7 @@ public void onPlayerJoin(PlayerJoinEvent event) {
// Sort the players based on their ranks
players.sort(Comparator.comparingInt(player1 -> {
String primaryGroup = luckPerms.getUserManager().getUser(player1.getUniqueId()).getPrimaryGroup();
RankColors rankColor = RankColors.valueOf(primaryGroup.toUpperCase());
RankUtil rankColor = RankUtil.valueOf(primaryGroup.toUpperCase());
return rankColor.getPriority();
}));

Expand Down Expand Up @@ -72,7 +72,7 @@ public void onPlayerJoin(PlayerJoinEvent event) {
team.setSuffix(suffix);

// Update the team's display name
RankColors rankColor = RankColors.valueOf(primaryGroup.toUpperCase());
RankUtil rankColor = RankUtil.valueOf(primaryGroup.toUpperCase());
team.setDisplayName(rankColor.getColor());
}
}, 0L, 20L); // 20 ticks = 1 second
Expand Down

0 comments on commit ecde408

Please sign in to comment.