mirror of
https://github.com/YouHaveTrouble/PreventStabby.git
synced 2026-05-12 05:16:55 +00:00
replace wall of text that was registering listeners with a nice loop
This commit is contained in:
@@ -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 {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
+1
-2
@@ -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)
|
||||||
|
|||||||
+1
@@ -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 {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
+1
@@ -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 {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
+1
-1
@@ -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 {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
+1
-1
@@ -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)
|
||||||
|
|||||||
+1
@@ -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();
|
||||||
|
|||||||
+2
@@ -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();
|
||||||
|
|||||||
+1
@@ -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)
|
||||||
|
|||||||
+1
-1
@@ -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 {}
|
||||||
Reference in New Issue
Block a user