API changes for StargateCommand

This commit is contained in:
Steven Scott 2012-03-14 21:57:54 -07:00
parent 4367e3a36a
commit 88b30b3579
6 changed files with 59 additions and 10 deletions

2
README
View File

@ -202,6 +202,8 @@ createConflict=Gate conflicts with existing gate
============= =============
Changes Changes
============= =============
[Version 0.7.6.1]
- API update to support StargateCommand
[Version 0.7.6] [Version 0.7.6]
- Moved gate opening/closing to a Queue/Runnable system to resolve server lag issues with very large gates - Moved gate opening/closing to a Queue/Runnable system to resolve server lag issues with very large gates
[Version 0.7.5.11] [Version 0.7.5.11]

View File

@ -61,7 +61,7 @@ public class Gate {
private int destroyCost = -1; private int destroyCost = -1;
private boolean toOwner = false; private boolean toOwner = false;
private Gate(String filename, Character[][] layout, HashMap<Character, Integer> types, HashMap<Character, Integer> metadata) { public Gate(String filename, Character[][] layout, HashMap<Character, Integer> types, HashMap<Character, Integer> metadata) {
this.filename = filename; this.filename = filename;
this.layout = layout; this.layout = layout;
this.metadata = metadata; this.metadata = metadata;
@ -175,6 +175,14 @@ public class Gate {
public Character[][] getLayout() { public Character[][] getLayout() {
return layout; return layout;
} }
public HashMap<Character, Integer> getTypes() {
return types;
}
public HashMap<Character, Integer> getMetaData() {
return metadata;
}
public RelativeBlockVector[] getEntrances() { public RelativeBlockVector[] getEntrances() {
return entrances; return entrances;
@ -206,11 +214,19 @@ public class Gate {
public int getPortalBlockOpen() { public int getPortalBlockOpen() {
return portalBlockOpen; return portalBlockOpen;
} }
public void setPortalBlockOpen(int type) {
portalBlockOpen = type;
}
public int getPortalBlockClosed() { public int getPortalBlockClosed() {
return portalBlockClosed; return portalBlockClosed;
} }
public void setPortalBlockClosed(int type) {
portalBlockClosed = type;
}
public int getUseCost() { public int getUseCost() {
if (useCost < 0) return iConomyHandler.useCost; if (useCost < 0) return iConomyHandler.useCost;
return useCost; return useCost;
@ -281,7 +297,7 @@ public class Gate {
return true; return true;
} }
private static void registerGate(Gate gate) { public static void registerGate(Gate gate) {
gates.put(gate.getFilename(), gate); gates.put(gate.getFilename(), gate);
int blockID = gate.getControlBlock(); int blockID = gate.getControlBlock();
@ -293,7 +309,7 @@ public class Gate {
controlBlocks.get(blockID).add(gate); controlBlocks.get(blockID).add(gate);
} }
private static Gate loadGate(File file) { public static Gate loadGate(File file) {
Scanner scanner = null; Scanner scanner = null;
boolean designing = false; boolean designing = false;
ArrayList<ArrayList<Character>> design = new ArrayList<ArrayList<Character>>(); ArrayList<ArrayList<Character>> design = new ArrayList<ArrayList<Character>>();

View File

@ -524,10 +524,6 @@ public class Portal {
} }
public void activate(Player player) { public void activate(Player player) {
StargateActivateEvent event = new StargateActivateEvent(this, player);
Stargate.server.getPluginManager().callEvent(event);
if (event.isCancelled()) return;
destinations.clear(); destinations.clear();
destination = ""; destination = "";
Stargate.activeList.add(this); Stargate.activeList.add(this);
@ -554,6 +550,15 @@ public class Portal {
if (Stargate.destMemory && !lastDest.isEmpty() && destinations.contains(lastDest)) { if (Stargate.destMemory && !lastDest.isEmpty() && destinations.contains(lastDest)) {
destination = lastDest; destination = lastDest;
} }
StargateActivateEvent event = new StargateActivateEvent(this, player, destinations, destination);
Stargate.server.getPluginManager().callEvent(event);
if (event.isCancelled()) {
Stargate.activeList.remove(this);
return;
}
destination = event.getDestination();
destinations = event.getDestinations();
drawSign(); drawSign();
} }

View File

@ -262,6 +262,10 @@ public class Stargate extends JavaPlugin {
public static String getSaveLocation() { public static String getSaveLocation() {
return portalFolder; return portalFolder;
} }
public static String getGateFolder() {
return gateFolder;
}
public static String getDefaultNetwork() { public static String getDefaultNetwork() {
return defNetwork; return defNetwork;

View File

@ -1,5 +1,7 @@
package net.TheDgtl.Stargate.event; package net.TheDgtl.Stargate.event;
import java.util.ArrayList;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.HandlerList; import org.bukkit.event.HandlerList;
@ -24,7 +26,9 @@ import net.TheDgtl.Stargate.Portal;
*/ */
public class StargateActivateEvent extends StargateEvent { public class StargateActivateEvent extends StargateEvent {
Player player; private Player player;
private ArrayList<String> destinations;
private String destination;
private static final HandlerList handlers = new HandlerList(); private static final HandlerList handlers = new HandlerList();
@ -35,13 +39,31 @@ public class StargateActivateEvent extends StargateEvent {
public static HandlerList getHandlerList() { public static HandlerList getHandlerList() {
return handlers; return handlers;
} }
public StargateActivateEvent(Portal portal, Player player) { public StargateActivateEvent(Portal portal, Player player, ArrayList<String> destinations, String destination) {
super("StargatActivateEvent", portal); super("StargatActivateEvent", portal);
this.player = player; this.player = player;
this.destinations = destinations;
this.destination = destination;
} }
public Player getPlayer() { public Player getPlayer() {
return player; return player;
} }
public ArrayList<String> getDestinations() {
return destinations;
}
public void setDestinations(ArrayList<String> destinations) {
this.destinations = destinations;
}
public String getDestination() {
return destination;
}
public void setDestination(String destination) {
this.destination = destination;
}
} }

View File

@ -1,6 +1,6 @@
name: Stargate name: Stargate
main: net.TheDgtl.Stargate.Stargate main: net.TheDgtl.Stargate.Stargate
version: 0.7.6.0 version: 0.7.6.1
description: Stargate mod for Bukkit description: Stargate mod for Bukkit
author: Drakia author: Drakia
website: http://www.thedgtl.net website: http://www.thedgtl.net