replace wall of text that was registering listeners with a nice loop

This commit is contained in:
YouHaveTrouble
2020-08-21 03:32:39 +02:00
parent 1f225d14f8
commit 1ce19a564b
25 changed files with 65 additions and 30 deletions
+5
View File
@@ -77,5 +77,10 @@
<version>1.18.12</version> <version>1.18.12</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency>
<groupId>org.reflections</groupId>
<artifactId>reflections</artifactId>
<version>0.9.12</version>
</dependency>
</dependencies> </dependencies>
</project> </project>
@@ -9,13 +9,18 @@ import eu.endermite.togglepvp.listeners.unspecific.*;
import eu.endermite.togglepvp.listeners.wolf.*; import eu.endermite.togglepvp.listeners.wolf.*;
import eu.endermite.togglepvp.players.PlayerManager; import eu.endermite.togglepvp.players.PlayerManager;
import eu.endermite.togglepvp.players.SmartCache; import eu.endermite.togglepvp.players.SmartCache;
import eu.endermite.togglepvp.util.Listener;
import eu.endermite.togglepvp.util.DatabaseSQLite; import eu.endermite.togglepvp.util.DatabaseSQLite;
import lombok.Getter; import lombok.Getter;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
import org.reflections.Reflections;
import org.reflections.scanners.TypeAnnotationsScanner;
import java.io.File; import java.io.File;
import java.lang.reflect.InvocationTargetException;
import java.util.Objects; import java.util.Objects;
import java.util.Set;
public final class TogglePvP extends JavaPlugin { public final class TogglePvP extends JavaPlugin {
@@ -31,33 +36,30 @@ public final class TogglePvP extends JavaPlugin {
File dbFile = new File("plugins/TogglePvP"); File dbFile = new File("plugins/TogglePvP");
sqLite = new DatabaseSQLite("jdbc:sqlite:plugins/TogglePvP/TogglePvP.db", dbFile); sqLite = new DatabaseSQLite("jdbc:sqlite:plugins/TogglePvP/TogglePvP.db", dbFile);
sqLite.createDatabaseFile(); sqLite.createDatabaseFile();
sqLite.testConnection(); if (!sqLite.testConnection()) {
getLogger().severe("Error with accessing database.");
getLogger().severe("Plugin will now disable.");
getServer().getPluginManager().disablePlugin(this);
}
playerManager = new PlayerManager(); playerManager = new PlayerManager();
SmartCache.runSmartCache(); SmartCache.runSmartCache();
getServer().getPluginManager().registerEvents(new PlayerJoinAndLeaveListener(), this); // Register listeners
getServer().getPluginManager().registerEvents(new PlayerAttackListener(), this); Reflections reflections = new Reflections(new String[]{"eu.endermite.togglepvp"});
getServer().getPluginManager().registerEvents(new PlayerHitByProjectileListener(), this); Set<Class<?>> listenerClasses = reflections.getTypesAnnotatedWith(Listener.class);
getServer().getPluginManager().registerEvents(new AreaEffectCloudApplyListener(), this); listenerClasses.forEach((listener)-> {
getServer().getPluginManager().registerEvents(new PlayerHitBySplashPotionListener(), this); try {
getServer().getPluginManager().registerEvents(new EntityHitByLightningListener(), this); getServer().getPluginManager().registerEvents((org.bukkit.event.Listener) listener.getConstructor().newInstance(), this);
getServer().getPluginManager().registerEvents(new LightningBlockIgniteListener(), this); } catch (InstantiationException | IllegalAccessException | InvocationTargetException | NoSuchMethodException e) {
getServer().getPluginManager().registerEvents(new PlayerHitByFireworkListener(), this); e.printStackTrace();
getServer().getPluginManager().registerEvents(new FishingListener(), this); getLogger().severe("Error with registering listeners.");
getServer().getPluginManager().registerEvents(new LavaDumpAndIgniteListener(), this); getLogger().severe("Plugin will now disable.");
getServer().getPluginManager().registerEvents(new PlaceWitherRoseListener(), this); getServer().getPluginManager().disablePlugin(this);
getServer().getPluginManager().registerEvents(new PlayerHitByExplosionListener(), this); }
getServer().getPluginManager().registerEvents(new WolfTargettingPlayerListener(), this); });
getServer().getPluginManager().registerEvents(new WolfAttackPlayerListener(), this);
getServer().getPluginManager().registerEvents(new PlayerAttackWolfListener(), this);
getServer().getPluginManager().registerEvents(new PlayerHitWolfWithProjectile(), this);
getServer().getPluginManager().registerEvents(new WolfHitBySplashPotionListener(), this);
getServer().getPluginManager().registerEvents(new WolfHitByFireworkListener(), this);
getServer().getPluginManager().registerEvents(new WolfTargettingWolfListener(), this);
getServer().getPluginManager().registerEvents(new WolfHitByExplosionListener(), this);
getServer().getPluginManager().registerEvents(new WolfLeashListener(), this);
// Register command
Objects.requireNonNull(getCommand("pvp")).setExecutor(new MainCommand()); Objects.requireNonNull(getCommand("pvp")).setExecutor(new MainCommand());
Objects.requireNonNull(getCommand("pvp")).setTabCompleter(new MainCommand()); Objects.requireNonNull(getCommand("pvp")).setTabCompleter(new MainCommand());
} }
@@ -9,6 +9,7 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
@eu.endermite.togglepvp.util.Listener
public class PlayerAttackListener implements Listener { public class PlayerAttackListener implements Listener {
/** /**
@@ -11,10 +11,9 @@ import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.metadata.FixedMetadataValue; import org.bukkit.metadata.FixedMetadataValue;
import java.util.UUID; import java.util.UUID;
@eu.endermite.togglepvp.util.Listener
public class PlayerHitByExplosionListener implements Listener { public class PlayerHitByExplosionListener implements Listener {
/** /**
@@ -8,6 +8,7 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
@eu.endermite.togglepvp.util.Listener
public class PlayerHitByFireworkListener implements Listener { public class PlayerHitByFireworkListener implements Listener {
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
@@ -9,6 +9,7 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
@eu.endermite.togglepvp.util.Listener
public class PlayerHitByProjectileListener implements Listener { public class PlayerHitByProjectileListener implements Listener {
/** /**
@@ -11,6 +11,7 @@ import org.bukkit.event.Listener;
import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType; import org.bukkit.potion.PotionEffectType;
@eu.endermite.togglepvp.util.Listener
public class PlayerHitBySplashPotionListener implements Listener { public class PlayerHitBySplashPotionListener implements Listener {
/** /**
@@ -4,9 +4,9 @@ import eu.endermite.togglepvp.TogglePvP;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import java.util.HashMap; import java.util.HashMap;
@eu.endermite.togglepvp.util.Listener
public class PlayerJoinAndLeaveListener implements Listener { public class PlayerJoinAndLeaveListener implements Listener {
/** /**
@@ -8,6 +8,7 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
@eu.endermite.togglepvp.util.Listener
public class WolfAttackPlayerListener implements Listener { public class WolfAttackPlayerListener implements Listener {
/** /**
@@ -11,9 +11,9 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.event.entity.AreaEffectCloudApplyEvent; import org.bukkit.event.entity.AreaEffectCloudApplyEvent;
import org.bukkit.potion.PotionEffectType; import org.bukkit.potion.PotionEffectType;
import java.util.Iterator; import java.util.Iterator;
@eu.endermite.togglepvp.util.Listener
public class AreaEffectCloudApplyListener implements Listener { public class AreaEffectCloudApplyListener implements Listener {
@EventHandler(ignoreCancelled = true) @EventHandler(ignoreCancelled = true)
@@ -15,6 +15,7 @@ import org.bukkit.metadata.FixedMetadataValue;
* Listen for lightning strikes and tag the trident spawned ones. * Listen for lightning strikes and tag the trident spawned ones.
* Idea from aasmus' PvPToggle plugin * Idea from aasmus' PvPToggle plugin
*/ */
@eu.endermite.togglepvp.util.Listener
public class EntityHitByLightningListener implements Listener { public class EntityHitByLightningListener implements Listener {
/** /**
@@ -10,6 +10,7 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
@eu.endermite.togglepvp.util.Listener
public class FishingListener implements Listener { public class FishingListener implements Listener {
ConfigCache config = TogglePvP.getPlugin().getConfigCache(); ConfigCache config = TogglePvP.getPlugin().getConfigCache();
@@ -15,6 +15,8 @@ import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.util.BoundingBox; import org.bukkit.util.BoundingBox;
@eu.endermite.togglepvp.util.Listener
public class LavaDumpAndIgniteListener implements Listener { public class LavaDumpAndIgniteListener implements Listener {
private ConfigCache config = TogglePvP.getPlugin().getConfigCache(); private ConfigCache config = TogglePvP.getPlugin().getConfigCache();
@@ -10,6 +10,7 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
@eu.endermite.togglepvp.util.Listener
public class LightningBlockIgniteListener implements Listener { public class LightningBlockIgniteListener implements Listener {
/** /**
@@ -15,6 +15,7 @@ import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.util.BoundingBox; import org.bukkit.util.BoundingBox;
@eu.endermite.togglepvp.util.Listener
public class PlaceWitherRoseListener implements Listener { public class PlaceWitherRoseListener implements Listener {
private ConfigCache config = TogglePvP.getPlugin().getConfigCache(); private ConfigCache config = TogglePvP.getPlugin().getConfigCache();
@@ -10,6 +10,7 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
@eu.endermite.togglepvp.util.Listener
public class PlayerAttackWolfListener implements Listener { public class PlayerAttackWolfListener implements Listener {
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
@@ -11,6 +11,7 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
@eu.endermite.togglepvp.util.Listener
public class PlayerHitWolfWithProjectile implements Listener { public class PlayerHitWolfWithProjectile implements Listener {
/** /**
@@ -4,15 +4,14 @@ import eu.endermite.togglepvp.TogglePvP;
import eu.endermite.togglepvp.config.ConfigCache; import eu.endermite.togglepvp.config.ConfigCache;
import eu.endermite.togglepvp.players.SmartCache; import eu.endermite.togglepvp.players.SmartCache;
import eu.endermite.togglepvp.util.PluginMessages; import eu.endermite.togglepvp.util.PluginMessages;
import org.bukkit.entity.Player;
import org.bukkit.entity.Wolf; import org.bukkit.entity.Wolf;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.EntityDamageEvent;
import java.util.UUID; import java.util.UUID;
@eu.endermite.togglepvp.util.Listener
public class WolfHitByExplosionListener implements Listener { public class WolfHitByExplosionListener implements Listener {
/** /**
@@ -9,6 +9,7 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
@eu.endermite.togglepvp.util.Listener
public class WolfHitByFireworkListener implements Listener { public class WolfHitByFireworkListener implements Listener {
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
@@ -13,6 +13,7 @@ import org.bukkit.event.Listener;
import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType; import org.bukkit.potion.PotionEffectType;
@eu.endermite.togglepvp.util.Listener
public class WolfHitBySplashPotionListener implements Listener { public class WolfHitBySplashPotionListener implements Listener {
/** /**
@@ -10,6 +10,7 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
@eu.endermite.togglepvp.util.Listener
public class WolfLeashListener implements Listener { public class WolfLeashListener implements Listener {
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
@@ -2,13 +2,13 @@ package eu.endermite.togglepvp.listeners.wolf;
import eu.endermite.togglepvp.TogglePvP; import eu.endermite.togglepvp.TogglePvP;
import eu.endermite.togglepvp.players.SmartCache; import eu.endermite.togglepvp.players.SmartCache;
import org.bukkit.entity.Fox;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.entity.Wolf; import org.bukkit.entity.Wolf;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
@eu.endermite.togglepvp.util.Listener
public class WolfTargettingPlayerListener implements Listener { public class WolfTargettingPlayerListener implements Listener {
/** /**
* Stops wolves with owners targetting players with pvp off * Stops wolves with owners targetting players with pvp off
@@ -6,6 +6,7 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
@eu.endermite.togglepvp.util.Listener
public class WolfTargettingWolfListener implements Listener { public class WolfTargettingWolfListener implements Listener {
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
@@ -36,7 +36,7 @@ public class DatabaseSQLite {
return true; return true;
} }
public void testConnection() { public boolean testConnection() {
Connection conn = null; Connection conn = null;
try { try {
conn = DriverManager.getConnection(url); conn = DriverManager.getConnection(url);
@@ -48,10 +48,12 @@ public class DatabaseSQLite {
if (conn != null) { if (conn != null) {
conn.close(); conn.close();
} }
return true;
} catch (SQLException ex) { } catch (SQLException ex) {
System.out.println(ex.getMessage()); System.out.println(ex.getMessage());
} }
} }
return false;
} }
public HashMap<String, Object> getPlayerInfo(UUID uuid) { public HashMap<String, Object> getPlayerInfo(UUID uuid) {
@@ -0,0 +1,11 @@
package eu.endermite.togglepvp.util;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE})
public @interface Listener {}