Advertisement
Guest User

Untitled

a guest
Feb 21st, 2020
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.41 KB | None | 0 0
  1. package de.godtitan.rushwars.inventory;
  2.  
  3. import de.godtitan.rushwars.RushWars;
  4. import de.godtitan.rushwars.phase.GamePhase;
  5. import de.godtitan.rushwars.phase.GameStates;
  6. import de.godtitan.rushwars.team.Team;
  7. import de.godtitan.rushwars.util.ItemBuilder;
  8. import org.bukkit.*;
  9. import org.bukkit.enchantments.Enchantment;
  10. import org.bukkit.entity.Player;
  11. import org.bukkit.event.EventHandler;
  12. import org.bukkit.event.Listener;
  13. import org.bukkit.event.inventory.InventoryClickEvent;
  14. import org.bukkit.inventory.Inventory;
  15. import org.bukkit.inventory.ItemFlag;
  16. import org.bukkit.inventory.ItemStack;
  17.  
  18. import java.util.ArrayList;
  19. import java.util.List;
  20.  
  21. public class TeamInventory implements Listener {
  22.  
  23. private RushWars rushWars;
  24. public TeamInventory(RushWars plugin) {
  25. this.rushWars = plugin;
  26. Bukkit.getPluginManager().registerEvents(this, rushWars);
  27. }
  28.  
  29. Inventory inventory;
  30.  
  31. public void openTeamInventory(Player player) {
  32. inventory = Bukkit.createInventory(null, 9, "§8► §6Wähle dein Team");
  33.  
  34. placeTeam(player, inventory, 0, Team.RED);
  35. placeTeam(player, inventory, 1, Team.BLUE);
  36.  
  37. player.openInventory(inventory);
  38. player.playSound(player.getLocation(), Sound.WOOD_CLICK, 1F, 1F);
  39. }
  40.  
  41. @EventHandler @Deprecated
  42. public void onInventoryClick(InventoryClickEvent event) {
  43. if(event.getClickedInventory() == null) return;
  44. if(event.getClickedInventory().equals(inventory)) {
  45. if(GamePhase.getInstance().getCurrentGameState().equals(GameStates.LOBBY)) {
  46. event.setCancelled(true);
  47.  
  48. Player player = (Player) event.getWhoClicked();
  49. Inventory clickedInventory = event.getClickedInventory();
  50. ItemStack stack = event.getCurrentItem();
  51.  
  52. if(stack != null) {
  53. if (stack.getType() == Material.WOOL) {
  54. for (Team team : Team.values()) {
  55. if (stack.getDurability() == team.getDyeColor().getWoolData()) {
  56. addToTeam(player, team);
  57. return;
  58. }
  59. }
  60. }
  61. }
  62. }
  63. }
  64. }
  65.  
  66. private void placeTeam(Player player, Inventory inventory, int slot, Team team) {
  67. if (!team.isEnabled())
  68. return;
  69.  
  70. ItemBuilder builder = new ItemBuilder(Material.WOOL, 1, team.getDyeColor().getWoolData()).setDisplayName("§8» §r" + team.getColoredName());
  71. if (team.getMembers().isEmpty()) {
  72. builder.setLore("§8➥ §7Leer");
  73. } else {
  74. List<String> lore = new ArrayList<>();
  75. for (Player member : team.getMembers()) {
  76. if(member.equals(player)) {
  77. builder.addEnchant(Enchantment.DURABILITY, 1);
  78. builder.addItemFlag(ItemFlag.HIDE_ENCHANTS);
  79. }
  80. lore.add("§8• §7" + member.getName());
  81. }
  82. if (team.getMembers().size() >= Team.TEAM_SIZE) {
  83. lore.add("§c§lVoll");
  84. }
  85. builder.setLore(lore);
  86. }
  87. inventory.setItem(slot, builder.build());
  88. }
  89.  
  90. private void addToTeam(Player player, Team team) {
  91. Team currentTeam = Team.getTeam(player);
  92.  
  93. if (team.getMembers().size() >= Team.TEAM_SIZE) {
  94. player.playSound(player.getLocation(), Sound.NOTE_BASS, 1, 1);
  95. player.sendMessage(rushWars.getMessages().PREFIX + "§7Dieses Team ist bereits §cvoll§7!");
  96. return;
  97. }
  98.  
  99. if (currentTeam != null) {
  100. if (currentTeam == team) {
  101. player.playSound(player.getLocation(), Sound.NOTE_BASS, 1, 1);
  102. player.sendMessage(rushWars.getMessages().PREFIX + "§7Du bist bereits in Team " + team.getColoredName() + "§7!");
  103. return;
  104. }
  105.  
  106. currentTeam.getMembers().remove(player);
  107. }
  108.  
  109. player.playSound(player.getLocation(), Sound.NOTE_PLING, 1, 1);
  110. player.closeInventory();
  111. player.sendMessage(rushWars.getMessages().PREFIX + "§7Du hast das Team " + team.getColoredName() + "§7 ausgewählt!");
  112. team.getMembers().add(player);
  113. team.giveArmor(player);
  114. rushWars.getScoreboardManager().updateTeam(player);
  115. }
  116. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement