Code Feedback
package net.eterneon.atlas.listeners;
import io.papermc.paper.chat.ChatRenderer;
import io.papermc.paper.event.player.AsyncChatEvent;
import net.kyori.adventure.audience.Audience;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.minimessage.MiniMessage;
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin;
public class ChatListener implements Listener, ChatRenderer {
private final JavaPlugin plugin;
private final LegacyComponentSerializer legacy = LegacyComponentSerializer.legacyAmpersand();
private final MiniMessage miniMessage = MiniMessage.miniMessage();
public ChatListener(JavaPlugin plugin) {
this.plugin = plugin;
}
@EventHandler
public void onChat(AsyncChatEvent event) {
event.renderer(this); // Tell the event to use our renderer
}
@Override
public Component render(Player source, Component sourceDisplayName, Component message, Audience viewer) {
String format = plugin.getConfig().getString("chat.format", "{displayname} » {message}");
String type = plugin.getConfig().getString("chat.type", "minimessage").toLowerCase();
String prefix = "";
String suffix = "";
String formatted = format
.replace("{prefix}", prefix)
.replace("{displayname}", source.getName())
.replace("{suffix}", suffix)
.replace("{message}", type.equals("legacy")
? legacy.serialize(message)
: miniMessage.serialize(message));
if (type.equals("legacy")) {
return legacy.deserialize(formatted); // parse & into colors
} else {
return miniMessage.deserialize(formatted); // parse minimessage into components
}
}
}
package net.eterneon.atlas.listeners;
import io.papermc.paper.chat.ChatRenderer;
import io.papermc.paper.event.player.AsyncChatEvent;
import net.kyori.adventure.audience.Audience;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.minimessage.MiniMessage;
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin;
public class ChatListener implements Listener, ChatRenderer {
private final JavaPlugin plugin;
private final LegacyComponentSerializer legacy = LegacyComponentSerializer.legacyAmpersand();
private final MiniMessage miniMessage = MiniMessage.miniMessage();
public ChatListener(JavaPlugin plugin) {
this.plugin = plugin;
}
@EventHandler
public void onChat(AsyncChatEvent event) {
event.renderer(this); // Tell the event to use our renderer
}
@Override
public Component render(Player source, Component sourceDisplayName, Component message, Audience viewer) {
String format = plugin.getConfig().getString("chat.format", "{displayname} » {message}");
String type = plugin.getConfig().getString("chat.type", "minimessage").toLowerCase();
String prefix = "";
String suffix = "";
String formatted = format
.replace("{prefix}", prefix)
.replace("{displayname}", source.getName())
.replace("{suffix}", suffix)
.replace("{message}", type.equals("legacy")
? legacy.serialize(message)
: miniMessage.serialize(message));
if (type.equals("legacy")) {
return legacy.deserialize(formatted); // parse & into colors
} else {
return miniMessage.deserialize(formatted); // parse minimessage into components
}
}
}
1 Reply
prob should be for #development