Advertisement
Guest User

Untitled

a guest
Jun 21st, 2011
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.07 KB | None | 0 0
  1. /*
  2. * Erm, sorry for the mess... And ugly workarounds...
  3. */
  4. // Fresh from the repo!
  5. importPackage(java.util);
  6. importPackage(org.bukkit.craftbukkit);
  7. importClass(java.lang.StringBuilder);
  8. function who(sender) { // Called when a player calls the playerlist command.
  9. // Code shamelessly ripped, translatedd and modified...
  10. if (!SpyerAdmin.hasPermission(sender, "essentials.list")) {
  11. return;
  12. }
  13. var online = new StringBuilder();
  14. online.append(ChatColour.get("Blue")).append("There are ")
  15. .append(ChatColour.get("Red"));
  16. if (!SpyerAdmin.isSeeAll(sender)) {
  17. sbIntAppend(online, Server.getOnlinePlayers().length
  18. - SpyerAdmin.numOfHidenPlayers());
  19. } else {
  20. sbIntAppend(online, Server.getOnlinePlayers().length);
  21. }
  22. online.append(ChatColour.get("Blue")).append(" out of a maximum ")
  23. .append(ChatColour.get("Red"));
  24. sbIntAppend(online, Server.getMaxPlayers());
  25. online.append(ChatColour.get("Blue")).append(" players online.");
  26. sender.sendMessage(online.toString());
  27. var pl = Server.getPluginManager().getPlugin("Essentials");
  28. if (pl.getSettings().getSortListByGroups()) {
  29. var sort = new HashMap();
  30. for (i = 0; i < Server.getOnlinePlayers().length; i++) {
  31. var p = Server.getOnlinePlayers()[i];
  32. if (!SpyerAdmin.isQuit(p.getName()) || SpyerAdmin.isSeeAll(sender)) {
  33. var u = getUserFromPlayer(p);
  34. var group = u.getGroup();
  35. var list = sort.get(group);
  36. if (list == null) {
  37. list = new ArrayList();
  38. sort.put(group, list);
  39. }
  40. list.add(u);
  41. }
  42. }
  43. var groups = sort.keySet().toArray(java.lang.reflect.Array.newInstance(
  44. java.lang.String, 0));
  45. Arrays.sort(groups, java.lang.String.CASE_INSENSITIVE_ORDER);
  46. for (i = 0; i < groups.length; i++) {
  47. var group = groups[i];
  48. var groupString = new java.lang.StringBuilder();
  49. groupString.append(group).append(": ");
  50. var users = sort.get(group);
  51. Collections.sort(users);
  52. var first = true;
  53. for (b = 0; b < users.size(); b++) {
  54. var user = users.get(b);
  55. if (!SpyerAdmin.isQuit(user.getName())
  56. || SpyerAdmin.isSeeAll(sender)) {
  57.  
  58. if (!first) {
  59. groupString.append(", ");
  60. } else {
  61. first = false;
  62. }
  63. if (user.isAfk()) {
  64. groupString.append("§7[AFK]§f");
  65. }
  66.  
  67. groupString.append(user.getDisplayName());
  68. }
  69.  
  70. }
  71. sender.sendMessage(groupString.toString());
  72. }
  73. } else {
  74. var users = new ArrayList();
  75. for (i = 0; i < Server.getOnlinePlayers().length; i++) {
  76. var p = Server.getOnlinePlayers()[i];
  77. if (!SpyerAdmin.isQuit(p.getName()) || SpyerAdmin.isSeeAll(sender)) {
  78. users.add(getUserFromPlayer(p));
  79. }
  80. }
  81. Collections.sort(users);
  82.  
  83. var onlineUsers = new java.lang.StringBuilder();
  84. onlineUsers.append("Connected players: ");
  85. var first = true;
  86. for (b = 0; b < users.size(); b++) {
  87. var user = users.get(b);
  88. if (!first) {
  89. onlineUsers.append(", ");
  90. } else {
  91. first = false;
  92. }
  93. if (user.isAfk()) {
  94. onlineUsers.append("§7[AFK]§f");
  95. }
  96. onlineUsers.append(user.getDisplayName());
  97. }
  98. sender.sendMessage(onlineUsers.toString());
  99. println(onlineUsers.toString());
  100. }
  101. }
  102. function getUserFromPlayer(player) { // Ugly workaround... Instantiates a
  103. // user object.
  104. var cl = CLLoader.getCl("plugins/Essentials.jar",
  105. "com.earth2me.essentials.Essentials");
  106. /*print(com.earth2me.essentials.Essentials);
  107. var getUsr = CLLoader.getFirstMethod(cl, "getUser");
  108. print(getUsr);
  109. var args= java.lang.reflect.Array.newInstance(java.lang.Object, 1);
  110. args[0] = player;
  111. return CLLoader.invokeMethod(getUsr, cl.cast(Server.getPluginManager().getPlugin("Essentials")), args);*/
  112. var ess=cl.cast(Server.getPluginManager().getPlugin("Essentials"));
  113. return ess.getUser(player);
  114. }
  115. // Load the console...
  116. var consleClass = CLLoader.getCl("plugins/Essentials.jar",
  117. "com.earth2me.essentials.Console");
  118. var consleArgs = java.lang.reflect.Array.newInstance(java.lang.Object, 0);
  119. var consleParams = java.lang.reflect.Array.newInstance(java.lang.Class, 0);
  120. var console = CLLoader.invokeMethod(consleClass.getMethod("getConsoleReplyTo",
  121. consleParams), null, consleArgs);
  122. function getReplyToCSL(player) { // Calls getReplyTo in the console object.
  123. var getReply = CLLoader.getFirstMethod(console.getClass(), "getReplyTo");
  124. var args = java.lang.reflect.Array.newInstance(java.lang.Object, 0);
  125. return CLLoader.invokeMethod(getReply, console, args);
  126. }
  127. function setReplyToCSL(user) { // Calls setReplyTo in the console object.
  128. var setReply = CLLoader.getFirstMethod(console, "setReplyTo");
  129. var args = java.lang.reflect.Array.newInstance(java.lang.Object, 1);
  130. args[0] = user;
  131. CLLoader.invokeMethod(setReply, console, args);
  132. }
  133. function sbIntAppend(sb, inter) { // Ha ha, dynamic casting is stupid...
  134. // "There are 0.0 players out of 20.0 max"
  135. // or something like that... XD
  136. sb.append(new java.lang.Integer(inter));
  137. }
  138. function getFinalArg(args, start) { // getFinalArg from EssentialsCommand
  139. var bldr = new StringBuilder();
  140. for (i = start; i < args.length; i++) {
  141. if (i != start)
  142. bldr.append(" ");
  143. bldr.append(args[i]);
  144. }
  145. return bldr.toString();
  146. }
  147.  
  148. function playerMsg(sender, args, commandLabel) { // Called when a player
  149. // calls the msg command.
  150. // Code shamelessly ripped, translatedd and modified...
  151. if (!SpyerAdmin.hasPermission(sender, "essentials.msg")) {
  152. return;
  153. }
  154. if (args.length < 2 || args[0].trim().length() == 0
  155. || args[1].trim().length() == 0) {
  156. sender.sendMessage("§cUsage: /" + commandLabel + " [player] [message]");
  157. return;
  158. }
  159.  
  160. var message = getFinalArg(args, 1);
  161.  
  162. var replyTo;
  163. if (sender instanceof org.bukkit.entity.Player) {
  164. replyTo = getUserFromPlayer(sender);
  165. } else {
  166. replyTo = console;
  167. }
  168. var senderName;
  169. if (sender instanceof org.bukkit.entity.Player) {
  170. senderName = sender.getDisplayName();
  171. } else {
  172. senderName = "Console";
  173. }
  174.  
  175. if (args[0].equalsIgnoreCase("Console")) {
  176. sender.sendMessage("[Me -> " + "Console" + "§f] " + message);
  177. var cs;
  178. if (!(Server instanceof org.bukkit.craftbukkit.CraftServer)) {
  179. throw new java.lang.Exception("Invalid server!");
  180. }
  181. cs = Server.getServer().console;
  182. cs.sendMessage("[" + senderName + " -> Me§f] " + message);
  183. replyTo.setReplyTo(cs);
  184. console.setReplyTo(sender);
  185. return;
  186. }
  187.  
  188. var matches = Server.matchPlayer(args[0]);
  189. if (!SpyerAdmin.isSeeAll(sender)) {
  190. //var qp = new java.util.ArrayList(SpyerAdmin.quitPlayers());
  191. //for (i = 0; i < qp.size(); i++) {
  192. // println(qp.get(i));
  193. // matches.remove(qp.get(i));
  194. //}
  195. matches.removeAll(SpyerAdmin.quitPlayers());
  196. }
  197. if (matches.isEmpty()) {
  198. sender.sendMessage("§cThere are no players matching that name.");
  199. return;
  200. }
  201. var count = 0;
  202. for (i = 0; i < matches.size(); i++) {
  203. var p = matches.get(i);
  204. // if ((!SpyerAdmin.isQuit(sender))
  205. // || (SpyerAdmin.isQuit(sender) && SpyerAdmin.isSeeAll(p))) {
  206. if (SpyerAdmin.isSeeAll(p) || !SpyerAdmin.isQuit(sender)) {
  207. sender.sendMessage("[Me -> " + p.getDisplayName() + "§f] "
  208. + message);
  209. p.sendMessage("[" + senderName + " -> Me§f] " + message);
  210. replyTo.setReplyTo(getUserFromPlayer(p));
  211. getUserFromPlayer(p).setReplyTo(sender);
  212. count = count + 1;
  213. }
  214.  
  215. // }
  216. }
  217. if (count == 0) {
  218. sender.sendMessage("§cThere are no players matching that name.");
  219. }
  220. }
  221. function playerLeaving(plr) {// Called when a player pseudo-leaves
  222. Server.broadcastMessage(new StringBuilder()
  223. .append(ChatColour.get("Yellow")).append(plr.getName())
  224. .append(" left the game.").toString());
  225. }
  226. function playerJoining(plr) {// Called when a player pseudo-joins
  227. Server.broadcastMessage(new StringBuilder()
  228. .append(ChatColour.get("Yellow")).append(plr.getName())
  229. .append(" joined the game.").toString());
  230. }
  231. function reply(sender, args, commandLabel) {// Called when a player calls the r
  232. // command.
  233. // Code shamelessly ripped, translatedd and modified...
  234. if (!SpyerAdmin.hasPermission(sender, "essentials.msg")) {
  235. return;
  236. }
  237. if (args.length < 1) {
  238. sender.sendMessage("§cUsage: /" + commandLabel + " [message]");
  239. return;
  240. }
  241.  
  242. var message = getFinalArg(args, 0);
  243. var replyTo;
  244. if (sender instanceof org.bukkit.entity.Player) {
  245. replyTo = getUserFromPlayer(sender);
  246. } else {
  247. replyTo = console
  248. }
  249. var senderName;
  250. if (sender instanceof org.bukkit.entity.Player) {
  251. senderName = (sender).getDisplayName();
  252. } else {
  253. senderName = "Console";
  254. }
  255. var target = replyTo.getReplyTo();
  256. var targetName;
  257. if (target instanceof org.bukkit.entity.Player) {
  258. targetName = (target).getDisplayName();
  259. } else {
  260. targetName = "Console";
  261. }
  262. if (target == null || (SpyerAdmin.isQuit(targetName))
  263. && !SpyerAdmin.isSeeAll(targetName)) {
  264. sender.sendMessage("§cYou have nobody to whom you can reply.");
  265. }
  266. sender.sendMessage("[Me -> " + targetName + "] " + message);
  267. target.sendMessage("[" + senderName + " -> Me] " + message);
  268. replyTo.setReplyTo(target);
  269. if (target != sender) {
  270. if (target instanceof org.bukkit.entity.Player) {
  271. getUserFromPlayer(target).setReplyTo(sender);
  272. } else {
  273. console.setReplyTo(sender);
  274. }
  275. }
  276. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement