Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class InventoryListener implements Listener {
- @EventHandler
- public void onInventoryClose(InventoryCloseEvent event) {
- CTF.getInstance().getInventoryManager().closedInventory(event.getPlayer());
- }
- @EventHandler
- public void onInventoryClick(InventoryClickEvent event) {
- Player player = (Player) event.getWhoClicked();
- if (event.getClickedInventory() == null) {
- return;
- }
- // testing for interactive inventory
- Inventory top = event.getView().getTopInventory();
- if (top == null) {
- return;
- }
- if (!event.getClickedInventory().equals(top)) {
- return;
- }
- ItemStack is = event.getCurrentItem();
- if (is == null) {
- return;
- }
- String title = event.getView().getTitle();
- String[] invTitles = new String[] {InventoryManager.mapSelectorTitle};
- for(String t : invTitles) {
- if(t.equals(title)) {
- if(!event.isCancelled()) {
- event.setCancelled(true);
- break;
- }
- }
- }
- if (title.equals(InventoryManager.mapSelectorTitle)) {
- InventoryManager im = CTF.getInstance().getInventoryManager();
- String mapName = Strings.stripColor(is.getItemMeta().getDisplayName());
- Map map = null;
- for (Map m : CTF.getInstance().getMapManager().getMaps()) {
- if (m.getName().equals(mapName)) {
- map = m;
- break;
- }
- }
- Game game = im.getGameAndRemoveFromMapInventories(player);
- //can close inventory from here, since their game value has already been deleted
- player.closeInventory();
- if (map == null) {
- Messenger.message(player, "&cSomehow, that map wasn't found.");
- }
- game.setMap(map);
- game.initialize();
- CTF.getInstance().getGameManager().saveGame(game);
- if(!game.getArena().isPresent()) {
- Messenger.message(player, "&cUnable to initialize that arena.");
- CTF.getInstance().getGameManager().stopGame(game);
- return;
- }
- UnjoinableReason reason = CTF.getInstance().getGameManager().joinGame(player, game,
- Authenticator.hasPermission(player, Permissions.overrideMaxPlayers),
- Authenticator.hasPermission(player, Permissions.overrideGameState));
- if(reason != UnjoinableReason.NONE) {
- Optional<Team> t = CTF.getInstance().getGameManager().getTeam(game, player);
- Messenger.message(player, "&6Joined team: " + t.get().getChatColor() + t.get().getName());
- } else {
- Messenger.message(player, reason.getReason());
- CTF.getInstance().getGameManager().stopGame(game);
- }
- }
- return;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement