Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ngx.core;
- import com.skionz.pingapi.PingEvent;
- import com.skionz.pingapi.PingListener;
- import com.skionz.pingapi.PingReply;
- import com.skionz.pingapi.ServerInfoPacket;
- import org.bukkit.Bukkit;
- import java.util.UUID;
- public class AnimatedMOTD implements PingListener {
- MainClass plugin;public AnimatedMOTD(MainClass plugin) {this.plugin = plugin;}
- private int MOTDcurrentline;
- private int MOTDPLAYERcurrentline;
- private int MOTDArraySize;
- private int MOTDPLAYERArraySize;
- private int Duration;
- private PingReply r;
- public void setupMOTDANIM() {
- addMOTDMSGS();
- MOTDArraySize = plugin.MOTDMSGS.size();
- MOTDPLAYERArraySize = plugin.MOTDMSGS.size();
- Duration = MOTDArraySize;
- MOTDcurrentline = 0;
- MOTDPLAYERcurrentline = 0;
- }
- public void addMOTDMSGS() {
- plugin.ltaAPI.ConfigListToList(plugin.MOTD, "Messages", plugin.MOTDMSGS);
- plugin.ltaAPI.ConfigListToList(plugin.MOTD, "PlayerListMessages", plugin.MOTDPLAYERMSGS);
- }
- public void onPing(PingEvent ping) {
- ping.setCancelled(true);
- final UUID id = UUID.randomUUID();
- final PingEvent event = ping;
- ping.cancelPong(true);
- plugin.MOTDRANDOMCooldowns.put(id, Duration);
- plugin.MOTDcooldownTasks.put(id, Bukkit.getServer().getScheduler().runTaskTimer(plugin, new Runnable() {
- public void run() {
- int timeLeft = plugin.MOTDRANDOMCooldowns.get(id);
- r = event.getReply();
- String MOTDmsg = plugin.ccAPI.convert(plugin.MOTDMSGS.get(MOTDcurrentline));
- String MOTDPLAYERmsg = plugin.ccAPI.convert(plugin.MOTDPLAYERMSGS.get(MOTDPLAYERcurrentline));
- if (MOTDcurrentline >= MOTDArraySize - 1) MOTDcurrentline = 0;
- else MOTDcurrentline++;
- if (MOTDPLAYERcurrentline >= MOTDPLAYERArraySize - 1) MOTDPLAYERcurrentline = 0;
- else MOTDPLAYERcurrentline++;
- r.setMOTD(MOTDmsg);
- r.setProtocolVersion(-1);
- r.setProtocolName(MOTDPLAYERmsg + plugin.getServer().getOnlinePlayers().size());
- ServerInfoPacket packet = event.createNewPacket(r);
- packet.setPingReply(r);
- packet.send();
- r = null;
- if (timeLeft == 0) {
- plugin.MOTDRANDOMCooldowns.remove(id);
- int cooldownTask = plugin.MOTDcooldownTasks.remove(id);
- if (Bukkit.getServer().getScheduler().isCurrentlyRunning(cooldownTask) || Bukkit.getServer().getScheduler().isQueued(cooldownTask)) {
- Bukkit.getServer().getScheduler().cancelTask(cooldownTask);
- }
- } else {
- plugin.MOTDRANDOMCooldowns.put(id, timeLeft - 1);
- }
- }
- }, 0L, plugin.MOTD.getInt("Settings.Interval")).getTaskId());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement