commit 694fb28c21eff4e1dcf3d41c84929e9b99bf82a3 Author: Nichole Mattera Date: Mon May 16 08:04:14 2011 -0400 Inital Release diff --git a/src/net/mcbat/LightningEvent/LightningEvent.java b/src/net/mcbat/LightningEvent/LightningEvent.java new file mode 100755 index 0000000..8bf4655 --- /dev/null +++ b/src/net/mcbat/LightningEvent/LightningEvent.java @@ -0,0 +1,58 @@ +package net.mcbat.LightningEvent; + +import java.util.logging.Logger; + +import org.bukkit.Location; +import org.bukkit.plugin.Plugin; +import org.bukkit.plugin.java.JavaPlugin; + +import com.nijiko.permissions.PermissionHandler; +import com.nijikokun.bukkit.Permissions.Permissions; + +import net.mcbat.LightningEvent.Listeners.LightningEventEntityListener; +import net.mcbat.LightningEvent.Listeners.LightningEventPlayerListener; +import net.mcbat.LightningEvent.Listeners.LightningEventServerListener; + +public class LightningEvent extends JavaPlugin { + private final Logger _logger; + + public PermissionHandler Permissions = null; + + public LightningEvent() { + _logger = Logger.getLogger("Minecraft"); + } + + @Override + public void onEnable() { + _logger.info("[LightningEvent] v"+this.getDescription().getVersion()+" (Helium) loaded."); + _logger.info("[LightningEvent] Developed by: [Mattera, Steven (IchigoKyger)]"); + + if (Permissions == null) { + Plugin PermissionsPlugin = this.getServer().getPluginManager().getPlugin("Permissions"); + + if (PermissionsPlugin != null) { + if (PermissionsPlugin.isEnabled()) { + Permissions = ((Permissions) PermissionsPlugin).getHandler(); + _logger.info("[LightningEvent] hooked into Permissions/GroupManager."); + } + } + } + + (new LightningEventEntityListener(this)).registerEvents(); + (new LightningEventPlayerListener(this)).registerEvents(); + (new LightningEventServerListener(this)).registerEvents(); + } + + @Override + public void onDisable() { + _logger.info("[LightningEvent] Plugin disabled."); + } + + public Logger getMinecraftLogger() { + return _logger; + } + + public void castLightningAtLocation(Location location) { + location.getWorld().strikeLightningEffect(location); + } +} diff --git a/src/net/mcbat/LightningEvent/Listeners/LightningEventEntityListener.java b/src/net/mcbat/LightningEvent/Listeners/LightningEventEntityListener.java new file mode 100644 index 0000000..8c6088b --- /dev/null +++ b/src/net/mcbat/LightningEvent/Listeners/LightningEventEntityListener.java @@ -0,0 +1,36 @@ +package net.mcbat.LightningEvent.Listeners; + +import net.mcbat.LightningEvent.LightningEvent; + +import org.bukkit.entity.Player; +import org.bukkit.event.Event; +import org.bukkit.event.Event.Priority; +import org.bukkit.event.entity.EntityDeathEvent; +import org.bukkit.event.entity.EntityListener; +import org.bukkit.plugin.PluginManager; + +public class LightningEventEntityListener extends EntityListener { + private final LightningEvent _plugin; + + public LightningEventEntityListener(LightningEvent plugin) { + _plugin = plugin; + } + + public void registerEvents() { + PluginManager pm = _plugin.getServer().getPluginManager(); + + pm.registerEvent(Event.Type.ENTITY_DEATH, this, Priority.Monitor, _plugin); + } + + public void onEntityDeath(EntityDeathEvent event) { + if (event.getEntity() instanceof Player) { + Player player = (Player)event.getEntity(); + + if (_plugin.Permissions != null && _plugin.Permissions.has(player, "LightningEvent.onDeath")) + _plugin.castLightningAtLocation(player.getLocation()); + + _plugin.getMinecraftLogger().info("OnDeath: "+player.getLocation().toString()); + + } + } +} diff --git a/src/net/mcbat/LightningEvent/Listeners/LightningEventPlayerListener.java b/src/net/mcbat/LightningEvent/Listeners/LightningEventPlayerListener.java new file mode 100755 index 0000000..4ab5933 --- /dev/null +++ b/src/net/mcbat/LightningEvent/Listeners/LightningEventPlayerListener.java @@ -0,0 +1,74 @@ +package net.mcbat.LightningEvent.Listeners; + +import net.mcbat.LightningEvent.LightningEvent; + +import org.bukkit.event.Event; +import org.bukkit.event.Event.Priority; +import org.bukkit.event.player.PlayerBedEnterEvent; +import org.bukkit.event.player.PlayerBedLeaveEvent; +import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.event.player.PlayerListener; +import org.bukkit.event.player.PlayerMoveEvent; +import org.bukkit.event.player.PlayerQuitEvent; +import org.bukkit.event.player.PlayerRespawnEvent; +import org.bukkit.event.player.PlayerTeleportEvent; +import org.bukkit.plugin.PluginManager; + +public class LightningEventPlayerListener extends PlayerListener { + private final LightningEvent _plugin; + + public LightningEventPlayerListener(LightningEvent plugin) { + _plugin = plugin; + } + + public void registerEvents() { + PluginManager pm = _plugin.getServer().getPluginManager(); + + pm.registerEvent(Event.Type.PLAYER_BED_ENTER, this, Priority.Monitor, _plugin); + pm.registerEvent(Event.Type.PLAYER_BED_LEAVE, this, Priority.Monitor, _plugin); + pm.registerEvent(Event.Type.PLAYER_JOIN, this, Priority.Monitor, _plugin); + pm.registerEvent(Event.Type.PLAYER_QUIT, this, Priority.Monitor, _plugin); + pm.registerEvent(Event.Type.PLAYER_MOVE, this, Priority.Monitor, _plugin); + pm.registerEvent(Event.Type.PLAYER_TELEPORT, this, Priority.Monitor, _plugin); + pm.registerEvent(Event.Type.PLAYER_RESPAWN, this, Priority.Monitor, _plugin); + } + + public void onPlayerBedEnter(PlayerBedEnterEvent event) { + if (_plugin.Permissions != null && _plugin.Permissions.has(event.getPlayer(), "LightningEvent.onBedEnter")) + _plugin.castLightningAtLocation(event.getPlayer().getLocation()); + } + + public void onPlayerBedLeave(PlayerBedLeaveEvent event) { + if (_plugin.Permissions != null && _plugin.Permissions.has(event.getPlayer(), "LightningEvent.onBedLeave")) + _plugin.castLightningAtLocation(event.getPlayer().getLocation()); + } + + public void onPlayerJoin(PlayerJoinEvent event) { + if (_plugin.Permissions != null && _plugin.Permissions.has(event.getPlayer(), "LightningEvent.onJoin")) + _plugin.castLightningAtLocation(event.getPlayer().getLocation()); + } + + public void onPlayerQuit(PlayerQuitEvent event) { + if (_plugin.Permissions != null && _plugin.Permissions.has(event.getPlayer(), "LightningEvent.onQuit")) + _plugin.castLightningAtLocation(event.getPlayer().getLocation()); + } + + public void onPlayerMove(PlayerMoveEvent event) { + if (_plugin.Permissions != null && _plugin.Permissions.has(event.getPlayer(), "LightningEvent.onMove")) + _plugin.castLightningAtLocation(event.getPlayer().getLocation()); + } + + public void onPlayerTeleport(PlayerTeleportEvent event) { + if (_plugin.Permissions != null && _plugin.Permissions.has(event.getPlayer(), "LightningEvent.onTeleport.from")) + _plugin.castLightningAtLocation(event.getFrom()); + + if (_plugin.Permissions != null && _plugin.Permissions.has(event.getPlayer(), "LightningEvent.onTeleport.to")) + _plugin.castLightningAtLocation(event.getTo()); + } + + public void onPlayerRespawn(PlayerRespawnEvent event) { + if (_plugin.Permissions != null && _plugin.Permissions.has(event.getPlayer(), "LightningEvent.onRespawn")) + _plugin.castLightningAtLocation(event.getRespawnLocation()); + _plugin.getMinecraftLogger().info("OnRespawn: "+event.getRespawnLocation().toString()); + } +} diff --git a/src/net/mcbat/LightningEvent/Listeners/LightningEventServerListener.java b/src/net/mcbat/LightningEvent/Listeners/LightningEventServerListener.java new file mode 100644 index 0000000..25f8fdc --- /dev/null +++ b/src/net/mcbat/LightningEvent/Listeners/LightningEventServerListener.java @@ -0,0 +1,41 @@ +package net.mcbat.LightningEvent.Listeners; + +import net.mcbat.LightningEvent.LightningEvent; + +import org.bukkit.event.Event; +import org.bukkit.event.Event.Priority; +import org.bukkit.event.server.PluginDisableEvent; +import org.bukkit.event.server.PluginEnableEvent; +import org.bukkit.event.server.ServerListener; +import org.bukkit.plugin.PluginManager; + +import com.nijikokun.bukkit.Permissions.Permissions; + +public class LightningEventServerListener extends ServerListener { + private final LightningEvent _plugin; + + public LightningEventServerListener(LightningEvent plugin) { + _plugin = plugin; + } + + public void registerEvents() { + PluginManager pm = _plugin.getServer().getPluginManager(); + + pm.registerEvent(Event.Type.PLUGIN_ENABLE, this, Priority.Monitor, _plugin); + pm.registerEvent(Event.Type.PLUGIN_DISABLE, this, Priority.Monitor, _plugin); + } + + public void onPluginEnable(PluginEnableEvent event) { + if (_plugin.Permissions == null && event.getPlugin().getDescription().getName().equals("Permissions")) { + _plugin.Permissions = ((Permissions)event.getPlugin()).getHandler(); + _plugin.getMinecraftLogger().info("[LightningEvent] hooked into Permissions/GroupManager."); + } + } + + public void onPluginDisable(PluginDisableEvent event) { + if (_plugin.Permissions != null && event.getPlugin().getDescription().getName().equals("Permissions")) { + _plugin.Permissions = null; + _plugin.getMinecraftLogger().info("[LightningEvent] un-hooked from Permissions/GroupManager"); + } + } +} diff --git a/src/plugin.yml b/src/plugin.yml new file mode 100755 index 0000000..3ba41c8 --- /dev/null +++ b/src/plugin.yml @@ -0,0 +1,6 @@ +name: LightningEvent +main: net.mcbat.LightningEvent.LightningEvent +version: 1.00 +website: http://mc-bat.net +author: Steven Mattera +description: Simple plugin that casts lightning on events. \ No newline at end of file