Skip to content

Commit

Permalink
fix colors, add msg placeholders, fix messages
Browse files Browse the repository at this point in the history
  • Loading branch information
rex2go committed Aug 23, 2021
1 parent 44e7971 commit bb58aec
Show file tree
Hide file tree
Showing 8 changed files with 103 additions and 22 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ public WrappedCommandExecutor(String command, TabCompleter tabCompleter) {
if (tabCompleter != null) pluginCommand.setTabCompleter(tabCompleter);

if (pluginCommand.getPermissionMessage() == null) {
pluginCommand.setPermissionMessage(Chat2Go.getTranslator().getTranslation("command.no_permission"));
pluginCommand.setPermissionMessage(Chat2Go.getTranslator().getTranslation("command.error.no_permission"));
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@
public class NoPermissionCommandException extends CommandException {

public NoPermissionCommandException(String permission) {
super("command.error.no_permission", permission);
super("command.error.error.no_permission", permission);
}
}
42 changes: 36 additions & 6 deletions src/main/java/eu/rex2go/chat2go/command/msg/MsgCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,11 @@
import eu.rex2go.chat2go.command.exception.CustomErrorCommandException;
import eu.rex2go.chat2go.command.exception.PlayerNotFoundCommandException;
import eu.rex2go.chat2go.config.ChatConfig;
import eu.rex2go.chat2go.placeholder.Placeholder;
import eu.rex2go.chat2go.placeholder.PlaceholderProcessor;
import eu.rex2go.chat2go.user.User;
import net.md_5.bungee.api.chat.BaseComponent;
import net.md_5.bungee.api.chat.TextComponent;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
Expand All @@ -24,6 +28,7 @@ protected void execute(CommandSender sender, User user, String label, String...
checkPlayer(sender);

Player player = user.getPlayer();
Player senderPlayer = (Player) sender;

if (args.length < 2) {
getTranslator().sendMessage(sender, "§7/msg <{player}> <{message}>");
Expand Down Expand Up @@ -60,11 +65,36 @@ protected void execute(CommandSender sender, User user, String label, String...

format = Chat2Go.parseColor(format);

format = format.replace("{sender}", sender.getName());
format = format.replace("{receiver}", target.getName());
format = format.replace("{message}", message);

targetPlayer.sendMessage(format);
player.sendMessage(format);
Placeholder senderPlaceholder = new Placeholder("receiver", TextComponent.fromLegacyText(senderPlayer.getPlayer().getDisplayName()));
Placeholder senderPrefixPlaceholder = new Placeholder("receiver", TextComponent.fromLegacyText(user.getPrefix()));
Placeholder senderSuffixPlaceholder = new Placeholder("receiver", TextComponent.fromLegacyText(user.getSuffix()));
Placeholder senderWorldPlaceholder = new Placeholder("receiver", TextComponent.fromLegacyText(senderPlayer.getPlayer().getWorld().getName()));
Placeholder senderGroupPlaceholder = new Placeholder("receiver", TextComponent.fromLegacyText(user.getPrimaryGroup()));

Placeholder receiverPlaceholder = new Placeholder("receiver", TextComponent.fromLegacyText(targetPlayer.getDisplayName()));
Placeholder receiverPrefixPlaceholder = new Placeholder("receiver", TextComponent.fromLegacyText(target.getPrefix()));
Placeholder receiverSuffixPlaceholder = new Placeholder("receiver", TextComponent.fromLegacyText(target.getSuffix()));
Placeholder receiverWorldPlaceholder = new Placeholder("receiver", TextComponent.fromLegacyText(targetPlayer.getPlayer().getWorld().getName()));
Placeholder receiverGroupPlaceholder = new Placeholder("receiver", TextComponent.fromLegacyText(target.getPrimaryGroup()));

Placeholder messagePlaceholder = new Placeholder("message", TextComponent.fromLegacyText(message.toString()));

BaseComponent[] components = PlaceholderProcessor.process(
format,
senderPlayer,
senderPlaceholder,
senderPrefixPlaceholder,
senderSuffixPlaceholder,
senderWorldPlaceholder,
senderGroupPlaceholder,
receiverPlaceholder,
receiverPrefixPlaceholder,
receiverSuffixPlaceholder,
receiverWorldPlaceholder,
receiverGroupPlaceholder,
messagePlaceholder);

targetPlayer.spigot().sendMessage(components);
player.spigot().sendMessage(components);
}
}
42 changes: 36 additions & 6 deletions src/main/java/eu/rex2go/chat2go/command/reply/ReplyCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,11 @@
import eu.rex2go.chat2go.command.exception.CustomErrorCommandException;
import eu.rex2go.chat2go.command.exception.PlayerNotOnlineCommandException;
import eu.rex2go.chat2go.config.ChatConfig;
import eu.rex2go.chat2go.placeholder.Placeholder;
import eu.rex2go.chat2go.placeholder.PlaceholderProcessor;
import eu.rex2go.chat2go.user.User;
import net.md_5.bungee.api.chat.BaseComponent;
import net.md_5.bungee.api.chat.TextComponent;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;

Expand All @@ -23,6 +27,7 @@ protected void execute(CommandSender sender, User user, String label, String...
checkPlayer(sender);

Player player = user.getPlayer();
Player senderPlayer = (Player) sender;

if (args.length < 1) {
getTranslator().sendMessage(sender, "§7/msg <{message}>");
Expand Down Expand Up @@ -57,11 +62,36 @@ protected void execute(CommandSender sender, User user, String label, String...

format = Chat2Go.parseColor(format);

format = format.replace("{sender}", sender.getName());
format = format.replace("{receiver}", target.getName());
format = format.replace("{message}", message);

targetPlayer.sendMessage(format);
player.sendMessage(format);
Placeholder senderPlaceholder = new Placeholder("receiver", TextComponent.fromLegacyText(senderPlayer.getPlayer().getDisplayName()));
Placeholder senderPrefixPlaceholder = new Placeholder("receiver", TextComponent.fromLegacyText(user.getPrefix()));
Placeholder senderSuffixPlaceholder = new Placeholder("receiver", TextComponent.fromLegacyText(user.getSuffix()));
Placeholder senderWorldPlaceholder = new Placeholder("receiver", TextComponent.fromLegacyText(senderPlayer.getPlayer().getWorld().getName()));
Placeholder senderGroupPlaceholder = new Placeholder("receiver", TextComponent.fromLegacyText(user.getPrimaryGroup()));

Placeholder receiverPlaceholder = new Placeholder("receiver", TextComponent.fromLegacyText(targetPlayer.getDisplayName()));
Placeholder receiverPrefixPlaceholder = new Placeholder("receiver", TextComponent.fromLegacyText(target.getPrefix()));
Placeholder receiverSuffixPlaceholder = new Placeholder("receiver", TextComponent.fromLegacyText(target.getSuffix()));
Placeholder receiverWorldPlaceholder = new Placeholder("receiver", TextComponent.fromLegacyText(targetPlayer.getPlayer().getWorld().getName()));
Placeholder receiverGroupPlaceholder = new Placeholder("receiver", TextComponent.fromLegacyText(target.getPrimaryGroup()));

Placeholder messagePlaceholder = new Placeholder("message", TextComponent.fromLegacyText(message.toString()));

BaseComponent[] components = PlaceholderProcessor.process(
format,
senderPlayer,
senderPlaceholder,
senderPrefixPlaceholder,
senderSuffixPlaceholder,
senderWorldPlaceholder,
senderGroupPlaceholder,
receiverPlaceholder,
receiverPrefixPlaceholder,
receiverSuffixPlaceholder,
receiverWorldPlaceholder,
receiverGroupPlaceholder,
messagePlaceholder);

targetPlayer.spigot().sendMessage(components);
player.spigot().sendMessage(components);
}
}
2 changes: 1 addition & 1 deletion src/main/java/eu/rex2go/chat2go/config/MessageConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
public class MessageConfig extends RexConfig {

public MessageConfig() {
super(Chat2Go.getInstance(), "messages.yml", 1);
super(Chat2Go.getInstance(), "messages.yml", 2);
}

@Override
Expand Down
21 changes: 19 additions & 2 deletions src/main/java/eu/rex2go/chat2go/listener/PlayerChatListener.java
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,7 @@ public void onPlayerChat(AsyncPlayerChatEvent event) {
Placeholder prefixPlaceholder = new Placeholder("prefix", TextComponent.fromLegacyText(user.getPrefix()));
Placeholder suffixPlaceholder = new Placeholder("suffix", TextComponent.fromLegacyText(user.getSuffix()));
Placeholder worldPlaceholder = new Placeholder("world", TextComponent.fromLegacyText(player.getWorld().getName()));
Placeholder groupPlaceholder = new Placeholder("group", TextComponent.fromLegacyText(user.getPrimaryGroup()));

BaseComponent[] format = PlaceholderProcessor.process(
chatFormat,
Expand All @@ -195,9 +196,25 @@ public void onPlayerChat(AsyncPlayerChatEvent event) {
messagePlaceholder,
prefixPlaceholder,
suffixPlaceholder,
worldPlaceholder);
worldPlaceholder,
groupPlaceholder);

event.setMessage(TextComponent.toPlainText(messageComponents));
// fix message color
for(int i = format.length - 1; i > 0; i--) {
BaseComponent baseComponent = format[i];

if(baseComponent.getColorRaw() != null) {
for(BaseComponent messageComponent : messageComponents) {
if(messageComponent.getColorRaw() != null) break;

messageComponent.setColor(baseComponent.getColorRaw());
}

break;
}
}

event.setMessage(TextComponent.toLegacyText(messageComponents));
event.setFormat(TextComponent.toLegacyText(format));

// check if messages should be sent manually
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,11 +85,10 @@ public static BaseComponent[] process(String format, Player processor, Placehold
componentList.addAll(Arrays.asList(TextComponent.fromLegacyText(remainder)));

// fix colors

ChatColor lastColor = ChatColor.WHITE;

for(BaseComponent baseComponent : componentList) {
if(baseComponent.getColorRaw() != null) {
for (BaseComponent baseComponent : componentList) {
if (baseComponent.getColorRaw() != null) {
lastColor = baseComponent.getColorRaw();
continue;
}
Expand Down
9 changes: 7 additions & 2 deletions src/main/resources/messages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,12 @@ chat:
blocked: "&cYour message containing \"{0}\" has been blocked."

command:
no_permission: "&cYou are not permitted to execute this command."
error:
no_permission: "&cYou are not permitted to execute this command."
player_not_found: "&cPlayer \"{0}\" could not be found."
player_not_online: "&cPlayer \"{0}\" is not online."
not_a_number: "&cInvalid number: {0}"
no_player: "&cThis command can only be executed as a player"

chat:
type_help: "&7Type \"/chat help\" for help"
Expand Down Expand Up @@ -58,4 +63,4 @@ command:


# do not touch
version: 1
version: 2

0 comments on commit bb58aec

Please sign in to comment.