1.2.0 Dev

Added an option for players to confirm when an alias costs. (Per alias adjustable)
This commit is contained in:
2023-05-03 22:35:46 +02:00
parent 1ae32b2b59
commit 546b827e02
18 changed files with 218 additions and 17 deletions

View File

@@ -34,6 +34,12 @@ public class AliasCmdExecuter implements CommandExecutor, TabCompleter {
} else T2Csend.sender(sender, SelectMessages.noPermissionForCommand.replace("[cmd]", "/t2code-alias reload")
.replace("[perm]", "t2code.alias.command.reload"));
break;
case "confirm":
ExecuteAlias.storage(sender, true);
break;
case "cancel":
ExecuteAlias.storage(sender, false);
break;
case "info":
case "plugin":
case "version":

View File

@@ -3,6 +3,7 @@ package net.t2code.alias.Spigot.cmdManagement;
import net.t2code.alias.Spigot.config.config.SelectConfig;
import net.t2code.alias.Spigot.config.languages.SelectMessages;
import net.t2code.alias.Spigot.objects.AliasObject;
import net.t2code.alias.Spigot.objects.AliasStorageObject;
import net.t2code.alias.Spigot.objects.SubAliasObject;
import net.t2code.alias.Spigot.system.BCommandSenderReciver;
import net.t2code.alias.Util;
@@ -11,16 +12,46 @@ import net.t2code.t2codelib.SPIGOT.api.eco.T2Ceco;
import net.t2code.t2codelib.SPIGOT.api.messages.T2Creplace;
import net.t2code.t2codelib.SPIGOT.api.messages.T2Csend;
import net.t2code.t2codelib.SPIGOT.api.plugins.T2CpluginCheck;
<<<<<<< Updated upstream
=======
import net.t2code.t2codelib.SPIGOT.api.yaml.T2CLibConfig;
>>>>>>> Stashed changes
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.UUID;
import java.util.stream.Collectors;
public class ExecuteAlias {
public static HashMap<UUID, AliasStorageObject> aliasStorage = new HashMap<>();
private static final String prefix = Util.getPrefix();
protected static void storage(CommandSender sender, boolean confirm) {
Player player = (Player) sender;
if (!aliasStorage.containsKey(player.getUniqueId())) {
T2Csend.player(player, SelectMessages.buyConfirmNotPossible);
return;
}
AliasStorageObject object = aliasStorage.get(player.getUniqueId());
aliasStorage.remove(player.getUniqueId());
if (!confirm) {
T2Csend.player(player, SelectMessages.buyCancel);
return;
}
if (object.sub) {
executeSubAlias(player, (SubAliasObject) object.aliasObject, object.alias, object.args);
} else executeAlias(player, (AliasObject) object.aliasObject, object.alias, object.args);
}
protected static void aliasPlayer(CommandSender sender, AliasObject aliasObject, String alias, String[] args) {
Player player = (Player) sender;
@@ -47,13 +78,26 @@ public class ExecuteAlias {
return;
}
}
if (aliasObject.costEnable && aliasObject.costConfirm) {
if (!(aliasObject.costAllowBypass && player.hasPermission("t2code.alias.buy.bypass"))) {
T2Csend.player(player, SelectMessages.buyConfirm.replace("[price]", aliasObject.costPrice.toString() + " " + SelectConfig.getBuyCurrency()));
aliasStorage.put(player.getUniqueId(), new AliasStorageObject(aliasObject, alias, args, false));
return;
}
}
executeAlias(player, aliasObject, alias, args);
}
protected static void executeAlias(Player player, AliasObject aliasObject, String alias, String[] args) {
if (aliasObject.costEnable) {
if (!(aliasObject.costAllowBypass && player.hasPermission("t2code.alias.buy.bypass"))) {
if (!T2Ceco.moneyRemove(prefix, player, aliasObject.costPrice)) {
T2Csend.player(player, SelectMessages.noMoney);
return;
}
if (SelectConfig.getBuyMessage()) T2Csend.player(player, SelectMessages.buy.replace("[price]", aliasObject.costPrice.toString()));
if (SelectConfig.getBuyMessage())
T2Csend.player(player, SelectMessages.buy.replace("[price]", aliasObject.costPrice.toString() + " " + SelectConfig.getBuyCurrency()));
}
}
if (aliasObject.commandEnable) {
@@ -76,7 +120,7 @@ public class ExecuteAlias {
if (aliasObject.adminEnable) {
if (player.hasPermission(aliasObject.adminPermission)) {
if (aliasObject.adminCommandEnable) {
subAliasAdminCommand(aliasObject,alias, player, args);
subAliasAdminCommand(aliasObject, alias, player, args);
}
if (aliasObject.adminMessageEnable) {
subAliasAdminMessage(aliasObject, alias, player, args);
@@ -96,28 +140,41 @@ public class ExecuteAlias {
return;
}
}
if (aliasObject.costEnable) {
if (aliasObject.costEnable && aliasObject.costConfirm) {
if (!(aliasObject.costAllowBypass && player.hasPermission("t2code.alias.buy.bypass"))) {
if (!T2Ceco.moneyRemove(prefix, player, aliasObject.costPrice)) {
T2Csend.player(player, SelectMessages.noMoney);
return;
}
if (SelectConfig.getBuyMessage()) T2Csend.player(player, SelectMessages.buy.replace("[price]", aliasObject.costPrice.toString()));
T2Csend.player(player, SelectMessages.buyConfirm.replace("[price]", aliasObject.costPrice.toString() + " " + SelectConfig.getBuyCurrency()));
aliasStorage.put(player.getUniqueId(), new AliasStorageObject(aliasObject, alias, args, true));
return;
}
}
if (aliasObject.commandEnable) {
subAliasCommand(aliasObject, player, args);
}
if (aliasObject.messageEnable) {
subAliasMessage(aliasObject, alias, player, args);
}
executeSubAlias(player, aliasObject, alias, args);
} else {
if (aliasObject.consoleEnable) {
subAliasConsole(aliasObject,alias, sender, args);
subAliasConsole(aliasObject, alias, sender, args);
} else T2Csend.sender(sender, SelectMessages.onlyForPlayer);
}
}
protected static void executeSubAlias(Player player, SubAliasObject aliasObject, String alias, String[] args) {
if (aliasObject.costEnable) {
if (!(aliasObject.costAllowBypass && player.hasPermission("t2code.alias.buy.bypass"))) {
if (!T2Ceco.moneyRemove(prefix, player, aliasObject.costPrice)) {
T2Csend.player(player, SelectMessages.noMoney);
return;
}
if (SelectConfig.getBuyMessage())
T2Csend.player(player, SelectMessages.buy.replace("[price]", aliasObject.costPrice.toString() + " " + SelectConfig.getBuyCurrency()));
}
}
if (aliasObject.commandEnable) {
subAliasCommand(aliasObject, player, args);
}
if (aliasObject.messageEnable) {
subAliasMessage(aliasObject, alias, player, args);
}
}
protected static void aliasConsole(AliasObject alias, CommandSender sender, String prefix) {
if (alias.consoleCommandEnable) {
for (String cmd : alias.consoleCommands) {