Advertisement
DarkWitch_

Untitled

May 20th, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 62.72 KB | None | 0 0
  1. package fr.darkwitch.skyfac;
  2.  
  3. import java.io.File;
  4. import java.io.IOException;
  5. import java.io.Reader;
  6. import java.util.logging.Level;
  7.  
  8. import org.bukkit.Bukkit;
  9. import org.bukkit.ChatColor;
  10. import org.bukkit.command.Command;
  11. import org.bukkit.command.CommandSender;
  12. import org.bukkit.configuration.file.FileConfiguration;
  13. import org.bukkit.configuration.file.YamlConfiguration;
  14. import org.bukkit.entity.Player;
  15. import org.bukkit.event.EventHandler;
  16. import org.bukkit.event.EventPriority;
  17. import org.bukkit.event.Listener;
  18. import org.bukkit.event.player.PlayerChatEvent;
  19. import org.bukkit.event.player.PlayerCommandPreprocessEvent;
  20. import org.bukkit.event.player.PlayerJoinEvent;
  21. import org.bukkit.plugin.java.JavaPlugin;
  22. import org.bukkit.plugin.PluginManager;
  23. import org.bukkit.plugin.RegisteredServiceProvider;
  24. import org.bukkit.event.Listener;
  25.  
  26. import net.milkbowl.vault.economy.Economy;
  27. import net.milkbowl.vault.economy.EconomyResponse;
  28. import net.milkbowl.vault.permission.Permission;
  29. import net.md_5.bungee.api.chat.BaseComponent;
  30. import net.md_5.bungee.api.chat.ComponentBuilder;
  31. import net.md_5.bungee.api.chat.HoverEvent;
  32.  
  33. public class Skyfac extends JavaPlugin implements Listener {
  34. public Economy economy = null;
  35. public Permission permission = null;
  36. public String version = "V0.1";
  37. public String prefix = "[SkyFac] ";
  38. private FileConfiguration factionlist = null;
  39. private File factionlistFile = null;
  40.  
  41. private FileConfiguration playerlist = null;
  42. private File playerlistFile = null;
  43.  
  44. private FileConfiguration playerinvite = null;
  45. private File playerinviteFile = null;
  46.  
  47. private FileConfiguration ownerinvite = null;
  48. private File ownerinviteFile = null;
  49. public void onEnable() {
  50. PluginManager pm = getServer().getPluginManager();
  51. pm.registerEvents(this, this);
  52.  
  53. File factionlist = new File(getDataFolder() + "/factionslist.yml");
  54. if (!factionlist.exists()) {
  55. try {
  56. factionlist.createNewFile();
  57. getLogger().warning(version + " Creation du factionslist.yml!");
  58. } catch (IOException e) {
  59.  
  60. e.printStackTrace();
  61. }
  62. }
  63. File Playerlist = new File(getDataFolder() + "/playerlist.yml");
  64. if (!Playerlist.exists()) {
  65. try {
  66. Playerlist.createNewFile();
  67. getLogger().warning(version + " Creation du playerlist.yml!");
  68. } catch (IOException e) {
  69.  
  70. e.printStackTrace();
  71. }
  72. }
  73. File PlayerInvite = new File(getDataFolder() + "/playerinvite.yml");
  74. if (!PlayerInvite.exists()) {
  75. try {
  76. PlayerInvite.createNewFile();
  77. getLogger().warning(version + " Creation du playerinvite.yml!");
  78. } catch (IOException e) {
  79.  
  80. e.printStackTrace();
  81. }
  82. }
  83. File faction = new File(getDataFolder() + "/factions.yml");
  84. if (faction.exists()) {
  85. faction.delete();
  86.  
  87. File OwnerInvite = new File(getDataFolder() + "/ownerinvite.yml");
  88. if (!OwnerInvite.exists()) {
  89. try {
  90. OwnerInvite.createNewFile();
  91. getLogger().warning(version + " Creation du ownerinvite.yml!");
  92. } catch (IOException e) {
  93.  
  94. e.printStackTrace();
  95. }
  96. }
  97. getLogger().warning(version + " Suppression du factions.yml (OLD)!");
  98. }
  99. getLogger().warning(version + " has been activated!");
  100.  
  101. if (!setupDepends()) {
  102. setEnabled(false);
  103. }
  104. if (!getDataFolder().exists()) {
  105. getDataFolder().mkdirs();
  106. }
  107.  
  108. }
  109.  
  110. public void onDisable() {
  111. getLogger().warning(version + " has been desactivated!");
  112. getLogger().severe(version + " purge des invitations");
  113. this.getOwnerInvite().set("Players", null);
  114. this.getPlayerInvite().set("Players", null);
  115. this.savePlayerInvite();
  116. this.saveOwnerInvite();
  117. }
  118.  
  119.  
  120.  
  121. private boolean setupDepends() {
  122. if (!setupEconomy()) {
  123. getServer().getLogger().severe(version + "Le plugin d'economie est introuvable, etes-vous sur d'en avoir un ?");
  124. return false;
  125. } else if (!setupPermission()) {
  126. getServer().getLogger().severe(version + "Le plugin de permissions est introuvable, etes-vous sur d'en avoir un ?");
  127. return false;
  128. }
  129.  
  130. return true;
  131. }
  132.  
  133. private Boolean setupEconomy() {
  134. RegisteredServiceProvider < Economy > economyProvider = getServer().getServicesManager().getRegistration(Economy.class);
  135.  
  136. if (economyProvider != null) {
  137. economy = (Economy) economyProvider.getProvider();
  138. return true;
  139. }
  140.  
  141. return false;
  142. }
  143.  
  144. private Boolean setupPermission() {
  145. RegisteredServiceProvider < Permission > permissionProvider = getServer().getServicesManager().getRegistration(Permission.class);
  146.  
  147. if (permissionProvider != null) {
  148. permission = (Permission) permissionProvider.getProvider();
  149. return true;
  150. }
  151.  
  152. return false;
  153. }
  154.  
  155. public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
  156. if (cmd.getName().equalsIgnoreCase("skyfac")) {
  157. if (sender instanceof Player) {
  158. Player player = (Player) sender;
  159. if (args.length == 0) {
  160. player.sendMessage(ChatColor.RED + "~~~~~~~~~~~~" + ChatColor.AQUA + "SkyFac AIDE" + ChatColor.RED + "~~~~~~~~~~~~");
  161. player.sendMessage(ChatColor.GREEN + "Aide SkyFac (passez votre souris sur les commandes pour plus d'informations)");
  162.  
  163. BaseComponent[] skyfac_create_hovertext = new ComponentBuilder("Créer votre faction").create();
  164. HoverEvent skyfac_create_hoverevent = new HoverEvent(HoverEvent.Action.SHOW_TEXT, skyfac_create_hovertext);
  165. BaseComponent[] skyfac_create = new ComponentBuilder("").append(ChatColor.GREEN + "/skyfac create [Nom de faction]").event(skyfac_create_hoverevent).create();
  166.  
  167. BaseComponent[] skyfac_invite_hovertext = new ComponentBuilder("Invitez un joueur a votre faction").create();
  168. HoverEvent skyfac_invite_hoverevent = new HoverEvent(HoverEvent.Action.SHOW_TEXT, skyfac_invite_hovertext);
  169. BaseComponent[] skyfac_invite = new ComponentBuilder("").append(ChatColor.GREEN + "/skyfac invite [Nom du joueur]").event(skyfac_invite_hoverevent).create();
  170.  
  171. BaseComponent[] skyfac_rank_hovertext = new ComponentBuilder("Afficher le classement").create();
  172. HoverEvent skyfac_rank_hoverevent = new HoverEvent(HoverEvent.Action.SHOW_TEXT, skyfac_rank_hovertext);
  173. BaseComponent[] skyfac_rank = new ComponentBuilder("").append(ChatColor.GREEN + "/skyfac rank").event(skyfac_rank_hoverevent).create();
  174.  
  175. BaseComponent[] skyfac_accept_hovertext = new ComponentBuilder("Accepter l'invitation a rejoindre la faction").create();
  176. HoverEvent skyfac_accept_hoverevent = new HoverEvent(HoverEvent.Action.SHOW_TEXT, skyfac_accept_hovertext);
  177. BaseComponent[] skyfac_accept = new ComponentBuilder("").append(ChatColor.GREEN + "/skyfac accept").event(skyfac_accept_hoverevent).create();
  178.  
  179. BaseComponent[] skyfac_deny_hovertext = new ComponentBuilder("Refuser l'invitation a rejoindre la faction").create();
  180. HoverEvent skyfac_deny_hoverevent = new HoverEvent(HoverEvent.Action.SHOW_TEXT, skyfac_deny_hovertext);
  181. BaseComponent[] skyfac_deny = new ComponentBuilder("").append(ChatColor.GREEN + "/skyfac deny").event(skyfac_deny_hoverevent).create();
  182.  
  183. BaseComponent[] skyfac_claim_hovertext = new ComponentBuilder("Ajouter un chunk a votre faction").create();
  184. HoverEvent skyfac_claim_hoverevent = new HoverEvent(HoverEvent.Action.SHOW_TEXT, skyfac_claim_hovertext);
  185. BaseComponent[] skyfac_claim = new ComponentBuilder("").append(ChatColor.GREEN + "/skyfac claim").event(skyfac_claim_hoverevent).create();
  186.  
  187. BaseComponent[] skyfac_reload_hovertext = new ComponentBuilder("recharger les fichiers de configuration").create();
  188. HoverEvent skyfac_reload_hoverevent = new HoverEvent(HoverEvent.Action.SHOW_TEXT, skyfac_reload_hovertext);
  189. BaseComponent[] skyfac_reload = new ComponentBuilder("").append(ChatColor.GREEN + "/skyfac reload").event(skyfac_reload_hoverevent).create();
  190.  
  191. BaseComponent[] skyfac_disband_hovertext = new ComponentBuilder("Dissous votre faction").create();
  192. HoverEvent skyfac_disband_hoverevent = new HoverEvent(HoverEvent.Action.SHOW_TEXT, skyfac_disband_hovertext);
  193. BaseComponent[] skyfac_disband = new ComponentBuilder("").append(ChatColor.GREEN + "/skyfac disband").event(skyfac_disband_hoverevent).create();
  194.  
  195. BaseComponent[] skyfac_info_hovertext = new ComponentBuilder("Affiche les information de votre faction").create();
  196. HoverEvent skyfac_info_hoverevent = new HoverEvent(HoverEvent.Action.SHOW_TEXT, skyfac_info_hovertext);
  197. BaseComponent[] skyfac_info = new ComponentBuilder("").append(ChatColor.GREEN + "/skyfac info").event(skyfac_info_hoverevent).create();
  198.  
  199. BaseComponent[] skyfac_leave_hovertext = new ComponentBuilder("Quitter votre faction").create();
  200. HoverEvent skyfac_leave_hoverevent = new HoverEvent(HoverEvent.Action.SHOW_TEXT, skyfac_leave_hovertext);
  201. BaseComponent[] skyfac_leave = new ComponentBuilder("").append(ChatColor.GREEN + "/skyfac leave").event(skyfac_leave_hoverevent).create();
  202.  
  203. BaseComponent[] skyfac_kick_hovertext = new ComponentBuilder("Expulser un joueur de votre faction").create();
  204. HoverEvent skyfac_kick_hoverevent = new HoverEvent(HoverEvent.Action.SHOW_TEXT, skyfac_kick_hovertext);
  205. BaseComponent[] skyfac_kick = new ComponentBuilder("").append(ChatColor.GREEN + "/skyfac kick [Nom de joueur]").event(skyfac_kick_hoverevent).create();
  206.  
  207. BaseComponent[] skyfac_deposit_hovertext = new ComponentBuilder("Depose de l'argent sur le compte de la faction").create();
  208. HoverEvent skyfac_deposit_hoverevent = new HoverEvent(HoverEvent.Action.SHOW_TEXT, skyfac_deposit_hovertext);
  209. BaseComponent[] skyfac_deposit = new ComponentBuilder("").append(ChatColor.GREEN + "/skyfac deposit [Montant]").event(skyfac_deposit_hoverevent).create();
  210.  
  211. BaseComponent[] skyfac_withdraw_hovertext = new ComponentBuilder("Retire de l'argent sur le compte de la faction").create();
  212. HoverEvent skyfac_withdraw_hoverevent = new HoverEvent(HoverEvent.Action.SHOW_TEXT, skyfac_withdraw_hovertext);
  213. BaseComponent[] skyfac_withdraw = new ComponentBuilder("").append(ChatColor.GREEN + "/skyfac withdraw [Montant]").event(skyfac_withdraw_hoverevent).create();
  214.  
  215. BaseComponent[] skyfac_purge_hovertext = new ComponentBuilder("Purge les fichiers de configuration").create();
  216. HoverEvent skyfac_purge_hoverevent = new HoverEvent(HoverEvent.Action.SHOW_TEXT, skyfac_purge_hovertext);
  217. BaseComponent[] skyfac_purge = new ComponentBuilder("").append(ChatColor.GREEN + "/skyfac purge").event(skyfac_purge_hoverevent).create();
  218.  
  219. BaseComponent[] skyfac_home_hovertext = new ComponentBuilder("Téléporte à l'ile").create();
  220. HoverEvent skyfac_home_hoverevent = new HoverEvent(HoverEvent.Action.SHOW_TEXT, skyfac_home_hovertext);
  221. BaseComponent[] skyfac_home = new ComponentBuilder("").append(ChatColor.GREEN + "/skyfac home").event(skyfac_home_hoverevent).create();
  222.  
  223. BaseComponent[] skyfac_promote_hovertext = new ComponentBuilder("augmente le grade d'un joueur dans la faction").create();
  224. HoverEvent skyfac_promote_hoverevent = new HoverEvent(HoverEvent.Action.SHOW_TEXT, skyfac_promote_hovertext);
  225. BaseComponent[] skyfac_promote = new ComponentBuilder("").append(ChatColor.GREEN + "/skyfac promote [Nom de joueur]").event(skyfac_promote_hoverevent).create();
  226.  
  227. BaseComponent[] skyfac_addslot_hovertext = new ComponentBuilder("Ajoute X slot en plus de ceux existant").create();
  228. HoverEvent skyfac_addslot_hoverevent = new HoverEvent(HoverEvent.Action.SHOW_TEXT, skyfac_addslot_hovertext);
  229. BaseComponent[] skyfac_addslot = new ComponentBuilder("").append(ChatColor.GREEN + "/skyfac addslot [Nom de faction] [Nombre de slot en plus]").event(skyfac_addslot_hoverevent).create();
  230.  
  231. BaseComponent[] skyfac_removeslot_hovertext = new ComponentBuilder("Retire X slot en plus de ceux existant").create();
  232. HoverEvent skyfac_removeslot_hoverevent = new HoverEvent(HoverEvent.Action.SHOW_TEXT, skyfac_removeslot_hovertext);
  233. BaseComponent[] skyfac_removeslot = new ComponentBuilder("").append(ChatColor.GREEN + "/skyfac removeslot [Nom de faction] [Nombre de slot en plus]").event(skyfac_removeslot_hoverevent).create();
  234.  
  235.  
  236. player.spigot().sendMessage(skyfac_create);
  237. player.spigot().sendMessage(skyfac_invite);
  238. player.spigot().sendMessage(skyfac_rank);
  239. player.spigot().sendMessage(skyfac_accept);
  240. player.spigot().sendMessage(skyfac_deny);
  241. player.spigot().sendMessage(skyfac_claim);
  242. player.spigot().sendMessage(skyfac_leave);
  243. player.spigot().sendMessage(skyfac_disband);
  244. player.spigot().sendMessage(skyfac_kick);
  245. player.spigot().sendMessage(skyfac_deposit);
  246. player.spigot().sendMessage(skyfac_withdraw);
  247. player.spigot().sendMessage(skyfac_info);
  248. player.spigot().sendMessage(skyfac_reload);
  249. player.spigot().sendMessage(skyfac_purge);
  250. player.spigot().sendMessage(skyfac_home);
  251. player.spigot().sendMessage(skyfac_promote);
  252. player.spigot().sendMessage(skyfac_addslot);
  253. player.spigot().sendMessage(skyfac_removeslot);
  254.  
  255.  
  256. }
  257. if (args.length == 1) { //skyfac args[0]
  258. if (args[0].equalsIgnoreCase("claim")) { //debut skyfac claim
  259.  
  260. if (this.permission.has(player, "skyfac.claim")) {
  261. String PlayerName = player.getName();
  262.  
  263. //on check si joueur fait partit d'une faction
  264. if (this.getPlayerList().getString("Players." + PlayerName) == null) {
  265. player.sendMessage(ChatColor.RED + prefix + "Vous n'êtes pas dans une faction !");
  266. return true;
  267. }
  268. //sinon
  269. else {
  270. Bukkit.dispatchCommand(player, "f claim");
  271. return true;
  272. }
  273. } else {
  274. player.sendMessage(ChatColor.RED + prefix + "Désolé, vous n'avez pas la permissions de faire sa");
  275. return true;
  276. }
  277. } //fin skyfac claim
  278.  
  279. if (args[0].equalsIgnoreCase("accept")) { //debut skyfac accept
  280. //recupère les information utiles
  281. if (this.permission.has(player, "skyfac.accept")) {
  282. String PlayerName = player.getName();
  283. String InviteFactName = this.getPlayerInvite().getString("Players." + PlayerName + ".faction");
  284. String factname = this.getFactionList().getString("Factions." + InviteFactName);
  285. String Owner = this.getFactionList().getString("Factions." + InviteFactName + ".Owner");
  286. int membre = this.getFactionList().getInt("Factions." + InviteFactName + ".Players");
  287.  
  288.  
  289. //si player dans une faction message erreur
  290. if (this.getPlayerList().getString("Players." + PlayerName) != null) {
  291. player.sendMessage(ChatColor.RED + prefix + "Vous êtes déja dans une faction !");
  292. return true;
  293. }
  294. //sinon
  295. else {
  296. //si player pas d'invitation invitation
  297. if (this.getPlayerInvite().getString("Players." + PlayerName) == null) {
  298. player.sendMessage(ChatColor.RED + prefix + "Vous n'avez pas encore été invité a rejoindre une faction");
  299. return true;
  300. }
  301. //sinon
  302. else {
  303. player.sendMessage(PlayerName + InviteFactName + membre + Owner);
  304. //si la faction n'existe plus
  305. if (factname == null) {
  306. player.sendMessage(ChatColor.RED + prefix + "La faction n'existe plus !");
  307. //on supprime l'invitation de l'owner
  308. this.getOwnerInvite().set("Players." + Owner + ".hasinvite", null);
  309. this.savePlayerList();
  310. this.saveOwnerInvite();
  311. //on supprime l'entrée dans PlayerInvite.yml
  312. this.getPlayerInvite().set("Players." + PlayerName, null);
  313. this.savePlayerInvite();
  314. return true;
  315. }
  316. //sinon on ajoute le joueur a la faction
  317. else {
  318. //on ajoute le joueur a PlayerList.yml
  319.  
  320. this.getPlayerList().set("Players." + PlayerName, PlayerName);
  321. this.getPlayerList().set("Players." + PlayerName + ".pseudo", PlayerName);
  322. this.getPlayerList().set("Players." + PlayerName + ".faction", InviteFactName);
  323. //on supprime l'invitation de l'owner
  324. this.getOwnerInvite().set("Players." + Owner + ".hasinvite", null);
  325. this.savePlayerList();
  326. this.saveOwnerInvite();
  327.  
  328. //on modifie FactionList.yml
  329. int newmembre = membre + 1;
  330. this.getFactionList().set("Factions." + InviteFactName + ".Players", newmembre);
  331. this.saveFactionList();
  332. //on supprime l'entrée dans PlayerInvite.yml
  333. this.getPlayerInvite().set("Players." + PlayerName, null);
  334. this.savePlayerInvite();
  335. //on effectue les actions
  336. player.sendMessage(ChatColor.GREEN + prefix + "Vous venez de rejoindre la faction " + InviteFactName);
  337. Bukkit.dispatchCommand(player, "is accept");
  338. Bukkit.dispatchCommand(player, "f join " + Owner);
  339. if (Owner != null) {
  340. Player player2 = Bukkit.getPlayerExact(Owner);
  341. if (player2 == null) {
  342. return true;
  343. } else {
  344. player2.sendMessage(ChatColor.AQUA + prefix + PlayerName + " à rejoind votre faction " + InviteFactName);
  345.  
  346. }
  347. return true;
  348. }
  349. }
  350. }
  351. }
  352. } else {
  353. player.sendMessage(ChatColor.RED + prefix + "Désolé, vous n'avez pas la permissions de faire sa");
  354. return true;
  355. }
  356. } //fin skyfac accept
  357. if (args[0].equalsIgnoreCase("deny")) { //debut skyfac deny
  358. //recupère les information utiles
  359. if (this.permission.has(player, "skyfac.deny")) {
  360. String PlayerName = player.getName();
  361. String InviteFactName = this.getPlayerInvite().getString("Players." + PlayerName + ".faction");
  362. String factname = this.getFactionList().getString("Factions." + InviteFactName);
  363. String Owner = this.getFactionList().getString("Factions." + InviteFactName + ".Owner");
  364. int membre = this.getFactionList().getInt("Factions." + InviteFactName + ".Players");
  365.  
  366.  
  367. //si player dans une faction message erreur
  368. if (this.getPlayerList().getString("Players." + PlayerName) != null) {
  369. player.sendMessage(ChatColor.RED + prefix + "Vous êtes déja dans une faction !");
  370. return true;
  371. }
  372. //sinon
  373. else {
  374. //si player pas d'invitation invitation
  375. if (this.getPlayerInvite().getString("Players." + PlayerName) == null) {
  376. player.sendMessage(ChatColor.RED + prefix + "Vous n'avez pas encore été invité a rejoindre une faction");
  377. return true;
  378. }
  379. //sinon
  380. else {
  381. player.sendMessage(PlayerName + InviteFactName + membre + Owner);
  382. //si la faction n'existe plus
  383. if (factname == null) {
  384. player.sendMessage(ChatColor.RED + prefix + "La faction n'existe plus !");
  385. //on supprime l'invitation de l'owner
  386. this.getOwnerInvite().set("Players." + Owner + ".hasinvite", null);
  387. this.savePlayerList();
  388. this.saveOwnerInvite();
  389. //on supprime l'entrée dans PlayerInvite.yml
  390. this.getPlayerInvite().set("Players." + PlayerName, null);
  391. this.savePlayerInvite();
  392. return true;
  393. } else {
  394. //on supprime l'invitation de l'owner
  395. this.getOwnerInvite().set("Players." + Owner + ".hasinvite", null);
  396. this.savePlayerList();
  397. this.saveOwnerInvite();
  398. //on supprime l'entrée dans PlayerInvite.yml
  399. this.getPlayerInvite().set("Players." + PlayerName, null);
  400. this.savePlayerInvite();
  401. Bukkit.dispatchCommand(player, "is reject");
  402. player.sendMessage(ChatColor.GREEN + prefix + "Vous avez refusé l'invitation à rejoindre " + InviteFactName);
  403. if (Owner != null) {
  404. Player player2 = Bukkit.getPlayerExact(Owner);
  405. if (player2 == null) {
  406. return true;
  407. } else {
  408. player2.sendMessage(ChatColor.AQUA + prefix + PlayerName + " à refusé de rejoindre votre faction !");
  409.  
  410. }
  411. }
  412. return true;
  413. }
  414. }
  415. }
  416. } else {
  417. player.sendMessage(ChatColor.RED + prefix + "Désolé, vous n'avez pas la permissions de faire sa");
  418. return true;
  419. }
  420. } //fin skyfac deny
  421. if (args[0].equalsIgnoreCase("rank")) { //debut skyfac rank
  422. if (this.permission.has(player, "skyfac.rank")) {
  423. player.sendMessage("rank");
  424. return true;
  425. } else {
  426. player.sendMessage(ChatColor.RED + prefix + "Désolé, vous n'avez pas la permissions de faire sa");
  427. return true;
  428. }
  429.  
  430. } //fin skyfac rank
  431. if (args[0].equalsIgnoreCase("invite")) { //debut skyfac invite error args
  432. if (this.permission.has(player, "skyfac.invite")) {
  433. player.sendMessage(ChatColor.RED + prefix + "Veuillez spécifier le nom du joueur a inviter.");
  434. return true;
  435. } else {
  436. player.sendMessage(ChatColor.RED + prefix + "Désolé, vous n'avez pas la permissions de faire sa");
  437. return true;
  438. }
  439. } //fin skyfac invite error args
  440. if (args[0].equalsIgnoreCase("create")) { //debut skyfac create error args
  441. if (this.permission.has(player, "skyfac.create")) {
  442. player.sendMessage(ChatColor.RED + prefix + "Veuillez spécifiez le nom de la faction.");
  443. return true;
  444. } else {
  445. player.sendMessage(ChatColor.RED + prefix + "Désolé, vous n'avez pas la permissions de faire sa");
  446. return true;
  447. }
  448. } //fin skyfac error args
  449.  
  450. if (args[0].equalsIgnoreCase("disband")) { //debut skyfac disband
  451. if (this.permission.has(player, "skyfac.disband")) {
  452. String factname = this.getPlayerList().getString("Players." + player.getName() + ".faction");
  453. String Owner = this.getFactionList().getString("Factions." + factname + ".Owner");
  454. String PlayerName = this.getPlayerList().getString("Players." + player.getName() + ".pseudo");
  455.  
  456. if (this.getFactionList().getString("Factions." + factname) == null) {
  457. player.sendMessage(ChatColor.RED + prefix + "Vous n'êtes pas dans une faction !");
  458. return true;
  459. } else {
  460.  
  461. if (Owner.equalsIgnoreCase(PlayerName)) {
  462. Bukkit.dispatchCommand(sender, "spawn");
  463. Bukkit.dispatchCommand(Bukkit.getServer().getConsoleSender(), "asadmin delete " + player.getName());
  464. Bukkit.dispatchCommand(sender, "f disband");
  465. player.sendMessage(ChatColor.GREEN + prefix + "Vous avez dissous la faction " + factname);
  466. this.getFactionList().set("Factions." + factname, null);
  467. this.saveFactionList();
  468. this.getPlayerList().set("Players." + player.getName(), null);
  469. this.savePlayerList();
  470. this.purge();
  471. return true;
  472.  
  473. } else {
  474. player.sendMessage(ChatColor.RED + prefix + "Vous devez être le créateur de la faction pour faire sa ! ");
  475. return true;
  476. }
  477.  
  478. }
  479. } else {
  480. player.sendMessage(ChatColor.RED + prefix + "Désolé, vous n'avez pas la permissions de faire sa");
  481. return true;
  482. }
  483. } //fin skyfac disband
  484.  
  485. if (args[0].equalsIgnoreCase("reload")) { //debut skyfac reload
  486. if (this.permission.has(player, "skyfac.reload")) {
  487. this.reloadFactionList();
  488. this.reloadPlayerInvite();
  489. this.reloadPlayerList();
  490. player.sendMessage(ChatColor.AQUA + prefix + "Fichiers de configuration rechargés.");
  491. return true;
  492. } else {
  493. player.sendMessage(ChatColor.RED + prefix + "Désolé, vous n'avez pas la permissions de faire sa");
  494. return true;
  495. }
  496. } //fin skyfac reload
  497.  
  498. if (args[0].equalsIgnoreCase("info")) { //debut skyfac info
  499. if (this.permission.has(player, "skyfac.info")) {
  500. if (this.getPlayerList().getString("Players." + player.getName()) == null) {
  501. player.sendMessage(ChatColor.RED + prefix + "Vous n'êtes pas dans une faction !");
  502. return true;
  503. } else if (this.getPlayerList().getString("Players." + player.getName()) != null) {
  504. String factname = this.getPlayerList().getString("Players." + player.getName() + ".faction");
  505. String Owner = this.getFactionList().getString("Factions." + factname + ".Owner");
  506. String Players = this.getFactionList().getString("Factions." + factname + ".Players");
  507. int money = this.getFactionList().getInt("Factions." + factname + ".Money");
  508. int slot = this.getFactionList().getInt("Factions." + factname + ".Slot");
  509. player.sendMessage(ChatColor.RED + "~~~~~~~~~~~~" + ChatColor.AQUA + "SkyFac INFO" + ChatColor.RED + "~~~~~~~~~~~~");
  510. player.sendMessage(ChatColor.RED + "Nom de la faction : " + ChatColor.AQUA + factname);
  511. player.sendMessage(ChatColor.RED + "Créateur : " + ChatColor.AQUA + Owner);
  512. player.sendMessage(ChatColor.RED + "Nombre de membres : " + ChatColor.AQUA + Players);
  513. player.sendMessage(ChatColor.RED + "Argent de faction : " + ChatColor.AQUA + money + "$");
  514. player.sendMessage(ChatColor.RED + "Nombre de places max : " + ChatColor.AQUA + slot);
  515. return true;
  516. }
  517. } else {
  518. player.sendMessage(ChatColor.RED + prefix + "Désolé, vous n'avez pas la permissions de faire sa");
  519. return true;
  520. }
  521. } //fin skyfac info
  522. if (args[0].equalsIgnoreCase("leave")) { //debut skyfac leave
  523. if (this.permission.has(player, "skyfac.leave")) {
  524. String factname = this.getPlayerList().getString("Players." + player.getName() + ".faction");
  525. String Owner = this.getFactionList().getString("Factions." + factname + ".Owner");
  526. String PlayerName = this.getPlayerList().getString("Players." + player.getName() + ".pseudo");
  527. int money = this.getFactionList().getInt("Factions." + factname + ".Money");
  528. int membre = this.getFactionList().getInt("Factions." + factname + ".Players");
  529.  
  530. //si pas de faction message d'erreur
  531. if (this.getFactionList().getString("Factions." + factname) == null) {
  532. player.sendMessage(ChatColor.RED + prefix + "Vous n'êtes pas dans une faction !");
  533. return true;
  534. } else {
  535. //si owner message d'erreur
  536. if (Owner.equalsIgnoreCase(PlayerName)) {
  537. player.sendMessage(ChatColor.RED + prefix + "Vous êtes le créateur de la faction, vous ne pouvez pas la quittez !");
  538. player.sendMessage(ChatColor.RED + prefix + "Pour dissoudre la faction faite /skyfac disband");
  539. return true;
  540. } else {
  541. int newmembre = membre - 1;
  542. this.getFactionList().set("Factions." + factname + ".Players", newmembre);
  543. this.saveFactionList();
  544. this.getPlayerList().set("Players." + player.getName(), null);
  545. this.savePlayerList();
  546. Bukkit.dispatchCommand(sender, "is leave");
  547. Bukkit.dispatchCommand(sender, "is leave");
  548. Bukkit.dispatchCommand(sender, "f leave");
  549. Bukkit.dispatchCommand(Bukkit.getServer().getConsoleSender(), "asadmin clearreset " + player.getName());
  550. player.sendMessage(ChatColor.GREEN + prefix + "Vous avez quitté la faction " + factname + " !");
  551.  
  552. if (Owner != null) {
  553. Player player2 = Bukkit.getPlayerExact(Owner);
  554. if (player2 == null) {
  555. return true;
  556. } else {
  557. player2.sendMessage(ChatColor.AQUA + prefix + PlayerName + " à quitté votre faction ");
  558.  
  559. }
  560. }
  561. return true;
  562.  
  563.  
  564. }
  565. //sinon on quite la faction
  566. }
  567. } else {
  568. player.sendMessage(ChatColor.RED + prefix + "Désolé, vous n'avez pas la permissions de faire sa");
  569. return true;
  570. }
  571. } //fin skyfac leave
  572.  
  573. if (args[0].equalsIgnoreCase("deposit")) { //début skyfac deposit erreur
  574. if (this.permission.has(player, "skyfac.deposit")) {
  575. player.sendMessage(ChatColor.RED + prefix + " Vous devez saisir un montant !");
  576. return true;
  577. } else {
  578. player.sendMessage(ChatColor.RED + prefix + "Désolé, vous n'avez pas la permissions de faire sa");
  579. return true;
  580. }
  581. } //fin skyfac deposit erreur
  582.  
  583. if (args[0].equalsIgnoreCase("withdraw")) { //début skyfac withdraw erreur
  584. if (this.permission.has(player, "skyfac.withdraw")) {
  585. player.sendMessage(ChatColor.RED + prefix + " Vous devez saisir un montant !");
  586. return true;
  587. } else {
  588. player.sendMessage(ChatColor.RED + prefix + "Désolé, vous n'avez pas la permissions de faire sa");
  589. return true;
  590. }
  591. } //fin skyfac withdraw erreur
  592. if (args[0].equalsIgnoreCase("purge")) {
  593. if (this.permission.has(player, "skyfac.purge")) {
  594. this.purge();
  595. return true;
  596. } else {
  597. player.sendMessage(ChatColor.RED + prefix + "Désolé, vous n'avez pas la permissions de faire sa");
  598. return true;
  599. }
  600. }
  601. if (args[0].equalsIgnoreCase("home")) {
  602. if (this.permission.has(player, "skyfac.home")) {
  603. Bukkit.dispatchCommand(player, "is go");
  604. return true;
  605. } else {
  606. player.sendMessage(ChatColor.RED + prefix + "Désolé, vous n'avez pas la permissions de faire sa");
  607. return true;
  608. }
  609. }
  610. if (args[0].equalsIgnoreCase("kick")) {
  611. if (this.permission.has(player, "skyfac.kick")) {
  612. player.sendMessage(ChatColor.RED + prefix + " Vous devez saisir le nom d'un joueur !");
  613. return true;
  614. } else {
  615. player.sendMessage(ChatColor.RED + prefix + "Désolé, vous n'avez pas la permissions de faire sa");
  616. return true;
  617. }
  618. }
  619. if (args[0].equalsIgnoreCase("addslot")) { //début skyfac addslot erreur
  620. if (this.permission.has(player, "skyfac.addslot")) {
  621. player.sendMessage(ChatColor.RED + prefix + "Vous devez spécifier le nom de la faction et le nombre de slots a ajouter");
  622. return true;
  623. } else {
  624. player.sendMessage(ChatColor.RED + prefix + "Désolé, vous n'avez pas la permissions de faire sa");
  625. return true;
  626. }
  627. }
  628. if (args[0].equalsIgnoreCase("promote")) { //début skyfac promote erreur
  629. if (this.permission.has(player, "skyfac.promote")) {
  630. player.sendMessage(ChatColor.RED + prefix + "Vous devez spécifier le nom du joueur a promouvoir");
  631. return true;
  632. } else {
  633. player.sendMessage(ChatColor.RED + prefix + "Désolé, vous n'avez pas la permissions de faire sa");
  634. return true;
  635. }
  636. }
  637. if (args[0].equalsIgnoreCase("removeslot")) { //début skyfac removeslot erreur
  638. if (this.permission.has(player, "skyfac.removeslot")) {
  639. player.sendMessage(ChatColor.RED + prefix + "Vous devez spécifier le nom de la faction et le nombre de slots a retirer");
  640. return true;
  641. } else {
  642. player.sendMessage(ChatColor.RED + prefix + "Désolé, vous n'avez pas la permissions de faire sa");
  643. return true;
  644. }
  645. } else {
  646. player.sendMessage(ChatColor.RED + prefix + "La commande est introuvable");
  647. Bukkit.dispatchCommand(sender, "skyfac");
  648. }
  649. } //fin skyfac args[0]
  650. if (args.length == 2) { //skyfac args[0] args[1]
  651.  
  652. if (args[0].equalsIgnoreCase("create")) { //debut skyfac create
  653. if (this.permission.has(player, "skyfac.create")) {
  654. //player.sendMessage("Bienvenue sur le serveur " + player.getName() +" !");
  655. if (this.getFactionList().getString("Factions." + args[1]) != null) {
  656. player.sendMessage(ChatColor.RED + prefix + "une faction a déja ce nom");
  657. return true;
  658. } else if (this.getFactionList().getString("Factions." + args[1]) == null) {
  659. if (this.getPlayerList().getString("Players." + player.getName()) != null) {
  660. player.sendMessage(ChatColor.RED + prefix + "vous êtes déja dans une faction !");
  661. return true;
  662. } else if (this.getPlayerList().getString("Players." + player.getName()) == null) {
  663. String playergetname = this.getPlayerList().getString("Players." + player.getName());
  664. player.sendMessage(playergetname);
  665. this.getFactionList().set("Factions." + args[1], args[1]);
  666. this.getFactionList().set("Factions." + args[1] + ".Owner", player.getName());
  667. this.getFactionList().set("Factions." + args[1] + ".Players", 1);
  668. this.getFactionList().set("Factions." + args[1] + ".Money", 0);
  669. this.getFactionList().set("Factions." + args[1] + ".Slot", 9);
  670. this.saveFactionList();
  671. this.getPlayerList().set("Players." + player.getName(), player.getName());
  672. this.getPlayerList().set("Players." + player.getName() + ".pseudo", player.getName());
  673. this.getPlayerList().set("Players." + player.getName() + ".faction", args[1]);
  674. this.savePlayerList();
  675. Bukkit.dispatchCommand(sender, "is");
  676. Bukkit.dispatchCommand(sender, "f create " + args[1]);
  677. return true;
  678. }
  679. }
  680. } else {
  681. player.sendMessage(ChatColor.RED + prefix + "Désolé, vous n'avez pas la permissions de faire sa");
  682. return true;
  683. }
  684. } //fin skyfac create
  685. if (args[0].equalsIgnoreCase("invite")) { //debut skyfac invite
  686. if (this.permission.has(player, "skyfac.invite")) {
  687. String factname = this.getPlayerList().getString("Players." + player.getName() + ".faction");
  688. String Owner = this.getFactionList().getString("Factions." + factname + ".Owner");
  689. String PlayerName = this.getPlayerList().getString("Players." + player.getName() + ".pseudo");
  690. int membre = this.getFactionList().getInt("Factions." + factname + ".Players");
  691. int slot = this.getFactionList().getInt("Factions." + factname + ".Slot");
  692.  
  693. Player player2 = Bukkit.getPlayerExact(args[1]);
  694. //si pas membre du'une faction erreur
  695. if (this.getPlayerList().getString("Players." + player.getName()) == null) {
  696. player.sendMessage(ChatColor.RED + prefix + "Vous n'êtes pas dans une faction !");
  697. return true;
  698. } else {
  699. //si créateur
  700. if (Owner.equalsIgnoreCase(PlayerName)) {
  701. //on check si faction pleine
  702. if (membre >= slot) {
  703. player.sendMessage(ChatColor.RED + prefix + "Vous avez atteint la limite de membre dans votre faction.");
  704. return true;
  705. }
  706. // check statut joueur a invité
  707. if (player2 == null) { //player offline ou erreur dans le nom
  708. player.sendMessage(ChatColor.RED + prefix + "Le joueur est hors ligne ou vous avez fait une erreur dans son nom !");
  709. return true;
  710. } else { //player en ligne
  711.  
  712. //check si joueur déja invité erreur
  713. if (this.getPlayerInvite().getString("Players." + args[1]) != null) {
  714. player.sendMessage(ChatColor.RED + prefix + args[1] + " à déja été invité dans une faction !");
  715. return true;
  716. }
  717. //check si joueur fait partie d'une faction
  718. else if (this.getPlayerList().getString("Players." + args[1]) != null) {
  719. player.sendMessage(ChatColor.RED + prefix + args[1] + " est déja dans une faction !");
  720. return true;
  721. } else { //si joueur pas invité et pas membre de faction send message privé plus inclu dans playerinvite.yml
  722. //on vérifie si une invitation n'a pas déja été envoyer a un autre membre
  723. if (this.getOwnerInvite().getString("Players." + PlayerName + ".hasinvite") == null) {
  724. this.getPlayerInvite().set("Players." + args[1], args[1]);
  725. this.getPlayerInvite().set("Players." + args[1] + ".faction", factname);
  726. this.getPlayerInvite().set("Players." + args[1] + ".playerinvite", PlayerName);
  727. this.savePlayerInvite();
  728. this.getOwnerInvite().set("Players." + PlayerName + ".hasinvite", args[1]);
  729. this.saveOwnerInvite();
  730. this.savePlayerList();
  731. player.sendMessage(ChatColor.GREEN + prefix + "Vous avez invité " + args[1] + " à rejoindre la faction " + factname);
  732. Bukkit.dispatchCommand(sender, "is invite " + args[1]);
  733. Bukkit.dispatchCommand(sender, "f invite " + args[1]);
  734. player2.sendMessage(ChatColor.AQUA + prefix + PlayerName + " vous a inviter a rejoindre la faction " + factname);
  735. player2.sendMessage(ChatColor.AQUA + prefix + "Utilisez /skyfac accept pour rejoindre la faction ou /skyfac deny pour refuser l'invitation");
  736. return true;
  737. } else {
  738. String PlayerInvite = this.getOwnerInvite().getString("Players." + PlayerName + ".hasinvite");
  739. player.sendMessage(ChatColor.RED + prefix + "Vous avez déja envoyé une invitation a un autre joueur, veuillez supprimez cette invitation");
  740. player.sendMessage(ChatColor.RED + prefix + "Pour supprimer votre précédente invitation faites /skyfac revoque " + PlayerInvite);
  741. return true;
  742. }
  743. }
  744.  
  745. }
  746. } else {
  747. //sinon pas créateur message d'erreur
  748. player.sendMessage(ChatColor.RED + prefix + "Vous devez être le créateur de la faction pour inviter des joueurs !");
  749. return true;
  750. }
  751. }
  752. } else {
  753. player.sendMessage(ChatColor.RED + prefix + "Désolé, vous n'avez pas la permissions de faire sa");
  754. return true;
  755. }
  756. } //fin skyfac invite
  757.  
  758. if (args[0].equalsIgnoreCase("kick")) { //debut skyfac kick
  759. if (this.permission.has(player, "skyfac.kick")) {
  760. //check si joueur dans une faction
  761. //joueur pas dans fac -> erreur
  762. if (this.getPlayerList().getString("Players." + player.getName()) == null) {
  763. player.sendMessage(ChatColor.RED + prefix + "Vous n'êtes pas dans une faction !");
  764. return true;
  765. }
  766. // Si joueur dans une fac check si joueur est créateur de la faction
  767. else {
  768. //on récupère les information sur les factions
  769. String factname = this.getPlayerList().getString("Players." + player.getName() + ".faction");
  770. String Owner = this.getFactionList().getString("Factions." + factname + ".Owner");
  771. String PlayerName = player.getName();
  772. int membre = this.getFactionList().getInt("Factions." + factname + ".Players");
  773. //on check si le joueur est le créateur
  774.  
  775. //si joueur créateur
  776. if (PlayerName.equalsIgnoreCase(Owner)) {
  777. //check si args[1] fait parti de la fac de l'owner
  778. //on récupère la faction du joueur
  779. String FacJoueur = this.getPlayerList().getString("Players." + args[1] + ".faction");
  780. //si le joueur args[1] est le créateur
  781. if (args[1].equalsIgnoreCase(PlayerName)) {
  782. player.sendMessage(ChatColor.RED + prefix + "Vous ne pouvez pas vous expulser vous même !");
  783. return true;
  784. } else {
  785. //si args[1] est dans la fac on l'expulse
  786. if (factname.equalsIgnoreCase(FacJoueur)) {
  787. //on le retire de playerlist
  788. this.getPlayerList().set("Players." + args[1], null);
  789. this.savePlayerList();
  790. //on retire 1 aux nombre de membres de la faction
  791. int newmembre = membre - 1;
  792. this.getFactionList().set("Factions." + factname + ".Players", newmembre);
  793. this.saveFactionList();
  794.  
  795. //on execute les commande
  796. Bukkit.dispatchCommand(player, "f kick " + args[1]);
  797. Bukkit.dispatchCommand(player, "is kick " + args[1]);
  798. Bukkit.dispatchCommand(Bukkit.getServer().getConsoleSender(), "asadmin clearreset " + player.getName());
  799.  
  800. player.sendMessage(ChatColor.RED + prefix + "Vous avez expulsé " + args[1] + " de la faction !");
  801. Player player2 = Bukkit.getPlayerExact(args[1]);
  802. if (player2 == null) { //player offline ou erreur dans le nom
  803.  
  804. return true;
  805. } else { //player en ligne
  806. player2.sendMessage(ChatColor.RED + prefix + "Vous avez été expulsé de la faction !");
  807. return true;
  808. }
  809. }
  810. //si args[1] n'est pas dans la faction -> message d'erreur
  811. else {
  812. player.sendMessage(ChatColor.RED + prefix + "Le joueur n'est pas dans votre faction !");
  813. return true;
  814. }
  815. }
  816. }
  817. //si joueur pas créateur -> message d'erreur
  818. else {
  819. player.sendMessage(ChatColor.RED + prefix + "Vous devez être le créateur de la faction pour effectuer cette commande !");
  820. return true;
  821. }
  822. }
  823. } else {
  824. player.sendMessage(ChatColor.RED + prefix + "Désolé, vous n'avez pas la permissions de faire sa");
  825. return true;
  826. }
  827. } //fin skyfac kick
  828. if (args[0].equalsIgnoreCase("promote")) { //debut skyfac promote
  829. if (this.permission.has(player, "skyfac.promote")) {
  830. //check si joueur dans une faction
  831. //joueur pas dans fac -> erreur
  832. if (this.getPlayerList().getString("Players." + player.getName()) == null) {
  833. player.sendMessage(ChatColor.RED + prefix + "Vous n'êtes pas dans une faction !");
  834. return true;
  835. }
  836. // Si joueur dans une fac check si joueur est créateur de la faction
  837. else {
  838. //on récupère les information sur les factions
  839. String factname = this.getPlayerList().getString("Players." + player.getName() + ".faction");
  840. String Owner = this.getFactionList().getString("Factions." + factname + ".Owner");
  841. String PlayerName = player.getName();
  842. int membre = this.getFactionList().getInt("Factions." + factname + ".Players");
  843. //on check si le joueur est le créateur
  844.  
  845. //si joueur créateur
  846. if (PlayerName.equalsIgnoreCase(Owner)) {
  847. //check si args[1] fait parti de la fac de l'owner
  848. //on récupère la faction du joueur
  849. String FacJoueur = this.getPlayerList().getString("Players." + args[1] + ".faction");
  850. if (factname.equalsIgnoreCase(FacJoueur)) {
  851.  
  852. Bukkit.dispatchCommand(player, "f promote " + args[1]);
  853.  
  854. player.sendMessage(ChatColor.RED + prefix + "Vous avez promu " + args[1]);
  855. Player player2 = Bukkit.getPlayerExact(args[1]);
  856. if (player2 == null) { //player offline ou erreur dans le nom
  857.  
  858. return true;
  859. } else { //player en ligne
  860. player2.sendMessage(ChatColor.RED + prefix + "Vous avez été promu dans la faction !");
  861. return true;
  862. }
  863. }
  864. //si args[1] n'est pas dans la faction -> message d'erreur
  865. else {
  866. player.sendMessage(ChatColor.RED + prefix + "Le joueur n'est pas dans votre faction !");
  867. return true;
  868. }
  869. }
  870. //si joueur pas créateur -> message d'erreur
  871. else {
  872. player.sendMessage(ChatColor.RED + prefix + "Vous devez être le créateur de la faction pour effectuer cette commande !");
  873. return true;
  874. }
  875. }
  876. } else {
  877. player.sendMessage(ChatColor.RED + prefix + "Désolé, vous n'avez pas la permissions de faire sa");
  878. return true;
  879. }
  880. } //fin skyfac promote
  881. if (args[0].equalsIgnoreCase("deposit")) { //début skyfac deposit args[1]
  882. if (this.permission.has(player, "skyfac.deposit")) {
  883. if (args[1].matches("^\\p{Digit}+$")) { //si args[1 est un nombre
  884. int amount;
  885. amount = Integer.parseInt(args[1]);
  886. //on vérifie si le joueur est dans une faction
  887. //le joueur n'y est pas -> message d'erreur
  888. if (this.getPlayerList().getString("Players." + player.getName()) == null) {
  889. player.sendMessage(ChatColor.RED + prefix + "Vous n'êtes pas dans une faction !");
  890. return true;
  891. }
  892. //autrement le joueur fait partie d'une faction
  893. else {
  894. //on récupère les infos de la faction
  895. String factname = this.getPlayerList().getString("Players." + player.getName() + ".faction");
  896. String Owner = this.getFactionList().getString("Factions." + factname + ".Owner");
  897. String PlayerName = player.getName();
  898. int money = this.getFactionList().getInt("Factions." + factname + ".Money");
  899. int newmoney = money + amount;
  900.  
  901.  
  902.  
  903. if (amount > economy.getBalance(PlayerName)) {
  904. player.sendMessage(ChatColor.RED + prefix + "Vous n'avez pas assez d'argent");
  905. return true;
  906. } else {
  907. EconomyResponse r = economy.withdrawPlayer(player, amount);
  908.  
  909. if (r.transactionSuccess()) {
  910. player.sendMessage(String.format(ChatColor.GREEN + prefix + "Vous avez créditez %s à la faction " + factname + " il vous reste %s", economy.format(r.amount), economy.format(r.balance)));
  911. player.sendMessage(ChatColor.AQUA + prefix + "Le solde de la faction est maintenant de " + ChatColor.GREEN + newmoney + "$");
  912. //si economy ok alors on met a jour le factionslist.yml
  913. this.getFactionList().set("Factions." + factname + ".Money", newmoney);
  914. this.saveFactionList();
  915. Bukkit.dispatchCommand(player, "f money deposit " + amount);
  916.  
  917.  
  918. } else {
  919. player.sendMessage(ChatColor.RED + prefix + " une erreur c'est produite !" + r.errorMessage);
  920. }
  921. return true;
  922. }
  923. }
  924. } else {
  925. player.sendMessage(ChatColor.RED + prefix + " Vous devez saisir un nombre !");
  926. return true;
  927. }
  928. } else {
  929. player.sendMessage(ChatColor.RED + prefix + "Désolé, vous n'avez pas la permissions de faire sa");
  930. return true;
  931. }
  932. } //fin skyfac deposit
  933.  
  934. if (args[0].equalsIgnoreCase("withdraw")) { //début skyfac withdraw args[1]
  935. if (this.permission.has(player, "skyfac.withdraw")) {
  936. if (args[1].matches("^\\p{Digit}+$")) { //si args[1 est un nombre
  937. int amount;
  938. amount = Integer.parseInt(args[1]);
  939. //on vérifie si le joueur est dans une faction
  940. //le joueur n'y est pas -> message d'erreur
  941. if (this.getPlayerList().getString("Players." + player.getName()) == null) {
  942. player.sendMessage(ChatColor.RED + prefix + "Vous n'êtes pas dans une faction !");
  943. return true;
  944. }
  945. //autrement le joueur fait partie d'une faction
  946. else {
  947. //on récupère les infos de la faction
  948. String factname = this.getPlayerList().getString("Players." + player.getName() + ".faction");
  949. String Owner = this.getFactionList().getString("Factions." + factname + ".Owner");
  950. String PlayerName = player.getName();
  951. int money = this.getFactionList().getInt("Factions." + factname + ".Money");
  952. int newmoney = money - amount;
  953. //on vérifie si l'owner est bien le joueur
  954. if (PlayerName.equalsIgnoreCase(Owner)) {
  955. if (amount > money) {
  956. player.sendMessage(ChatColor.RED + prefix + "La faction n'a pas assez d'argent !");
  957. return true;
  958. } else {
  959. EconomyResponse r = economy.depositPlayer(player, amount);
  960.  
  961. if (r.transactionSuccess()) {
  962. player.sendMessage(String.format(ChatColor.GREEN + prefix + "Vous avez retiré %s à la faction " + factname + " vous avez maintenant %s", economy.format(r.amount), economy.format(r.balance)));
  963. player.sendMessage(ChatColor.AQUA + prefix + "Le solde de la faction est maintenant de " + ChatColor.GREEN + newmoney + "$");
  964. //si economy ok alors on met a jour le factionslist.yml
  965. this.getFactionList().set("Factions." + factname + ".Money", newmoney);
  966. this.saveFactionList();
  967. Bukkit.dispatchCommand(player, "f money withdraw " + amount);
  968.  
  969. } else {
  970. player.sendMessage(ChatColor.RED + prefix + " une erreur c'est produite !" + r.errorMessage);
  971. }
  972. return true;
  973. }
  974. } else {
  975. player.sendMessage(ChatColor.RED + prefix + "Vous devez être le créateur de la faction pour retirer de l'argent !");
  976. return true;
  977. }
  978. }
  979. } else {
  980. player.sendMessage(ChatColor.RED + prefix + " Vous devez saisir un nombre !");
  981. return true;
  982. }
  983. } else {
  984. player.sendMessage(ChatColor.RED + prefix + "Désolé, vous n'avez pas la permissions de faire sa");
  985. return true;
  986. }
  987. } //fin skyfac withdraw
  988. if (args[0].equalsIgnoreCase("addslot")) { //début skyfac addslot args[1] erreur
  989. if (this.permission.has(player, "skyfac.addslot")) {
  990. player.sendMessage(ChatColor.RED + prefix + "Vous devez spécifier le nombre de slots a ajouter");
  991. return true;
  992. } else {
  993. player.sendMessage(ChatColor.RED + prefix + "Désolé, vous n'avez pas la permissions de faire sa");
  994. return true;
  995. }
  996. }
  997. if (args[0].equalsIgnoreCase("removeslot")) { //début skyfac removeslot args[1] erreur
  998. if (this.permission.has(player, "skyfac.removeslot")) {
  999. player.sendMessage(ChatColor.RED + prefix + "Vous devez spécifier le nombre de slots a retirer");
  1000. return true;
  1001. } else {
  1002. player.sendMessage(ChatColor.RED + prefix + "Désolé, vous n'avez pas la permissions de faire sa");
  1003. return true;
  1004. }
  1005. } else {
  1006. player.sendMessage(ChatColor.RED + prefix + "La commande est introuvable");
  1007. Bukkit.dispatchCommand(sender, "skyfac");
  1008. return true;
  1009. }
  1010.  
  1011. } //fin skyfac args[0] args[1]
  1012. if (args.length == 3) {
  1013. if (args[0].equalsIgnoreCase("addslot")) { //début skyfac addslot args[1] args[2]
  1014. if (this.permission.has(player, "skyfac.addslot")) {
  1015.  
  1016. String realfactname = this.getFactionList().getString("Factions." + args[1]);
  1017. //on check si la faction existe
  1018. if (realfactname.equalsIgnoreCase(null)) {
  1019. player.sendMessage(ChatColor.RED + prefix + "Désoler la faction n'existe pas !");
  1020. return true;
  1021. } else { //la faction existe
  1022. //on récupère les informations de la faction
  1023. String factname = args[1];
  1024. int slot = this.getFactionList().getInt("Factions." + factname + ".Slot");
  1025. if (args[2].matches("^\\p{Digit}+$")) {
  1026. int addslot;
  1027. addslot = Integer.parseInt(args[2]);
  1028. int newslot = slot + addslot;
  1029. //on modifie le factionslist.yml
  1030. this.getFactionList().set("Factions." + factname + ".Slot", newslot);
  1031. this.saveFactionList();
  1032. player.sendMessage(ChatColor.AQUA + prefix + " Vous avez ajouté " + args[2] + " slots a la faction " + factname);
  1033. return true;
  1034. } else {
  1035. player.sendMessage(ChatColor.RED + prefix + "Vous devez mettre un nombre après le nom de la faction");
  1036. return true;
  1037. }
  1038. }
  1039. } else {
  1040. player.sendMessage(ChatColor.RED + prefix + "Désolé, vous n'avez pas la permissions de faire sa");
  1041. return true;
  1042. }
  1043. }
  1044. if (args[0].equalsIgnoreCase("removeslot")) { //début skyfac addslot args[1] args[2]
  1045. if (this.permission.has(player, "skyfac.removeslot")) {
  1046.  
  1047. String realfactname = this.getFactionList().getString("Factions." + args[1]);
  1048. //on check si la faction existe
  1049. if (realfactname.equalsIgnoreCase(null)) {
  1050. player.sendMessage(ChatColor.RED + prefix + "Désoler la faction n'existe pas !");
  1051. return true;
  1052. } else { //la faction existe
  1053. //on récupère les informations de la faction
  1054. String factname = args[1];
  1055. int slot = this.getFactionList().getInt("Factions." + factname + ".Slot");
  1056. if (args[2].matches("^\\p{Digit}+$")) {
  1057. int addslot;
  1058. addslot = Integer.parseInt(args[2]);
  1059. int newslot = slot - addslot;
  1060. //on modifie le factionslist.yml
  1061. this.getFactionList().set("Factions." + factname + ".Slot", newslot);
  1062. this.saveFactionList();
  1063. player.sendMessage(ChatColor.AQUA + prefix + " Vous avez retiré " + args[2] + " slots a la faction " + factname);
  1064. return true;
  1065. } else {
  1066. player.sendMessage(ChatColor.RED + prefix + "Vous devez mettre un nombre après le nom de la faction");
  1067. return true;
  1068. }
  1069. }
  1070. } else {
  1071. player.sendMessage(ChatColor.RED + prefix + "Désolé, vous n'avez pas la permissions de faire sa");
  1072. return true;
  1073. }
  1074. }
  1075. }
  1076. } //fin instanceof Player
  1077. else { //c'est une console
  1078. if (args.length == 3) {
  1079. if (args[0].equalsIgnoreCase("addslot")) { //début skyfac addslot args[1] args[2]
  1080.  
  1081. String realfactname = this.getFactionList().getString("Factions." + args[1]);
  1082. //on check si la faction existe
  1083. if (realfactname.equalsIgnoreCase(null)) {
  1084. getLogger().severe("La faction n'existe pas");
  1085. return true;
  1086. } else { //la faction existe
  1087. //on récupère les informations de la faction
  1088. String factname = args[1];
  1089. int slot = this.getFactionList().getInt("Factions." + factname + ".Slot");
  1090. if (args[2].matches("^\\p{Digit}+$")) {
  1091. int addslot;
  1092. addslot = Integer.parseInt(args[2]);
  1093. int newslot = slot + addslot;
  1094. //on modifie le factionslist.yml
  1095. this.getFactionList().set("Factions." + factname + ".Slot", newslot);
  1096. this.saveFactionList();
  1097. getLogger().info(" Vous avez ajouter " + args[2] + " slots a la faction " + factname);
  1098. return true;
  1099. } else {
  1100. getLogger().info(" Vous devez saisir un nombre apres le nom de la faction ");
  1101. return true;
  1102. }
  1103. }
  1104.  
  1105. }
  1106. if (args[0].equalsIgnoreCase("removeslot")) { //début skyfac addslot args[1] args[2]
  1107.  
  1108. String realfactname = this.getFactionList().getString("Factions." + args[1]);
  1109. //on check si la faction existe
  1110. if (realfactname.equalsIgnoreCase(null)) {
  1111. getLogger().severe("La faction n'existe pas");
  1112. return true;
  1113. } else { //la faction existe
  1114. //on récupère les informations de la faction
  1115. String factname = args[1];
  1116. int slot = this.getFactionList().getInt("Factions." + factname + ".Slot");
  1117. if (args[2].matches("^\\p{Digit}+$")) {
  1118. int addslot;
  1119. addslot = Integer.parseInt(args[2]);
  1120. int newslot = slot - addslot;
  1121. //on modifie le factionslist.yml
  1122. this.getFactionList().set("Factions." + factname + ".Slot", newslot);
  1123. this.saveFactionList();
  1124. getLogger().info(" Vous avez retire " + args[2] + " slots a la faction " + factname);
  1125. return true;
  1126. } else {
  1127. getLogger().info(" Vous devez saisir un nombre apres le nom de la faction ");
  1128. return true;
  1129. }
  1130. }
  1131.  
  1132. }
  1133. } else if (args.length > 3) {
  1134. getLogger().severe("Les commandes ne peuvent s'effectuer depuis la console");
  1135. return true;
  1136. }
  1137.  
  1138.  
  1139. } //fin console
  1140.  
  1141. return true;
  1142. } //fin cmd Skyfac
  1143.  
  1144.  
  1145. return false;
  1146. } //fin boolean onCommand
  1147.  
  1148. //Ajout des method pour FactionList
  1149. public void reloadFactionList() {
  1150. if (factionlistFile == null) {
  1151. factionlistFile = new File(getDataFolder(), "/factionslist.yml");
  1152. }
  1153. factionlist = YamlConfiguration.loadConfiguration(factionlistFile);
  1154. File factionlist = new File(getDataFolder() + "/factionslist.yml");
  1155. if (!factionlist.exists()) {
  1156. try {
  1157. factionlist.createNewFile();
  1158. getLogger().warning(version + " Creation du factionslist.yml!");
  1159. } catch (IOException e) {
  1160.  
  1161. e.printStackTrace();
  1162. }
  1163. }
  1164. }
  1165.  
  1166. public FileConfiguration getFactionList() {
  1167. if (factionlist == null) {
  1168. reloadFactionList();
  1169. }
  1170. return factionlist;
  1171. }
  1172.  
  1173. public void saveFactionList() {
  1174. if (factionlist == null || factionlistFile == null) {
  1175. return;
  1176. }
  1177. try {
  1178. getFactionList().save(factionlistFile);
  1179. } catch (IOException ex) {
  1180. getLogger().log(Level.SEVERE, "Could not save config to " + factionlistFile, ex);
  1181. }
  1182. }
  1183. //Fin ajout des method pour FactionList
  1184.  
  1185. //Debut ajout des methodes pour PlayerList
  1186. public void reloadPlayerList() {
  1187. if (playerlistFile == null) {
  1188. playerlistFile = new File(getDataFolder(), "playerlist.yml");
  1189. }
  1190. playerlist = YamlConfiguration.loadConfiguration(playerlistFile);
  1191. File playerlist = new File(getDataFolder() + "/playerlist.yml");
  1192. if (!playerlist.exists()) {
  1193. try {
  1194. playerlist.createNewFile();
  1195. getLogger().warning(version + " Creation du playerlist.yml!");
  1196. } catch (IOException e) {
  1197.  
  1198. e.printStackTrace();
  1199. }
  1200. }
  1201. }
  1202.  
  1203. public FileConfiguration getPlayerList() {
  1204. if (playerlist == null) {
  1205. reloadPlayerList();
  1206. }
  1207. return playerlist;
  1208. }
  1209.  
  1210. public void savePlayerList() {
  1211. if (playerlist == null || playerlistFile == null) {
  1212. return;
  1213. }
  1214. try {
  1215. getPlayerList().save(playerlistFile);
  1216. } catch (IOException ex) {
  1217. getLogger().log(Level.SEVERE, "Could not save config to " + playerlistFile, ex);
  1218. }
  1219. }
  1220. //Fin ajout des method pour PlayerList
  1221.  
  1222. //Debut ajout des methodes pour PlayerInvite
  1223. public void reloadPlayerInvite() {
  1224. if (playerinviteFile == null) {
  1225. playerinviteFile = new File(getDataFolder(), "/playerinvite.yml");
  1226. }
  1227. playerinvite = YamlConfiguration.loadConfiguration(playerinviteFile);
  1228. File playerinvite = new File(getDataFolder() + "/playerinvite.yml");
  1229. if (!playerinvite.exists()) {
  1230. try {
  1231. playerinvite.createNewFile();
  1232. getLogger().warning(version + " Creation du playerinvite.yml!");
  1233. } catch (IOException e) {
  1234.  
  1235. e.printStackTrace();
  1236. }
  1237. }
  1238. }
  1239.  
  1240. public FileConfiguration getPlayerInvite() {
  1241. if (playerinvite == null) {
  1242. reloadPlayerInvite();
  1243. }
  1244. return playerinvite;
  1245. }
  1246.  
  1247. public void savePlayerInvite() {
  1248. if (playerinvite == null || playerinviteFile == null) {
  1249. return;
  1250. }
  1251. try {
  1252. getPlayerInvite().save(playerinviteFile);
  1253. } catch (IOException ex) {
  1254. getLogger().log(Level.SEVERE, "Could not save config to " + playerinviteFile, ex);
  1255. }
  1256. }
  1257. //Fin ajout des method pour PlayerList
  1258.  
  1259. //Ajout des method pour FactionList
  1260. public void reloadOwnerInvite() {
  1261. if (ownerinviteFile == null) {
  1262. ownerinviteFile = new File(getDataFolder(), "/ownerinvite.yml");
  1263. }
  1264. ownerinvite = YamlConfiguration.loadConfiguration(ownerinviteFile);
  1265. File ownerinvite = new File(getDataFolder() + "/ownerinvite.yml");
  1266. if (!ownerinvite.exists()) {
  1267. try {
  1268. ownerinvite.createNewFile();
  1269. getLogger().warning(version + " Creation du ownerinvite.yml!");
  1270. } catch (IOException e) {
  1271.  
  1272. e.printStackTrace();
  1273. }
  1274. }
  1275. }
  1276.  
  1277. public FileConfiguration getOwnerInvite() {
  1278. if (ownerinvite == null) {
  1279. reloadOwnerInvite();
  1280. }
  1281. return ownerinvite;
  1282. }
  1283.  
  1284. public void saveOwnerInvite() {
  1285. if (ownerinvite == null || ownerinviteFile == null) {
  1286. return;
  1287. }
  1288. try {
  1289. getOwnerInvite().save(ownerinviteFile);
  1290. } catch (IOException ex) {
  1291. getLogger().log(Level.SEVERE, "Could not save config to " + ownerinviteFile, ex);
  1292. }
  1293. }
  1294. //Fin ajout des method pour FactionList
  1295.  
  1296. public void purge() { //Ajout de la fonction purge qui supprime les membres des faction inexistante
  1297. int facexist = 0;
  1298. int facdelete = 0;
  1299. int playernonfact = 0;
  1300. for (Player p: this.getServer().getOnlinePlayers()) {
  1301. //on récupère le nom de la faction du joueur
  1302. String pname = p.getName();
  1303. String pseudo = this.getPlayerList().getString("Players." + pname + ".pseudo");
  1304. //on vérifie si le joueur est dans playerlist.yml
  1305. if (pseudo == null) { //le joueur n'est pas dans une faction
  1306. playernonfact++;
  1307. } else {
  1308. String factname = this.getPlayerList().getString("Players." + pname + ".faction");
  1309. String faclistname = this.getFactionList().getString("Factions." + factname);
  1310. //on vérifie si la faction existe encore
  1311. if (faclistname == null) {
  1312. facdelete++;
  1313. //on supprime l'entrée dans playerlist.yml
  1314. this.getPlayerList().set("Players." + pname, null);
  1315. this.savePlayerList();
  1316.  
  1317. } else { //la faction existe encore on ne fait rien
  1318. facexist++;
  1319.  
  1320. }
  1321. }
  1322. }
  1323. getLogger().warning(" Purge en cours");
  1324. getLogger().info(playernonfact + " Joueurs sans factions lors de la purge");
  1325. getLogger().info(facdelete + " Membres de faction inexistante supprime");
  1326. getLogger().info(facexist + " Membres de faction existante");
  1327. getLogger().warning(" Fin de la purge");
  1328. return;
  1329. }
  1330.  
  1331. public void individualpurge(String player) {
  1332. //on vérifie si le joueur a une faction
  1333. String pseudo = this.getPlayerList().getString("Players." + player + ".pseudo");
  1334. //si pas de faction rien
  1335. if (pseudo == null) {
  1336.  
  1337. return; //on fini ici.
  1338. } else { //il a une faction
  1339. //on récupère le nom de la faction depuis playerlist.yml
  1340. String factname = this.getPlayerList().getString("Players." + player + ".faction");
  1341. //on récupère le nom de la faction dans factionslist.yml
  1342. String faclistname = this.getFactionList().getString("Factions." + factname);
  1343. //on vérifie si la faction existe encore
  1344. if (faclistname == null) {
  1345. //on supprime l'entrée dans playerlist.yml
  1346. this.getPlayerList().set("Players." + player, null);
  1347. this.savePlayerList();
  1348.  
  1349. return; // on fini ici
  1350.  
  1351. } else { //la faction existe encore on ne fait rien
  1352.  
  1353. return; //on fini ici
  1354.  
  1355. }
  1356. }
  1357. }
  1358. @EventHandler
  1359. public void onPlayerJoin(PlayerJoinEvent e) { //PlayerJoinEvent est l'évènement de connexion d'un joueur sur le serveur
  1360. Player p = e.getPlayer(); //On récupère le joueur qui vient de se connecter à partir de l'évènement
  1361. String player = p.getName();
  1362. this.individualpurge(player);
  1363. }
  1364.  
  1365. @EventHandler(priority = EventPriority.HIGHEST)
  1366. public void onPreCommand(PlayerCommandPreprocessEvent e) {
  1367. String[] args = e.getMessage().split(" ");
  1368. if (args[0].equalsIgnoreCase("/f")) {
  1369. Player p = e.getPlayer();
  1370. if (this.permission.has(p, "skyfac.bypass")) {
  1371. e.setCancelled(false);
  1372. } else {
  1373. e.setCancelled(true); // To keep the true command from running
  1374.  
  1375. String player = p.getName();
  1376. p.sendMessage(ChatColor.RED + prefix + "Vous ne pouvez pas faire sa!");
  1377. }
  1378. }
  1379. if (args[0].equalsIgnoreCase("/is")) {
  1380. Player p = e.getPlayer();
  1381. if (this.permission.has(p, "skyfac.bypass")) {
  1382. e.setCancelled(false);
  1383. } else {
  1384. e.setCancelled(true); // To keep the true command from running
  1385.  
  1386. String player = p.getName();
  1387. p.sendMessage(ChatColor.RED + prefix + "Vous ne pouvez pas faire sa!");
  1388. }
  1389. }
  1390. }
  1391.  
  1392.  
  1393.  
  1394. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement