Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package fr.fac.events;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.List;
- import java.util.function.Predicate;
- import org.bukkit.Bukkit;
- import org.bukkit.Material;
- import org.bukkit.enchantments.Enchantment;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.entity.PlayerDeathEvent;
- import org.bukkit.event.inventory.ClickType;
- import org.bukkit.event.inventory.InventoryClickEvent;
- import org.bukkit.event.player.PlayerDropItemEvent;
- import org.bukkit.event.player.PlayerJoinEvent;
- import org.bukkit.event.player.PlayerMoveEvent;
- import org.bukkit.event.player.PlayerQuitEvent;
- import org.bukkit.event.player.PlayerRespawnEvent;
- import org.bukkit.inventory.ItemFlag;
- import org.bukkit.inventory.ItemStack;
- import fr.fac.commands.ItemBuilder;
- import fr.fac.mithologie.Main;
- import fr.fac.mithologie.SQLConnection;
- public class EventsListener implements Listener {
- private Main main;
- private SQLConnection connection;
- private ItemStack stickOne, stickTwo;
- private Predicate<ItemStack> ifStat;
- public EventsListener(Main main) {
- this.main = main;
- connection = new SQLConnection("jdbc:mysql://127.0.0.1:3306/cooldowns", "root", "");
- stickTwo = new ItemBuilder().addName("§7 Bâton de défense").addItemFlag(ItemFlag.HIDE_ENCHANTS)
- .setMaterial(Material.STICK).addEnchant(Enchantment.DIG_SPEED, 1)
- .addLore(Arrays.asList("§9 Bâton défensif utilisé", "§6 Par Per-Ankh(Maison de vie)",
- "§9 Peut défendre méme les plus faibles !", "§a Sorts : Protéger, fuir, soigner"))
- .toItemStack();
- stickOne = new ItemBuilder().addName("§4 Bâton d'attaque !")
- .addLore(Arrays.asList("§4 Bâton offensif utilisé par", "§6 Per-Ankh (Maison de vie)",
- "§4 Peut s’avérer utile contre un adversaire!", "§a Sorts : Rage, brûler, aveugler, ralentir"))
- .addEnchant(Enchantment.ARROW_INFINITE, 1).addItemFlag(ItemFlag.HIDE_ENCHANTS)
- .setMaterial(Material.BLAZE_ROD).toItemStack();
- ifStat = (x) -> x != null && (compareMetasProperties(x, stickOne) || compareMetasProperties(x, stickTwo));
- }
- @EventHandler
- public void onJoin(PlayerJoinEvent e) {
- e.setJoinMessage("§6[§4+§6]§8 §a" + e.getPlayer().getName());
- if (!e.getPlayer().hasPlayedBefore()) {
- Bukkit.broadcastMessage("§6 Bienvenue au joueur §4" + e.getPlayer().getName() + " §6 sur le serveur! ");
- }
- }
- @EventHandler
- public void onLeft(PlayerQuitEvent e) {
- e.setQuitMessage("§6[§4-§6]§8 -> §4" + e.getPlayer().getName());
- }
- @EventHandler
- public void whenMoving(PlayerMoveEvent e) {
- if (e.getPlayer().getLocation().getBlockY() <= -2)
- e.getPlayer().teleport(main.world.getSpawnLocation());
- }
- @EventHandler
- public void onClick(InventoryClickEvent e) {
- if (e.getCurrentItem() != null || e.getCursor() != null) {
- if (!e.getInventory().equals(e.getWhoClicked().getInventory())) {
- if (e.getClick() == ClickType.NUMBER_KEY) {
- if(ifStat.test(e.getWhoClicked().getInventory().getItem(e.getHotbarButton()))){
- e.setCancelled(true);
- }
- }
- if (ifStat.test(e.getCurrentItem()) || ifStat.test(e.getCursor())) {
- e.setCancelled(true);
- e.getWhoClicked()
- .sendMessage("§cVous n'avez pas le droit de déplacer cet objet dans un autre inventaire !");
- }
- if (e.getInventory().equals(main.cmdKits.inv)) {
- e.setCancelled(true);
- switch ((e.getCurrentItem() != null) ? e.getCurrentItem().getType()
- : (e.getCursor() != null) ? e.getCursor().getType() : e.getCurrentItem().getType()) {
- case WOOD_SWORD:
- kitsCode(e.getWhoClicked().getName(), 1, connection,
- Arrays.asList(new ItemStack(Material.ANVIL)), 24);
- break;
- case DIAMOND_SWORD:
- kitsCode(e.getWhoClicked().getName(), 2, connection,
- Arrays.asList(new ItemStack(Material.BAKED_POTATO)), 24);
- break;
- case IRON_SWORD:
- kitsCode(e.getWhoClicked().getName(), 3, connection,
- Arrays.asList(new ItemStack(Material.ARROW)), 24);
- break;
- case COOKED_CHICKEN:
- kitsCode(e.getWhoClicked().getName(), 4, connection,
- Arrays.asList(new ItemStack(Material.DIAMOND_AXE)), 24);
- break;
- case STONE_SWORD:
- kitsCode(e.getWhoClicked().getName(), 5, connection,
- Arrays.asList(new ItemStack(Material.APPLE)), 24);
- break;
- default:
- }
- }
- }
- }
- }
- @EventHandler
- public void onRespawn(PlayerRespawnEvent e) {
- e.getPlayer().getInventory().setItem(0, stickOne);
- e.getPlayer().getInventory().setItem(1, stickTwo);
- }
- @EventHandler
- public void onDrop(PlayerDropItemEvent e) {
- if (ifStat.test(e.getItemDrop().getItemStack())) {
- e.setCancelled(true);
- e.getPlayer().sendMessage("§4 Vous n'avez pas le droit de jeter cet objet !");
- }
- }
- @EventHandler
- public void onDeath(PlayerDeathEvent e) {
- e.getDrops().removeIf(x -> ifStat.test(x));
- }
- /* dez le .isSimilar et le .equals Marchait pas : */
- public boolean compareMetasProperties(ItemStack its, ItemStack it) {
- boolean bln = false;
- if (its.hasItemMeta() && it.hasItemMeta()) {
- if (its.getItemMeta().hasDisplayName() && it.getItemMeta().hasDisplayName() && its.getItemMeta().hasLore()
- && it.getItemMeta().hasLore() && its.getItemMeta().hasEnchants()
- && it.getItemMeta().hasEnchants()) {
- if (its.getItemMeta().getDisplayName().equals(it.getItemMeta().getDisplayName())
- && its.getItemMeta().getLore().equals(it.getItemMeta().getLore())
- && its.getItemMeta().getEnchants().equals(it.getItemMeta().getEnchants())) {
- bln = true;
- }
- }
- }
- return bln;
- }
- public void kitsCode(String playerName, int indexOfKit, SQLConnection connection, List<ItemStack> givenItems,
- int cooldownInHours) {
- if (Bukkit.getPlayer(playerName) != null) {
- Player player = Bukkit.getPlayer(playerName);
- if (!connection.contains(player, indexOfKit)) {
- connection.set(player, System.currentTimeMillis() / 1000, indexOfKit);
- } else {
- if (player.hasPermission("bypasskits.perms")) {
- connection.set(player, 0, indexOfKit);
- }
- if (System.currentTimeMillis() / 1000 >= connection.get(player, indexOfKit)) {
- for(ItemStack item : givenItems){
- if(!player.getInventory().addItem(item).isEmpty()){
- player.getWorld().dropItem(player.getLocation(), item);
- }
- }
- player.sendMessage("§aVous avez bien été givé!");
- connection.set(player, (long) (System.currentTimeMillis() / 1000 + cooldownInHours * 3600),
- indexOfKit);
- } else
- player.sendMessage("§cVous devez encore attendre "
- + ((connection.get(player, indexOfKit) / 3600 - System.currentTimeMillis() / 1000 / 3600)
- - 1)
- + "h, "
- + ((connection.get(player, indexOfKit)) - System.currentTimeMillis() / 1000) % 3600 / 60
- + "m, " + ((connection.get(player, indexOfKit)) - System.currentTimeMillis() / 1000) % 60
- + "s avant de pouvoir reprendre ce kit !");
- }
- }
- }
- /*
- * hour = timestamp stocké/3600 - currentTimeMillis/1000/3600 -1 minutes =
- * ((timestamp stocké) - currentTimeMillis / 1000) % 3600 / 60) secondes =
- * ((timestamp stocké) - currentTimeMillis / 1000) % 60)
- */
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement