Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package de.godtitan.rushwars.inventory;
- import de.godtitan.rushwars.RushWars;
- import de.godtitan.rushwars.phase.GamePhase;
- import de.godtitan.rushwars.phase.GameStates;
- import de.godtitan.rushwars.team.Team;
- import de.godtitan.rushwars.util.ItemBuilder;
- import org.bukkit.*;
- import org.bukkit.enchantments.Enchantment;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.inventory.InventoryClickEvent;
- import org.bukkit.inventory.Inventory;
- import org.bukkit.inventory.ItemFlag;
- import org.bukkit.inventory.ItemStack;
- import java.util.ArrayList;
- import java.util.List;
- public class TeamInventory implements Listener {
- private RushWars rushWars;
- public TeamInventory(RushWars plugin) {
- this.rushWars = plugin;
- Bukkit.getPluginManager().registerEvents(this, rushWars);
- }
- Inventory inventory;
- public void openTeamInventory(Player player) {
- inventory = Bukkit.createInventory(null, 9, "§8► §6Wähle dein Team");
- placeTeam(player, inventory, 0, Team.RED);
- placeTeam(player, inventory, 1, Team.BLUE);
- player.openInventory(inventory);
- player.playSound(player.getLocation(), Sound.WOOD_CLICK, 1F, 1F);
- }
- @EventHandler @Deprecated
- public void onInventoryClick(InventoryClickEvent event) {
- if(event.getClickedInventory() == null) return;
- if(event.getClickedInventory().equals(inventory)) {
- if(GamePhase.getInstance().getCurrentGameState().equals(GameStates.LOBBY)) {
- event.setCancelled(true);
- Player player = (Player) event.getWhoClicked();
- Inventory clickedInventory = event.getClickedInventory();
- ItemStack stack = event.getCurrentItem();
- if(stack != null) {
- if (stack.getType() == Material.WOOL) {
- for (Team team : Team.values()) {
- if (stack.getDurability() == team.getDyeColor().getWoolData()) {
- addToTeam(player, team);
- return;
- }
- }
- }
- }
- }
- }
- }
- private void placeTeam(Player player, Inventory inventory, int slot, Team team) {
- if (!team.isEnabled())
- return;
- ItemBuilder builder = new ItemBuilder(Material.WOOL, 1, team.getDyeColor().getWoolData()).setDisplayName("§8» §r" + team.getColoredName());
- if (team.getMembers().isEmpty()) {
- builder.setLore("§8➥ §7Leer");
- } else {
- List<String> lore = new ArrayList<>();
- for (Player member : team.getMembers()) {
- if(member.equals(player)) {
- builder.addEnchant(Enchantment.DURABILITY, 1);
- builder.addItemFlag(ItemFlag.HIDE_ENCHANTS);
- }
- lore.add("§8• §7" + member.getName());
- }
- if (team.getMembers().size() >= Team.TEAM_SIZE) {
- lore.add("§c§lVoll");
- }
- builder.setLore(lore);
- }
- inventory.setItem(slot, builder.build());
- }
- private void addToTeam(Player player, Team team) {
- Team currentTeam = Team.getTeam(player);
- if (team.getMembers().size() >= Team.TEAM_SIZE) {
- player.playSound(player.getLocation(), Sound.NOTE_BASS, 1, 1);
- player.sendMessage(rushWars.getMessages().PREFIX + "§7Dieses Team ist bereits §cvoll§7!");
- return;
- }
- if (currentTeam != null) {
- if (currentTeam == team) {
- player.playSound(player.getLocation(), Sound.NOTE_BASS, 1, 1);
- player.sendMessage(rushWars.getMessages().PREFIX + "§7Du bist bereits in Team " + team.getColoredName() + "§7!");
- return;
- }
- currentTeam.getMembers().remove(player);
- }
- player.playSound(player.getLocation(), Sound.NOTE_PLING, 1, 1);
- player.closeInventory();
- player.sendMessage(rushWars.getMessages().PREFIX + "§7Du hast das Team " + team.getColoredName() + "§7 ausgewählt!");
- team.getMembers().add(player);
- team.giveArmor(player);
- rushWars.getScoreboardManager().updateTeam(player);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement