Advertisement
Guest User

Untitled

a guest
Sep 7th, 2016
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.53 KB | None | 0 0
  1. package fr.maxhf.core;
  2.  
  3. import java.io.File;
  4. import java.io.IOException;
  5. import java.math.BigDecimal;
  6. import java.sql.DriverManager;
  7. import java.sql.SQLException;
  8. import java.sql.Statement;
  9. import java.sql.Timestamp;
  10. import java.text.DateFormat;
  11. import java.text.SimpleDateFormat;
  12. import java.util.ArrayList;
  13. import java.util.Arrays;
  14. import java.util.Calendar;
  15. import java.util.Date;
  16. import java.util.List;
  17. import java.util.Random;
  18. import java.util.concurrent.Executors;
  19. import java.util.concurrent.ScheduledExecutorService;
  20. import java.util.concurrent.TimeUnit;
  21.  
  22. import org.bukkit.Bukkit;
  23. import org.bukkit.ChatColor;
  24. import org.bukkit.command.Command;
  25. import org.bukkit.command.CommandSender;
  26. import org.bukkit.command.ConsoleCommandSender;
  27. import org.bukkit.configuration.file.FileConfiguration;
  28. import org.bukkit.configuration.file.YamlConfiguration;
  29. import org.bukkit.entity.Player;
  30. import org.bukkit.event.EventHandler;
  31. import org.bukkit.event.EventPriority;
  32. import org.bukkit.event.Listener;
  33. import org.bukkit.event.player.PlayerCommandPreprocessEvent;
  34. import org.bukkit.plugin.Plugin;
  35. import org.bukkit.plugin.java.JavaPlugin;
  36. import com.earth2me.essentials.Essentials;
  37. import com.earth2me.essentials.api.UserDoesNotExistException;
  38. import com.mysql.jdbc.Connection;
  39.  
  40. import net.ess3.api.Economy;
  41.  
  42. public class HardCore extends JavaPlugin implements Listener {
  43. // BASE DE DONNEE
  44. String url = "jdbc:mysql://" + getConfig().getString("bdd.ip") + ":" + getConfig().getInt("bdd.port") + "/"
  45. + getConfig().getString("bdd.database");
  46. String user = getConfig().getString("bdd.user");
  47. String passwd = getConfig().getString("bdd.password");
  48. private java.sql.Connection conn;
  49.  
  50. /*
  51. * EXEMPLE SQL INSERT : try { Statement state = conn.createStatement();
  52. * state.
  53. * executeUpdate("INSERT INTO in_game_sync (pseudo, grade, kits) VALUES ('Maxtest', 'ADMIN', 'kITS')"
  54. * ); } catch (SQLException e) { // TODO Auto-generated catch block
  55. * e.printStackTrace(); }
  56. */
  57. // FIN BASE DE DONNEE
  58.  
  59. // Fichier où seront stockés les joueurs ayant utilisés les commandes
  60. File playersfile = new File("/plugins/HardCore/players.yml");
  61. FileConfiguration players = YamlConfiguration.loadConfiguration(playersfile);
  62. public final File configfile = new File("/plugins/HardCore/config.yml");
  63. public FileConfiguration config;
  64. // FIN Fichiers
  65.  
  66. // PREFIX
  67. public static final String prefix = ChatColor.DARK_GRAY + "[" + ChatColor.GRAY + "*" + ChatColor.GOLD + "HardAsk"
  68. + ChatColor.GRAY + "*" + ChatColor.DARK_GRAY + "] " + ChatColor.GREEN;
  69. public static final String prefixerror = ChatColor.DARK_GRAY + "[" + ChatColor.GRAY + "*" + ChatColor.GOLD
  70. + "HardAsk" + ChatColor.GRAY + "*" + ChatColor.DARK_GRAY + "] " + ChatColor.DARK_RED;
  71. public static final String prefixbackerror = ChatColor.DARK_GRAY + "[" + ChatColor.GRAY + "*" + ChatColor.GOLD
  72. + "HardBack" + ChatColor.GRAY + "*" + ChatColor.DARK_GRAY + "] " + ChatColor.DARK_RED;
  73. public static final String prefixlot = ChatColor.DARK_GRAY + "[" + ChatColor.GRAY + "*" + ChatColor.GOLD
  74. + "HardLoto" + ChatColor.GRAY + "*" + ChatColor.DARK_GRAY + "] " + ChatColor.GREEN;
  75. public static final String prefixinfo = ChatColor.DARK_GRAY + "[" + ChatColor.GRAY + "*" + ChatColor.GOLD + "HardInfo"
  76. + ChatColor.GRAY + "*" + ChatColor.DARK_GRAY + "] " + ChatColor.GREEN;
  77. public static final String prefixerrorinfo = ChatColor.DARK_GRAY + "[" + ChatColor.GRAY + "*" + ChatColor.GOLD
  78. + "HardInfo" + ChatColor.GRAY + "*" + ChatColor.DARK_GRAY + "] " + ChatColor.DARK_RED;
  79.  
  80. public List<String> enderCooldown = new ArrayList<String>();
  81. // FIN PREFIX
  82.  
  83. // VARIABLES LOTTERIE
  84. public List<String> lotteriePlayers = new ArrayList<String>();
  85. public boolean tirageon = false;
  86. // FIN VARIABLES LOTTERIE
  87.  
  88. // DEBUT VARIABLES MODOS POUR COMMANDES
  89. public List<String> dontSendModo = new ArrayList<String>();
  90.  
  91. // FIN VARIABLES MODOS POUR COMMANDES
  92.  
  93. public static final ConsoleCommandSender console = Bukkit.getServer().getConsoleSender();
  94.  
  95. // BASE DE DONNEE CONNEXION
  96. public void connect() {
  97. try {
  98. Class.forName("com.mysql.jdbc.Driver");
  99. } catch (ClassNotFoundException e) {
  100. // TODO Auto-generated catch block
  101. e.printStackTrace();
  102. }
  103. try {
  104. conn = DriverManager.getConnection(url, user, passwd);
  105. console.sendMessage("[HardCore] Connexion base de donnée effectuée");
  106. } catch (SQLException e) {
  107. // TODO Auto-generated catch block
  108. e.printStackTrace();
  109. }
  110. }
  111. // FIN BASE DE DONNEE CONNEXION
  112.  
  113. // LANCEMENT
  114. @Override
  115. public void onEnable() {
  116. connect();
  117. // Pour les Events
  118. Bukkit.getServer().getPluginManager().registerEvents(this, this);
  119. Bukkit.getServer().getPluginManager().registerEvents(new HardPlug(this), this);
  120. Bukkit.getServer().getPluginManager().registerEvents(new HardBattle(this), this);
  121.  
  122. // Message de lancement dans la console
  123. getLogger().info("[HardCore] Lancement..");
  124.  
  125. // Config
  126. saveDefaultConfig();
  127. File playersfile = new File("/plugins/HardCore/players.yml");
  128. config = YamlConfiguration.loadConfiguration(configfile);
  129. // Si la config ne contient pas de modo, on ajoute Zaw et moi
  130. /*
  131. * if (!config.contains("modos")) { config.set("modos", "Max961");
  132. * config.set("modos", "Zaw96"); config.set("modos", "Lezhey"); }
  133. */
  134.  
  135. }
  136. // FIN LANCEMENT
  137.  
  138. // FERMETURE PLUGIN
  139. @Override
  140. public void onDisable() {
  141. getLogger().info("[HardCore] Extinction..");
  142. }
  143. // FIN FERMETURE
  144.  
  145. final List playerListModos = new ArrayList();
  146. // SI COMMANDE EXECUTEE
  147. @Override
  148. public boolean onCommand(final CommandSender sender, Command cmd, String label, final String[] args) {
  149. Player player = Bukkit.getPlayer(sender.getName());
  150.  
  151. List<String> modos = getConfig().getStringList("modos");
  152. if (cmd.getName().equalsIgnoreCase("modolist")) {
  153. if (modos.size() > 0) {
  154. sender.sendMessage(prefix + "Liste des modérateurs HardAsk" + ChatColor.RED + " (" + modos.size() + ")"
  155. + ChatColor.GREEN + " :");
  156. for (String modo : modos) {
  157. sender.sendMessage(ChatColor.GREEN + "- " + ChatColor.RED + modo);
  158. }
  159. } else {
  160. sender.sendMessage(prefixerror + "La liste des modérateurs est vide.");
  161. }
  162. }
  163.  
  164. if (cmd.getName().equalsIgnoreCase("modoadd")) {
  165. if (Bukkit.getPlayer(sender.getName()).isOp()) {
  166. if (args.length == 1) {
  167. String arg = args[0];
  168. if (!modos.contains(arg)) {
  169. modos.add(arg);
  170. getConfig().set("modos", modos);
  171. saveConfig();
  172. sender.sendMessage(
  173. prefix + ChatColor.RED + arg + ChatColor.GREEN + " a bien été ajouté à la liste.");
  174. } else {
  175. sender.sendMessage(prefixerror + "Cette personne existe déjà dans la liste.");
  176. }
  177. return true;
  178. }
  179. } else {
  180. sender.sendMessage(prefixerror + "Vous n'avez pas la permission d'éxécuter cela.");
  181. }
  182. }
  183.  
  184. if (cmd.getName().equalsIgnoreCase("modoremove")) {
  185. if (Bukkit.getPlayer(sender.getName()).isOp()) {
  186. if (args.length == 1) {
  187. String arg = args[0];
  188. if (modos.contains(arg)) {
  189. modos.remove(arg);
  190. getConfig().set("modos", modos);
  191. saveConfig();
  192. sender.sendMessage(
  193. prefix + ChatColor.RED + arg + ChatColor.GREEN + " a bien été retiré de la liste.");
  194. } else {
  195. sender.sendMessage(
  196. prefixerror + "Cette personne n'est pas dans la liste (/modolist pour vérifier).");
  197. }
  198. return true;
  199. }
  200. } else {
  201. sender.sendMessage(prefixerror + "Vous n'avez pas la permission d'éxécuter cela.");
  202. }
  203. }
  204.  
  205.  
  206.  
  207.  
  208. if (cmd.getName().equalsIgnoreCase("modo")) {
  209. String message = "";
  210.  
  211. for (int i = 0; i < args.length; i++) {
  212. String arg = args[i] + " ";
  213. message = message + arg;
  214. }
  215. List<String> onlinePlayerListName = new ArrayList<String>();
  216. for (Player p : Bukkit.getOnlinePlayers())
  217. onlinePlayerListName.add(p.getName());
  218.  
  219. boolean connectedModo = false;
  220. if (sender instanceof Player) {
  221. // JOUEUR QUI EXECUTE LA COMMANDE
  222.  
  223. // Si le joueur n'a pas encore effectué la commande.
  224. if (!playerListModos.contains(sender.getName())) {
  225. final ScheduledExecutorService exec1min = Executors.newScheduledThreadPool(1);
  226. exec1min.schedule(new Runnable() {
  227. @Override
  228. public void run() {
  229. playerListModos.remove(sender.getName());
  230. }
  231. }, 2, TimeUnit.MINUTES);
  232. for (String modo : modos) {
  233. if (onlinePlayerListName.contains(modo)) {
  234. connectedModo = true;
  235. Player modoOnline = Bukkit.getPlayer(modo);
  236. modoOnline.sendMessage(ChatColor.RED + "" + ChatColor.STRIKETHROUGH + "--------------------------------------------");
  237. modoOnline.sendMessage(prefix + "Question reçue de la part de " + ChatColor.GOLD
  238. + sender.getName() + ChatColor.GREEN + " :");
  239. modoOnline.sendMessage(ChatColor.GREEN + "- " + message);
  240. modoOnline.sendMessage(ChatColor.RED + "" + ChatColor.STRIKETHROUGH + "--------------------------------------------");
  241. }
  242.  
  243. }
  244. if (connectedModo) {
  245. playerListModos.add(sender.getName());
  246. sender.sendMessage(prefix + "Demande d'aide envoyée aux modérateurs.");
  247. } else {
  248. sender.sendMessage(
  249. prefix + "Malheureusement aucun modérateur n'est connecté, essaye plus tard.");
  250. }
  251. }
  252. else {
  253. sender.sendMessage(prefix + ChatColor.RED
  254. + "Vous pouvez exécuter cette commande seulement toutes les 2 minutes.");
  255. }
  256. } else {
  257. // CONSOLE QUI EXECUTE LA COMMANDE
  258. console.sendMessage(
  259. prefix + ChatColor.RED + "Vous ne pouvez pas executer cette commande depuis la console.");
  260. }
  261. return true;
  262. }
  263.  
  264. if (cmd.getName().equalsIgnoreCase("tirage") && player.hasPermission("hardcore.tirage")) {
  265. tirageon = true;
  266. String message = "";
  267. for (int i = 0; i < args.length; i++) {
  268. String arg = args[i] + " ";
  269. message = message + arg;
  270. }
  271.  
  272. Bukkit.broadcastMessage(prefixlot
  273. + "Attention ! Tirage au sort dans 2 minutes, le gagnant remportera le lot " + ChatColor.RED
  274. + message + ChatColor.GREEN + ", inscrivez vous avec /loto (10$ seront déduits).");
  275.  
  276. // Timer 1 min après
  277. final ScheduledExecutorService exec1min = Executors.newScheduledThreadPool(1);
  278. exec1min.schedule(new Runnable() {
  279. @Override
  280. public void run() {
  281. String message = "";
  282. for (int i = 0; i < args.length; i++) {
  283. String arg = args[i] + " ";
  284. message = message + arg;
  285. }
  286. Bukkit.broadcastMessage(prefixlot
  287. + "Attention ! Tirage au sort dans 1 minute, le gagnant remportera le lot " + ChatColor.RED
  288. + message + ChatColor.GREEN + ", inscrivez vous avec /loto (10$ seront déduits).");
  289. }
  290. }, 60, TimeUnit.SECONDS);
  291.  
  292. // Timer 2 mins après
  293. final ScheduledExecutorService exec2mins = Executors.newScheduledThreadPool(1);
  294. exec2mins.schedule(new Runnable() {
  295. @Override
  296. public void run() {
  297.  
  298. tirageon = false;
  299. if (lotteriePlayers.size() > 0) {
  300. String message = "";
  301. for (int i = 0; i < args.length; i++) {
  302. String arg = args[i] + " ";
  303. message = message + arg;
  304. }
  305. int nbOnlinePlayer = lotteriePlayers.size();
  306. Random random = new Random();
  307. int nbRandom = random.nextInt(nbOnlinePlayer);
  308. Bukkit.broadcastMessage(prefixlot + "Le joueur tiré au sort pour recevoir le lot de "
  309. + ChatColor.RED + message + ChatColor.GREEN + "est " + ChatColor.RED
  310. + lotteriePlayers.get(nbRandom) + ChatColor.GREEN + " !");
  311. Bukkit.getServer().dispatchCommand(getServer().getConsoleSender(),
  312. "kit bouffe " + lotteriePlayers.get(nbRandom));
  313. } else {
  314. Bukkit.broadcastMessage(prefixlot + ChatColor.RED
  315. + "Lotterie annulée, nous n'avons pas assez de participants..");
  316. }
  317. lotteriePlayers = new ArrayList<String>();
  318. }
  319. }, 120, TimeUnit.SECONDS);
  320. return true;
  321. }
  322.  
  323. if (cmd.getName().equalsIgnoreCase("loto")) {
  324.  
  325. if (args.length == 1) {
  326. if (args[0].equalsIgnoreCase("list")) {
  327. if (tirageon) {
  328. Bukkit.getPlayer(sender.getName()).sendMessage(prefixlot + "Actuellement " + ChatColor.RED
  329. + lotteriePlayers.size() + ChatColor.GREEN + " inscrits à la lotterie");
  330. } else {
  331. Bukkit.getPlayer(sender.getName())
  332. .sendMessage(prefixlot + ChatColor.RED + "Aucune lotterie n'est ouverte.");
  333. }
  334. } else {
  335. Bukkit.getPlayer(sender.getName())
  336. .sendMessage(prefixlot + ChatColor.RED + "Cette commande n'existe pas..");
  337. }
  338. } else {
  339. Essentials ess = (Essentials) Bukkit.getPluginManager().getPlugin("Essentials");
  340. if (tirageon) {
  341. if (!lotteriePlayers.contains(sender.getName())) {
  342. int money = ess.getUser(sender.getName()).getMoney().intValue();
  343. BigDecimal totake = new BigDecimal(10);
  344. if (money > 10) {
  345. lotteriePlayers.add(sender.getName());
  346. ess.getUser(sender.getName()).takeMoney(totake);
  347. Bukkit.getPlayer(sender.getName()).sendMessage(prefixlot
  348. + "Vous êtes désormais inscrit à la lotterie, veuillez attendre le tirage au sort..");
  349. } else {
  350. Bukkit.getPlayer(sender.getName()).sendMessage(prefixlot + ChatColor.RED
  351. + "Désolé, mais vous n'avez pas assez de sous pour participer à la lotterie..");
  352. }
  353. } else {
  354. Bukkit.getPlayer(sender.getName())
  355. .sendMessage(prefixlot + ChatColor.RED + "Vous êtes déjà inscrit à la lotterie..");
  356. }
  357. } else {
  358. Bukkit.getPlayer(sender.getName())
  359. .sendMessage(prefixlot + ChatColor.RED + "Aucune lotterie n'est ouverte.");
  360. }
  361. }
  362. }
  363. return false;
  364. }
  365. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement