Plex/server/src/main/java/dev/plex/listener/impl/ServerListener.java

48 lines
1.8 KiB
Java
Raw Normal View History

2021-01-03 07:21:15 +00:00
package dev.plex.listener.impl;
2022-02-22 01:26:50 +00:00
import com.destroystokyo.paper.event.server.PaperServerListPingEvent;
2021-01-03 07:21:15 +00:00
import dev.plex.listener.PlexListener;
2022-04-19 20:49:21 +00:00
import dev.plex.util.PlexUtils;
2022-04-19 20:31:34 +00:00
import dev.plex.util.RandomUtil;
2022-04-19 20:49:21 +00:00
import net.kyori.adventure.text.Component;
import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
2022-02-22 01:26:50 +00:00
2023-03-08 20:26:10 +00:00
import java.util.List;
import java.util.concurrent.atomic.AtomicReference;
public class ServerListener extends PlexListener
{
@EventHandler
2022-02-22 01:26:50 +00:00
public void onServerPing(PaperServerListPingEvent event)
{
String baseMotd = plugin.config.getString("server.motd");
baseMotd = baseMotd.replace("\\n", "\n");
baseMotd = baseMotd.replace("%servername%", plugin.config.getString("server.name"));
baseMotd = baseMotd.replace("%mcversion%", Bukkit.getBukkitVersion().split("-")[0]);
if (plugin.config.getBoolean("server.colorize_motd"))
{
2022-04-19 20:49:21 +00:00
AtomicReference<Component> motd = new AtomicReference<>(Component.empty());
for (final String word : baseMotd.split(" "))
{
2022-04-19 20:58:38 +00:00
motd.set(motd.get().append(Component.text(word).color(RandomUtil.getRandomColor())));
motd.set(motd.get().append(Component.space()));
}
2022-04-19 20:49:21 +00:00
event.motd(motd.get());
2022-02-22 09:30:23 +00:00
}
else
2022-02-22 01:26:50 +00:00
{
2022-04-19 20:49:21 +00:00
event.motd(PlexUtils.mmDeserialize(baseMotd.trim()));
}
2022-02-22 01:26:50 +00:00
if (plugin.config.contains("server.sample"))
{
2022-02-22 01:26:50 +00:00
List<String> samples = plugin.config.getStringList("server.sample");
if (!samples.isEmpty())
{
2022-02-22 06:55:59 +00:00
event.getPlayerSample().clear();
2023-03-08 11:45:47 +00:00
event.getPlayerSample().addAll(samples.stream().map(string -> string.replace("&", "§")).map(Bukkit::createProfile).toList());
2022-02-22 01:26:50 +00:00
}
}
}
}