2
0
Эх сурвалжийг харах

Merge pull request #46 from RedstoneFuture/Restructuring/EventListener

Restructuring/event listener
Daniel 2 жил өмнө
parent
commit
64ebb1b724

+ 2 - 4
missilewars-plugin/src/main/java/de/butzlabben/missilewars/MissileWars.java

@@ -25,8 +25,7 @@ import de.butzlabben.missilewars.cmd.UserCommands;
 import de.butzlabben.missilewars.game.Arenas;
 import de.butzlabben.missilewars.game.GameManager;
 import de.butzlabben.missilewars.listener.PlayerListener;
-import de.butzlabben.missilewars.listener.signs.ClickListener;
-import de.butzlabben.missilewars.listener.signs.ManageListener;
+import de.butzlabben.missilewars.listener.SignListener;
 import de.butzlabben.missilewars.util.ConnectionHolder;
 import de.butzlabben.missilewars.util.MissileWarsPlaceholder;
 import de.butzlabben.missilewars.util.MoneyUtil;
@@ -144,8 +143,7 @@ public class MissileWars extends JavaPlugin {
      */
     private void registerEvents() {
         Bukkit.getPluginManager().registerEvents(new PlayerListener(), this);
-        Bukkit.getPluginManager().registerEvents(new ClickListener(), this);
-        Bukkit.getPluginManager().registerEvents(new ManageListener(), this);
+        Bukkit.getPluginManager().registerEvents(new SignListener(), this);
     }
 
     /**

+ 11 - 14
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/Game.java

@@ -28,10 +28,10 @@ import de.butzlabben.missilewars.game.timer.GameTimer;
 import de.butzlabben.missilewars.game.timer.LobbyTimer;
 import de.butzlabben.missilewars.game.timer.Timer;
 import de.butzlabben.missilewars.inventory.OrcItem;
-import de.butzlabben.missilewars.listener.EndListener;
-import de.butzlabben.missilewars.listener.GameBoundListener;
-import de.butzlabben.missilewars.listener.GameListener;
-import de.butzlabben.missilewars.listener.LobbyListener;
+import de.butzlabben.missilewars.listener.game.EndListener;
+import de.butzlabben.missilewars.listener.game.GameBoundListener;
+import de.butzlabben.missilewars.listener.game.GameListener;
+import de.butzlabben.missilewars.listener.game.LobbyListener;
 import de.butzlabben.missilewars.util.MotdManager;
 import de.butzlabben.missilewars.util.PlayerDataProvider;
 import de.butzlabben.missilewars.util.ScoreboardManager;
@@ -51,18 +51,9 @@ import de.butzlabben.missilewars.wrapper.missile.MissileFacing;
 import de.butzlabben.missilewars.wrapper.player.MWPlayer;
 import de.butzlabben.missilewars.wrapper.signs.MWSign;
 import de.butzlabben.missilewars.wrapper.stats.FightStats;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-import java.util.function.Consumer;
 import lombok.Getter;
 import lombok.ToString;
-import org.bukkit.Bukkit;
-import org.bukkit.GameMode;
-import org.bukkit.Location;
-import org.bukkit.Material;
-import org.bukkit.World;
+import org.bukkit.*;
 import org.bukkit.enchantments.Enchantment;
 import org.bukkit.entity.Fireball;
 import org.bukkit.entity.Player;
@@ -74,6 +65,12 @@ import org.bukkit.scheduler.BukkitTask;
 import org.bukkit.scoreboard.Scoreboard;
 import org.bukkit.util.Vector;
 
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+import java.util.function.Consumer;
+
 /**
  * @author Butzlabben
  * @since 01.01.2018

+ 25 - 3
missilewars-plugin/src/main/java/de/butzlabben/missilewars/listener/signs/ManageListener.java → missilewars-plugin/src/main/java/de/butzlabben/missilewars/listener/SignListener.java

@@ -16,7 +16,7 @@
  * along with MissileWars.  If not, see <https://www.gnu.org/licenses/>.
  */
 
-package de.butzlabben.missilewars.listener.signs;
+package de.butzlabben.missilewars.listener;
 
 import de.butzlabben.missilewars.MessageConfig;
 import de.butzlabben.missilewars.MissileWars;
@@ -25,16 +25,38 @@ import de.butzlabben.missilewars.game.GameManager;
 import de.butzlabben.missilewars.util.version.VersionUtil;
 import de.butzlabben.missilewars.wrapper.signs.MWSign;
 import de.butzlabben.missilewars.wrapper.signs.SignRepository;
+import lombok.RequiredArgsConstructor;
+import org.bukkit.Location;
 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.block.BlockBreakEvent;
 import org.bukkit.event.block.SignChangeEvent;
+import org.bukkit.event.player.PlayerInteractEvent;
 
 import java.util.Optional;
 
-public class ManageListener implements Listener {
+@RequiredArgsConstructor
+public class SignListener implements Listener {
+
+    @EventHandler
+    public void onSignClick(PlayerInteractEvent event) {
+        if (event.getAction() == Action.RIGHT_CLICK_BLOCK) {
+            Block block = event.getClickedBlock();
+            if (VersionUtil.isWallSignMaterial(block.getType())) {
+                Location location = block.getLocation();
+                Optional<MWSign> optional = MissileWars.getInstance().getSignRepository().getSign(location);
+                if (optional.isEmpty())
+                    return;
+                MWSign sign = optional.get();
+                Game game = GameManager.getInstance().getGame(sign.getLobby());
+                if (game == null) return;
+                event.getPlayer().teleport(game.getLobby().getSpawnPoint());
+            }
+        }
+    }
 
     @EventHandler
     public void onSignChange(SignChangeEvent event) {
@@ -62,7 +84,7 @@ public class ManageListener implements Listener {
     }
 
     @EventHandler
-    public void onBreak(BlockBreakEvent event) {
+    public void onSignBreak(BlockBreakEvent event) {
         Player player = event.getPlayer();
         if (player.hasPermission("mw.sign.manage")) {
             Block block = event.getBlock();

+ 1 - 1
missilewars-plugin/src/main/java/de/butzlabben/missilewars/listener/EndListener.java → missilewars-plugin/src/main/java/de/butzlabben/missilewars/listener/game/EndListener.java

@@ -16,7 +16,7 @@
  * along with MissileWars.  If not, see <https://www.gnu.org/licenses/>.
  */
 
-package de.butzlabben.missilewars.listener;
+package de.butzlabben.missilewars.listener.game;
 
 import de.butzlabben.missilewars.MessageConfig;
 import de.butzlabben.missilewars.game.Game;

+ 1 - 1
missilewars-plugin/src/main/java/de/butzlabben/missilewars/listener/GameBoundListener.java → missilewars-plugin/src/main/java/de/butzlabben/missilewars/listener/game/GameBoundListener.java

@@ -16,7 +16,7 @@
  * along with MissileWars.  If not, see <https://www.gnu.org/licenses/>.
  */
 
-package de.butzlabben.missilewars.listener;
+package de.butzlabben.missilewars.listener.game;
 
 import de.butzlabben.missilewars.MissileWars;
 import de.butzlabben.missilewars.game.Game;

+ 1 - 1
missilewars-plugin/src/main/java/de/butzlabben/missilewars/listener/GameListener.java → missilewars-plugin/src/main/java/de/butzlabben/missilewars/listener/game/GameListener.java

@@ -16,7 +16,7 @@
  * along with MissileWars.  If not, see <https://www.gnu.org/licenses/>.
  */
 
-package de.butzlabben.missilewars.listener;
+package de.butzlabben.missilewars.listener.game;
 
 import de.butzlabben.missilewars.MessageConfig;
 import de.butzlabben.missilewars.game.Game;

+ 1 - 1
missilewars-plugin/src/main/java/de/butzlabben/missilewars/listener/LobbyListener.java → missilewars-plugin/src/main/java/de/butzlabben/missilewars/listener/game/LobbyListener.java

@@ -16,7 +16,7 @@
  * along with MissileWars.  If not, see <https://www.gnu.org/licenses/>.
  */
 
-package de.butzlabben.missilewars.listener;
+package de.butzlabben.missilewars.listener.game;
 
 import de.butzlabben.missilewars.MessageConfig;
 import de.butzlabben.missilewars.game.Game;

+ 0 - 54
missilewars-plugin/src/main/java/de/butzlabben/missilewars/listener/signs/ClickListener.java

@@ -1,54 +0,0 @@
-/*
- * This file is part of MissileWars (https://github.com/Butzlabben/missilewars).
- * Copyright (c) 2018-2021 Daniel Nägele.
- *
- * MissileWars is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * MissileWars is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with MissileWars.  If not, see <https://www.gnu.org/licenses/>.
- */
-
-package de.butzlabben.missilewars.listener.signs;
-
-import de.butzlabben.missilewars.MissileWars;
-import de.butzlabben.missilewars.game.Game;
-import de.butzlabben.missilewars.game.GameManager;
-import de.butzlabben.missilewars.util.version.VersionUtil;
-import de.butzlabben.missilewars.wrapper.signs.MWSign;
-import java.util.Optional;
-import lombok.RequiredArgsConstructor;
-import org.bukkit.Location;
-import org.bukkit.block.Block;
-import org.bukkit.event.EventHandler;
-import org.bukkit.event.Listener;
-import org.bukkit.event.block.Action;
-import org.bukkit.event.player.PlayerInteractEvent;
-
-@RequiredArgsConstructor
-public class ClickListener implements Listener {
-
-    @EventHandler
-    public void onJoinClick(PlayerInteractEvent event) {
-        if (event.getAction() == Action.RIGHT_CLICK_BLOCK) {
-            Block block = event.getClickedBlock();
-            if (VersionUtil.isWallSignMaterial(block.getType())) {
-                Location location = block.getLocation();
-                Optional<MWSign> optional = MissileWars.getInstance().getSignRepository().getSign(location);
-                if (optional.isEmpty())
-                    return;
-                MWSign sign = optional.get();
-                Game game = GameManager.getInstance().getGame(sign.getLobby());
-                if (game == null) return;
-                event.getPlayer().teleport(game.getLobby().getSpawnPoint());
-            }
-        }
-    }
-}