diff --git a/core/src/main/java/com/sekwah/advancedportals/core/services/PortalServices.java b/core/src/main/java/com/sekwah/advancedportals/core/services/PortalServices.java index e2159f38..0a7b11e1 100644 --- a/core/src/main/java/com/sekwah/advancedportals/core/services/PortalServices.java +++ b/core/src/main/java/com/sekwah/advancedportals/core/services/PortalServices.java @@ -122,7 +122,6 @@ public class PortalServices { playerData.setInPortal(portal.getName()); var strength = configRepository.getThrowbackStrength(); PlayerUtils.throwPlayerBack(player, strength); - return PortalActivationResult.PORTAL_DENIED; } } diff --git a/core/src/main/java/com/sekwah/advancedportals/core/tags/PermissionTag.java b/core/src/main/java/com/sekwah/advancedportals/core/tags/PermissionTag.java index 57251a28..7ccaf088 100644 --- a/core/src/main/java/com/sekwah/advancedportals/core/tags/PermissionTag.java +++ b/core/src/main/java/com/sekwah/advancedportals/core/tags/PermissionTag.java @@ -40,7 +40,7 @@ public class PermissionTag implements Tag.Activation { @Nullable @Override public String[] getAliases() { - return new String[0]; + return aliases; } @Override diff --git a/core/src/main/java/com/sekwah/advancedportals/core/tags/PortalEventTag.java b/core/src/main/java/com/sekwah/advancedportals/core/tags/PortalEventTag.java index 8830fbb2..27460bb7 100644 --- a/core/src/main/java/com/sekwah/advancedportals/core/tags/PortalEventTag.java +++ b/core/src/main/java/com/sekwah/advancedportals/core/tags/PortalEventTag.java @@ -1,8 +1,6 @@ package com.sekwah.advancedportals.core.tags; -import com.google.inject.Inject; import com.sekwah.advancedportals.core.connector.containers.PlayerContainer; -import com.sekwah.advancedportals.core.portal.AdvancedPortal; import com.sekwah.advancedportals.core.registry.TagTarget; import com.sekwah.advancedportals.core.repository.ConfigRepository; import com.sekwah.advancedportals.core.services.PlayerDataServices; @@ -10,11 +8,10 @@ import com.sekwah.advancedportals.core.util.InfoLogger; import com.sekwah.advancedportals.core.util.Lang; import com.sekwah.advancedportals.core.warphandler.ActivationData; import com.sekwah.advancedportals.core.warphandler.Tag; - import javax.annotation.Nullable; -import java.util.Random; +import javax.inject.Inject; -public class PortalEventTag implements Tag.Activation, Tag.Creation { +public class PortalEventTag implements Tag.Activation { @Inject PlayerDataServices playerDataServices; @@ -24,7 +21,9 @@ public class PortalEventTag implements Tag.Activation, Tag.Creation { @Inject private InfoLogger infoLogger; - public static String TAG_NAME = "cooldown"; + public static String TAG_NAME = "portalEvent"; + + private final String[] aliases = new String[] {"delayed"}; private final TagType[] tagTypes = new TagType[] {TagType.PORTAL}; @@ -41,55 +40,27 @@ public class PortalEventTag implements Tag.Activation, Tag.Creation { @Nullable @Override public String[] getAliases() { - return null; + return new String[0]; } @Override public String description() { - return Lang.translate("tag.cooldown.description"); + return Lang.translate("tag.permission.description"); } @Override public boolean preActivated(TagTarget target, PlayerContainer player, - ActivationData activationData, - String[] argData) { - var playerData = playerDataServices.getPlayerData(player); - if (target instanceof AdvancedPortal portal) { - var portalName = portal.getName(); - if (playerData.hasPortalCooldown(portalName)) { - var cooldown = (int) Math.ceil( - playerData.getPortalCooldownLeft(portalName) / 1000D); - player.sendMessage(Lang.translateInsertVariables( - "portal.cooldown.individual", cooldown, - Lang.translate(cooldown == 1 ? "time.second" - : "time.seconds"))); - if (configRepository.playFailSound()) { - player.playSound("block.portal.travel", 0.05f, - new Random().nextFloat() * 0.4F + 0.8F); - } - return false; - } - return true; + ActivationData activeData, String[] argData) { + if (!player.hasPermission(argData[1])) { + player.sendMessage(Lang.translate("portal.error.nopermission")); + return false; } - return false; + return true; } @Override public void postActivated(TagTarget target, PlayerContainer player, ActivationData activationData, String[] argData) { - if (activationData.hasActivated()) { - if (target instanceof AdvancedPortal portal) { - var playerData = playerDataServices.getPlayerData(player); - try { - playerData.setPortalCooldown( - portal.getName(), Integer.parseInt(argData[0]) * 1000); - } catch (NumberFormatException e) { - infoLogger.warning( - "Cooldown tag failed to set cooldown for portal: " - + portal.getName() + " with value: " + argData[0]); - } - } - } } @Override @@ -97,22 +68,4 @@ public class PortalEventTag implements Tag.Activation, Tag.Creation { ActivationData activationData, String[] argData) { return true; } - - @Override - public boolean created(TagTarget target, PlayerContainer player, - String[] argData) { - try { - Integer.parseInt(argData[0]); - } catch (NumberFormatException e) { - player.sendMessage(Lang.translate("messageprefix.negative") - + Lang.translate("tag.cooldown.fail")); - return false; - } - return true; - } - - @Override - public void destroyed(TagTarget target, PlayerContainer player, - String[] argData) { - } } diff --git a/lang/src/main/resources/lang/en_GB.lang b/lang/src/main/resources/lang/en_GB.lang index baf2412f..2db76915 100644 --- a/lang/src/main/resources/lang/en_GB.lang +++ b/lang/src/main/resources/lang/en_GB.lang @@ -119,11 +119,11 @@ command.selector= You have been given a portal selector. command.selector.help=Gives you a portal region selector command.selector.detailedhelp=Gives you a portal selector to select the regions for making portals. -command.portal.update= &e%1$s &aportals and &e%2$s &adestinations will be imported. Please type &e/portal update confirm &ato confirm this action. &7Config values will not be imported. -command.portal.update.confirm= &aImporting portals and destinations. -command.portal.update.complete= &aImported &e%1$s &aportals and &e%2$s &adestinations. -command.portal.update.help=Imports portals and destinations from the old format. -command.portal.update.detailedhelp=Imports portals and destinations from the old format. This not overwrite any existing portals and destinations with the same name. +command.portal.import= &e%1$s &aportals and &e%2$s &adestinations will be imported. Please type &e/portal import confirm &ato confirm this action. &7Config values will not be imported. +command.portal.import.confirm= &aImporting portals and destinations. +command.portal.import.complete= &aImported &e%1$s &aportals and &e%2$s &adestinations. +command.portal.import.help=Imports portals and destinations from the old format. +command.portal.import.detailedhelp=Imports portals and destinations from the old format. This not overwrite any existing portals and destinations with the same name. command.portalblock= You have been given a &ePortal Block&a! @@ -174,6 +174,7 @@ tag.desti.description=Sets the destination of the portal tag.name.error.nospaces= The name cannot contain spaces. tag.triggerblock.description=Sets the trigger block/s of the portal. Comma separated or multi tag. tag.command.description=Sets a command on the post activation of the portal. Comma separated or multi tag. +tag.portalEvent.description=Triggers the portal from portal events rather than the player entering the portal. (survival nether portal) tag.cooldown.fail= The cooldown must be a number. tag.command.nopermission= You do not have permission to create a command at %1$s command level @@ -182,3 +183,4 @@ tag.command.disabled= Command portals are &edisabled &con this server. Please co tag.command.op.disabled= Op command portals are &edisabled &con this server. Please contact a server admin if this is an issue. tag.command.console.disabled= Console command portals are &edisabled &con this server. Please contact a server admin if this is an issue. tag.command.permswildcard.disabled= Wildcard &e*&c permission command portals are &edisabled &con this server. Please contact a server admin if this is an issue. + diff --git a/spigot/src/main/java/com/sekwah/advancedportals/spigot/commands/subcommands/portal/UpdatePortalSubCommand.java b/spigot/src/main/java/com/sekwah/advancedportals/spigot/commands/subcommands/portal/ImportPortalSubCommand.java similarity index 93% rename from spigot/src/main/java/com/sekwah/advancedportals/spigot/commands/subcommands/portal/UpdatePortalSubCommand.java rename to spigot/src/main/java/com/sekwah/advancedportals/spigot/commands/subcommands/portal/ImportPortalSubCommand.java index 483d29b0..61380cb5 100644 --- a/spigot/src/main/java/com/sekwah/advancedportals/spigot/commands/subcommands/portal/UpdatePortalSubCommand.java +++ b/spigot/src/main/java/com/sekwah/advancedportals/spigot/commands/subcommands/portal/ImportPortalSubCommand.java @@ -10,39 +10,37 @@ import com.sekwah.advancedportals.core.services.DestinationServices; import com.sekwah.advancedportals.core.services.PortalServices; import com.sekwah.advancedportals.core.util.Lang; import com.sekwah.advancedportals.spigot.AdvancedPortalsPlugin; -import com.sekwah.advancedportals.spigot.commands.subcommands.portal.update.ConfigAccessor; +import com.sekwah.advancedportals.spigot.commands.subcommands.portal.importer.ConfigAccessor; import java.util.ArrayList; import java.util.List; import java.util.Set; import org.bukkit.configuration.ConfigurationSection; -public class UpdatePortalSubCommand implements SubCommand { - @Inject - PortalServices portalServices; +public class ImportPortalSubCommand implements SubCommand { @Inject DestinationServices destinationServices; @Inject - PortalServices portalService; + PortalServices portalServices; @Override public void onCommand(CommandSenderContainer sender, String[] args) { if (args.length > 1 && "confirm".equals(args[1])) { sender.sendMessage(Lang.translate("messageprefix.positive") + Lang.translateInsertVariables( - "command.portal.update.confirm")); + "command.portal.import.confirm")); int destinations = importDestinations(); int portals = importPortals(); sender.sendMessage( Lang.translate("messageprefix.positive") + Lang.translateInsertVariables( - "command.portal.update.complete", portals, destinations)); + "command.portal.import.complete", portals, destinations)); return; } sender.sendMessage(Lang.translate("messageprefix.positive") + Lang.translateInsertVariables( - "command.portal.update", getPortalCount(), + "command.portal.import", getPortalCount(), getDestinationCount())); } @@ -112,7 +110,7 @@ public class UpdatePortalSubCommand implements SubCommand { .toList() .forEach(args::remove); - var portal = portalService.createPortal(pos1, pos2, args); + var portal = portalServices.createPortal(pos1, pos2, args); if (portal != null) count++; @@ -185,11 +183,11 @@ public class UpdatePortalSubCommand implements SubCommand { @Override public String getBasicHelpText() { - return Lang.translate("command.portal.update.help"); + return Lang.translate("command.portal.import.help"); } @Override public String getDetailedHelpText() { - return Lang.translate("command.portal.update.detailedhelp"); + return Lang.translate("command.portal.import.detailedhelp"); } } diff --git a/spigot/src/main/java/com/sekwah/advancedportals/spigot/commands/subcommands/portal/update/ConfigAccessor.java b/spigot/src/main/java/com/sekwah/advancedportals/spigot/commands/subcommands/portal/importer/ConfigAccessor.java similarity index 99% rename from spigot/src/main/java/com/sekwah/advancedportals/spigot/commands/subcommands/portal/update/ConfigAccessor.java rename to spigot/src/main/java/com/sekwah/advancedportals/spigot/commands/subcommands/portal/importer/ConfigAccessor.java index e52c9409..c4dce614 100644 --- a/spigot/src/main/java/com/sekwah/advancedportals/spigot/commands/subcommands/portal/update/ConfigAccessor.java +++ b/spigot/src/main/java/com/sekwah/advancedportals/spigot/commands/subcommands/portal/importer/ConfigAccessor.java @@ -1,4 +1,4 @@ -package com.sekwah.advancedportals.spigot.commands.subcommands.portal.update; +package com.sekwah.advancedportals.spigot.commands.subcommands.portal.importer; import java.io.File; import java.io.IOException;