Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import dansplugins.rpsystem.commands.local.LocalChatCommand;
import dansplugins.rpsystem.commands.localooc.LocalOOCChatCommand;
import dansplugins.rpsystem.commands.roll.RollCommand;
import dansplugins.rpsystem.commands.rpnames.RPNamesCommand;
import dansplugins.rpsystem.commands.title.TitleCommand;
import dansplugins.rpsystem.commands.whisper.WhisperCommand;
import dansplugins.rpsystem.commands.yell.YellCommand;
Expand Down Expand Up @@ -106,6 +107,11 @@ else if (args[0].equalsIgnoreCase("forceload")) {
return true;
}

if (label.equalsIgnoreCase("rpnames")) {
RPNamesCommand command = new RPNamesCommand(medievalRoleplayEngine);
return command.toggleRPNames(sender, args);
}

if (medievalRoleplayEngine.configService.getBoolean("chatFeaturesEnabled")) {
if (label.equalsIgnoreCase("local") || label.equalsIgnoreCase("rp")) {
LocalChatCommand command = new LocalChatCommand(medievalRoleplayEngine);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import dansplugins.rpsystem.MedievalRoleplayEngine;
import dansplugins.rpsystem.cards.CharacterCard;
import dansplugins.rpsystem.commands.rpnames.RPNamesCommand;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
Expand Down Expand Up @@ -73,6 +74,10 @@ public void changeName(CommandSender sender, String[] args) {
card.setName(medievalRoleplayEngine.argumentParser.createStringFromFirstArgOnwards(args, 1));
player.sendMessage(medievalRoleplayEngine.colorChecker.getPositiveAlertColor() + "Name set! Type /card to see changes.");

// Update player display name if rpnames is enabled
RPNamesCommand rpNamesCommand = new RPNamesCommand(medievalRoleplayEngine);
rpNamesCommand.updatePlayerDisplayName(player);

if (changeNameCooldown != 0) {
// cooldown
medievalRoleplayEngine.ephemeralData.getPlayersOnNameChangeCooldown().add(player.getUniqueId());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ public void showListOfCommands(CommandSender sender) {
}

player.sendMessage(medievalRoleplayEngine.colorChecker.getNeutralAlertColor() + "/rpconfig - View and change config options.");
player.sendMessage(medievalRoleplayEngine.colorChecker.getNeutralAlertColor() + "/rpnames - Toggle between character names and usernames above player heads.");

}
else {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
package dansplugins.rpsystem.commands.rpnames;

import dansplugins.rpsystem.MedievalRoleplayEngine;
import dansplugins.rpsystem.cards.CharacterCard;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;

public class RPNamesCommand {
private final MedievalRoleplayEngine medievalRoleplayEngine;

public RPNamesCommand(MedievalRoleplayEngine medievalRoleplayEngine) {
this.medievalRoleplayEngine = medievalRoleplayEngine;
}

public boolean toggleRPNames(CommandSender sender, String[] args) {

if (!(sender instanceof Player)) {
sender.sendMessage("Only players can use this command.");
return false;
}

Player player = (Player) sender;

if (!(player.hasPermission("rp.rpnames") || player.hasPermission("rp.default"))) {
player.sendMessage(medievalRoleplayEngine.colorChecker.getNegativeAlertColor() + "Sorry! In order to use this command, you need the following permission: 'rp.rpnames'");
return false;
}

if (medievalRoleplayEngine.ephemeralData.getPlayersWithRPNamesEnabled().contains(player.getUniqueId())) {
// Disable RP names - restore original name
medievalRoleplayEngine.ephemeralData.getPlayersWithRPNamesEnabled().remove(player.getUniqueId());
player.setDisplayName(player.getName());
player.setPlayerListName(player.getName());
player.sendMessage(medievalRoleplayEngine.colorChecker.getPositiveAlertColor() + "Character names disabled. Showing Minecraft usernames.");
} else {
// Enable RP names - set to character name
medievalRoleplayEngine.ephemeralData.getPlayersWithRPNamesEnabled().add(player.getUniqueId());
CharacterCard card = medievalRoleplayEngine.cardRepository.getCard(player.getUniqueId());
if (card != null) {
String characterName = card.getName();
player.setDisplayName(characterName);
player.setPlayerListName(characterName);
player.sendMessage(medievalRoleplayEngine.colorChecker.getPositiveAlertColor() + "Character names enabled. Showing as: " + characterName);
} else {
player.sendMessage(medievalRoleplayEngine.colorChecker.getNegativeAlertColor() + "Could not find your character card.");
return false;
}
}

return true;
}

public void updatePlayerDisplayName(Player player) {
if (medievalRoleplayEngine.ephemeralData.getPlayersWithRPNamesEnabled().contains(player.getUniqueId())) {
CharacterCard card = medievalRoleplayEngine.cardRepository.getCard(player.getUniqueId());
if (card != null) {
String characterName = card.getName();
player.setDisplayName(characterName);
player.setPlayerListName(characterName);
}
} else {
player.setDisplayName(player.getName());
player.setPlayerListName(player.getName());
}
}

}
10 changes: 8 additions & 2 deletions src/main/java/dansplugins/rpsystem/config/ConfigService.java
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,9 @@ public void handleVersionMismatch() {
if (!getConfig().isBoolean("logChat")) {
getConfig().addDefault("logChat", false);
}
if (!getConfig().isBoolean("rpNamesEnabledByDefault")) {
getConfig().addDefault("rpNamesEnabledByDefault", true);
}

deleteOldConfigOptionsIfPresent();

Expand Down Expand Up @@ -116,7 +119,8 @@ else if (option.equalsIgnoreCase("localChatRadius")
else if (option.equalsIgnoreCase("rightClickToViewCard")
|| option.equalsIgnoreCase("chatFeaturesEnabled")
|| option.equalsIgnoreCase("debugMode")
|| option.equalsIgnoreCase("logChat")) {
|| option.equalsIgnoreCase("logChat")
|| option.equalsIgnoreCase("rpNamesEnabledByDefault")) {
getConfig().set(option, Boolean.parseBoolean(value));
player.sendMessage(medievalRoleplayEngine.colorChecker.getColorByName(getString("positiveAlertColor")) + "Boolean set!");
}
Expand Down Expand Up @@ -160,6 +164,7 @@ public void saveConfigDefaults() {
getConfig().addDefault("debugMode", false);
getConfig().addDefault("birdSpeed", 20);
getConfig().addDefault("logChat", true);
getConfig().addDefault("rpNamesEnabledByDefault", true);
getConfig().options().copyDefaults(true);
medievalRoleplayEngine.saveConfig();
}
Expand All @@ -184,7 +189,8 @@ public void sendPlayerConfigList(Player player) {
+ ", neutralAlertColor: " + getConfig().getString("neutralAlertColor")
+ ", negativeAlertColor: " + getConfig().getString("negativeAlertColor")
+ ", birdSpeed: " + getConfig().getString("birdSpeed")
+ ", logChat:" + getConfig().getBoolean("logChat"));
+ ", logChat:" + getConfig().getBoolean("logChat")
+ ", rpNamesEnabledByDefault: " + getConfig().getBoolean("rpNamesEnabledByDefault"));
}

public boolean hasBeenAltered() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ public class EphemeralData {
private final ArrayList<UUID> playersWhoHaveHiddenGlobalChat = new ArrayList<>();
private final ArrayList<UUID> playersWhoHaveHiddenLocalChat = new ArrayList<>();
private final ArrayList<UUID> playersWhoHaveHiddenLocalOOCChat = new ArrayList<>();
private final ArrayList<UUID> playersWithRPNamesEnabled = new ArrayList<>();

public ArrayList<UUID> getPlayersWithBusyBirds() {
return playersWithBusyBirds;
Expand Down Expand Up @@ -40,4 +41,8 @@ public ArrayList<UUID> getPlayersWhoHaveHiddenLocalOOCChat() {
return playersWhoHaveHiddenLocalOOCChat;
}

public ArrayList<UUID> getPlayersWithRPNamesEnabled() {
return playersWithRPNamesEnabled;
}

}
12 changes: 12 additions & 0 deletions src/main/java/dansplugins/rpsystem/listeners/JoinListener.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import dansplugins.rpsystem.MedievalRoleplayEngine;
import dansplugins.rpsystem.cards.CharacterCard;
import dansplugins.rpsystem.commands.rpnames.RPNamesCommand;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
Expand All @@ -19,6 +20,17 @@ public void handle(PlayerJoinEvent event) {
CharacterCard newCard = new CharacterCard(medievalRoleplayEngine, event.getPlayer().getUniqueId());
medievalRoleplayEngine.cardRepository.getCards().add(newCard);
}

// Enable RP names by default if configured
if (medievalRoleplayEngine.configService.getBoolean("rpNamesEnabledByDefault")) {
if (!medievalRoleplayEngine.ephemeralData.getPlayersWithRPNamesEnabled().contains(event.getPlayer().getUniqueId())) {
medievalRoleplayEngine.ephemeralData.getPlayersWithRPNamesEnabled().add(event.getPlayer().getUniqueId());
}
}

// Update player display name based on rpnames setting
RPNamesCommand rpNamesCommand = new RPNamesCommand(medievalRoleplayEngine);
rpNamesCommand.updatePlayerDisplayName(event.getPlayer());
}

}
3 changes: 3 additions & 0 deletions src/main/resources/plugin.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ commands:
whisper:
rphelp:
rpconfig:
rpnames:
lo:

permissions:
Expand Down Expand Up @@ -68,6 +69,8 @@ permissions:
default: true
rp.help:
default: true
rp.rpnames:
default: true
rp.localOOC:
default: true
rp.card.forcesave:
Expand Down