2015-11-15 23:32:04 +00:00
|
|
|
package me.totalfreedom.totalfreedommod;
|
2015-10-19 17:43:46 +00:00
|
|
|
|
|
|
|
import me.totalfreedom.totalfreedommod.config.ConfigEntry;
|
|
|
|
import me.totalfreedom.totalfreedommod.util.FUtil;
|
2015-11-15 23:32:04 +00:00
|
|
|
import net.pravian.aero.component.service.AbstractService;
|
2015-10-19 17:43:46 +00:00
|
|
|
import org.bukkit.Bukkit;
|
|
|
|
import org.bukkit.ChatColor;
|
|
|
|
import org.bukkit.event.EventHandler;
|
|
|
|
import org.bukkit.event.EventPriority;
|
|
|
|
import org.bukkit.event.server.ServerListPingEvent;
|
|
|
|
|
2015-11-15 23:32:04 +00:00
|
|
|
public class ServerPing extends AbstractService<TotalFreedomMod>
|
2015-10-19 17:43:46 +00:00
|
|
|
{
|
2015-11-15 23:32:04 +00:00
|
|
|
|
|
|
|
public ServerPing(TotalFreedomMod plugin)
|
|
|
|
{
|
|
|
|
super(plugin);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
protected void onStart()
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
protected void onStop()
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
@EventHandler(priority = EventPriority.HIGH)
|
2015-10-19 17:43:46 +00:00
|
|
|
public void onServerPing(ServerListPingEvent event)
|
|
|
|
{
|
|
|
|
final String ip = event.getAddress().getHostAddress().trim();
|
|
|
|
|
|
|
|
if (plugin.bm.isIpBanned(ip))
|
|
|
|
{
|
|
|
|
event.setMotd(ChatColor.RED + "You are banned.");
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (ConfigEntry.ADMIN_ONLY_MODE.getBoolean())
|
|
|
|
{
|
|
|
|
event.setMotd(ChatColor.RED + "Server is closed.");
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (Bukkit.hasWhitelist())
|
|
|
|
{
|
|
|
|
event.setMotd(ChatColor.RED + "Whitelist enabled.");
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (Bukkit.getOnlinePlayers().size() >= Bukkit.getMaxPlayers())
|
|
|
|
{
|
|
|
|
event.setMotd(ChatColor.RED + "Server is full.");
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!ConfigEntry.SERVER_COLORFUL_MOTD.getBoolean())
|
|
|
|
{
|
|
|
|
event.setMotd(FUtil.colorize(ConfigEntry.SERVER_MOTD.getString()
|
|
|
|
.replace("%mcversion%", plugin.si.getVersion())));
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
// Colorful MOTD
|
|
|
|
|
|
|
|
final StringBuilder motd = new StringBuilder();
|
|
|
|
|
|
|
|
for (String word : ConfigEntry.SERVER_MOTD.getString().replace("%mcversion%", plugin.si.getVersion()).split(" "))
|
|
|
|
{
|
|
|
|
motd.append(FUtil.randomChatColor()).append(word).append(" ");
|
|
|
|
}
|
|
|
|
|
|
|
|
event.setMotd(FUtil.colorize(motd.toString()));
|
|
|
|
}
|
2015-11-15 23:32:04 +00:00
|
|
|
|
2015-10-19 17:43:46 +00:00
|
|
|
}
|