Guest User

Untitled

a guest
Feb 25th, 2015
258
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package ngx.core;
  2.  
  3. import com.skionz.pingapi.PingEvent;
  4. import com.skionz.pingapi.PingListener;
  5. import com.skionz.pingapi.PingReply;
  6. import com.skionz.pingapi.ServerInfoPacket;
  7. import org.bukkit.Bukkit;
  8.  
  9. import java.util.UUID;
  10.  
  11. public class AnimatedMOTD implements PingListener {
  12.     MainClass plugin;public AnimatedMOTD(MainClass plugin) {this.plugin = plugin;}
  13.  
  14.     private int MOTDcurrentline;
  15.     private int MOTDPLAYERcurrentline;
  16.     private int MOTDArraySize;
  17.     private int MOTDPLAYERArraySize;
  18.     private int Duration;
  19.     private PingReply r;
  20.  
  21.     public void setupMOTDANIM() {
  22.         addMOTDMSGS();
  23.         MOTDArraySize = plugin.MOTDMSGS.size();
  24.         MOTDPLAYERArraySize = plugin.MOTDMSGS.size();
  25.         Duration = MOTDArraySize;
  26.         MOTDcurrentline = 0;
  27.         MOTDPLAYERcurrentline = 0;
  28.     }
  29.  
  30.     public void addMOTDMSGS() {
  31.         plugin.ltaAPI.ConfigListToList(plugin.MOTD, "Messages", plugin.MOTDMSGS);
  32.         plugin.ltaAPI.ConfigListToList(plugin.MOTD, "PlayerListMessages", plugin.MOTDPLAYERMSGS);
  33.     }
  34.  
  35.     public void onPing(PingEvent ping) {
  36.         ping.setCancelled(true);
  37.         final UUID id = UUID.randomUUID();
  38.         final PingEvent event = ping;
  39.         ping.cancelPong(true);
  40.  
  41.         plugin.MOTDRANDOMCooldowns.put(id, Duration);
  42.  
  43.         plugin.MOTDcooldownTasks.put(id, Bukkit.getServer().getScheduler().runTaskTimer(plugin, new Runnable() {
  44.             public void run() {
  45.  
  46.                 int timeLeft = plugin.MOTDRANDOMCooldowns.get(id);
  47.                 r = event.getReply();
  48.  
  49.                 String MOTDmsg = plugin.ccAPI.convert(plugin.MOTDMSGS.get(MOTDcurrentline));
  50.                 String MOTDPLAYERmsg = plugin.ccAPI.convert(plugin.MOTDPLAYERMSGS.get(MOTDPLAYERcurrentline));
  51.  
  52.                 if (MOTDcurrentline >= MOTDArraySize - 1) MOTDcurrentline = 0;
  53.                 else MOTDcurrentline++;
  54.                 if (MOTDPLAYERcurrentline >= MOTDPLAYERArraySize - 1) MOTDPLAYERcurrentline = 0;
  55.                 else MOTDPLAYERcurrentline++;
  56.  
  57.                 r.setMOTD(MOTDmsg);
  58.                 r.setProtocolVersion(-1);
  59.                 r.setProtocolName(MOTDPLAYERmsg + plugin.getServer().getOnlinePlayers().size());
  60.  
  61.                 ServerInfoPacket packet = event.createNewPacket(r);
  62.                 packet.setPingReply(r);
  63.                 packet.send();
  64.                 r = null;
  65.  
  66.                 if (timeLeft == 0) {
  67.                     plugin.MOTDRANDOMCooldowns.remove(id);
  68.                     int cooldownTask = plugin.MOTDcooldownTasks.remove(id);
  69.                     if (Bukkit.getServer().getScheduler().isCurrentlyRunning(cooldownTask) || Bukkit.getServer().getScheduler().isQueued(cooldownTask)) {
  70.                         Bukkit.getServer().getScheduler().cancelTask(cooldownTask);
  71.                     }
  72.                 } else {
  73.                     plugin.MOTDRANDOMCooldowns.put(id, timeLeft - 1);
  74.                 }
  75.             }
  76.         }, 0L, plugin.MOTD.getInt("Settings.Interval")).getTaskId());
  77.     }
  78. }
RAW Paste Data