From e4c945449a0cdbe8db94982cb340cc266c5c58bc Mon Sep 17 00:00:00 2001 From: Steven Scott Date: Thu, 18 Aug 2011 22:00:35 -0700 Subject: [PATCH] Added Activate/Deactivate events --- src/net/TheDgtl/Stargate/Portal.java | 41 ++++++++++++++----- src/net/TheDgtl/Stargate/Stargate.java | 19 +++++++++ .../Stargate/event/StargateActivateEvent.java | 12 ++++++ .../Stargate/event/StargateCloseEvent.java | 13 +++++- .../event/StargateDeactivateEvent.java | 12 ++++++ .../TheDgtl/Stargate/event/StargateEvent.java | 12 +----- .../Stargate/event/StargateListener.java | 12 ++++++ .../Stargate/event/StargateOpenEvent.java | 15 +++++-- 8 files changed, 110 insertions(+), 26 deletions(-) create mode 100644 src/net/TheDgtl/Stargate/event/StargateActivateEvent.java create mode 100644 src/net/TheDgtl/Stargate/event/StargateDeactivateEvent.java diff --git a/src/net/TheDgtl/Stargate/Portal.java b/src/net/TheDgtl/Stargate/Portal.java index cb9fbdc..c910263 100644 --- a/src/net/TheDgtl/Stargate/Portal.java +++ b/src/net/TheDgtl/Stargate/Portal.java @@ -9,7 +9,9 @@ import java.util.Iterator; import java.util.Scanner; import java.util.logging.Level; +import net.TheDgtl.Stargate.event.StargateActivateEvent; import net.TheDgtl.Stargate.event.StargateCloseEvent; +import net.TheDgtl.Stargate.event.StargateDeactivateEvent; import net.TheDgtl.Stargate.event.StargateOpenEvent; import org.bukkit.ChatColor; @@ -415,6 +417,10 @@ public class Portal { } public void activate(Player player) { + StargateActivateEvent event = new StargateActivateEvent(this); + Stargate.server.getPluginManager().callEvent(event); + if (event.isCancelled()) return; + destinations.clear(); destination = ""; drawSign(); @@ -439,6 +445,10 @@ public class Portal { } public void deactivate() { + StargateDeactivateEvent event = new StargateDeactivateEvent(this); + Stargate.server.getPluginManager().callEvent(event); + if (event.isCancelled()) return; + Stargate.activeList.remove(this); if (isFixed()) { return; @@ -1032,23 +1042,32 @@ public class Portal { @Override public int hashCode() { - return getName().hashCode(); + final int prime = 31; + int result = 1; + result = prime * result + ((name == null) ? 0 : name.hashCode()); + result = prime * result + ((network == null) ? 0 : network.hashCode()); + return result; } @Override public boolean equals(Object obj) { - if (this == obj) { + if (this == obj) return true; - } - if (obj == null) { + if (obj == null) return false; - } - if (getClass() != obj.getClass()) { + if (getClass() != obj.getClass()) return false; - } - - Portal portal = (Portal) obj; - return (this.getNetwork().equalsIgnoreCase(portal.getNetwork()) && - this.getName().equalsIgnoreCase(portal.getName())); + Portal other = (Portal) obj; + if (name == null) { + if (other.name != null) + return false; + } else if (!name.equalsIgnoreCase(other.name)) + return false; + if (network == null) { + if (other.network != null) + return false; + } else if (!network.equalsIgnoreCase(other.network)) + return false; + return true; } } diff --git a/src/net/TheDgtl/Stargate/Stargate.java b/src/net/TheDgtl/Stargate/Stargate.java index c1285a8..edb532e 100644 --- a/src/net/TheDgtl/Stargate/Stargate.java +++ b/src/net/TheDgtl/Stargate/Stargate.java @@ -269,6 +269,25 @@ public class Stargate extends JavaPlugin { public static String getDefaultNetwork() { return defNetwork; } + + public static String getTeleMsg() { + return teleMsg; + } + public static String getRegMsg() { + return regMsg; + } + public static String getDmgMsg() { + return dmgMsg; + } + public static String getDenyMsg() { + return denyMsg; + } + public static String getInvMsg() { + return invMsg; + } + public static String getBlockMsg() { + return blockMsg; + } private void onButtonPressed(Player player, Portal portal) { Portal destination = portal.getDestination(); diff --git a/src/net/TheDgtl/Stargate/event/StargateActivateEvent.java b/src/net/TheDgtl/Stargate/event/StargateActivateEvent.java new file mode 100644 index 0000000..c007477 --- /dev/null +++ b/src/net/TheDgtl/Stargate/event/StargateActivateEvent.java @@ -0,0 +1,12 @@ +package net.TheDgtl.Stargate.event; + +import net.TheDgtl.Stargate.Portal; + +public class StargateActivateEvent extends StargateEvent { + private static final long serialVersionUID = -8058490029263773684L; + + public StargateActivateEvent(Portal portal) { + super("StargatActivateEvent", portal); + + } +} diff --git a/src/net/TheDgtl/Stargate/event/StargateCloseEvent.java b/src/net/TheDgtl/Stargate/event/StargateCloseEvent.java index 8cdd0ff..15cc98e 100644 --- a/src/net/TheDgtl/Stargate/event/StargateCloseEvent.java +++ b/src/net/TheDgtl/Stargate/event/StargateCloseEvent.java @@ -4,8 +4,19 @@ import net.TheDgtl.Stargate.Portal; public class StargateCloseEvent extends StargateEvent { private static final long serialVersionUID = -4382967941863636023L; + private boolean force; public StargateCloseEvent(Portal portal, boolean force) { - super("StargateCloseEvent", portal, force); + super("StargateCloseEvent", portal); + + this.force = force; + } + + public boolean getForce() { + return force; + } + + public void setForce(boolean force) { + this.force = force; } } diff --git a/src/net/TheDgtl/Stargate/event/StargateDeactivateEvent.java b/src/net/TheDgtl/Stargate/event/StargateDeactivateEvent.java new file mode 100644 index 0000000..72fae31 --- /dev/null +++ b/src/net/TheDgtl/Stargate/event/StargateDeactivateEvent.java @@ -0,0 +1,12 @@ +package net.TheDgtl.Stargate.event; + +import net.TheDgtl.Stargate.Portal; + +public class StargateDeactivateEvent extends StargateEvent { + private static final long serialVersionUID = -1863190375834892100L; + + public StargateDeactivateEvent(Portal portal) { + super("StargatDeactivateEvent", portal); + + } +} diff --git a/src/net/TheDgtl/Stargate/event/StargateEvent.java b/src/net/TheDgtl/Stargate/event/StargateEvent.java index ab95c2b..5f02517 100644 --- a/src/net/TheDgtl/Stargate/event/StargateEvent.java +++ b/src/net/TheDgtl/Stargate/event/StargateEvent.java @@ -9,27 +9,17 @@ public class StargateEvent extends Event implements Cancellable { private static final long serialVersionUID = -5079274654178040431L; protected Portal portal; protected boolean cancelled; - protected boolean force; - public StargateEvent(String event, Portal portal, boolean force) { + public StargateEvent(String event, Portal portal) { super (event); this.portal = portal; this.cancelled = false; - this.force = force; } public Portal getPortal() { return portal; } - public boolean getForce() { - return force; - } - - public void setForce(boolean force) { - this.force = force; - } - @Override public boolean isCancelled() { return this.cancelled; diff --git a/src/net/TheDgtl/Stargate/event/StargateListener.java b/src/net/TheDgtl/Stargate/event/StargateListener.java index 0ac3d29..d09ea9a 100644 --- a/src/net/TheDgtl/Stargate/event/StargateListener.java +++ b/src/net/TheDgtl/Stargate/event/StargateListener.java @@ -17,12 +17,24 @@ public class StargateListener extends CustomEventListener implements Listener { } + public void onStargateActivate(StargateActivateEvent event) { + + } + + public void onStargateDeactivate(StargateDeactivateEvent event) { + + } + @Override public void onCustomEvent(Event event) { if (event instanceof StargateOpenEvent) { onStargateOpen((StargateOpenEvent)event); } else if (event instanceof StargateCloseEvent) { onStargateClose((StargateCloseEvent)event); + } else if (event instanceof StargateActivateEvent) { + onStargateActivate((StargateActivateEvent)event); + } else if (event instanceof StargateDeactivateEvent) { + onStargateDeactivate((StargateDeactivateEvent)event); } } } diff --git a/src/net/TheDgtl/Stargate/event/StargateOpenEvent.java b/src/net/TheDgtl/Stargate/event/StargateOpenEvent.java index 6932c63..f4aae84 100644 --- a/src/net/TheDgtl/Stargate/event/StargateOpenEvent.java +++ b/src/net/TheDgtl/Stargate/event/StargateOpenEvent.java @@ -6,13 +6,14 @@ import org.bukkit.entity.Player; public class StargateOpenEvent extends StargateEvent { private static final long serialVersionUID = -2804865767733660648L; - Player player; + private Player player; + private boolean force; public StargateOpenEvent(Player player, Portal portal, boolean force) { - super ("StargateOpenEvent", portal, force); + super ("StargateOpenEvent", portal); this.player = player; - this.portal = portal; + this.force = force; } /** @@ -22,4 +23,12 @@ public class StargateOpenEvent extends StargateEvent { public Player getPlayer() { return player; } + + public boolean getForce() { + return force; + } + + public void setForce(boolean force) { + this.force = force; + } }