Guest User

main

a guest
May 24th, 2016
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 18.92 KB | None | 0 0
  1. package com.roei12.mh2;
  2.  
  3. import com.roei12.mh2.PlayerListener;
  4. import java.util.ArrayList;
  5. import java.util.HashMap;
  6. import java.util.Iterator;
  7. import java.util.logging.Logger;
  8. import org.bukkit.Bukkit;
  9. import org.bukkit.ChatColor;
  10. import org.bukkit.OfflinePlayer;
  11. import org.bukkit.World;
  12. import org.bukkit.command.Command;
  13. import org.bukkit.command.CommandSender;
  14. import org.bukkit.entity.Player;
  15. import org.bukkit.plugin.java.JavaPlugin;
  16.  
  17. public class main extends JavaPlugin {
  18.  
  19. Logger log = Logger.getLogger("minecraft");
  20. HashMap perms = new HashMap();
  21. ArrayList worlds = new ArrayList();
  22. String np;
  23. double dh;
  24. boolean vh;
  25.  
  26.  
  27. public main() {
  28. this.np = ChatColor.RED + "You don\'t have permission to use this command";
  29. this.dh = 20.0D;
  30. this.vh = false;
  31. }
  32.  
  33. public void onEnable() {
  34. this.log.info("[MoreHearts V2] Has been enabled!");
  35. Bukkit.getPluginManager().registerEvents(new PlayerListener(this), this);
  36. if(!this.getConfig().contains("Players")) {
  37. int o = 1000 + (int)(Math.random() * 999999.0D);
  38. this.getConfig().createSection("Players");
  39. this.getConfig().createSection("Permissions");
  40. this.getConfig().set("DefaultHearts", Integer.valueOf(10));
  41. this.getConfig().set("EnableIn", ((World)Bukkit.getWorlds().get(0)).getName());
  42. this.getConfig().set("HideHearts", Boolean.valueOf(false));
  43. this.getConfig().set("ResetPassword", Integer.valueOf(o));
  44. this.saveConfig();
  45. }
  46.  
  47. this.dh = this.getConfig().getDouble("DefaultHearts") * 2.0D;
  48. this.vh = this.getConfig().getBoolean("HideHearts");
  49. this.refperms();
  50. this.refworlds();
  51. Player[] var4;
  52. int var3 = (var4 = Bukkit.getOnlinePlayers()).length;
  53.  
  54. for(int var2 = 0; var2 < var3; ++var2) {
  55. Player var5 = var4[var2];
  56. this.refpl(var5);
  57. }
  58.  
  59. }
  60.  
  61. public void onDisable() {
  62. this.log.info("[MoreHearts V2] Has been disabled!");
  63. Player[] var4;
  64. int var3 = (var4 = Bukkit.getOnlinePlayers()).length;
  65.  
  66. int a;
  67. for(a = 0; a < var3; ++a) {
  68. Player ws = var4[a];
  69. this.getConfig().set("Players." + ws.getName() + ".LastSeenAs", ws.getName());
  70. this.getConfig().set("Players." + ws.getName() + ".HP", Double.valueOf(ws.getHealth()));
  71. ws.setMaxHealth(20.0D);
  72. }
  73.  
  74. String var5 = (String)this.worlds.get(0);
  75.  
  76. for(a = 1; a < this.worlds.size(); ++a) {
  77. var5 = var5 + "," + (String)this.worlds.get(a);
  78. }
  79.  
  80. this.getConfig().set("EnableIn", var5);
  81. this.saveConfig();
  82. }
  83.  
  84. public boolean onCommand(CommandSender s, Command cmd, String command, String[] args) {
  85. Player opl;
  86. if(command.equalsIgnoreCase("hearts") && s instanceof Player) {
  87. if(!s.hasPermission("morehearts.hearts")) {
  88. s.sendMessage(this.np);
  89. return false;
  90. }
  91.  
  92. opl = (Player)s;
  93. s.sendMessage(ChatColor.AQUA + "You have " + ChatColor.GREEN + opl.getHealth() / 2.0D + ChatColor.AQUA + "/" + ChatColor.GREEN + opl.getMaxHealth() / 2.0D + ChatColor.AQUA + " hearts!");
  94. }
  95.  
  96. if(command.equalsIgnoreCase("mh") || command.equalsIgnoreCase("morehearts")) {
  97. if(args.length == 0) {
  98. if(!s.hasPermission("morehearts.help")) {
  99. s.sendMessage(this.np);
  100. return false;
  101. }
  102.  
  103. this.sendMessages(s, ChatColor.GREEN + "MoreHearts V2 help:;" + ChatColor.AQUA + "<> - Required " + ChatColor.GREEN + "[] - Optional;" + ChatColor.AQUA + "/mh refresh -" + ChatColor.GREEN + " reload config;" + ChatColor.AQUA + "/mh add <player> <amount> - " + ChatColor.GREEN + "Add hearts to a player;" + ChatColor.AQUA + "/mh set <player> <amount> - " + ChatColor.GREEN + "Set hearts for a player;" + ChatColor.AQUA + "/mh addworld [world] - " + ChatColor.GREEN + "Enable MoreHearts in a world;" + ChatColor.AQUA + "/mh addallworlds - " + ChatColor.GREEN + "Will enable morehearts in every loaded world;" + ChatColor.AQUA + "/mh removeworld [world] - " + ChatColor.GREEN + "Remove a world;" + ChatColor.AQUA + "/mh worlds - " + ChatColor.GREEN + "All world that MoreHearts is enabled in;" + ChatColor.AQUA + "/mh reset <Password> - " + ChatColor.GREEN + "Delete config;" + ChatColor.AQUA + "/hearts - " + ChatColor.GREEN + "Check your real health (useful only if HideHearts is off");
  104. } else {
  105. Player[] var8;
  106. int var12;
  107. Player var14;
  108. int var15;
  109. if(args.length == 1) {
  110. if(!s.hasPermission("morehearts." + args[0].toLowerCase())) {
  111. s.sendMessage(this.np);
  112. return false;
  113. }
  114.  
  115. if(args[0].equalsIgnoreCase("worlds")) {
  116. boolean var11 = true;
  117. s.sendMessage(ChatColor.GREEN + "MoreHearts is enabled in:");
  118.  
  119. for(Iterator d = this.worlds.iterator(); d.hasNext(); var11 = !var11) {
  120. String p = (String)d.next();
  121. if(var11) {
  122. s.sendMessage(ChatColor.AQUA + "- " + p);
  123. } else {
  124. s.sendMessage(ChatColor.GREEN + "- " + p);
  125. }
  126. }
  127. } else if(args[0].equalsIgnoreCase("refresh")) {
  128. this.reloadConfig();
  129. this.refperms();
  130. this.refworlds();
  131. var15 = (var8 = Bukkit.getOnlinePlayers()).length;
  132.  
  133. for(var12 = 0; var12 < var15; ++var12) {
  134. opl = var8[var12];
  135. this.refpl(opl);
  136. }
  137.  
  138. s.sendMessage(ChatColor.GREEN + "Everything has been refreshed!");
  139. } else {
  140. Player[] eh;
  141. int var18;
  142. if(args[0].equalsIgnoreCase("addworld")) {
  143. if(s instanceof Player) {
  144. opl = (Player)s;
  145. if(!this.worlds.contains(opl.getWorld().getName())) {
  146. this.worlds.add(opl.getWorld().getName());
  147. opl.sendMessage(ChatColor.GREEN + "The world \'" + ChatColor.GREEN + opl.getWorld().getName() + ChatColor.AQUA + "\' has been added!");
  148. var18 = (eh = Bukkit.getOnlinePlayers()).length;
  149.  
  150. for(var15 = 0; var15 < var18; ++var15) {
  151. var14 = eh[var15];
  152. this.refpl(var14);
  153. }
  154.  
  155. this.saveworlds();
  156. } else {
  157. opl.sendMessage(ChatColor.RED + "MoreHearts is already enabled in this world");
  158. }
  159. }
  160. } else if(args[0].equalsIgnoreCase("removeworld")) {
  161. if(s instanceof Player) {
  162. opl = (Player)s;
  163. if(this.worlds.contains(opl.getWorld().getName())) {
  164. this.worlds.remove(opl.getWorld().getName());
  165. opl.sendMessage(ChatColor.GREEN + "MoreHearts is no longer enabled in the world \'" + ChatColor.GREEN + opl.getWorld().getName() + ChatColor.AQUA + "\'");
  166. var18 = (eh = Bukkit.getOnlinePlayers()).length;
  167.  
  168. for(var15 = 0; var15 < var18; ++var15) {
  169. var14 = eh[var15];
  170. this.refpl(var14);
  171. }
  172.  
  173. this.saveworlds();
  174. } else {
  175. opl.sendMessage(ChatColor.RED + "MoreHearts is not enabled in this world");
  176. }
  177. }
  178. } else if(args[0].equalsIgnoreCase("addallworlds")) {
  179. for(Iterator var16 = Bukkit.getWorlds().iterator(); var16.hasNext(); this.saveworlds()) {
  180. World var13 = (World)var16.next();
  181. if(!this.worlds.contains(var13.getName())) {
  182. this.worlds.add(var13.getName());
  183. }
  184. }
  185.  
  186. var15 = (var8 = Bukkit.getOnlinePlayers()).length;
  187.  
  188. for(var12 = 0; var12 < var15; ++var12) {
  189. opl = var8[var12];
  190. this.refpl(opl);
  191. }
  192.  
  193. s.sendMessage(ChatColor.GREEN + "MoreHearts has been enabled in every loaded world!");
  194. } else if(args[0].equalsIgnoreCase("reset")) {
  195. s.sendMessage(ChatColor.RED + "Usage: /mh reset <Password>");
  196. } else if(args[0].equalsIgnoreCase("add")) {
  197. s.sendMessage(ChatColor.RED + "Usage: /mh add <Player> <Amount>");
  198. } else if(args[0].equalsIgnoreCase("set")) {
  199. s.sendMessage(ChatColor.RED + "Usage: /mh set <Player> <Amount>");
  200. } else {
  201. s.sendMessage(ChatColor.RED + "Unknown command.");
  202. }
  203. }
  204. } else if(args.length == 2) {
  205. if(!s.hasPermission("morehearts." + args[0].toLowerCase())) {
  206. s.sendMessage(this.np);
  207. } else if(args[0].equalsIgnoreCase("refresh")) {
  208. s.sendMessage(ChatColor.RED + "Usage: /mh refresh");
  209. } else if(args[0].equalsIgnoreCase("add")) {
  210. s.sendMessage(ChatColor.RED + "Usage: /mh add <Player> <amount>");
  211. } else if(args[0].equalsIgnoreCase("set")) {
  212. s.sendMessage(ChatColor.RED + "Usage: /mh set <Player <Amount>");
  213. } else if(args[0].equalsIgnoreCase("addworld")) {
  214. if(!this.worlds.contains(args[1])) {
  215. this.worlds.add(args[1]);
  216. this.saveworlds();
  217. s.sendMessage(ChatColor.GREEN + "MoreHearts has been enabled in the world \'" + ChatColor.AQUA + args[1] + ChatColor.GREEN + "\'");
  218. } else {
  219. s.sendMessage(ChatColor.GREEN + "MoreHearts is already disabled in the world \'" + ChatColor.AQUA + "\'");
  220. }
  221. } else if(args[0].equalsIgnoreCase("addallworlds")) {
  222. s.sendMessage(ChatColor.RED + "Usage: /mh addallworlds");
  223. } else if(args[0].equalsIgnoreCase("removeworld")) {
  224. if(this.worlds.contains(args[1])) {
  225. this.worlds.remove(args[1]);
  226. this.saveworlds();
  227. s.sendMessage(ChatColor.GREEN + "MoreHearts has been disabled in the world \'" + ChatColor.AQUA + args[1] + ChatColor.GREEN + "\'");
  228. } else {
  229. s.sendMessage(ChatColor.GREEN + "MoreHearts is already disabled in the world \'" + ChatColor.AQUA + "\'");
  230. }
  231. } else if(args[0].equalsIgnoreCase("worlds")) {
  232. s.sendMessage(ChatColor.RED + "Usage: /mh worlds");
  233. } else if(args[0].equalsIgnoreCase("reset")) {
  234. if(args[1].equals(this.getConfig().getString("ResetPassword"))) {
  235. this.getConfig().set("Players", (Object)null);
  236. this.getConfig().set("Permissions", (Object)null);
  237. this.getConfig().set("DefaultHearts", Integer.valueOf(10));
  238. this.getConfig().set("EnableIn", Bukkit.getWorlds().get(0));
  239. this.getConfig().set("HideHearts", Boolean.valueOf(true));
  240. this.saveConfig();
  241. this.refperms();
  242. this.refworlds();
  243. var15 = (var8 = Bukkit.getOnlinePlayers()).length;
  244.  
  245. for(var12 = 0; var12 < var15; ++var12) {
  246. opl = var8[var12];
  247. this.refpl(opl);
  248. }
  249.  
  250. s.sendMessage(ChatColor.GREEN + "Config has been reseted!");
  251. } else {
  252. s.sendMessage(ChatColor.RED + "Incorrect Password");
  253. }
  254. } else {
  255. s.sendMessage(ChatColor.RED + "Unknown Command");
  256. }
  257. } else if(args.length == 3) {
  258. if(!s.hasPermission("morehearts." + args[0].toLowerCase())) {
  259. s.sendMessage(this.np);
  260. } else if(args[0].equalsIgnoreCase("refresh")) {
  261. s.sendMessage(ChatColor.RED + "Usage: /mh refresh");
  262. } else {
  263. OfflinePlayer var17;
  264. double var19;
  265. if(args[0].equalsIgnoreCase("add")) {
  266. var17 = Bukkit.getOfflinePlayer(args[1]);
  267. if(!var17.isOnline()) {
  268. s.sendMessage(ChatColor.RED + "The player \'" + args[1] + "\' isn\'t online!");
  269. } else {
  270. var14 = (Player)var17;
  271. var19 = Double.parseDouble(args[2]);
  272. double var20 = this.getConfig().getDouble("Players." + var14.getName() + ".ExtraHearts");
  273. this.getConfig().set("Players." + var14.getName() + ".ExtraHearts", Double.valueOf(var20 + var19));
  274. this.saveConfig();
  275. this.refpl(var14);
  276. s.sendMessage("" + ChatColor.GREEN + var19 + " hearts has been added to " + var14.getName());
  277. }
  278. } else if(args[0].equalsIgnoreCase("set")) {
  279. var17 = Bukkit.getOfflinePlayer(args[1]);
  280. if(!var17.isOnline()) {
  281. s.sendMessage(ChatColor.RED + "The player \'" + args[1] + "\' isn\'t online!");
  282. } else {
  283. var14 = (Player)var17;
  284. var19 = Double.parseDouble(args[2]);
  285. this.getConfig().set("Players." + var14.getName() + ".ExtraHearts", Double.valueOf(var19));
  286. this.saveConfig();
  287. this.refpl(var14);
  288. s.sendMessage(ChatColor.GREEN + var14.getName() + "Extra hearts set to " + var19);
  289. }
  290. } else if(args[0].equalsIgnoreCase("addworld")) {
  291. s.sendMessage(ChatColor.RED + "Usage: /mh addworld [world]");
  292. } else if(args[0].equalsIgnoreCase("addallworlds")) {
  293. s.sendMessage(ChatColor.RED + "Usage: /mh addallworlds");
  294. } else if(args[0].equalsIgnoreCase("removeworld")) {
  295. s.sendMessage(ChatColor.RED + "Usage: /mh removeworld [world]");
  296. } else if(args[0].equalsIgnoreCase("worlds")) {
  297. s.sendMessage(ChatColor.RED + "Usage: /mh worlds");
  298. } else if(args[0].equalsIgnoreCase("reset")) {
  299. s.sendMessage(ChatColor.RED + "Usage: /mh reset <Password>");
  300. } else {
  301. s.sendMessage(ChatColor.RED + "Unknown Command");
  302. }
  303. }
  304. } else if(!s.hasPermission("morehearts." + args[0].toLowerCase())) {
  305. s.sendMessage(this.np);
  306. } else if(args[0].equalsIgnoreCase("refresh")) {
  307. s.sendMessage(ChatColor.RED + "Usage: /mh refresh");
  308. } else if(args[0].equalsIgnoreCase("add")) {
  309. s.sendMessage(ChatColor.RED + "Usage: /mh add <Player> <Amount>");
  310. } else if(args[0].equalsIgnoreCase("set")) {
  311. s.sendMessage(ChatColor.RED + "Usage: /mh set <Player> <Amount>");
  312. } else if(args[0].equalsIgnoreCase("addworld")) {
  313. s.sendMessage(ChatColor.RED + "Usage: /mh addworld [world]");
  314. } else if(args[0].equalsIgnoreCase("addallworlds")) {
  315. s.sendMessage(ChatColor.RED + "Usage: /mh addallworlds");
  316. } else if(args[0].equalsIgnoreCase("removeworld")) {
  317. s.sendMessage(ChatColor.RED + "Usage: /mh removeworld [world]");
  318. } else if(args[0].equalsIgnoreCase("worlds")) {
  319. s.sendMessage(ChatColor.RED + "Usage: /mh worlds");
  320. } else if(args[0].equalsIgnoreCase("reset")) {
  321. s.sendMessage(ChatColor.RED + "Usage: /mh reset <Password>");
  322. } else {
  323. s.sendMessage(ChatColor.RED + "Unknown Command");
  324. }
  325. }
  326. }
  327.  
  328. return false;
  329. }
  330.  
  331. public void refpl(Player p) {
  332. double sum = this.dh;
  333. if(this.worlds.contains(p.getWorld().getName())) {
  334. if(this.getConfig().contains("Players." + p.getName() + ".ExtraHearts")) {
  335. sum += this.getConfig().getDouble("Players." + p.getName() + ".ExtraHearts") * 2.0D;
  336. } else {
  337. this.getConfig().set("Players." + p.getName() + ".ExtraHearts", Integer.valueOf(0));
  338. this.saveConfig();
  339. }
  340.  
  341. Iterator var5 = this.perms.keySet().iterator();
  342.  
  343. while(var5.hasNext()) {
  344. String hp = (String)var5.next();
  345. if(p.isPermissionSet(hp)) {
  346. sum += ((Double)this.perms.get(hp)).doubleValue();
  347. }
  348. }
  349.  
  350. p.setMaxHealth(sum);
  351. p.setHealthScaled(false);
  352. if(!p.isDead()) {
  353. double hp1 = this.getConfig().getDouble("Players." + p.getName() + ".HP");
  354. if(hp1 == 0.0D) {
  355. p.setHealth(sum);
  356. } else if(hp1 > sum) {
  357. p.setHealth(sum);
  358. } else {
  359. p.setHealth(hp1);
  360. }
  361. }
  362. } else {
  363. p.setMaxHealth(20.0D);
  364. }
  365.  
  366. }
  367.  
  368. public void refperms() {
  369. this.perms.clear();
  370. Iterator var2 = this.getConfig().getConfigurationSection("Permissions").getKeys(false).iterator();
  371.  
  372. while(var2.hasNext()) {
  373. String str = (String)var2.next();
  374. this.perms.put("morehearts." + str, Double.valueOf(this.getConfig().getDouble("Permissions." + str) * 2.0D));
  375. }
  376.  
  377. }
  378.  
  379. public void saveworlds() {
  380. String ws = (String)this.worlds.get(0);
  381.  
  382. for(int a = 1; a < this.worlds.size(); ++a) {
  383. ws = ws + "," + (String)this.worlds.get(a);
  384. }
  385.  
  386. this.getConfig().set("EnableIn", ws);
  387. this.saveConfig();
  388. }
  389.  
  390. public void refworlds() {
  391. String ws = this.getConfig().getString("EnableIn");
  392. String[] Eworlds = ws.split(",");
  393. String[] var6 = Eworlds;
  394. int var5 = Eworlds.length;
  395.  
  396. for(int var4 = 0; var4 < var5; ++var4) {
  397. String str = var6[var4];
  398. this.worlds.add(str);
  399. }
  400.  
  401. }
  402.  
  403. public void sendMessages(CommandSender p, String s) {
  404. String[] msgs = s.split(";");
  405. String[] var7 = msgs;
  406. int var6 = msgs.length;
  407.  
  408. for(int var5 = 0; var5 < var6; ++var5) {
  409. String str = var7[var5];
  410. p.sendMessage(str);
  411. }
  412.  
  413. }
  414. }
Advertisement
Add Comment
Please, Sign In to add comment