WoolGet/src/main/java/eu/univento/woolget/listeners/Inventorys.java

106 lines
4.8 KiB
Java

package eu.univento.woolget.listeners;
import eu.univento.core.api.player.CustomPlayer;
import eu.univento.woolget.WoolGet;
import eu.univento.woolget.game.GameStage;
import eu.univento.woolget.utils.Shop;
import eu.univento.woolget.utils.TeamChooser;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.inventory.InventoryMoveItemEvent;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.inventory.ItemStack;
import java.util.Random;
/**
* @author joethei
* @version 0.1
*/
public class Inventorys implements Listener{
@EventHandler
public void onInteract(PlayerInteractEvent e) {
CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer());
if(e.getAction() == Action.RIGHT_CLICK_AIR || e.getAction() == Action.RIGHT_CLICK_BLOCK) {
if(e.getItem() != null) {
if (e.getItem().getType() == Material.PAPER && WoolGet.getGameStage() == GameStage.Lobby) {
p.openInventory(WoolGet.getVoting().getInventory(p));
}
if (e.getItem().getType() == Material.NETHER_STAR && WoolGet.getGameStage() == GameStage.Lobby) {
p.connectToServer("Lobby01");
}
if (e.getItem().getType() == Material.WOOL && WoolGet.getGameStage() == GameStage.Lobby) {
p.openInventory(TeamChooser.getInventory(p));
}
if (e.getItem().getType() == Material.GOLD_INGOT && WoolGet.getGameStage() == GameStage.Game) {
if (Shop.mobileShop().contains(p)) p.openInventory(Shop.getInventory(p));
}
}
if(e.getClickedBlock() != null) {
if(e.getClickedBlock().getType() == Material.ENCHANTMENT_TABLE && (WoolGet.getGameStage() == GameStage.Game || WoolGet.getGameStage() == GameStage.Warmup)) {
e.setCancelled(true);
Random random = new Random();
int r = random.nextInt(8);
ItemStack mine = new ItemStack(Material.STONE_PLATE);
ItemStack ender = new ItemStack(Material.ENDER_PEARL);
ItemStack switcher = new ItemStack(Material.SNOW_BALL);
ItemStack grenade = new ItemStack(Material.FIREBALL);
ItemStack tracker = new ItemStack(Material.COMPASS);
ItemStack spawn = new ItemStack(Material.EYE_OF_ENDER);
ItemStack c4 = new ItemStack(Material.TNT);
ItemStack spreader = new ItemStack(Material.BEACON);
ItemStack item = null;
if (r == 0) item = mine;
if (r == 1) item = ender;
if (r == 2) item = switcher;
if (r == 3) item = grenade;
if (r == 4) item = tracker;
if (r == 5) item = spawn;
if (r == 6) item = c4;
if (r == 7) item = spreader;
p.getInventory().addItem(item);
Block block = e.getClickedBlock();
block.setType(Material.ENDER_PORTAL_FRAME);
Bukkit.getScheduler().scheduleSyncDelayedTask(WoolGet.getInstance(), () -> block.setType(Material.ENCHANTMENT_TABLE), 100L);
}
}
}
}
@EventHandler
public void onInventoryClick(InventoryClickEvent e) {
if(e.getWhoClicked() instanceof Player) {
CustomPlayer p = CustomPlayer.getPlayer(e.getWhoClicked().getName());
if(e.getInventory().getName().equals(TeamChooser.getInventory(p).getName())) {
if (e.getCurrentItem().getType() == Material.WOOL && WoolGet.getGameStage() == GameStage.Lobby) {
if (e.getCurrentItem().getItemMeta().getDisplayName().equals("§9blue")) {
p.getInventory().getItem(1).setDurability((short) 11);
TeamChooser.addToTeam("blue", p);
p.closeInventory();
}
if (e.getCurrentItem().getItemMeta().getDisplayName().equals("§eyellow")) {
p.getInventory().getItem(1).setDurability((short) 4);
TeamChooser.addToTeam("yellow", p);
p.closeInventory();
}
}
}
}
}
@EventHandler
public void onInventoryMove(InventoryMoveItemEvent e) {
if(WoolGet.getGameStage() == GameStage.Lobby) e.setCancelled(true);
}
}