[Version 0.7.6.5]

- Resolve issue with buttons on glass gates falling off
 - /sg reload can now be used ingame (stargate.admin.reload permission)
This commit is contained in:
Steven Scott 2012-03-31 10:49:58 -07:00
parent 9b81b6191b
commit cfd059d24c
3 changed files with 30 additions and 6 deletions

4
README
View File

@ -49,6 +49,7 @@ stargate.free -- Allow free use/creation/destruction of gates
stargate.admin -- Allow all admin features (Hidden/Private only so far) stargate.admin -- Allow all admin features (Hidden/Private only so far)
stargate.admin.private -- Allow use of Private gates not owned by user stargate.admin.private -- Allow use of Private gates not owned by user
stargate.admin.hidden -- Allow access to Hidden gates not ownerd by user stargate.admin.hidden -- Allow access to Hidden gates not ownerd by user
stargate.admin.reload -- Allow use of /sg reload
============= =============
Default Permissions Default Permissions
@ -204,6 +205,9 @@ createConflict=Gate conflicts with existing gate
============= =============
Changes Changes
============= =============
[Version 0.7.6.5]
- Resolve issue with buttons on glass gates falling off
- /sg reload can now be used ingame (stargate.admin.reload permission)
[Version 0.7.6.4] [Version 0.7.6.4]
- Move blockBreak to HIGHEST priority, this resolves issues with region protection plugins - Move blockBreak to HIGHEST priority, this resolves issues with region protection plugins
[Version 0.7.6.3] [Version 0.7.6.3]

View File

@ -57,6 +57,7 @@ public class Portal {
// Static variables used to store portal lists // Static variables used to store portal lists
private static final HashMap<Blox, Portal> lookupBlocks = new HashMap<Blox, Portal>(); private static final HashMap<Blox, Portal> lookupBlocks = new HashMap<Blox, Portal>();
private static final HashMap<Blox, Portal> lookupEntrances = new HashMap<Blox, Portal>(); private static final HashMap<Blox, Portal> lookupEntrances = new HashMap<Blox, Portal>();
private static final HashMap<Blox, Portal> lookupControls = new HashMap<Blox, Portal>();
private static final ArrayList<Portal> allPortals = new ArrayList<Portal>(); private static final ArrayList<Portal> allPortals = new ArrayList<Portal>();
private static final HashMap<String, ArrayList<String>> allPortalsNet = new HashMap<String, ArrayList<String>>(); private static final HashMap<String, ArrayList<String>> allPortalsNet = new HashMap<String, ArrayList<String>>();
private static final HashMap<String, HashMap<String, Portal>> lookupNamesNet = new HashMap<String, HashMap<String, Portal>>(); private static final HashMap<String, HashMap<String, Portal>> lookupNamesNet = new HashMap<String, HashMap<String, Portal>>();
@ -717,10 +718,14 @@ public class Portal {
lookupBlocks.remove(block); lookupBlocks.remove(block);
} }
// Include the sign and button // Include the sign and button
lookupBlocks.remove(new Blox(id.getBlock())); lookupBlocks.remove(id);
if (button != null) { if (button != null) {
lookupBlocks.remove(button); lookupBlocks.remove(button);
} }
lookupControls.remove(id);
if (button != null)
lookupControls.remove(button);
for (Blox entrance : getEntrances()) { for (Blox entrance : getEntrances()) {
lookupEntrances.remove(entrance); lookupEntrances.remove(entrance);
@ -768,10 +773,14 @@ public class Portal {
lookupBlocks.put(block, this); lookupBlocks.put(block, this);
} }
// Include the sign and button // Include the sign and button
lookupBlocks.put(new Blox(id.getBlock()), this); lookupBlocks.put(id, this);
if (button != null) { if (button != null) {
lookupBlocks.put(button, this); lookupBlocks.put(button, this);
} }
lookupControls.put(id, this);
if (button != null)
lookupControls.put(button, this);
for (Blox entrance : getEntrances()) { for (Blox entrance : getEntrances()) {
lookupEntrances.put(entrance, this); lookupEntrances.put(entrance, this);
@ -1058,6 +1067,10 @@ public class Portal {
public static Portal getByEntrance(Block block) { public static Portal getByEntrance(Block block) {
return lookupEntrances.get(new Blox(block)); return lookupEntrances.get(new Blox(block));
} }
public static Portal getByControl(Block block) {
return lookupControls.get(new Blox(block));
}
public static Portal getByBlock(Block block) { public static Portal getByBlock(Block block) {
return lookupBlocks.get(new Blox(block)); return lookupBlocks.get(new Blox(block));
@ -1128,6 +1141,7 @@ public class Portal {
lookupBlocks.clear(); lookupBlocks.clear();
lookupNamesNet.clear(); lookupNamesNet.clear();
lookupEntrances.clear(); lookupEntrances.clear();
lookupControls.clear();
allPortals.clear(); allPortals.clear();
allPortalsNet.clear(); allPortalsNet.clear();
} }

View File

@ -259,11 +259,11 @@ public class Stargate extends JavaPlugin {
} }
} }
public static void sendMessage(Player player, String message) { public static void sendMessage(CommandSender player, String message) {
sendMessage(player, message, true); sendMessage(player, message, true);
} }
public static void sendMessage(Player player, String message, boolean error) { public static void sendMessage(CommandSender player, String message, boolean error) {
if (message.isEmpty()) return; if (message.isEmpty()) return;
message = message.replaceAll("(&([a-f0-9]))", "\u00A7$2"); message = message.replaceAll("(&([a-f0-9]))", "\u00A7$2");
if (error) if (error)
@ -976,6 +976,8 @@ public class Stargate extends JavaPlugin {
Block block = event.getBlock(); Block block = event.getBlock();
Portal portal = Portal.getByEntrance(block); Portal portal = Portal.getByEntrance(block);
if (portal != null) event.setCancelled(true); if (portal != null) event.setCancelled(true);
portal = Portal.getByControl(block);
if (portal != null) event.setCancelled(true);
} }
@EventHandler @EventHandler
@ -1200,8 +1202,11 @@ public class Stargate extends JavaPlugin {
@Override @Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (sender instanceof Player) { if (sender instanceof Player) {
Stargate.sendMessage((Player)sender, "Permission Denied"); Player p = (Player)sender;
return true; if (!hasPerm(p, "stargate.admin") && !hasPerm(p, "stargate.admin.reload")) {
sendMessage(sender, "Permission Denied");
return true;
}
} }
String cmd = command.getName(); String cmd = command.getName();
if (cmd.equalsIgnoreCase("sg")) { if (cmd.equalsIgnoreCase("sg")) {
@ -1241,6 +1246,7 @@ public class Stargate extends JavaPlugin {
iConomyHandler.register = null; iConomyHandler.register = null;
iConomyHandler.economy = null; iConomyHandler.economy = null;
} }
sendMessage(sender, "Stargate reloaded");
return true; return true;
} }
return false; return false;