Fixed portal count on load
Added stargate.create.personal for personal stargate networks Fixed a bug with destroying stargates by removing sign/button
This commit is contained in:
		
							
								
								
									
										6
									
								
								README
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								README
									
									
									
									
									
								
							@@ -21,6 +21,7 @@ Known Issues
 | 
				
			|||||||
=============
 | 
					=============
 | 
				
			||||||
 - stargate.use - Allow this player/group to use stargates.
 | 
					 - stargate.use - Allow this player/group to use stargates.
 | 
				
			||||||
 - stargate.create - Allow this player/group to create new stargates.
 | 
					 - stargate.create - Allow this player/group to create new stargates.
 | 
				
			||||||
 | 
					 - stargate.create.personal - Allow this player/group to create new stargates on a network defined as their name.
 | 
				
			||||||
 - stargate.destroy - Allow this player/group to destroy existing stargates. (Deprecated)
 | 
					 - stargate.destroy - Allow this player/group to destroy existing stargates. (Deprecated)
 | 
				
			||||||
 - stargate.destroy.all - Allow this player/group to destroy any existing stargate (Replaces stargate.destroy)
 | 
					 - stargate.destroy.all - Allow this player/group to destroy any existing stargate (Replaces stargate.destroy)
 | 
				
			||||||
 - stargate.destroy.owner - Allow this player/group to destroy any stargate that they are the owner of.
 | 
					 - stargate.destroy.owner - Allow this player/group to destroy any stargate that they are the owner of.
 | 
				
			||||||
@@ -85,6 +86,11 @@ destroyexplosion - Whether to destroy a stargate with explosions, or stop an exp
 | 
				
			|||||||
=============
 | 
					=============
 | 
				
			||||||
  Changes
 | 
					  Changes
 | 
				
			||||||
=============
 | 
					=============
 | 
				
			||||||
 | 
					[Version 0.27]
 | 
				
			||||||
 | 
					 - Fixed portal count on load
 | 
				
			||||||
 | 
					[Version 0.26]
 | 
				
			||||||
 | 
					 - Added stargate.create.personal for personal stargate networks
 | 
				
			||||||
 | 
					 - Fixed a bug with destroying stargates by removing sign/button
 | 
				
			||||||
[Version 0.25]
 | 
					[Version 0.25]
 | 
				
			||||||
 - Fixed a bug with worlds in subfolders
 | 
					 - Fixed a bug with worlds in subfolders
 | 
				
			||||||
 - Fixed gates being destroyed with explosions
 | 
					 - Fixed gates being destroyed with explosions
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -320,7 +320,7 @@ public class Portal {
 | 
				
			|||||||
        return owner;
 | 
					        return owner;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public void activate(Player player, Stargate stargate) {
 | 
					    public void activate(Player player) {
 | 
				
			||||||
        destinations.clear();
 | 
					        destinations.clear();
 | 
				
			||||||
        destination = "";
 | 
					        destination = "";
 | 
				
			||||||
        drawSign();
 | 
					        drawSign();
 | 
				
			||||||
@@ -331,7 +331,7 @@ public class Portal {
 | 
				
			|||||||
            // Not fixed, not this portal, and visible to this player.
 | 
					            // Not fixed, not this portal, and visible to this player.
 | 
				
			||||||
            if (	(!portal.isFixed()) &&
 | 
					            if (	(!portal.isFixed()) &&
 | 
				
			||||||
            		(!dest.equalsIgnoreCase(getName())) && 							// Not this portal
 | 
					            		(!dest.equalsIgnoreCase(getName())) && 							// Not this portal
 | 
				
			||||||
            		(!portal.isHidden() || stargate.hasPerm(player, "stargate.hidden", player.isOp()) || portal.getOwner().equals(player.getName()))
 | 
					            		(!portal.isHidden() || Stargate.hasPerm(player, "stargate.hidden", player.isOp()) || portal.getOwner().equals(player.getName()))
 | 
				
			||||||
            	) {
 | 
					            	) {
 | 
				
			||||||
                destinations.add(portal.getName());
 | 
					                destinations.add(portal.getName());
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
@@ -365,9 +365,9 @@ public class Portal {
 | 
				
			|||||||
    	return openTime;
 | 
					    	return openTime;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public void cycleDestination(Player player, Stargate stargate) {
 | 
					    public void cycleDestination(Player player) {
 | 
				
			||||||
        if (!isActive() || getActivePlayer() != player) {
 | 
					        if (!isActive() || getActivePlayer() != player) {
 | 
				
			||||||
            activate(player, stargate);
 | 
					            activate(player);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (destinations.size() > 0) {
 | 
					        if (destinations.size() > 0) {
 | 
				
			||||||
@@ -537,6 +537,13 @@ public class Portal {
 | 
				
			|||||||
        boolean alwaysOn = (options.indexOf('a') != -1 || options.indexOf('A') != -1);
 | 
					        boolean alwaysOn = (options.indexOf('a') != -1 || options.indexOf('A') != -1);
 | 
				
			||||||
        boolean priv = (options.indexOf('p') != -1 || options.indexOf('P') != -1);
 | 
					        boolean priv = (options.indexOf('p') != -1 || options.indexOf('P') != -1);
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
 | 
					        // Check if the user can only create personal gates, set network if so
 | 
				
			||||||
 | 
					        if (Stargate.hasPerm(player, "stargate.create.personal", false) && 
 | 
				
			||||||
 | 
					        	!Stargate.hasPerm(player, "stargate.create", player.isOp()) ) {
 | 
				
			||||||
 | 
					        	network = player.getName();
 | 
				
			||||||
 | 
					        	if (network.length() > 11) network = network.substring(0, 11);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
        // Can not create a non-fixed always-on gate.
 | 
					        // Can not create a non-fixed always-on gate.
 | 
				
			||||||
        if (alwaysOn && destName.length() == 0) {
 | 
					        if (alwaysOn && destName.length() == 0) {
 | 
				
			||||||
        	alwaysOn = false;
 | 
					        	alwaysOn = false;
 | 
				
			||||||
@@ -773,14 +780,16 @@ public class Portal {
 | 
				
			|||||||
                	if (portal == null) continue;
 | 
					                	if (portal == null) continue;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    // Verify portal integrity/register portal
 | 
					                    // Verify portal integrity/register portal
 | 
				
			||||||
                    if (!portal.isVerified() || !portal.checkIntegrity()) {
 | 
					                	if (!portal.wasVerified()) {
 | 
				
			||||||
                        portal.unregister();
 | 
						                    if (!portal.isVerified() || !portal.checkIntegrity()) {
 | 
				
			||||||
                        Stargate.log.info("[Stargate] Destroying stargate at " + portal.toString());
 | 
						                        portal.unregister();
 | 
				
			||||||
                        continue;
 | 
						                        Stargate.log.info("[Stargate] Destroying stargate at " + portal.toString());
 | 
				
			||||||
                    } else {
 | 
						                        continue;
 | 
				
			||||||
                    	portal.drawSign();
 | 
						                    } else {
 | 
				
			||||||
                    	portalCount++;
 | 
						                    	portal.drawSign();
 | 
				
			||||||
                    }
 | 
						                    	portalCount++;
 | 
				
			||||||
 | 
						                    }
 | 
				
			||||||
 | 
					                	}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                	if (!portal.isAlwaysOn()) continue;
 | 
					                	if (!portal.isAlwaysOn()) continue;
 | 
				
			||||||
                	
 | 
					                	
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -47,10 +47,10 @@ import com.nijikokun.bukkit.Permissions.Permissions;
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
public class Stargate extends JavaPlugin {
 | 
					public class Stargate extends JavaPlugin {
 | 
				
			||||||
	// Permissions
 | 
						// Permissions
 | 
				
			||||||
	private Permissions permissions = null;
 | 
						private static Permissions permissions = null;
 | 
				
			||||||
	private double permVersion = 0;
 | 
						private double permVersion = 0;
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
    private final bListener blockListener = new bListener(this);
 | 
					    private final bListener blockListener = new bListener();
 | 
				
			||||||
    private final pListener playerListener = new pListener();
 | 
					    private final pListener playerListener = new pListener();
 | 
				
			||||||
    private final vListener vehicleListener = new vListener();
 | 
					    private final vListener vehicleListener = new vListener();
 | 
				
			||||||
    private final wListener worldListener = new wListener();
 | 
					    private final wListener worldListener = new wListener();
 | 
				
			||||||
@@ -259,7 +259,7 @@ public class Stargate extends JavaPlugin {
 | 
				
			|||||||
	/*
 | 
						/*
 | 
				
			||||||
	 * Check whether the player has the given permissions.
 | 
						 * Check whether the player has the given permissions.
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	public boolean hasPerm(Player player, String perm, boolean def) {
 | 
						public static boolean hasPerm(Player player, String perm, boolean def) {
 | 
				
			||||||
		if (permissions != null) {
 | 
							if (permissions != null) {
 | 
				
			||||||
			return permissions.getHandler().has(player, perm);
 | 
								return permissions.getHandler().has(player, perm);
 | 
				
			||||||
		} else {
 | 
							} else {
 | 
				
			||||||
@@ -323,12 +323,6 @@ public class Stargate extends JavaPlugin {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private class bListener extends BlockListener {
 | 
					    private class bListener extends BlockListener {
 | 
				
			||||||
    	Stargate stargate;
 | 
					 | 
				
			||||||
    	
 | 
					 | 
				
			||||||
    	bListener(Stargate stargate) {
 | 
					 | 
				
			||||||
    		this.stargate = stargate;
 | 
					 | 
				
			||||||
    	}
 | 
					 | 
				
			||||||
    	
 | 
					 | 
				
			||||||
    	@Override
 | 
					    	@Override
 | 
				
			||||||
    	public void onBlockPlace(BlockPlaceEvent event) {
 | 
					    	public void onBlockPlace(BlockPlaceEvent event) {
 | 
				
			||||||
    		// Stop player from placing a block touching a portals controls
 | 
					    		// Stop player from placing a block touching a portals controls
 | 
				
			||||||
@@ -346,7 +340,8 @@ public class Stargate extends JavaPlugin {
 | 
				
			|||||||
    		if (block.getType() != Material.WALL_SIGN) return;
 | 
					    		if (block.getType() != Material.WALL_SIGN) return;
 | 
				
			||||||
    		
 | 
					    		
 | 
				
			||||||
    		// Initialize a stargate
 | 
					    		// Initialize a stargate
 | 
				
			||||||
            if (hasPerm(player, "stargate.create", player.isOp())) {
 | 
					            if (hasPerm(player, "stargate.create", player.isOp()) ||
 | 
				
			||||||
 | 
					            	hasPerm(player, "stargate.create.personal", false)) {
 | 
				
			||||||
	            SignPost sign = new SignPost(new Blox(block));
 | 
						            SignPost sign = new SignPost(new Blox(block));
 | 
				
			||||||
	            // Set sign text so we can create a gate with it.
 | 
						            // Set sign text so we can create a gate with it.
 | 
				
			||||||
	            sign.setText(0, event.getLine(0));
 | 
						            sign.setText(0, event.getLine(0));
 | 
				
			||||||
@@ -379,7 +374,7 @@ public class Stargate extends JavaPlugin {
 | 
				
			|||||||
                if (portal != null) {
 | 
					                if (portal != null) {
 | 
				
			||||||
                	if (hasPerm(player, "stargate.use", true)) {
 | 
					                	if (hasPerm(player, "stargate.use", true)) {
 | 
				
			||||||
	                    if ((!portal.isOpen()) && (!portal.isFixed())) {
 | 
						                    if ((!portal.isOpen()) && (!portal.isFixed())) {
 | 
				
			||||||
	                        portal.cycleDestination(player, stargate);
 | 
						                        portal.cycleDestination(player);
 | 
				
			||||||
	                    }
 | 
						                    }
 | 
				
			||||||
                	} else {
 | 
					                	} else {
 | 
				
			||||||
                		if (!denyMsg.isEmpty()) {
 | 
					                		if (!denyMsg.isEmpty()) {
 | 
				
			||||||
@@ -432,6 +427,7 @@ public class Stargate extends JavaPlugin {
 | 
				
			|||||||
	            if (!dmgMsg.isEmpty()) {
 | 
						            if (!dmgMsg.isEmpty()) {
 | 
				
			||||||
	                player.sendMessage(ChatColor.RED + dmgMsg);
 | 
						                player.sendMessage(ChatColor.RED + dmgMsg);
 | 
				
			||||||
	            }
 | 
						            }
 | 
				
			||||||
 | 
						            return;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            
 | 
					            
 | 
				
			||||||
            event.setCancelled(true);
 | 
					            event.setCancelled(true);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
name: Stargate
 | 
					name: Stargate
 | 
				
			||||||
main: net.TheDgtl.Stargate.Stargate
 | 
					main: net.TheDgtl.Stargate.Stargate
 | 
				
			||||||
version: 0.25
 | 
					version: 0.27
 | 
				
			||||||
description: Stargate mod for Bukkit
 | 
					description: Stargate mod for Bukkit
 | 
				
			||||||
author: Drakia
 | 
					author: Drakia
 | 
				
			||||||
website: http://www.thedgtl.net
 | 
					website: http://www.thedgtl.net
 | 
				
			||||||
		Reference in New Issue
	
	Block a user