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
@@ -9,13 +9,18 @@ import eu.endermite.togglepvp.listeners.unspecific.*;
import eu.endermite.togglepvp.listeners.wolf.*;
import eu.endermite.togglepvp.players.PlayerManager;
import eu.endermite.togglepvp.players.SmartCache;
import eu.endermite.togglepvp.util.Listener;
import eu.endermite.togglepvp.util.DatabaseSQLite;
import lombok.Getter;
import org.bukkit.command.CommandSender;
import org.bukkit.plugin.java.JavaPlugin;
import org.reflections.Reflections;
import org.reflections.scanners.TypeAnnotationsScanner;
import java.io.File;
import java.lang.reflect.InvocationTargetException;
import java.util.Objects;
import java.util.Set;
public final class TogglePvP extends JavaPlugin {
@@ -31,33 +36,30 @@ public final class TogglePvP extends JavaPlugin {
File dbFile = new File("plugins/TogglePvP");
sqLite = new DatabaseSQLite("jdbc:sqlite:plugins/TogglePvP/TogglePvP.db", dbFile);
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();
SmartCache.runSmartCache();
getServer().getPluginManager().registerEvents(new PlayerJoinAndLeaveListener(), this);
getServer().getPluginManager().registerEvents(new PlayerAttackListener(), this);
getServer().getPluginManager().registerEvents(new PlayerHitByProjectileListener(), this);
getServer().getPluginManager().registerEvents(new AreaEffectCloudApplyListener(), this);
getServer().getPluginManager().registerEvents(new PlayerHitBySplashPotionListener(), this);
getServer().getPluginManager().registerEvents(new EntityHitByLightningListener(), this);
getServer().getPluginManager().registerEvents(new LightningBlockIgniteListener(), this);
getServer().getPluginManager().registerEvents(new PlayerHitByFireworkListener(), this);
getServer().getPluginManager().registerEvents(new FishingListener(), this);
getServer().getPluginManager().registerEvents(new LavaDumpAndIgniteListener(), this);
getServer().getPluginManager().registerEvents(new PlaceWitherRoseListener(), 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 listeners
Reflections reflections = new Reflections(new String[]{"eu.endermite.togglepvp"});
Set<Class<?>> listenerClasses = reflections.getTypesAnnotatedWith(Listener.class);
listenerClasses.forEach((listener)-> {
try {
getServer().getPluginManager().registerEvents((org.bukkit.event.Listener) listener.getConstructor().newInstance(), this);
} catch (InstantiationException | IllegalAccessException | InvocationTargetException | NoSuchMethodException e) {
e.printStackTrace();
getLogger().severe("Error with registering listeners.");
getLogger().severe("Plugin will now disable.");
getServer().getPluginManager().disablePlugin(this);
}
});
// Register command
Objects.requireNonNull(getCommand("pvp")).setExecutor(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.Listener;
@eu.endermite.togglepvp.util.Listener
public class PlayerAttackListener implements Listener {
/**
@@ -11,10 +11,9 @@ import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.metadata.FixedMetadataValue;
import java.util.UUID;
@eu.endermite.togglepvp.util.Listener
public class PlayerHitByExplosionListener implements Listener {
/**
@@ -8,6 +8,7 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
@eu.endermite.togglepvp.util.Listener
public class PlayerHitByFireworkListener implements Listener {
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
@@ -9,6 +9,7 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
@eu.endermite.togglepvp.util.Listener
public class PlayerHitByProjectileListener implements Listener {
/**
@@ -11,6 +11,7 @@ import org.bukkit.event.Listener;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
@eu.endermite.togglepvp.util.Listener
public class PlayerHitBySplashPotionListener implements Listener {
/**
@@ -4,9 +4,9 @@ import eu.endermite.togglepvp.TogglePvP;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import java.util.HashMap;
@eu.endermite.togglepvp.util.Listener
public class PlayerJoinAndLeaveListener implements Listener {
/**
@@ -8,6 +8,7 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
@eu.endermite.togglepvp.util.Listener
public class WolfAttackPlayerListener implements Listener {
/**
@@ -11,9 +11,9 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.AreaEffectCloudApplyEvent;
import org.bukkit.potion.PotionEffectType;
import java.util.Iterator;
@eu.endermite.togglepvp.util.Listener
public class AreaEffectCloudApplyListener implements Listener {
@EventHandler(ignoreCancelled = true)
@@ -15,6 +15,7 @@ import org.bukkit.metadata.FixedMetadataValue;
* Listen for lightning strikes and tag the trident spawned ones.
* Idea from aasmus' PvPToggle plugin
*/
@eu.endermite.togglepvp.util.Listener
public class EntityHitByLightningListener implements Listener {
/**
@@ -10,6 +10,7 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
@eu.endermite.togglepvp.util.Listener
public class FishingListener implements Listener {
ConfigCache config = TogglePvP.getPlugin().getConfigCache();
@@ -15,6 +15,8 @@ import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.util.BoundingBox;
@eu.endermite.togglepvp.util.Listener
public class LavaDumpAndIgniteListener implements Listener {
private ConfigCache config = TogglePvP.getPlugin().getConfigCache();
@@ -10,6 +10,7 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
@eu.endermite.togglepvp.util.Listener
public class LightningBlockIgniteListener implements Listener {
/**
@@ -15,6 +15,7 @@ import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.util.BoundingBox;
@eu.endermite.togglepvp.util.Listener
public class PlaceWitherRoseListener implements Listener {
private ConfigCache config = TogglePvP.getPlugin().getConfigCache();
@@ -10,6 +10,7 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
@eu.endermite.togglepvp.util.Listener
public class PlayerAttackWolfListener implements Listener {
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
@@ -11,6 +11,7 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
@eu.endermite.togglepvp.util.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.players.SmartCache;
import eu.endermite.togglepvp.util.PluginMessages;
import org.bukkit.entity.Player;
import org.bukkit.entity.Wolf;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageEvent;
import java.util.UUID;
@eu.endermite.togglepvp.util.Listener
public class WolfHitByExplosionListener implements Listener {
/**
@@ -9,6 +9,7 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
@eu.endermite.togglepvp.util.Listener
public class WolfHitByFireworkListener implements Listener {
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
@@ -13,6 +13,7 @@ import org.bukkit.event.Listener;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
@eu.endermite.togglepvp.util.Listener
public class WolfHitBySplashPotionListener implements Listener {
/**
@@ -10,6 +10,7 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
@eu.endermite.togglepvp.util.Listener
public class WolfLeashListener implements Listener {
@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.players.SmartCache;
import org.bukkit.entity.Fox;
import org.bukkit.entity.Player;
import org.bukkit.entity.Wolf;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
@eu.endermite.togglepvp.util.Listener
public class WolfTargettingPlayerListener implements Listener {
/**
* 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.Listener;
@eu.endermite.togglepvp.util.Listener
public class WolfTargettingWolfListener implements Listener {
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
@@ -36,7 +36,7 @@ public class DatabaseSQLite {
return true;
}
public void testConnection() {
public boolean testConnection() {
Connection conn = null;
try {
conn = DriverManager.getConnection(url);
@@ -48,10 +48,12 @@ public class DatabaseSQLite {
if (conn != null) {
conn.close();
}
return true;
} catch (SQLException ex) {
System.out.println(ex.getMessage());
}
}
return false;
}
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 {}