Adds an option for a stargate without a sign #10
This commit is contained in:
@ -63,9 +63,11 @@ public class PortalSignDrawer {
|
||||
Block signBlock = portal.getSignLocation().getBlock();
|
||||
BlockState state = signBlock.getState();
|
||||
if (!(state instanceof Sign sign)) {
|
||||
Stargate.logWarning("Sign block is not a Sign object");
|
||||
Stargate.debug("Portal::drawSign", String.format("Block: %s @ %s", signBlock.getType(),
|
||||
signBlock.getLocation()));
|
||||
if (!portal.getOptions().hasNoSign()) {
|
||||
Stargate.logWarning("Sign block is not a Sign object");
|
||||
Stargate.debug("Portal::drawSign", String.format("Block: %s @ %s", signBlock.getType(),
|
||||
signBlock.getLocation()));
|
||||
}
|
||||
return null;
|
||||
}
|
||||
return sign;
|
||||
@ -122,7 +124,6 @@ public class PortalSignDrawer {
|
||||
}
|
||||
clearSign(sign);
|
||||
sign.setLine(0, portal.getName());
|
||||
sign.setLine(3, errorColor + Stargate.getString("signInvalidGate"));
|
||||
sign.update();
|
||||
}
|
||||
|
||||
|
@ -53,7 +53,12 @@ public enum PortalOption {
|
||||
/**
|
||||
* This option allows a portal which does not display a teleportation message, for better immersion
|
||||
*/
|
||||
SILENT('i', "stargate.option.silent", 21);
|
||||
SILENT('i', "stargate.option.silent", 21),
|
||||
|
||||
/**
|
||||
* This option causes a fixed portal's sign to be removed after creation
|
||||
*/
|
||||
NO_SIGN('e', "stargate.option.nosign", 22);
|
||||
|
||||
private final char characterRepresentation;
|
||||
private final String permissionString;
|
||||
|
@ -25,12 +25,17 @@ public class PortalOptions {
|
||||
|
||||
if (this.isAlwaysOn() && !isFixed) {
|
||||
this.options.put(PortalOption.ALWAYS_ON, false);
|
||||
Stargate.debug("Portal", "Can not create a non-fixed always-on gate. Setting AlwaysOn = false");
|
||||
Stargate.debug("PortalOptions", "Can not create a non-fixed always-on gate. Setting AlwaysOn = false");
|
||||
}
|
||||
|
||||
if ((this.isRandom() || this.isBungee()) && !this.isAlwaysOn()) {
|
||||
this.options.put(PortalOption.ALWAYS_ON, true);
|
||||
Stargate.debug("Portal", "Gate marked as random or bungee, set to always-on");
|
||||
Stargate.debug("PortalOptions", "Gate marked as random or bungee, set to always-on");
|
||||
}
|
||||
|
||||
if (this.hasNoSign() && !this.isFixed) {
|
||||
this.options.put(PortalOption.NO_SIGN, false);
|
||||
Stargate.debug("PortalOptions", "Gate marked with no sign, but not fixed. Setting NoSign = false");
|
||||
}
|
||||
}
|
||||
|
||||
@ -177,4 +182,15 @@ public class PortalOptions {
|
||||
return this.options.get(PortalOption.SILENT);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets whether this portal has no sign
|
||||
*
|
||||
* <p>An always-on portal is allowed to not have a sign as it will never be interacted with anyway.</p>
|
||||
*
|
||||
* @return <p>Whether this portal has no sign</p>
|
||||
*/
|
||||
public boolean hasNoSign() {
|
||||
return this.options.get(PortalOption.NO_SIGN);
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user