Advertisement
Guest User

Untitled

a guest
Apr 26th, 2016
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 80.58 KB | None | 0 0
  1. package me.narusenpai.guilds;
  2.  
  3. import java.io.File;
  4. import java.io.IOException;
  5. import java.util.ArrayList;
  6. import java.util.HashMap;
  7. import java.util.UUID;
  8. import java.util.logging.Logger;
  9.  
  10. import org.bukkit.Bukkit;
  11. import org.bukkit.Chunk;
  12. import org.bukkit.Location;
  13. import org.bukkit.World;
  14. import org.bukkit.command.Command;
  15. import org.bukkit.command.CommandSender;
  16. import org.bukkit.configuration.InvalidConfigurationException;
  17. import org.bukkit.configuration.file.FileConfiguration;
  18. import org.bukkit.configuration.file.YamlConfiguration;
  19. import org.bukkit.entity.Player;
  20. import org.bukkit.event.EventHandler;
  21. import org.bukkit.event.Listener;
  22. import org.bukkit.event.block.BlockDamageEvent;
  23. import org.bukkit.event.block.BlockIgniteEvent;
  24. import org.bukkit.event.block.BlockPlaceEvent;
  25. import org.bukkit.event.entity.EntityDamageByEntityEvent;
  26. import org.bukkit.event.entity.PlayerDeathEvent;
  27. import org.bukkit.event.player.AsyncPlayerChatEvent;
  28. import org.bukkit.event.player.PlayerBedEnterEvent;
  29. import org.bukkit.event.player.PlayerBucketEmptyEvent;
  30. import org.bukkit.event.player.PlayerBucketFillEvent;
  31. import org.bukkit.event.player.PlayerInteractEntityEvent;
  32. import org.bukkit.event.player.PlayerInteractEvent;
  33. import org.bukkit.event.player.PlayerJoinEvent;
  34. import org.bukkit.event.player.PlayerMoveEvent;
  35. import org.bukkit.plugin.PluginDescriptionFile;
  36. import org.bukkit.plugin.java.JavaPlugin;
  37.  
  38. public class Main extends JavaPlugin implements Listener
  39. {
  40. public Logger myLogger = getLogger();
  41. public PluginDescriptionFile pdf = getDescription();
  42. File configFile;
  43. FileConfiguration config;
  44. private FileConfiguration ecoConfig = null;
  45. private File ecoFile = null;
  46.  
  47. ArrayList<String> illegalNames = new ArrayList<String>();
  48.  
  49. HashMap<UUID, Location> ghome = new HashMap<UUID, Location>();
  50.  
  51. @Override
  52. public void onEnable()
  53. {
  54. getServer().getPluginManager().registerEvents(this, this);
  55. createConfig();
  56. saveConfig();
  57. getEcoConfig();
  58. illegalNames.add("staff");
  59. illegalNames.add("shit");
  60. illegalNames.add("fuck");
  61. illegalNames.add("cunt");
  62. illegalNames.add("nigger");
  63. illegalNames.add("ass");
  64. illegalNames.add("bitch");
  65. myLogger.info(pdf.getName()+" has been enabled. V. "+pdf.getVersion());
  66. }
  67.  
  68. @Override
  69. public void onDisable()
  70. {
  71. saveConfig();
  72. myLogger.info(pdf.getName()+" has been disabled. V. "+pdf.getVersion());
  73. }
  74.  
  75. public void saveConfig()
  76. {
  77. try
  78. {
  79. this.getConfig().options().copyDefaults(true);
  80. config.save(configFile);
  81. }
  82. catch(Exception e)
  83. {
  84. e.printStackTrace();
  85. }
  86. }
  87.  
  88. public void createConfig()
  89. {
  90. configFile = new File(getDataFolder(), "config.yml");
  91.  
  92. if(!configFile.exists())
  93. {
  94. configFile.getParentFile().mkdirs();
  95. saveResource("config.yml", false);
  96. }
  97.  
  98. config = new YamlConfiguration();
  99.  
  100. try
  101. {
  102. config.load(configFile);
  103. }
  104. catch(IOException | InvalidConfigurationException e)
  105. {
  106. e.printStackTrace();
  107. }
  108. }
  109.  
  110. public FileConfiguration getEcoConfig()
  111. {
  112. if (ecoConfig == null)
  113. {
  114. this.reloadEcoConfig();
  115. }
  116.  
  117. return ecoConfig;
  118. }
  119.  
  120. public void reloadEcoConfig()
  121. {
  122. if (ecoConfig == null)
  123. {
  124. ecoFile = new File("plugins/Economy", "config.yml");
  125. }
  126. ecoConfig = YamlConfiguration.loadConfiguration(ecoFile);
  127. }
  128.  
  129. public static boolean isInt(String s)
  130. {
  131. try {
  132. Integer.parseInt(s);
  133. } catch (NumberFormatException nfe) {
  134. return false;
  135. }
  136. return true;
  137. }
  138.  
  139. public boolean isAlphanumeric(String str)
  140. {
  141. for (int i=0; i<str.length(); i++) {
  142. char c = str.charAt(i);
  143. if (c < 0x30 || (c >= 0x3a && c <= 0x40) || (c > 0x5a && c <= 0x60) || c > 0x7a)
  144. return false;
  145. }
  146. return true;
  147. }
  148.  
  149. public String guildPower(String guildPower)
  150. {
  151. String power = "0";
  152. @SuppressWarnings("unchecked")
  153. ArrayList<String> members = (ArrayList<String>) config.getList("guilds."+guildPower+".members");
  154. for(int i = 0; i < members.size(); i++)
  155. {
  156. Player member = Bukkit.getPlayer(members.get(i));
  157. power = config.getInt("players."+member.getUniqueId()+".power") + power;
  158. }
  159. config.set("guilds."+guildPower+".power", power);
  160. saveConfig();
  161. guildPower = power;
  162. return guildPower;
  163. }
  164.  
  165. @EventHandler
  166. public void onGuildJoin(PlayerJoinEvent e)
  167. {
  168. Player thePlayer = e.getPlayer();
  169. if(!(config.isSet("players."+thePlayer.getUniqueId()+".power")))
  170. {
  171. config.set("players."+thePlayer.getUniqueId()+".power", 10);
  172. config.set("players."+thePlayer.getUniqueId()+".kills", 0.0);
  173. config.set("players."+thePlayer.getUniqueId()+".deaths", 0.0);
  174. saveConfig();
  175. }
  176. }
  177.  
  178. @EventHandler
  179. public void onGuildBucket(PlayerBucketEmptyEvent e)
  180. {
  181. Player thePlayer = e.getPlayer();
  182. String chunk = thePlayer.getLocation().getChunk().toString();
  183. if(!thePlayer.hasPermission("guilds.landbypass"))
  184. {
  185. if(config.isSet("claims."+chunk))
  186. {
  187. if(config.isSet("players."+thePlayer.getUniqueId()+".guild"))
  188. {
  189. String gn = config.getString("players."+thePlayer.getUniqueId()+".guild");
  190. if(!config.getString("claims."+chunk).equalsIgnoreCase(gn))
  191. {
  192. e.setCancelled(true);
  193. thePlayer.sendMessage("§cYou cannot do that here, this land is owned by "+config.getString("claims."+chunk));
  194. }
  195. }
  196. else
  197. {
  198. e.setCancelled(true);
  199. thePlayer.sendMessage("§cYou cannot do that here, this land is owned by "+config.getString("claims."+chunk));
  200. }
  201. }
  202. }
  203. }
  204.  
  205. @EventHandler
  206. public void onGuildBucket(PlayerBucketFillEvent e)
  207. {
  208. Player thePlayer = e.getPlayer();
  209. String chunk = thePlayer.getLocation().getChunk().toString();
  210. if(!thePlayer.hasPermission("guilds.landbypass"))
  211. {
  212. if(config.isSet("claims."+chunk))
  213. {
  214. if(config.isSet("players."+thePlayer.getUniqueId()+".guild"))
  215. {
  216. String gn = config.getString("players."+thePlayer.getUniqueId()+".guild");
  217. if(!config.getString("claims."+chunk).equalsIgnoreCase(gn))
  218. {
  219. e.setCancelled(true);
  220. thePlayer.sendMessage("§cYou cannot do that here, this land is owned by "+config.getString("claims."+chunk));
  221. }
  222. }
  223. else
  224. {
  225. e.setCancelled(true);
  226. thePlayer.sendMessage("§cYou cannot do that here, this land is owned by "+config.getString("claims."+chunk));
  227. }
  228. }
  229. }
  230. }
  231.  
  232.  
  233. @EventHandler
  234. public void onGuildInteract(PlayerInteractEvent e)
  235. {
  236. Player thePlayer = e.getPlayer();
  237. String chunk = thePlayer.getLocation().getChunk().toString();
  238. if(!thePlayer.hasPermission("guilds.landbypass"))
  239. {
  240. if(config.isSet("claims."+chunk))
  241. {
  242. if(config.isSet("players."+thePlayer.getUniqueId()+".guild"))
  243. {
  244. String gn = config.getString("players."+thePlayer.getUniqueId()+".guild");
  245. if(!config.getString("claims."+chunk).equalsIgnoreCase(gn))
  246. {
  247. e.setCancelled(true);
  248. thePlayer.sendMessage("§cYou cannot do that here, this land is owned by "+config.getString("claims."+chunk));
  249. }
  250. }
  251. else
  252. {
  253. e.setCancelled(true);
  254. thePlayer.sendMessage("§cYou cannot do that here, this land is owned by "+config.getString("claims."+chunk));
  255. }
  256. }
  257. }
  258. }
  259.  
  260. @EventHandler
  261. public void onGuildEInteract(PlayerInteractEntityEvent e)
  262. {
  263. Player thePlayer = e.getPlayer();
  264. String chunk = thePlayer.getLocation().getChunk().toString();
  265. if(!thePlayer.hasPermission("guilds.landbypass"))
  266. {
  267. if(config.isSet("claims."+chunk))
  268. {
  269. if(config.isSet("players."+thePlayer.getUniqueId()+".guild"))
  270. {
  271. String gn = config.getString("players."+thePlayer.getUniqueId()+".guild");
  272. if(!config.getString("claims."+chunk).equalsIgnoreCase(gn))
  273. {
  274. e.setCancelled(true);
  275. thePlayer.sendMessage("§cYou cannot do that here, this land is owned by "+config.getString("claims."+chunk));
  276. }
  277. }
  278. else
  279. {
  280. e.setCancelled(true);
  281. thePlayer.sendMessage("§cYou cannot do that here, this land is owned by "+config.getString("claims."+chunk));
  282. }
  283. }
  284. }
  285. }
  286.  
  287. @EventHandler
  288. public void onGuildBed(PlayerBedEnterEvent e)
  289. {
  290. Player thePlayer = e.getPlayer();
  291. String chunk = thePlayer.getLocation().getChunk().toString();
  292. if(!thePlayer.hasPermission("guilds.landbypass"))
  293. {
  294. if(config.isSet("claims."+chunk))
  295. {
  296. if(config.isSet("players."+thePlayer.getUniqueId()+".guild"))
  297. {
  298. String gn = config.getString("players."+thePlayer.getUniqueId()+".guild");
  299. if(!config.getString("claims."+chunk).equalsIgnoreCase(gn))
  300. {
  301. e.setCancelled(true);
  302. thePlayer.sendMessage("§cYou cannot do that here, this land is owned by "+config.getString("claims."+chunk));
  303. }
  304. }
  305. else
  306. {
  307. e.setCancelled(true);
  308. thePlayer.sendMessage("§cYou cannot do that here, this land is owned by "+config.getString("claims."+chunk));
  309. }
  310. }
  311. }
  312. }
  313.  
  314. @EventHandler
  315. public void onGuildPlace(BlockPlaceEvent e)
  316. {
  317. Player thePlayer = e.getPlayer();
  318. String chunk = thePlayer.getLocation().getChunk().toString();
  319. if(config.isSet("claims."+chunk))
  320. if(config.isSet("players."+thePlayer.getUniqueId()+".guild"))
  321. {
  322. String gn = config.getString("players."+thePlayer.getUniqueId()+".guild");
  323. if(!config.getString("claims."+chunk).equalsIgnoreCase(gn))
  324. {
  325. e.setCancelled(true);
  326. thePlayer.sendMessage("§cYou cannot do that here, this land is owned by "+config.getString("claims."+chunk));
  327. }
  328. }
  329. else
  330. {
  331. e.setCancelled(true);
  332. thePlayer.sendMessage("§cYou cannot do that here, this land is owned by "+config.getString("claims."+chunk));
  333. }
  334. }
  335.  
  336. @EventHandler
  337. public void onGuildIgnite(BlockIgniteEvent e)
  338. {
  339. String chunk = e.getBlock().getChunk().toString();
  340. if(config.isSet("claims."+chunk))
  341. {
  342. if(e.getCause() == BlockIgniteEvent.IgniteCause.FLINT_AND_STEEL)
  343. {
  344. if(e.getIgnitingEntity() instanceof Player)
  345. {
  346. Player thePlayer = (Player) e.getIgnitingEntity();
  347. if(config.isSet("players."+thePlayer.getUniqueId()+".guild"))
  348. {
  349. String gn = config.getString("players."+thePlayer.getUniqueId()+".guild");
  350. if(!config.getString("claims."+chunk).equalsIgnoreCase(gn))
  351. {
  352. e.setCancelled(true);
  353. thePlayer.sendMessage("§cYou cannot do that here, this land is owned by "+config.getString("claims."+chunk));
  354. }
  355. }
  356. else
  357. {
  358. e.setCancelled(true);
  359. thePlayer.sendMessage("§cYou cannot do that here, this land is owned by "+config.getString("claims."+chunk));
  360. }
  361. }
  362. }
  363. }
  364. }
  365.  
  366. @EventHandler
  367. public void onGuildBreak(BlockDamageEvent e)
  368. {
  369. Player thePlayer = e.getPlayer();
  370. String chunk = thePlayer.getLocation().getChunk().toString();
  371. if(!thePlayer.hasPermission("guilds.landbypass"))
  372. {
  373. if(config.isSet("claims."+chunk))
  374. {
  375. if(config.isSet("players."+thePlayer.getUniqueId()+".guild"))
  376. {
  377. String gn = config.getString("players."+thePlayer.getUniqueId()+".guild");
  378. if(!config.getString("claims."+chunk).equalsIgnoreCase(gn))
  379. {
  380. e.setCancelled(true);
  381. thePlayer.sendMessage("§cYou cannot do that here, this land is owned by "+config.getString("claims."+chunk));
  382. }
  383. }
  384. else
  385. {
  386. e.setCancelled(true);
  387. thePlayer.sendMessage("§cYou cannot do that here, this land is owned by "+config.getString("claims."+chunk));
  388. }
  389. }
  390. }
  391. }
  392.  
  393. @EventHandler
  394. public void onGuildDamage(EntityDamageByEntityEvent e)
  395. {
  396. if(e.getEntity() instanceof Player)
  397. {
  398. Player thePlayer = (Player) e.getEntity();
  399. if(config.isSet("players."+thePlayer.getUniqueId()+".guild"))
  400. {
  401. if(e.getDamager() instanceof Player)
  402. {
  403. Player oPlayer = (Player) e.getDamager();
  404. if(config.isSet("players."+oPlayer.getUniqueId()+".guild"))
  405. {
  406. if(config.getString("players."+thePlayer.getUniqueId()+".guild").equalsIgnoreCase("players."+oPlayer.getUniqueId()+".guild"))
  407. {
  408. e.setCancelled(true);
  409. oPlayer.sendMessage("§aYou cannot hurt members of your guild!");
  410. }
  411. }
  412. }
  413. }
  414. }
  415. }
  416.  
  417. @EventHandler
  418. public void onChat(AsyncPlayerChatEvent e)
  419. {
  420. Player thePlayer = (Player) e.getPlayer();
  421. String msg = e.getMessage();
  422. String format = "§a<guildrank><guild> <group> §f<player>§6>: §f<message>";
  423. if(config.isSet("players."+thePlayer.getUniqueId()+".guild"))
  424. {
  425. format = format.replace("<guild> ", config.getString("players."+thePlayer.getUniqueId()+".guild")+" ");
  426. String gn = config.getString("players."+thePlayer.getUniqueId()+".guild");
  427. if(config.isSet("guilds."+gn+".officers"))
  428. {
  429. @SuppressWarnings("unchecked")
  430. ArrayList<String> officers = (ArrayList<String>) config.getList("guilds."+gn+".officers");
  431. if(officers.contains(thePlayer.getName()))
  432. {
  433. format = format.replace("<guildrank>", "*");
  434. }
  435. }
  436. if(config.getString("guilds."+gn+".leader").equals(thePlayer.getUniqueId().toString()))
  437. {
  438. format = format.replace("<guildrank>", "**");
  439. }
  440. }
  441. else
  442. {
  443. format = format.replace("<guild> ", "");
  444. format = format.replace("<guildrank> ", "");
  445. }
  446. if(config.isSet("players."+thePlayer.getUniqueId()+".rank"))
  447. {
  448. format = format.replace("<group> ", "§7[§o"+config.getString("players."+thePlayer.getUniqueId()+".rank")+"§7] ");
  449. }
  450. else
  451. {
  452. format = format.replace("<group> ", "");
  453. }
  454. format = format.replace("<player>", thePlayer.getDisplayName());
  455. if(!thePlayer.hasPermission("chat.colorcodes"))
  456. {
  457. msg = msg.replace("&", "*");
  458. }
  459. format = format.replace("<message>", "%2$s");
  460. e.setFormat(format);
  461. e.setMessage(msg);
  462. }
  463.  
  464. @EventHandler
  465. public void onDeath (PlayerDeathEvent e)
  466. {
  467. Player victim = e.getEntity();
  468. if(e.getEntity().getKiller() instanceof Player)
  469. {
  470. Player attacker = e.getEntity().getKiller();
  471. config.set("players."+victim.getUniqueId()+".power", config.getInt("players."+victim.getUniqueId()+".power")-1);
  472. config.set("players."+attacker.getUniqueId()+".power", config.getInt("players."+attacker.getUniqueId()+".power")+1);
  473. }
  474. else
  475. {
  476. config.set("players."+victim.getUniqueId()+".power", config.getInt("players."+victim.getUniqueId()+".power")-1);
  477. }
  478. }
  479.  
  480. @EventHandler
  481. public void onGMove (PlayerMoveEvent e)
  482. {
  483. Player thePlayer = e.getPlayer();
  484. if (e.getTo().getBlockX() == e.getFrom().getBlockX() && e.getTo().getBlockY() == e.getFrom().getBlockY() && e.getTo().getBlockZ() == e.getFrom().getBlockZ()) return;//The player hasn't moved
  485. else
  486. {
  487. if (ghome.containsKey(thePlayer.getUniqueId()))
  488. {
  489. thePlayer.sendMessage("§4Teleportation canceled.");
  490. ghome.remove(thePlayer.getUniqueId());
  491. }
  492. }
  493. }
  494.  
  495. public boolean onCommand(CommandSender theSender, Command cmd, String commandLabel, String[] args)
  496. {
  497. if(cmd.getName().equalsIgnoreCase("guildadmin"))
  498. {
  499. if(theSender instanceof Player)
  500. {
  501. Player thePlayer = (Player) theSender;
  502. if(thePlayer.hasPermission("guilds.admin"))
  503. {
  504. if(args.length == 0)
  505. {
  506. thePlayer.performCommand("/guildadmin help");
  507. }
  508. if(args.length > 0)
  509. {
  510. if(args[0].equalsIgnoreCase("help"))
  511. {
  512. thePlayer.sendMessage("§b- - - - - §6[§3GAdmin §b- §3Page 1/1§6] §b- - - - -");
  513. thePlayer.sendMessage("§6/ga help - §3Displays information on guild admin commands.");
  514. thePlayer.sendMessage("§6/ga disband [GuildName] - §bDisbands the specified guild.");
  515. thePlayer.sendMessage("§6/ga join [GuildName] - §3Forcefully joins the specified guild.");
  516. thePlayer.sendMessage("§6/ga home [GuildName] - §bVisits the home of the specified guild.");
  517. }
  518. else if(args[0].equalsIgnoreCase("disband"))
  519. {
  520. if(args.length == 2)
  521. {
  522. String gn = args[1];
  523. if(config.isSet("guilds."+gn))
  524. {
  525. if(config.isSet("guilds."+gn+".members"))
  526. {
  527. @SuppressWarnings("unchecked")
  528. ArrayList<String> members = (ArrayList<String>) config.getList("guilds."+gn+".members");
  529. for(int i = 0; i < members.size(); i++)
  530. {
  531. Player member = Bukkit.getPlayer(members.get(i));
  532. member.sendMessage("§6[§a"+gn+"§6] §aYour guild has been disbanded.");
  533. config.set("players."+member.getUniqueId()+".guild", null);
  534. }
  535. }
  536. if(config.isSet("guilds."+gn+".claims"))
  537. {
  538. @SuppressWarnings("unchecked")
  539. ArrayList<String> claims = (ArrayList<String>) config.getList("guilds."+gn+".claims");
  540. for(int i = 0; i < claims.size(); i++)
  541. {
  542. config.set("claims."+claims.get(i), null);
  543. }
  544. }
  545. config.set("guilds."+gn, null);
  546. @SuppressWarnings("unchecked")
  547. ArrayList<String> guilds = (ArrayList<String>) config.getList("guildlist");
  548. guilds.remove(gn);
  549. config.set("guildlist", guilds);
  550. saveConfig();
  551. Bukkit.getServer().broadcastMessage("§6[§3Guilds§6] §a"+gn+" has been disbanded by "+theSender.getName());
  552. return true;
  553. }
  554. else theSender.sendMessage("§cGuild not found.");
  555. }
  556. else theSender.sendMessage("§cIncorrect format, use §4/ga disband [GuildName]");
  557. }
  558. else if(args[0].equalsIgnoreCase("home"))
  559. {
  560. if(args.length == 2)
  561. {
  562. String gn = args[1];
  563. if(config.isSet("guilds."+gn))
  564. {
  565. if(config.isSet("guilds."+gn+".homeblock"))
  566. {
  567. World w = (World) Bukkit.getServer().getWorld((String) config.get(("guilds."+gn+".sethome.w")));
  568. double x = config.getDouble(("guilds."+gn+".sethome.x"));
  569. double y = config.getDouble(("guilds."+gn+".sethome.y"));
  570. double z = config.getDouble(("guilds."+gn+".sethome.z"));
  571. Location loc = new Location(w, x, y, z);
  572. thePlayer.sendMessage("§aTeleporting. . .");
  573. thePlayer.teleport(loc);
  574. }
  575. thePlayer.sendMessage("§cGuild home not found.");
  576. }
  577. thePlayer.sendMessage("§cGuild not found.");
  578. }
  579. else
  580. {
  581. thePlayer.sendMessage("§cIncorrect format, use §4/ga home [GuildName]");
  582. return false;
  583. }
  584. }
  585. else if(args[0].equalsIgnoreCase("join"))
  586. {
  587. if(config.isSet("players."+thePlayer.getUniqueId()+".guild"))
  588. {
  589. thePlayer.sendMessage("§cYou must leave or disband your current guild before joining a new one.");
  590. return false;
  591. }
  592. if(args.length != 2)
  593. {
  594. thePlayer.sendMessage("§cIncorrect format, use §4/ga join [GuildName]");
  595. return false;
  596. }
  597. String gn = args[1];
  598. if(config.isSet("guilds."+gn))
  599. {
  600. @SuppressWarnings("unchecked")
  601. ArrayList<String> members = (ArrayList<String>) config.getList("guilds."+gn+".members");
  602. if (members.size() == 20)
  603. {
  604. thePlayer.sendMessage("§cI'm sorry, that guild has reached it's maximum player limit.");
  605. return false;
  606. }
  607. for(int i = 0; i < members.size(); i++)
  608. {
  609. Player member = Bukkit.getPlayer(members.get(i));
  610. member.sendMessage("§6[§a"+gn+"§6] §a"+thePlayer.getName()+" has forcefully joined your guild.");
  611. }
  612. members.add(thePlayer.getName());
  613. config.set("guilds."+gn+".members", members);
  614. config.set("guilds."+gn+".landcount", config.getInt("guilds."+gn+".landcount")+1);
  615. config.set("guilds."+gn+".power", guildPower(gn));
  616. config.set("players."+thePlayer.getUniqueId()+".guild", gn);
  617. saveConfig();
  618. thePlayer.sendMessage("§aYou have successfully joined "+gn+".");
  619. return true;
  620. }
  621. else thePlayer.sendMessage("§cGuild not found.");
  622. }
  623. else
  624. {
  625. thePlayer.performCommand("/guildadmin help");
  626. }
  627. }
  628. }
  629. else theSender.sendMessage("§4You do not have permission to use guild admin commands.");
  630. }
  631. else theSender.sendMessage("§4This command can only be used in game.");
  632. }
  633. if(commandLabel.equalsIgnoreCase("rank"))
  634. {
  635. if(theSender instanceof Player)
  636. {
  637. theSender.sendMessage("§4This command can only be used by the console.");
  638. return false;
  639. }
  640. if(args.length == 2)
  641. {
  642. if(Bukkit.getPlayer(args[0]) != null)
  643. {
  644. Player rankPlayer = Bukkit.getPlayer(args[0]);
  645. if(args[1].equalsIgnoreCase("default"))
  646. {
  647. config.set("players."+rankPlayer.getUniqueId()+".rank", null);
  648. return true;
  649. }
  650. if(args[1].equalsIgnoreCase("chatmod"))
  651. {
  652. config.set("players."+rankPlayer.getUniqueId()+".rank", "§eChatMod");
  653. return true;
  654. }
  655. if(args[1].equalsIgnoreCase("mod"))
  656. {
  657. config.set("players."+rankPlayer.getUniqueId()+".rank", "§6Mod");
  658. return true;
  659. }
  660. if(args[1].equalsIgnoreCase("builder"))
  661. {
  662. config.set("players."+rankPlayer.getUniqueId()+".rank", "§6Builder");
  663. return true;
  664. }
  665. if(args[1].equalsIgnoreCase("admin"))
  666. {
  667. config.set("players."+rankPlayer.getUniqueId()+".rank", "§cAdmin");
  668. return true;
  669. }
  670. if(args[1].equalsIgnoreCase("owner"))
  671. {
  672. config.set("players."+rankPlayer.getUniqueId()+".rank", "§4Owner");
  673. return true;
  674. }
  675. }
  676. else
  677. {
  678. theSender.sendMessage("§cPlayer not found.");
  679. return false;
  680. }
  681. }
  682. else
  683. {
  684. theSender.sendMessage("§cIncorrect format, use /rank [PlayerName] [RankName]");
  685. return false;
  686. }
  687. }
  688. if(cmd.getName().equalsIgnoreCase("guild"))
  689. {
  690. if(theSender instanceof Player)
  691. {
  692. final Player thePlayer = (Player) theSender;
  693. if(args.length == 0)
  694. {
  695. thePlayer.performCommand("/g help 1");
  696. return false;
  697. }
  698. else if (args.length >= 1)
  699. {
  700. if(args[0].equalsIgnoreCase("help"))
  701. {
  702. if(args.length == 1)
  703. {
  704. thePlayer.performCommand("/g help 1");
  705. return false;
  706. }
  707. if(args.length == 2)
  708. {
  709. if(args[1].equalsIgnoreCase("1"))
  710. {
  711. thePlayer.sendMessage("§b- - - - - §6[§3Guilds §b- §3Page 1/3§6] §b- - - - -");
  712. thePlayer.sendMessage("§6/g help [1/2/3] - §3Displays information on guild commands.");
  713. thePlayer.sendMessage("§6/g create [GuildName] - §bCreates a new guild.");
  714. thePlayer.sendMessage("§6/g p <PlayerName> - §3Finds guild related information on a player.");
  715. thePlayer.sendMessage("§6/g g <GuildName> - §bFinds information on a guild.");
  716. thePlayer.sendMessage("§6/g invite [PlayerName] - §3Invites a player to your guild.");
  717. thePlayer.sendMessage("§6/g join [GuildName] - §bAccepts an invite to a guild.");
  718. thePlayer.sendMessage("§6/g leave - §3Leaves your guild.");
  719. thePlayer.sendMessage("§6/g claim - §bClaims the chunk you're in for your guild.");
  720. thePlayer.sendMessage("§6/g unclaim <all> - §3Unclaims the chunk you're in, or unclaims all of your guild claims.");
  721. return true;
  722. }
  723. if(args[1].equalsIgnoreCase("2"))
  724. {
  725. thePlayer.sendMessage("§b- - - - - §6[§3Guilds §b- §3Page 2/3§6] §b- - - - -");
  726. thePlayer.sendMessage("§6/g sethome - §3Sets a home for your guild.");
  727. thePlayer.sendMessage("§6/g home - §bTeleports you to your guild home, if set.");
  728. thePlayer.sendMessage("§6/g balance - §3Shows information about your guild's bank.");
  729. thePlayer.sendMessage("§6/g deposit [Amount] - §bDeposits money into your guild's bank.");
  730. thePlayer.sendMessage("§6/g c [Message] - §3Sends a message to your guild members.");
  731. thePlayer.sendMessage("§6/g invites - §bShows any pending guild invites.");
  732. thePlayer.sendMessage("§6/g revoke [PlayerName] - §3Revokes an invite to your guild.");
  733. thePlayer.sendMessage("§6/g kick [PlayerName] - §bKicks a player from your guild.");
  734. thePlayer.sendMessage("§6/g disband [GuildName] - §3Disbands your guild.");
  735. return true;
  736. }
  737. if(args[1].equalsIgnoreCase("3"))
  738. {
  739. thePlayer.sendMessage("§b- - - - - §6[§3Guilds §b- §3Page 3/3§6] §b- - - - -");
  740. thePlayer.sendMessage("§6/g rename [New GuildName] - §3Renames your guild.");
  741. thePlayer.sendMessage("§6/g promote [PlayerName] - §bPromotes a player in your guild.");
  742. thePlayer.sendMessage("§6/g demote [PlayerName] - §3Demotes a player in your guild.");
  743. thePlayer.sendMessage("§6/g leader [PlayerName] [GuildName] - §bTransfers leadership of your guild to another player.");
  744. return true;
  745. }
  746. else
  747. {
  748. thePlayer.sendMessage("§cUse /g help <1/2/3>");
  749. return false;
  750. }
  751. }
  752. else
  753. {
  754. thePlayer.sendMessage("§cUse /g help <1/2/3>");
  755. return false;
  756. }
  757. }
  758. if(args[0].equalsIgnoreCase("create") || (args[0].equalsIgnoreCase("new")))
  759. {
  760. if(config.isSet("players."+thePlayer.getUniqueId()+".guild"))
  761. {
  762. thePlayer.sendMessage("§cYou must leave or disband your current guild before you can create a new one.");
  763. return false;
  764. }
  765. if(args.length == 2)
  766. {
  767. String gn = args[1];
  768. if(!isAlphanumeric(gn))
  769. {
  770. thePlayer.sendMessage("§cYour guild name must be alphanumeric, please choose a new name and try again.");
  771. return false;
  772. }
  773. if(illegalNames.contains(gn))
  774. {
  775. thePlayer.sendMessage("§cInnappropriate guild name, please choose a new name and try again.");
  776. return false;
  777. }
  778. ArrayList<String> guilds = new ArrayList<String>();
  779. if(config.isSet("guildlist"))
  780. {
  781. @SuppressWarnings("unchecked")
  782. ArrayList<String> guilds2 = (ArrayList<String>) config.getList("guildlist");
  783. for(int i = 0; i < guilds2.size(); i++)
  784. {
  785. guilds.add(guilds2.get(i));
  786. if(guilds2.get(i).equalsIgnoreCase(gn))
  787. {
  788. thePlayer.sendMessage("§cThat guild already exists, please choose a new name and try again.");
  789. return false;
  790. }
  791. }
  792. }
  793. if(gn.length() > 10)
  794. {
  795. thePlayer.sendMessage("§cGuild names cannot be longer than 10 characters, please choose a new name and try again.");
  796. return false;
  797. }
  798. if(ecoConfig.getDouble("economy."+thePlayer.getUniqueId()+".balance") < 500.00)
  799. {
  800. thePlayer.sendMessage("§cYou do not have enough money to start a guild, you need $500, you can check your balance with §4/balance");
  801. return false;
  802. }
  803. if(config.getInt("players."+thePlayer.getUniqueId()+".power") != 10)
  804. {
  805. thePlayer.sendMessage("§cYou do not have enough power to start a guild, you need 10 power, you have "+config.getDouble("players."+thePlayer.getUniqueId()+".power"));
  806. return false;
  807. }
  808. config.createSection("guilds."+gn);
  809. Double bal = ecoConfig.getDouble("economy."+thePlayer.getUniqueId()+".balance");
  810. ecoConfig.set("economy."+thePlayer.getUniqueId()+".balance", bal-500.0);
  811. config.set("players."+thePlayer.getUniqueId()+".guild", gn);
  812. config.set("guilds."+gn+".leader", thePlayer.getUniqueId().toString());
  813. config.set("guilds."+gn+".leadername", thePlayer.getName());
  814. ArrayList<String> members = new ArrayList<String>();
  815. members.add(thePlayer.getName());
  816. config.set("guilds."+gn+".members", members);
  817. config.set("guilds."+gn+".bal", 250.0);
  818. config.set("guilds."+gn+".landcount", 1);
  819. config.set("guilds."+gn+".landclaimed", 0);
  820. config.set("guilds."+gn+".power", 10);
  821. guilds.add(gn);
  822. config.set("guildlist", guilds);
  823. saveConfig();
  824. Bukkit.getServer().broadcastMessage("§6[§3Guilds§6] §a"+thePlayer.getName()+" has created a new guild by the name of "+gn+"!");
  825. return true;
  826. }
  827. else
  828. {
  829. thePlayer.sendMessage("§cIncorrect format, use §4/g create [GuildName]");
  830. return false;
  831. }
  832. }
  833. if(args[0].equalsIgnoreCase("g") || (args[0].equalsIgnoreCase("guild")))
  834. {
  835. if(args.length == 2)
  836. {
  837. String gn = args[1];
  838. thePlayer.sendMessage("§6Searching for guild or player, information will be returned if found.");
  839. if(config.isSet("guildlist"))
  840. {
  841. @SuppressWarnings("unchecked")
  842. ArrayList<String> guilds = (ArrayList<String>) config.getList("guildlist");
  843. for(int i = 0; i < guilds.size(); i++)
  844. {
  845. if(guilds.get(i).equalsIgnoreCase(gn))
  846. {
  847. gn = guilds.get(i);
  848. thePlayer.sendMessage("§2- - - - - §6[§a"+gn+" - "+config.getString("guilds."+gn+".leadername")+"§6] §2- - - - -");
  849. thePlayer.sendMessage("§aLand Claimed/Land Count: §2"+config.getInt("guilds."+gn+".landclaimed")+"/"+config.getInt("guilds."+gn+".landcount"));
  850. thePlayer.sendMessage("§aPower: §2"+guildPower(gn));
  851. thePlayer.sendMessage("§aBank: §2$"+config.getInt("guilds."+gn+".bal"));
  852. if(config.isSet("guilds."+gn+".officers"))
  853. {
  854. thePlayer.sendMessage("§aOfficers: §2"+config.getList("guilds."+gn+".officers"));
  855. }
  856. thePlayer.sendMessage("§aMembers: §2"+config.getList("guilds."+gn+".members"));
  857. return true;
  858. }
  859. }
  860. }
  861. else
  862. {
  863. thePlayer.sendMessage("§cNo guilds found.");
  864. return false;
  865. }
  866. }
  867. else
  868. {
  869. thePlayer.sendMessage("§cIncorrect format, use §4/g g [GuildName]");
  870. return false;
  871. }
  872. }
  873. if(args[0].equalsIgnoreCase("p") || (args[0].equalsIgnoreCase("player")))
  874. {
  875. if(args.length == 2)
  876. {
  877. Player player = Bukkit.getPlayer(args[1]);
  878. if(config.isSet("players."+player.getUniqueId()+".guild"))
  879. {
  880. String gn = config.getString("players."+player.getUniqueId()+".guild");
  881. thePlayer.performCommand("g g "+gn);
  882. return true;
  883. }
  884. else
  885. {
  886. thePlayer.sendMessage("§cThat player is not a part of a guild.");
  887. return false;
  888. }
  889. }
  890. else
  891. {
  892. thePlayer.sendMessage("§cIncorrect format, use §4/g p [PlayerName]");
  893. return false;
  894. }
  895. }
  896. if(args[0].equalsIgnoreCase("balance") || (args[0].equalsIgnoreCase("bal")))
  897. {
  898. if(config.isSet("players."+thePlayer.getUniqueId()+".guild"))
  899. {
  900. String gn = config.getString("players."+thePlayer.getUniqueId()+".guild");
  901. thePlayer.sendMessage("§6[§a"+gn+"§6] §aGuild Bank Balance: §2$"+config.getInt("guilds."+gn+".bal"));
  902. thePlayer.sendMessage("§aGuild Pricing: New Guild - §2$500§a, Rename - §2$250§a, Claim Wilderness - §2$100§a, Claim Over - §2$200§a, Unclaim + §2$25");
  903. return true;
  904. }
  905. else
  906. {
  907. thePlayer.sendMessage("§cYou are not a part of a guild.");
  908. return false;
  909. }
  910. }
  911. if(args[0].equalsIgnoreCase("deposit"))
  912. {
  913. if(config.isSet("players."+thePlayer.getUniqueId()+".guild"))
  914. {
  915. if(args.length == 2)
  916. {
  917. if(isInt(args[1]))
  918. {
  919. String gn = config.getString("players."+thePlayer.getUniqueId()+".guild");
  920. int amount = Integer.parseInt(args[1]);
  921. if(amount > 0)
  922. {
  923. if(amount <= ecoConfig.getDouble("economy."+thePlayer.getUniqueId()+".balance"))
  924. {
  925. ecoConfig.set("economy."+thePlayer.getUniqueId()+".balance", ecoConfig.getDouble("economy."+thePlayer.getUniqueId()+".balance")-amount);
  926. config.set("guilds."+gn+".bal", config.getDouble("guilds."+gn+".bal")+amount);
  927. thePlayer.sendMessage("§6[§a"+gn+"§6] §aDeposit successful, new guild bank balance is §2$"+config.getDouble("guilds."+gn+".bal"));
  928. saveConfig();
  929. return true;
  930. }
  931. else
  932. {
  933. thePlayer.sendMessage("§cCould not deposit, please ensure you have money in your EcoAccount using §4/balance");
  934. return false;
  935. }
  936. }
  937. else
  938. {
  939. thePlayer.sendMessage("§cCould not deposit, use §4/g deposit [amount] §cand ensure amount is greater than zero.");
  940. return false;
  941. }
  942. }
  943. else
  944. {
  945. thePlayer.sendMessage("§cCould not deposit, use §4/g deposit [amount] §cand ensure amount is a number.");
  946. return false;
  947. }
  948. }
  949. else
  950. {
  951. thePlayer.sendMessage("§cIncorrect format, use §4/g deposit [amount]");
  952. return false;
  953. }
  954. }
  955. else
  956. {
  957. thePlayer.sendMessage("§cYou are not a part of a guild.");
  958. return false;
  959. }
  960. }
  961. if(args[0].equalsIgnoreCase("promote"))
  962. {
  963. if(config.isSet("players."+thePlayer.getUniqueId()+".guild"))
  964. {
  965. if(args.length == 2)
  966. {
  967. String gn = config.getString("players."+thePlayer.getUniqueId()+".guild");
  968. if(config.getString("guilds."+gn+".leader").equals(thePlayer.getUniqueId().toString()))
  969. {
  970. if(Bukkit.getPlayer(args[1]) != null)
  971. {
  972. Player promotePlayer = Bukkit.getPlayer(args[1]);
  973. if(config.isSet("players."+promotePlayer.getUniqueId()+".guild") && config.getString("players."+promotePlayer.getUniqueId()+".guild").equals(gn))
  974. {
  975. if(thePlayer.getName().equals(promotePlayer.getName()))
  976. {
  977. thePlayer.sendMessage("§cYou cannot promote yourself to an Officer.");
  978. return false;
  979. }
  980. if(config.isSet("guilds."+gn+".officers"))
  981. {
  982. @SuppressWarnings("unchecked")
  983. ArrayList<String> officers = (ArrayList<String>) config.getList("guilds."+gn+".officers");
  984. if(officers.contains(promotePlayer.getName()))
  985. {
  986. thePlayer.sendMessage("§cThat player is already an Officer of your guild.");
  987. return false;
  988. }
  989. officers.add(promotePlayer.getName());
  990. config.set("guilds."+gn+".officers", officers);
  991. saveConfig();
  992. @SuppressWarnings("unchecked")
  993. ArrayList<String> members = (ArrayList<String>) config.getList("guilds."+gn+".members");
  994. for(int i = 0; i < members.size(); i++)
  995. {
  996. Player member = Bukkit.getPlayer(members.get(i));
  997. member.sendMessage("§6[§a"+gn+"§6] §a"+promotePlayer.getName()+" has been promoted to an Officer of your guild.");
  998. }
  999. return true;
  1000. }
  1001. else
  1002. {
  1003. ArrayList<String> officers = new ArrayList<String>();
  1004. officers.add(promotePlayer.getName());
  1005. promotePlayer.sendMessage("§6[§a"+gn+"§6] §aYou've been promoted to an Officer of your guild, you can now invite players and claim land.");
  1006. config.set("guilds."+gn+".officers", officers);
  1007. saveConfig();
  1008. @SuppressWarnings("unchecked")
  1009. ArrayList<String> members = (ArrayList<String>) config.getList("guilds."+gn+".members");
  1010. for(int i = 0; i < members.size(); i++)
  1011. {
  1012. Player member = Bukkit.getPlayer(members.get(i));
  1013. member.sendMessage("§6[§a"+gn+"§6] §a"+promotePlayer.getName()+" has been promoted to an Officer of your guild.");
  1014. }
  1015. return true;
  1016. }
  1017. }
  1018. else
  1019. {
  1020. thePlayer.sendMessage("§cThat player is not in your guild.");
  1021. return false;
  1022. }
  1023. }
  1024. else
  1025. {
  1026. thePlayer.sendMessage("§cPlayer not found.");
  1027. return false;
  1028. }
  1029. }
  1030. else
  1031. {
  1032. thePlayer.sendMessage("§cOnly guild leaders can choose guild Officers.");
  1033. return false;
  1034. }
  1035. }
  1036. else
  1037. {
  1038. thePlayer.sendMessage("§cIncorrect format, use §4/g promote [PlayerName]");
  1039. return false;
  1040. }
  1041. }
  1042. else
  1043. {
  1044. thePlayer.sendMessage("§cYou are not a part of a guild.");
  1045. return false;
  1046. }
  1047. }
  1048. if(args[0].equalsIgnoreCase("demote"))
  1049. {
  1050. if(config.isSet("players."+thePlayer.getUniqueId()+".guild"))
  1051. {
  1052. if(args.length == 2)
  1053. {
  1054. String gn = config.getString("players."+thePlayer.getUniqueId()+".guild");
  1055. if(config.getString("guilds."+gn+".leader").equals(thePlayer.getUniqueId().toString()))
  1056. {
  1057. if(Bukkit.getPlayer(args[1]) != null)
  1058. {
  1059. Player demotePlayer = Bukkit.getPlayer(args[1]);
  1060. if(config.isSet("players."+demotePlayer.getUniqueId()+".guild") && config.getString("players."+demotePlayer.getUniqueId()+".guild").equals(gn))
  1061. {
  1062. if(thePlayer.getName().equals(demotePlayer.getName()))
  1063. {
  1064. thePlayer.sendMessage("§cYou cannot demote yourself.");
  1065. return false;
  1066. }
  1067. if(config.isSet("guilds."+gn+".officers"))
  1068. {
  1069. @SuppressWarnings("unchecked")
  1070. ArrayList<String> officers = (ArrayList<String>) config.getList("guilds."+gn+".officers");
  1071. if(officers.contains(demotePlayer.getName()))
  1072. {
  1073. officers.remove(demotePlayer.getName());
  1074. config.set("guilds."+gn+".officers", officers);
  1075. saveConfig();
  1076. @SuppressWarnings("unchecked")
  1077. ArrayList<String> members = (ArrayList<String>) config.getList("guilds."+gn+".members");
  1078. for(int i = 0; i < members.size(); i++)
  1079. {
  1080. Player member = Bukkit.getPlayer(members.get(i));
  1081. member.sendMessage("§6[§a"+gn+"§6] §a"+demotePlayer.getName()+" is no longer an Officer for your guild.");
  1082. }
  1083. return true;
  1084. }
  1085. thePlayer.sendMessage("§cThat player is not an Officer of your guild.");
  1086. return false;
  1087. }
  1088. else
  1089. {
  1090. thePlayer.sendMessage("§cThat player is not an Officer of your guild.");
  1091. return false;
  1092. }
  1093. }
  1094. else
  1095. {
  1096. thePlayer.sendMessage("§cThat player is not in your guild.");
  1097. return false;
  1098. }
  1099. }
  1100. else
  1101. {
  1102. thePlayer.sendMessage("§cPlayer not found.");
  1103. return false;
  1104. }
  1105. }
  1106. else
  1107. {
  1108. thePlayer.sendMessage("§cOnly guild leaders can choose guild Officers.");
  1109. return false;
  1110. }
  1111. }
  1112. else
  1113. {
  1114. thePlayer.sendMessage("§cIncorrect format, use §4/g demote [PlayerName]");
  1115. return false;
  1116. }
  1117. }
  1118. else
  1119. {
  1120. thePlayer.sendMessage("§cYou are not a part of a guild.");
  1121. return false;
  1122. }
  1123. }
  1124. if(args[0].equalsIgnoreCase("leader"))
  1125. {
  1126. if(config.isSet("players."+thePlayer.getUniqueId()+".guild"))
  1127. {
  1128. if(args.length == 2)
  1129. {
  1130. String gn = config.getString("players."+thePlayer.getUniqueId()+".guild");
  1131. if(config.getString("guilds."+gn+".leader").equals(thePlayer.getUniqueId().toString()))
  1132. {
  1133. if(Bukkit.getPlayer(args[1]) != null)
  1134. {
  1135. Player promotePlayer = Bukkit.getPlayer(args[1]);
  1136. if(config.isSet("players."+promotePlayer.getUniqueId()+".guild") && config.getString("players."+promotePlayer.getUniqueId()+".guild").equals(gn))
  1137. {
  1138. if(thePlayer.getName().equals(promotePlayer.getName()))
  1139. {
  1140. thePlayer.sendMessage("§cYou are already the leader of your guild.");
  1141. return false;
  1142. }
  1143. config.set("guilds."+gn+".leader", promotePlayer.getUniqueId().toString());
  1144. config.set("guilds."+gn+".leadername", promotePlayer.getName());
  1145. saveConfig();
  1146. @SuppressWarnings("unchecked")
  1147. ArrayList<String> members = (ArrayList<String>) config.getList("guilds."+gn+".members");
  1148. for(int i = 0; i < members.size(); i++)
  1149. {
  1150. Player member = Bukkit.getPlayer(members.get(i));
  1151. member.sendMessage("§6[§a"+gn+"§6] §a"+promotePlayer.getName()+" is now the leader of your guild.");
  1152. }
  1153. return true;
  1154. }
  1155. else
  1156. {
  1157. thePlayer.sendMessage("§cThat player is not in your guild.");
  1158. return false;
  1159. }
  1160. }
  1161. else
  1162. {
  1163. thePlayer.sendMessage("§cPlayer not found.");
  1164. return false;
  1165. }
  1166. }
  1167. else
  1168. {
  1169. thePlayer.sendMessage("§cOnly guild leaders can choose new guild leaders.");
  1170. return false;
  1171. }
  1172. }
  1173. else
  1174. {
  1175. thePlayer.sendMessage("§cIncorrect format, use §4/g leader [PlayerName]");
  1176. return false;
  1177. }
  1178. }
  1179. else
  1180. {
  1181. thePlayer.sendMessage("§cYou are not a part of a guild.");
  1182. return false;
  1183. }
  1184. }
  1185. if(args[0].equalsIgnoreCase("invite") || args[0].equalsIgnoreCase("inv") || args[0].equalsIgnoreCase("add"))
  1186. {
  1187. if(config.isSet("players."+thePlayer.getUniqueId()+".guild"))
  1188. {
  1189. if(args.length == 2)
  1190. {
  1191. String gn = config.getString("players."+thePlayer.getUniqueId()+".guild");
  1192. @SuppressWarnings("unchecked")
  1193. ArrayList<String> officers = (ArrayList<String>) config.getList("guilds."+gn+".officers");
  1194. if(config.getString("guilds."+gn+".leader").equals(thePlayer.getUniqueId().toString()) || (officers.contains(thePlayer.getName())))
  1195. {
  1196. if(Bukkit.getPlayer(args[1]) != null)
  1197. {
  1198. Player invPlayer = Bukkit.getPlayer(args[1]);
  1199. if(thePlayer.getName().equals(invPlayer.getName()))
  1200. {
  1201. thePlayer.sendMessage("§cYou cannot invite yourself to your guild.");
  1202. return false;
  1203. }
  1204. if(config.getString("players."+invPlayer.getUniqueId()+".guild").equals(gn))
  1205. {
  1206. thePlayer.sendMessage("§cThat player is already a part of your guild.");
  1207. return false;
  1208. }
  1209. else
  1210. {
  1211. if(config.isSet("players."+invPlayer.getUniqueId()+".invites"))
  1212. {
  1213. @SuppressWarnings("unchecked")
  1214. ArrayList<String> invs = (ArrayList<String>) config.getList("players."+invPlayer.getUniqueId()+".invites");
  1215. if(invs.contains(gn))
  1216. {
  1217. thePlayer.sendMessage("§cThat player already has an invitation to your guild.");
  1218. return false;
  1219. }
  1220. else
  1221. {
  1222. invs.add(gn);
  1223. config.set("players."+invPlayer.getUniqueId()+".invites", invs);
  1224. saveConfig();
  1225. invPlayer.sendMessage("§aThe guild "+gn+" has extended you an invitation. Use §2/invites §ato see all of your invitations or §2/g join "+gn+" §to accept the invite.");
  1226. @SuppressWarnings("unchecked")
  1227. ArrayList<String> members = (ArrayList<String>) config.getList("guilds."+gn+".members");
  1228. for(int i = 0; i < members.size(); i++)
  1229. {
  1230. Player member = Bukkit.getPlayer(members.get(i));
  1231. member.sendMessage("§6[§a"+gn+"§6] §a"+invPlayer.getName()+" has been invited to your guild by "+thePlayer.getName()+".");
  1232. }
  1233. return true;
  1234. }
  1235. }
  1236. else
  1237. {
  1238. ArrayList<String> invites = new ArrayList<String>();
  1239. invites.add(gn);
  1240. config.set("players."+invPlayer.getUniqueId()+".invites", invites);
  1241. saveConfig();
  1242. invPlayer.sendMessage("§aThe guild "+gn+" has extended you an invitation. Use §2/invites §ato see all of your invitations or §2/g join "+gn+" §to accept the invite.");
  1243. @SuppressWarnings("unchecked")
  1244. ArrayList<String> members = (ArrayList<String>) config.getList("guilds."+gn+".members");
  1245. for(int i = 0; i < members.size(); i++)
  1246. {
  1247. Player member = Bukkit.getPlayer(members.get(i));
  1248. member.sendMessage("§6[§a"+gn+"§6] §a"+invPlayer.getName()+" has been invited to your guild by "+thePlayer.getName()+".");
  1249. }
  1250. return true;
  1251. }
  1252. }
  1253. }
  1254. else
  1255. {
  1256. thePlayer.sendMessage("§cPlayer not found.");
  1257. return false;
  1258. }
  1259. }
  1260. else
  1261. {
  1262. thePlayer.sendMessage("§cOnly guild leaders and officers can invite players to the guild.");
  1263. return false;
  1264. }
  1265. }
  1266. else
  1267. {
  1268. thePlayer.sendMessage("§cIncorrect format, use §4/g invite [PlayerName]");
  1269. return false;
  1270. }
  1271. }
  1272. else
  1273. {
  1274. thePlayer.sendMessage("§cYou are not a part of a guild.");
  1275. return false;
  1276. }
  1277. }
  1278. if(args[0].equalsIgnoreCase("revoke") || args[0].equalsIgnoreCase("remove") || args[0].equalsIgnoreCase("deinvite"))
  1279. {
  1280. if(config.isSet("players."+thePlayer.getUniqueId()+".guild"))
  1281. {
  1282. if(args.length == 2)
  1283. {
  1284. String gn = config.getString("players."+thePlayer.getUniqueId()+".guild");
  1285. @SuppressWarnings("unchecked")
  1286. ArrayList<String> officers = (ArrayList<String>) config.getList("guilds."+gn+".officers");
  1287. if(config.getString("guilds."+gn+".leader").equals(thePlayer.getUniqueId().toString()) || (officers.contains(thePlayer.getName())))
  1288. {
  1289. if(Bukkit.getPlayer(args[1]) != null)
  1290. {
  1291. Player invPlayer = Bukkit.getPlayer(args[1]);
  1292. if(config.isSet("players."+invPlayer.getUniqueId()+".invites"))
  1293. {
  1294. @SuppressWarnings("unchecked")
  1295. ArrayList<String> invs = (ArrayList<String>) config.getList("players."+invPlayer.getUniqueId()+".invites");
  1296. if(invs.contains(gn))
  1297. {
  1298. invs.remove(gn);
  1299. config.set("players."+invPlayer.getUniqueId()+".invites", invs);
  1300. saveConfig();
  1301. invPlayer.sendMessage("§a"+gn+" has revoked their invitation for you to join their guild. Use §2/invites §ato see any other pending invitations.");
  1302. @SuppressWarnings("unchecked")
  1303. ArrayList<String> members = (ArrayList<String>) config.getList("guilds."+gn+".members");
  1304. for(int i = 0; i < members.size(); i++)
  1305. {
  1306. Player member = Bukkit.getPlayer(members.get(i));
  1307. member.sendMessage("§6[§a"+gn+"§6] §a"+invPlayer.getName()+"'s invitation to join your guild has been revoked by "+thePlayer.getName()+".");
  1308. }
  1309. return true;
  1310. }
  1311. else
  1312. {
  1313. thePlayer.sendMessage("§cThat player does not have an invitation to your guild.");
  1314. return false;
  1315. }
  1316. }
  1317. else
  1318. {
  1319. thePlayer.sendMessage("§cThat player does not have an invitation to your guild.");
  1320. return false;
  1321. }
  1322. }
  1323. else
  1324. {
  1325. thePlayer.sendMessage("§cPlayer not found.");
  1326. return false;
  1327. }
  1328. }
  1329. else
  1330. {
  1331. thePlayer.sendMessage("§cOnly guild leaders and officers can revoke invitations.");
  1332. return false;
  1333. }
  1334. }
  1335. else
  1336. {
  1337. thePlayer.sendMessage("§cIncorrect format, use §4/g revoke [PlayerName]");
  1338. return false;
  1339. }
  1340. }
  1341. else
  1342. {
  1343. thePlayer.sendMessage("§cYou are not a part of a guild.");
  1344. return false;
  1345. }
  1346. }
  1347. if(args[0].equalsIgnoreCase("invs") || args[0].equalsIgnoreCase("invites") || args[0].equalsIgnoreCase("invitations"))
  1348. {
  1349. if(args.length == 1)
  1350. {
  1351. if(config.isSet("players."+thePlayer.getUniqueId()+".invites"))
  1352. {
  1353. @SuppressWarnings("unchecked")
  1354. ArrayList<String> invs = (ArrayList<String>) config.getList("players."+thePlayer.getUniqueId()+".invites");
  1355. thePlayer.sendMessage("§aTo accept a pending invitation you must not be a part of a guild currently and use §2/g join [GuildName]");
  1356. thePlayer.sendMessage("§aInvitations: "+invs);
  1357. return true;
  1358. }
  1359. else
  1360. {
  1361. thePlayer.sendMessage("§aYou currently have no pending guild invitations.");
  1362. return true;
  1363. }
  1364. }
  1365. else
  1366. {
  1367. thePlayer.sendMessage("§cIncorrect format, use §4/g invites");
  1368. return false;
  1369. }
  1370. }
  1371. if(args[0].equalsIgnoreCase("join"))
  1372. {
  1373. if(config.isSet("players."+thePlayer.getUniqueId()+".guild"))
  1374. {
  1375. thePlayer.sendMessage("§cYou must leave or disband your current guild before joining a new one.");
  1376. return false;
  1377. }
  1378. if(args.length != 2)
  1379. {
  1380. thePlayer.sendMessage("§cIncorrect format, use §4/g join [GuildName]");
  1381. return false;
  1382. }
  1383. String gn = args[1];
  1384. if(config.isSet("guilds."+gn))
  1385. {
  1386. @SuppressWarnings("unchecked")
  1387. ArrayList<String> invs = (ArrayList<String>) config.getList("players."+thePlayer.getUniqueId()+".invites");
  1388. if(invs.contains(gn))
  1389. {
  1390. invs.remove(gn);
  1391. config.set("players."+thePlayer.getUniqueId()+".invites", invs);
  1392. @SuppressWarnings("unchecked")
  1393. ArrayList<String> members = (ArrayList<String>) config.getList("guilds."+gn+".members");
  1394. if (members.size() == 20)
  1395. {
  1396. thePlayer.sendMessage("§cI'm sorry, that guild has reached it's maximum player limit.");
  1397. return false;
  1398. }
  1399. for(int i = 0; i < members.size(); i++)
  1400. {
  1401. Player member = Bukkit.getPlayer(members.get(i));
  1402. member.sendMessage("§6[§a"+gn+"§6] §a"+thePlayer.getName()+" has joined your guild.");
  1403. }
  1404. members.add(thePlayer.getName());
  1405. config.set("guilds."+gn+".members", members);
  1406. config.set("guilds."+gn+".landcount", config.getInt("guilds."+gn+".landcount")+1);
  1407. config.set("guilds."+gn+".power", guildPower(gn));
  1408. config.set("players."+thePlayer.getUniqueId()+".guild", gn);
  1409. saveConfig();
  1410. thePlayer.sendMessage("§aYou have successfully joined "+gn+"!");
  1411. return true;
  1412. }
  1413. else
  1414. {
  1415. thePlayer.sendMessage("§cYou do not have an invitation from that guild, use §4/invites §cto see your guild invitations.");
  1416. return false;
  1417. }
  1418. }
  1419. else
  1420. {
  1421. thePlayer.sendMessage("§cGuild not found.");
  1422. return false;
  1423. }
  1424. }
  1425. if(args[0].equalsIgnoreCase("leave"))
  1426. {
  1427. if(config.isSet("players."+thePlayer.getUniqueId()+".guild"))
  1428. {
  1429. String gn = config.getString("players."+thePlayer.getUniqueId()+".guild");
  1430. if(config.getString("guilds."+gn+".leader").equals(thePlayer.getUniqueId().toString()))
  1431. {
  1432. thePlayer.sendMessage("§cYou cannot leave your guild, consider §4/g leader [PlayerName] §cor §4/g disband");
  1433. return false;
  1434. }
  1435. @SuppressWarnings("unchecked")
  1436. ArrayList<String> officers = (ArrayList<String>) config.getList("guilds."+gn+".officers");
  1437. if(officers.contains(thePlayer.getName()))
  1438. {
  1439. officers.remove(thePlayer.getName());
  1440. config.set("guilds."+gn+".officers", officers);
  1441. }
  1442. @SuppressWarnings("unchecked")
  1443. ArrayList<String> members = (ArrayList<String>) config.getList("guilds."+gn+".members");
  1444. if(members.contains(thePlayer.getName()))
  1445. {
  1446. members.remove(thePlayer.getName());
  1447. config.set("players."+thePlayer.getUniqueId()+".guild", null);
  1448. config.set("guilds."+gn+".members", members);
  1449. config.set("guilds."+gn+".landcount", config.getInt("guilds."+gn+".landcount")-1);
  1450. config.set("guilds."+gn+".power", guildPower(gn));
  1451. saveConfig();
  1452. for(int i = 0; i < members.size(); i++)
  1453. {
  1454. Player member = Bukkit.getPlayer(members.get(i));
  1455. member.sendMessage("§6[§a"+gn+"§6] §a"+thePlayer.getName()+" has left your guild.");
  1456. }
  1457. return true;
  1458. }
  1459. }
  1460. else
  1461. {
  1462. thePlayer.sendMessage("§cYou are not a part of a guild.");
  1463. return false;
  1464. }
  1465. }
  1466. if(args[0].equalsIgnoreCase("kick"))
  1467. {
  1468. if(config.isSet("players."+thePlayer.getUniqueId()+".guild"))
  1469. {
  1470. if(args.length == 2)
  1471. {
  1472. String gn = config.getString("players."+thePlayer.getUniqueId()+".guild");
  1473. @SuppressWarnings("unchecked")
  1474. ArrayList<String> officers = (ArrayList<String>) config.getList("guilds."+gn+".officers");
  1475. if(config.getString("guilds."+gn+".leader").equals(thePlayer.getUniqueId().toString()) || (officers.contains(thePlayer.getName())))
  1476. {
  1477. if(Bukkit.getPlayer(args[1]) != null)
  1478. {
  1479. Player kickPlayer = Bukkit.getPlayer(args[1]);
  1480. @SuppressWarnings("unchecked")
  1481. ArrayList<String> members = (ArrayList<String>) config.getList("guilds."+gn+".members");
  1482. if(members.contains(kickPlayer.getName()))
  1483. {
  1484. if(config.getString("guilds."+gn+".leader").equals(kickPlayer.getUniqueId().toString()))
  1485. {
  1486. thePlayer.sendMessage("§cYou cannot do that.");
  1487. return false;
  1488. }
  1489. if(officers.contains(kickPlayer.getName()))
  1490. {
  1491. if(officers.contains(thePlayer.getName()))
  1492. {
  1493. thePlayer.sendMessage("§cOnly the guild leader can kick guild officers.");
  1494. return false;
  1495. }
  1496. officers.remove(thePlayer.getName());
  1497. config.set("guilds."+gn+".officers", officers);
  1498. }
  1499. members.remove(kickPlayer.getName());
  1500. config.set("players."+kickPlayer.getUniqueId()+".guild", null);
  1501. config.set("guilds."+gn+".members", members);
  1502. config.set("guilds."+gn+".landcount", config.getInt("guilds."+gn+".landcount")-1);
  1503. config.set("guilds."+gn+".power", guildPower(gn));
  1504. saveConfig();
  1505. for(int i = 0; i < members.size(); i++)
  1506. {
  1507. Player member = Bukkit.getPlayer(members.get(i));
  1508. member.sendMessage("§6[§a"+gn+"§6] §a"+thePlayer.getName()+" has been kicked from your guild by "+thePlayer.getName()+".");
  1509. }
  1510. return true;
  1511. }
  1512. else
  1513. {
  1514. thePlayer.sendMessage("§cThat player is not a part of your guild.");
  1515. return false;
  1516. }
  1517. }
  1518. else
  1519. {
  1520. thePlayer.sendMessage("§cPlayer not found.");
  1521. return false;
  1522. }
  1523. }
  1524. else
  1525. {
  1526. thePlayer.sendMessage("§cOnly the guild leader and guild officers can kick players from the guild.");
  1527. return false;
  1528. }
  1529. }
  1530. else
  1531. {
  1532. thePlayer.sendMessage("§cIncorrect format, use §4/g kick [PlayerName]");
  1533. return false;
  1534. }
  1535. }
  1536. else
  1537. {
  1538. thePlayer.sendMessage("§cYou are not a part of a guild.");
  1539. return false;
  1540. }
  1541. }
  1542. if(args[0].equalsIgnoreCase("chat") || (args[0].equalsIgnoreCase("c")))
  1543. {
  1544. if(config.isSet("players."+thePlayer.getUniqueId()+".guild"))
  1545. {
  1546. if(args.length > 1)
  1547. {
  1548. String gn = config.getString("players."+thePlayer.getUniqueId()+".guild");
  1549. @SuppressWarnings("unchecked")
  1550. ArrayList<String> members = (ArrayList<String>) config.getList("guilds."+gn+".members");
  1551. @SuppressWarnings("unchecked")
  1552. ArrayList<String> officers = (ArrayList<String>) config.getList("guilds."+gn+".officers");
  1553. StringBuilder sb = new StringBuilder();
  1554. for(int i=0;i<args.length;i++)
  1555. {
  1556. sb.append(args[i] + " ");
  1557. }
  1558. if(config.getString("guilds."+gn+".leader").equals(thePlayer.getUniqueId().toString()))
  1559. {
  1560. for(int i = 0; i < members.size(); i++)
  1561. {
  1562. Player member = Bukkit.getPlayer(members.get(i));
  1563. member.sendMessage("§6[§a"+gn+"§6] §a**"+thePlayer.getName()+": "+sb);
  1564. }
  1565. return true;
  1566. }
  1567. else if(officers.contains(thePlayer.getName()))
  1568. {
  1569. for(int i = 0; i < members.size(); i++)
  1570. {
  1571. Player member = Bukkit.getPlayer(members.get(i));
  1572. member.sendMessage("§6[§a"+gn+"§6] §a*"+thePlayer.getName()+": "+sb);
  1573. }
  1574. return true;
  1575. }
  1576. else
  1577. {
  1578. for(int i = 0; i < members.size(); i++)
  1579. {
  1580. Player member = Bukkit.getPlayer(members.get(i));
  1581. member.sendMessage("§6[§a"+gn+"§6] §a"+thePlayer.getName()+": "+sb);
  1582. }
  1583. return true;
  1584. }
  1585. }
  1586. else
  1587. {
  1588. thePlayer.sendMessage("§cIncorrect format, use §4/g c [Message]");
  1589. return false;
  1590. }
  1591. }
  1592. else
  1593. {
  1594. thePlayer.sendMessage("§cYou are not a part of a guild.");
  1595. return false;
  1596. }
  1597. }
  1598. if(args[0].equalsIgnoreCase("check"))
  1599. {
  1600. if(args.length == 1)
  1601. {
  1602. Chunk chunk = thePlayer.getLocation().getChunk();
  1603. if(config.isSet("claims."+chunk.toString()))
  1604. {
  1605. String guild = config.getString("claims."+chunk.toString());
  1606. thePlayer.sendMessage("§aThis chunk belongs to "+guild+".");
  1607. }
  1608. else thePlayer.sendMessage("§aThis chunk does not belong to a guild.");
  1609. }
  1610. else thePlayer.sendMessage("§cUse this command while standing in a chunk you wish to know the owner of, correct format is §4/g check");
  1611. }
  1612. if(args[0].equalsIgnoreCase("claim"))
  1613. {
  1614. if(args.length == 1)
  1615. {
  1616. if(config.isSet("players."+thePlayer.getUniqueId()+".guild"))
  1617. {
  1618. String gn = config.getString("players."+thePlayer.getUniqueId()+".guild");
  1619. @SuppressWarnings("unchecked")
  1620. ArrayList<String> officers = (ArrayList<String>) config.getList("guilds."+gn+".officers");
  1621. if(config.getString("guilds."+gn+".leader").equals(thePlayer.getUniqueId().toString()) || (officers.contains(thePlayer.getName())))
  1622. {
  1623. Chunk chunk = thePlayer.getLocation().getChunk();
  1624. if(config.isSet("claims."+chunk.toString()))
  1625. {
  1626. if(config.getString("claims."+chunk.toString()).equals(gn))
  1627. {
  1628. thePlayer.sendMessage("§aYour guild already owns this chunk.");
  1629. return false;
  1630. }
  1631. else
  1632. {
  1633. thePlayer.sendMessage("§aAnalyzing attempt to claim. . .");
  1634. int landcount = config.getInt("guilds."+gn+".landcount");
  1635. int landclaimed = config.getInt("guilds."+gn+".landclaimed");
  1636. if(landclaimed >= landcount)
  1637. {
  1638. thePlayer.sendMessage("§cYour guild cannot claim anymore land.");
  1639. return false;
  1640. }
  1641. if(config.getDouble("guilds."+gn+".bal") < 200.0)
  1642. {
  1643. thePlayer.sendMessage("§cYour guild cannot afford $200.00 to claim this land.");
  1644. return false;
  1645. }
  1646. String ogn = config.getString("claims."+chunk.toString());
  1647. if(config.isSet("guilds."+ogn+".homeblock"))
  1648. {
  1649. if(config.getString("guilds."+ogn+".homeblock").equals(chunk.toString()))
  1650. {
  1651. thePlayer.sendMessage("§cYour guild cannot claim over the home block of "+ogn);
  1652. return false;
  1653. }
  1654. }
  1655. int olandcount = config.getInt("guilds."+ogn+".landcount");
  1656. int olandclaimed = config.getInt("guilds."+ogn+".landclaimed");
  1657. if(olandclaimed > olandcount)
  1658. {
  1659. thePlayer.sendMessage("§a"+ogn+" has claimed more land than they can support, approving your claim. . .");
  1660. @SuppressWarnings("unchecked")
  1661. ArrayList<String> oclaims = (ArrayList<String>) config.getList("guilds."+ogn+".claims");
  1662. oclaims.remove(chunk.toString());
  1663. config.set("guilds."+ogn+".claims", oclaims);
  1664. config.set("guilds."+ogn+".landclaimed", config.getInt("guilds."+ogn+".landclaimed")-1);
  1665. config.set("guilds."+gn+".landclaimed", config.getInt("guilds."+gn+".landclaimed")+1);
  1666. config.set("guilds."+gn+".bal", config.getDouble("guilds."+gn+".bal")-200.0);
  1667. config.set("claims."+chunk.toString(), gn);
  1668. if(config.isSet("guilds."+gn+".claims"))
  1669. {
  1670. @SuppressWarnings("unchecked")
  1671. ArrayList<String> claims = (ArrayList<String>) config.getList("guilds."+gn+".claims");
  1672. claims.add(chunk.toString());
  1673. config.set("guilds."+gn+".claims", claims);
  1674. }
  1675. else
  1676. {
  1677. ArrayList<String> claims = new ArrayList<String>();
  1678. claims.add(chunk.toString());
  1679. config.set("guilds."+gn+".claims", claims);
  1680. }
  1681. landclaimed = config.getInt("guilds."+gn+".landclaimed");
  1682. saveConfig();
  1683. thePlayer.sendMessage("§aLand claimed! You have claimed "+landclaimed+"/"+landcount+" possible claims.");
  1684. return true;
  1685. }
  1686. else
  1687. {
  1688. int opower = Integer.parseInt(guildPower(ogn));
  1689. int oneeded = olandclaimed*10/2;
  1690. if(oneeded >= opower)
  1691. {
  1692. thePlayer.sendMessage("§cCould not claim over the land of "+ogn+". They have not exceeded their claim limit, or fallen below needed power levels.");
  1693. return false;
  1694. }
  1695. else
  1696. {
  1697. thePlayer.sendMessage("§a"+ogn+" does not have enough power to protect this land, approving your claim. . .");
  1698. @SuppressWarnings("unchecked")
  1699. ArrayList<String> oclaims = (ArrayList<String>) config.getList("guilds."+ogn+".claims");
  1700. oclaims.remove(chunk.toString());
  1701. config.set("guilds."+ogn+".claims", oclaims);
  1702. config.set("guilds."+ogn+".landclaimed", config.getInt("guilds."+ogn+".landclaimed")-1);
  1703. config.set("guilds."+gn+".landclaimed", config.getInt("guilds."+gn+".landclaimed")+1);
  1704. config.set("guilds."+gn+".bal", config.getDouble("guilds."+gn+".bal")-200.0);
  1705. config.set("claims."+chunk.toString(), gn);
  1706. if(config.isSet("guilds."+gn+".claims"))
  1707. {
  1708. @SuppressWarnings("unchecked")
  1709. ArrayList<String> claims = (ArrayList<String>) config.getList("guilds."+gn+".claims");
  1710. claims.add(chunk.toString());
  1711. config.set("guilds."+gn+".claims", claims);
  1712. }
  1713. else
  1714. {
  1715. ArrayList<String> claims = new ArrayList<String>();
  1716. claims.add(chunk.toString());
  1717. config.set("guilds."+gn+".claims", claims);
  1718. }
  1719. landclaimed = config.getInt("guilds."+gn+".landclaimed");
  1720. saveConfig();
  1721. thePlayer.sendMessage("§aLand claimed! You have claimed "+landclaimed+"/"+landcount+" possible claims.");
  1722. return true;
  1723. }
  1724. }
  1725. }
  1726. }
  1727. else
  1728. {
  1729. int landcount = config.getInt("guilds."+gn+".landcount");
  1730. int landclaimed = config.getInt("guilds."+gn+".landclaimed");
  1731. if(landclaimed >= landcount)
  1732. {
  1733. thePlayer.sendMessage("§cYour guild cannot claim anymore land.");
  1734. return false;
  1735. }
  1736. if(config.getDouble("guilds."+gn+".bal") < 100.0)
  1737. {
  1738. thePlayer.sendMessage("§cYour guild cannot afford $100.00 to claim this land.");
  1739. return false;
  1740. }
  1741. else
  1742. {
  1743. config.set("guilds."+gn+".landclaimed", config.getInt("guilds."+gn+".landclaimed")+1);
  1744. config.set("guilds."+gn+".bal", config.getDouble("guilds."+gn+".bal")-100.0);
  1745. config.set("claims."+chunk.toString(), gn);
  1746. if(config.isSet("guilds."+gn+".claims"))
  1747. {
  1748. @SuppressWarnings("unchecked")
  1749. ArrayList<String> claims = (ArrayList<String>) config.getList("guilds."+gn+".claims");
  1750. claims.add(chunk.toString());
  1751. config.set("guilds."+gn+".claims", claims);
  1752. }
  1753. else
  1754. {
  1755. ArrayList<String> claims = new ArrayList<String>();
  1756. claims.add(chunk.toString());
  1757. config.set("guilds."+gn+".claims", claims);
  1758. }
  1759. landclaimed = config.getInt("guilds."+gn+".landclaimed");
  1760. saveConfig();
  1761. thePlayer.sendMessage("§aLand claimed! You have claimed "+landclaimed+"/"+landcount+" possible claims.");
  1762. return true;
  1763. }
  1764. }
  1765. }
  1766. else
  1767. {
  1768. thePlayer.sendMessage("§cOnly guild leaders and guild officers can claim land.");
  1769. return false;
  1770. }
  1771. }
  1772. else
  1773. {
  1774. thePlayer.sendMessage("§cYou are not a part of a guild.");
  1775. return false;
  1776. }
  1777. }
  1778. else
  1779. {
  1780. thePlayer.sendMessage("§cIncorrect format, use §4/g claim");
  1781. return false;
  1782. }
  1783. }
  1784. if(args[0].equalsIgnoreCase("unclaim"))
  1785. {
  1786. if(args.length == 1)
  1787. {
  1788. if(config.isSet("players."+thePlayer.getUniqueId()+".guild"))
  1789. {
  1790. String gn = config.getString("players."+thePlayer.getUniqueId()+".guild");
  1791. @SuppressWarnings("unchecked")
  1792. ArrayList<String> officers = (ArrayList<String>) config.getList("guilds."+gn+".officers");
  1793. if(config.getString("guilds."+gn+".leader").equals(thePlayer.getUniqueId().toString()) || (officers.contains(thePlayer.getName())))
  1794. {
  1795. Chunk chunk = thePlayer.getLocation().getChunk();
  1796. if(config.isSet("claims."+chunk.toString()))
  1797. {
  1798. if(config.getString("claims."+chunk.toString()).equals(gn))
  1799. {
  1800. int landcount = config.getInt("guilds."+gn+".landcount");
  1801. int landclaimed = config.getInt("guilds."+gn+".landclaimed");
  1802. config.set("guilds."+gn+".landclaimed", config.getInt("guilds."+gn+".landclaimed")-1);
  1803. config.set("guilds."+gn+".bal", config.getDouble("guilds."+gn+".bal")+25.0);
  1804. config.set("claims."+chunk.toString(), null);
  1805. if(config.isSet("guilds."+gn+".homeblock"))
  1806. {
  1807. if(config.getString("guilds."+gn+".homeblock").equals(chunk.toString()))
  1808. {
  1809. config.set("guilds."+gn+".homeblock", null);
  1810. config.set("guilds."+gn+".sethome", null);
  1811. }
  1812. }
  1813. @SuppressWarnings("unchecked")
  1814. ArrayList<String> claims = (ArrayList<String>) config.getList("guilds."+gn+".claims");
  1815. claims.remove(chunk.toString());
  1816. config.set("guilds."+gn+".claims", claims);
  1817. landclaimed = config.getInt("guilds."+gn+".landclaimed");
  1818. saveConfig();
  1819. thePlayer.sendMessage("§aUnclaimed. Your guild has now claimed "+landclaimed+"/"+landcount+" claims.");
  1820. return true;
  1821. }
  1822. else
  1823. {
  1824. thePlayer.sendMessage("§cThis claim does not belong to your guild.");
  1825. return false;
  1826. }
  1827. }
  1828. else
  1829. {
  1830. thePlayer.sendMessage("§cThis chunk is not claimed.");
  1831. return false;
  1832. }
  1833. }
  1834. else
  1835. {
  1836. thePlayer.sendMessage("§cOnly guild leaders and guild officers can unclaim land.");
  1837. return false;
  1838. }
  1839. }
  1840. else
  1841. {
  1842. thePlayer.sendMessage("§cYou are not a part of a guild.");
  1843. return false;
  1844. }
  1845. }
  1846. if(args.length == 2)
  1847. {
  1848. if(config.isSet("players."+thePlayer.getUniqueId()+".guild"))
  1849. {
  1850. if(args[1].equalsIgnoreCase("all"))
  1851. {
  1852. String gn = config.getString("players."+thePlayer.getUniqueId()+".guild");
  1853. if(config.getString("guilds."+gn+".leader").equals(thePlayer.getUniqueId().toString()))
  1854. {
  1855. if(config.isSet("guilds."+gn+".claims"))
  1856. {
  1857. @SuppressWarnings("unchecked")
  1858. ArrayList<String> claims = (ArrayList<String>) config.getList("guilds."+gn+".claims");
  1859. for(int i = 0; i < claims.size(); i++)
  1860. {
  1861. String chunk = claims.get(i);
  1862. config.set("claims."+chunk, null);
  1863. config.set("guilds."+gn+".bal", config.getDouble("guilds."+gn+".bal")+25.0);
  1864. claims.remove(i);
  1865. }
  1866. if(config.isSet("guilds."+gn+".homeblock"))
  1867. {
  1868. config.set("guilds."+gn+".homeblock", null);
  1869. config.set("guilds."+gn+".sethome", null);
  1870. }
  1871. config.set("guilds."+gn+".claims", null);
  1872. config.set("guilds."+gn+".landclaimed", 0);
  1873. saveConfig();
  1874. thePlayer.sendMessage("§aLand unclaimed.");
  1875. return true;
  1876. }
  1877. else
  1878. {
  1879. thePlayer.sendMessage("§cYour guild does not have any claimed land.");
  1880. return false;
  1881. }
  1882. }
  1883. else
  1884. {
  1885. thePlayer.sendMessage("§cOnly the guild leader can use that command.");
  1886. return false;
  1887. }
  1888. }
  1889. else
  1890. {
  1891. thePlayer.sendMessage("§cIncorrect format, use §4/g unclaim §cor §4/g unclaim all");
  1892. return false;
  1893. }
  1894. }
  1895. else
  1896. {
  1897. thePlayer.sendMessage("§cYou are not a part of a guild.");
  1898. return false;
  1899. }
  1900.  
  1901. }
  1902. else
  1903. {
  1904. thePlayer.sendMessage("§cIncorrect format, use §4/g unclaim §cor §4/g unclaim all");
  1905. return false;
  1906. }
  1907. }
  1908. if(args[0].equalsIgnoreCase("sethome"))
  1909. {
  1910. if(args.length == 1)
  1911. {
  1912. if(config.isSet("players."+thePlayer.getUniqueId()+".guild"))
  1913. {
  1914. String gn = config.getString("players."+thePlayer.getUniqueId()+".guild");
  1915. if(config.getString("guilds."+gn+".leader").equals(thePlayer.getUniqueId().toString()))
  1916. {
  1917. Chunk chunk = thePlayer.getLocation().getChunk();
  1918. if(config.isSet("claims."+chunk.toString()))
  1919. {
  1920. if(config.getString("claims."+chunk.toString()).equals(gn))
  1921. {
  1922. config.set("guilds."+gn+".homeblock", chunk.toString());
  1923. String w = thePlayer.getWorld().getName();
  1924. double x = thePlayer.getLocation().getX();
  1925. double y = thePlayer.getLocation().getY();
  1926. double z = thePlayer.getLocation().getZ();
  1927. config.set("guilds."+gn+".sethome.x", x);
  1928. config.set("guilds."+gn+".sethome.y", y);
  1929. config.set("guilds."+gn+".sethome.z", z);
  1930. config.set("guilds."+gn+".sethome.w", w);
  1931. saveConfig();
  1932. thePlayer.sendMessage("§aGuild home set to your location.");
  1933. return true;
  1934. }
  1935. else
  1936. {
  1937. thePlayer.sendMessage("§cYour guild does not own this chunk.");
  1938. return false;
  1939. }
  1940. }
  1941. else
  1942. {
  1943. thePlayer.sendMessage("§cThis chunk does not belong to a guild.");
  1944. return false;
  1945. }
  1946. }
  1947. else
  1948. {
  1949. thePlayer.sendMessage("§cOnly guilds leaders can set the guild home.");
  1950. return false;
  1951. }
  1952. }
  1953. else
  1954. {
  1955. thePlayer.sendMessage("§cYou are not a part of a guild.");
  1956. return false;
  1957. }
  1958. }
  1959. else
  1960. {
  1961. thePlayer.sendMessage("§cIncorrect format, use §4/g sethome");
  1962. return false;
  1963. }
  1964. }
  1965. if(args[0].equalsIgnoreCase("home"))
  1966. {
  1967. if(args.length == 1)
  1968. {
  1969. if(config.isSet("players."+thePlayer.getUniqueId()+".guild"))
  1970. {
  1971. String gn = config.getString("players."+thePlayer.getUniqueId()+".guild");
  1972. if(config.isSet("guilds."+gn+".homeblock"))
  1973. {
  1974. World w = (World) Bukkit.getServer().getWorld((String) config.get(("guilds."+gn+".sethome.w")));
  1975. double x = config.getDouble(("guilds."+gn+".sethome.x"));
  1976. double y = config.getDouble(("guilds."+gn+".sethome.y"));
  1977. double z = config.getDouble(("guilds."+gn+".sethome.z"));
  1978. Location loc = new Location(w, x, y, z);
  1979. thePlayer.sendMessage("§aTeleporting in 3 seconds. . .");
  1980. ghome.put(thePlayer.getUniqueId(), loc);
  1981. Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable(){
  1982. @Override
  1983. public void run()
  1984. {
  1985. if (ghome.containsKey(thePlayer.getUniqueId()))
  1986. {
  1987. thePlayer.sendMessage("§aTeleporting. . .");
  1988. thePlayer.teleport(ghome.get(thePlayer.getUniqueId()));
  1989. ghome.remove(thePlayer.getUniqueId());
  1990. }
  1991. }
  1992. }, 80);
  1993. }
  1994. }
  1995. else
  1996. {
  1997. thePlayer.sendMessage("§cYou are not a part of a guild.");
  1998. return false;
  1999. }
  2000. }
  2001. else
  2002. {
  2003. thePlayer.sendMessage("§cIncorrect format, use §4/g home");
  2004. return false;
  2005. }
  2006. }
  2007. if(args[0].equalsIgnoreCase("rename"))
  2008. {
  2009. if(config.isSet("players."+thePlayer.getUniqueId()+".guild"))
  2010. {
  2011. if(args.length == 2)
  2012. {
  2013. String gn = config.getString("players."+thePlayer.getUniqueId()+".guild");
  2014. if(config.getString("guilds."+gn+".leader").equals(thePlayer.getUniqueId().toString()))
  2015. {
  2016. String ngn = args[1];
  2017. if(gn.equalsIgnoreCase(ngn))
  2018. {
  2019. thePlayer.sendMessage("§cThat is already the name of your guild.");
  2020. return false;
  2021. }
  2022. if(!isAlphanumeric(ngn))
  2023. {
  2024. thePlayer.sendMessage("§cYour guild name must be alphanumeric, please choose a new name and try again.");
  2025. return false;
  2026. }
  2027. if(illegalNames.contains(ngn))
  2028. {
  2029. thePlayer.sendMessage("§cInnappropriate guild name, please choose a new name and try again.");
  2030. return false;
  2031. }
  2032. @SuppressWarnings("unchecked")
  2033. ArrayList<String> guilds = (ArrayList<String>) config.getList("guildlist");
  2034. for(int i = 0; i < guilds.size(); i++)
  2035. {
  2036. if(guilds.get(i).equalsIgnoreCase(ngn))
  2037. {
  2038. thePlayer.sendMessage("§cThat guild already exists, please choose a new name and try again.");
  2039. return false;
  2040. }
  2041. }
  2042. if(ngn.length() > 10)
  2043. {
  2044. thePlayer.sendMessage("§cGuild names cannot be longer than 10 characters, please choose a new name and try again.");
  2045. return false;
  2046. }
  2047. if(config.getDouble("guilds."+gn+".bal") < 250.00)
  2048. {
  2049. thePlayer.sendMessage("§cYou do not have enough money in your guild bank to rename your guild, you need $250.00, use §4/g balance");
  2050. return false;
  2051. }
  2052. config.createSection("guilds."+ngn);
  2053. if(config.isSet("guilds."+gn+".officers"))
  2054. {
  2055. @SuppressWarnings("unchecked")
  2056. ArrayList<String> officers = (ArrayList<String>) config.getList("guilds."+gn+".officers");
  2057. ArrayList<String> nofficers = new ArrayList<String>();
  2058. for(int i = 0; i < officers.size(); i++)
  2059. {
  2060. nofficers.add(officers.get(i));
  2061. }
  2062. config.set("guilds."+ngn+".officers", nofficers);
  2063. }
  2064. if(config.isSet("guilds."+gn+".members"))
  2065. {
  2066. @SuppressWarnings("unchecked")
  2067. ArrayList<String> members = (ArrayList<String>) config.getList("guilds."+gn+".members");
  2068. ArrayList<String> nmembers = new ArrayList<String>();
  2069. for(int i = 0; i < members.size(); i++)
  2070. {
  2071. Player member = Bukkit.getPlayer(members.get(i));
  2072. member.sendMessage("§aYour guild has been renamed to "+ngn);
  2073. nmembers.add(members.get(i));
  2074. config.set("players."+member.getUniqueId()+".guild", ngn);
  2075. }
  2076. config.set("guilds."+ngn+".members", nmembers);
  2077. }
  2078. if(config.isSet("guilds."+gn+".claims"))
  2079. {
  2080. @SuppressWarnings("unchecked")
  2081. ArrayList<String> claims = (ArrayList<String>) config.getList("guilds."+gn+".claims");
  2082. ArrayList<String> nclaims = new ArrayList<String>();
  2083. for(int i = 0; i < claims.size(); i++)
  2084. {
  2085. nclaims.add(claims.get(i));
  2086. config.set("claims."+claims.get(i), ngn);
  2087. }
  2088. config.set("guilds."+ngn+".claims", nclaims);
  2089. }
  2090. config.set("guilds."+ngn+".bal", config.getDouble("guilds."+gn+".bal"));
  2091. if(config.isSet("guilds."+gn+".sethome.w"))
  2092. {
  2093. config.set("guilds."+ngn+".sethome.w", config.get("guilds."+gn+".sethome.w"));
  2094. config.set("guilds."+ngn+".sethome.x", config.get("guilds."+gn+".sethome.x"));
  2095. config.set("guilds."+ngn+".sethome.y", config.get("guilds."+gn+".sethome.y"));
  2096. config.set("guilds."+ngn+".sethome.z", config.get("guilds."+gn+".sethome.z"));
  2097. config.set("guilds."+ngn+".homeblock", config.get("guilds."+gn+".homeblock"));
  2098. }
  2099. config.set("guilds."+ngn+".leader", config.get("guilds."+gn+".leader"));
  2100. config.set("guilds."+ngn+".leadername", config.get("guilds."+gn+".leadername"));
  2101. config.set("guilds."+ngn+".landcount", config.get("guilds."+gn+".landcount"));
  2102. config.set("guilds."+ngn+".landclaimed", config.get("guilds."+gn+".landclaimed"));
  2103. config.set("guilds."+ngn+".power", guildPower(gn));
  2104. config.set("guilds."+gn, null);
  2105. guilds.remove(gn);
  2106. guilds.add(ngn);
  2107. config.set("guildlist", guilds);
  2108. saveConfig();
  2109. Bukkit.getServer().broadcastMessage("§6[§3Guilds§6] §a"+gn+" has been renamed to "+ngn+"!");
  2110. return true;
  2111. }
  2112. else
  2113. {
  2114. thePlayer.sendMessage("§cOnly guild leaders can rename guilds.");
  2115. return false;
  2116. }
  2117. }
  2118. else
  2119. {
  2120. thePlayer.sendMessage("§cIncorrect format, use §4/g rename [NewGuildName]");
  2121. return false;
  2122. }
  2123. }
  2124. else
  2125. {
  2126. thePlayer.sendMessage("§cYou are not a part of a guild.");
  2127. return false;
  2128. }
  2129. }
  2130. if(args[0].equalsIgnoreCase("disband"))
  2131. {
  2132. if(args.length == 1)
  2133. {
  2134. if(config.isSet("players."+thePlayer.getUniqueId()+".guild"))
  2135. {
  2136. String gn = config.getString("players."+thePlayer.getUniqueId()+".guild");
  2137. if(config.getString("guilds."+gn+".leader").equals(thePlayer.getUniqueId().toString()))
  2138. {
  2139. if(config.isSet("guilds."+gn+".members"))
  2140. {
  2141. @SuppressWarnings("unchecked")
  2142. ArrayList<String> members = (ArrayList<String>) config.getList("guilds."+gn+".members");
  2143. for(int i = 0; i < members.size(); i++)
  2144. {
  2145. Player member = Bukkit.getPlayer(members.get(i));
  2146. member.sendMessage("§6[§a"+gn+"§6] §aYour guild has been disbanded.");
  2147. config.set("players."+member.getUniqueId()+".guild", null);
  2148. }
  2149. }
  2150. if(config.isSet("guilds."+gn+".claims"))
  2151. {
  2152. @SuppressWarnings("unchecked")
  2153. ArrayList<String> claims = (ArrayList<String>) config.getList("guilds."+gn+".claims");
  2154. for(int i = 0; i < claims.size(); i++)
  2155. {
  2156. config.set("claims."+claims.get(i), null);
  2157. }
  2158. }
  2159. config.set("guilds."+gn, null);
  2160. @SuppressWarnings("unchecked")
  2161. ArrayList<String> guilds = (ArrayList<String>) config.getList("guildlist");
  2162. guilds.remove(gn);
  2163. config.set("guildlist", guilds);
  2164. saveConfig();
  2165. Bukkit.getServer().broadcastMessage("§6[§3Guilds§6] §a"+gn+" has been disbanded!");
  2166. return true;
  2167. }
  2168. else
  2169. {
  2170. thePlayer.sendMessage("§cOnly guild leaders can disband guilds.");
  2171. return false;
  2172. }
  2173. }
  2174. else
  2175. {
  2176. thePlayer.sendMessage("§cYou are not a part of a guild.");
  2177. return false;
  2178. }
  2179. }
  2180. else
  2181. {
  2182. thePlayer.sendMessage("§cIncorrect format, use §4/g rename [NewGuildName]");
  2183. return false;
  2184. }
  2185. }
  2186. }
  2187. }
  2188. else theSender.sendMessage("§cGuild commands can only be used in game.");
  2189. }
  2190. return false;
  2191. }
  2192. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement