From e9ba958a4e4948bff89e738072b9a71cf4cb8309 Mon Sep 17 00:00:00 2001 From: Video Date: Mon, 29 Nov 2021 06:40:26 -0700 Subject: [PATCH] Squashed commit of the following: commit 35965b0b1076273e8a16247694802cb427622e1d Merge: aa20a6e5 1253732f Author: Video Date: Mon Nov 29 06:31:11 2021 -0700 Merge pull request #174 from AtlasMediaGroup/FS-256 Forces the server to recalculate the permissions server-wide in /opall (FS-256) commit 1253732f7740ff5ad656d4f9d7e0354a7466f69e Merge: e1bee321 aa20a6e5 Author: Video Date: Mon Nov 29 06:25:25 2021 -0700 Merge branch 'development' into FS-256 commit aa20a6e579cb1cc147d231d65891b911fbf25a08 Merge: 70622900 1ecfb0b0 Author: Video Date: Mon Nov 29 06:23:57 2021 -0700 Merge pull request #129 from AtlasMediaGroup/FS-7 Allow players to pay other players coins [FS-7] commit e1bee32163aa015d6d61b9d6a019a261c6602731 Author: Video Date: Mon Nov 29 03:27:07 2021 -0700 Forces the server to recalculate the permissions server-wide in /opall commit 1ecfb0b0660d88c3f8223dc80cd127891fa51dbf Merge: 225ade87 70622900 Author: Video Date: Mon Nov 29 03:01:22 2021 -0700 Merge branch 'development' into FS-7 commit 706229004c50c26b4cd2bf4fcbe5a7a889cf7b63 Merge: a42cb6af a4adfa9b Author: Video Date: Mon Nov 29 03:00:15 2021 -0700 Merge pull request #131 from AtlasMediaGroup/FS-273 Moves /rainbowtrail to the shop (FS-273) commit a4adfa9beea2d6204465209e71029500c6467052 Merge: 1b5bbd1c a42cb6af Author: Video Date: Mon Nov 29 02:46:41 2021 -0700 Merge branch 'development' into FS-273 commit 225ade87533d11daeef38231fcd6a4cb5bda36ec Merge: afe755f5 a42cb6af Author: Video Date: Mon Nov 29 02:46:02 2021 -0700 Merge branch 'development' into FS-7 commit a42cb6aff98f97469202f686f67c010fffe8bc2c Merge: 2ecfb886 01fdf766 Author: Video Date: Mon Nov 29 02:41:34 2021 -0700 Merge pull request #125 from AtlasMediaGroup/shitcan-savedflags Shitcans SavedFlags commit 01fdf766ee831bd4f9ae1b887b75b559e1171bd7 Merge: 58c21bb1 2ecfb886 Author: Video Date: Tue Nov 23 09:28:48 2021 -0700 Merge branch 'development' into shitcan-savedflags commit afe755f5c1406804f10ed221fd9365f736168610 Merge: 5f97e68e 2ecfb886 Author: Video Date: Tue Nov 23 09:26:59 2021 -0700 Merge branch 'development' into FS-7 commit 5f97e68e0eb02a2037c9239d9a466d0124efd4ac Author: Video Date: Tue Nov 23 09:26:49 2021 -0700 fuck it, it works commit 1b5bbd1c05b38a3af14a51842f96b54ab141710d Merge: 8356e831 2ecfb886 Author: Video Date: Tue Nov 23 09:16:21 2021 -0700 Merge branch 'development' into FS-273 commit 2ecfb88604dcea061b1fb142f18ca2becec8cfef Merge: 42143c11 bb2ddf11 Author: Video Date: Tue Nov 23 09:15:16 2021 -0700 Merge pull request #130 from AtlasMediaGroup/FS-215 Makes [Discord] a hyperlink (FS-215) commit 8356e831a5188b9bdae36e3672cd3d96919111c0 Author: Video Date: Tue Nov 23 09:11:16 2021 -0700 Redundancy fix and better protection system commit ab00cb840fbb3b0aa92f7ab952776b5d6793ab6a Merge: ecce62f6 42143c11 Author: Video Date: Tue Nov 23 03:31:45 2021 -0700 Merge branch 'development' into FS-273 commit bb2ddf11292cb0945d7be2c5cd012cd96aee40ff Merge: cf9fdc6f 42143c11 Author: Video Date: Tue Nov 23 03:31:19 2021 -0700 Merge branch 'development' into FS-215 commit 58c21bb1aab8b80829663343a9677cfd79d09e19 Merge: fdba119d 42143c11 Author: Video Date: Tue Nov 23 03:30:48 2021 -0700 Merge branch 'development' into shitcan-savedflags commit ecce62f6b4dc3641d7a66a37b226305d44c938d0 Merge: d8148530 a598c933 Author: Video Date: Sat Oct 9 00:01:22 2021 -0600 Merge branch 'development' into FS-273 commit cf9fdc6fe4fc278c5cc46745f535bdb7dfce185b Merge: 387ea6f7 a598c933 Author: Video Date: Fri Oct 8 01:43:33 2021 -0600 Merge branch 'development' into FS-215 commit 387ea6f71e36dddcd376ac0f6a555e30a9735067 Merge: a1ecf881 180cd811 Author: Video Date: Fri Oct 1 00:35:12 2021 -0600 Merge branch 'development' into FS-215 commit d81485303659656a1f1c215d3b505b6a7e63925f Merge: 47e63869 213a4338 Author: Ryan Date: Sun Sep 12 13:49:05 2021 +0100 Merge branch 'development' into FS-273 commit a1ecf881094de1da26b181370d08bddb425b4e98 Merge: bd647afe 213a4338 Author: Ryan Date: Sun Sep 12 13:48:59 2021 +0100 Merge branch 'development' into FS-215 commit 5a6a5ff75de1662aeccddbe25d62c44dc748a565 Merge: 6ca61d9c 213a4338 Author: Ryan Date: Sun Sep 12 13:48:50 2021 +0100 Merge branch 'development' into FS-7 commit fdba119d5d7b016a9fddaa05568776f43d02d442 Merge: 61857dd0 213a4338 Author: Ryan Date: Sun Sep 12 13:48:44 2021 +0100 Merge branch 'development' into shitcan-savedflags commit 61857dd06f05f1ba7242f308de671ea65f33ca80 Merge: 2d18d461 0e12f5e7 Author: Video Date: Sun Sep 12 03:01:37 2021 -0600 Merge branch 'development' into shitcan-savedflags commit bd647afe92d21e9dff65ae9c4c07323f56bfd1cd Merge: 69f17ef2 0e12f5e7 Author: Video Date: Sun Sep 12 02:50:39 2021 -0600 Merge branch 'development' into FS-215 commit 69f17ef2d742cfc77bc659c21fa0ef3007ab2337 Merge: ee1b27fa aebe1ace Author: Video Date: Sun Sep 12 02:01:56 2021 -0600 Merge branch 'development' into FS-215 commit ee1b27fa0df9ee1b579ce4ea6e0f768bb1ac7ca4 Merge: 2bdf14f3 0a9b95bf Author: Ryan Date: Sat Sep 11 01:24:00 2021 +0100 Merge branch 'development' into FS-215 commit 6ca61d9c6c506f7532290bb6e2d5a5f484f0e36c Merge: fedf80b8 0a9b95bf Author: Ryan Date: Sat Sep 11 01:23:52 2021 +0100 Merge branch 'development' into FS-7 commit 2d18d461fea83aef743967e10f8c6d6afd67a09c Merge: a4c81f20 0a9b95bf Author: Ryan Date: Sat Sep 11 01:23:44 2021 +0100 Merge branch 'development' into shitcan-savedflags commit 47e638690731402f3f859168ad3eb601608b38bf Merge: b1062fbb 0a9b95bf Author: Ryan Date: Sat Sep 11 01:23:13 2021 +0100 Merge branch 'development' into FS-273 commit fedf80b834dc02d4a2ea5676224643906b661235 Merge: a2d11d4b 44ff621d Author: Video Date: Fri Sep 10 01:39:16 2021 -0600 Merge branch 'development' into FS-7 commit 2bdf14f38c07c70e392879e2c18be02e0c847af2 Merge: f6d46b61 44ff621d Author: Video Date: Mon Sep 6 15:26:13 2021 -0600 Merge branch 'development' into FS-215 commit b1062fbb6c8587317cc5c107da0357873559e0a3 Merge: f69feed4 44ff621d Author: Video Date: Mon Sep 6 14:39:32 2021 -0600 Merge branch 'development' into FS-273 commit f69feed469da5cb1852e96b68b742f261a3652ff Author: Video Date: Mon Sep 6 01:14:21 2021 -0600 fixed commit 8253f94ac4d71e068d687c87c76bdba13a9b6553 Merge: daf0126f 54cb0cfa Author: Video Date: Mon Sep 6 01:12:00 2021 -0600 Merge branch 'development' into FS-273 commit a4c81f202cd041d4f084135bbd9b0a1d77cd6505 Merge: 0d09c3a5 23caa4e8 Author: Ryan Date: Sat Sep 4 01:23:06 2021 +0100 Merge branch 'development' into shitcan-savedflags commit daf0126f4560c9c75f68e3e302f4fb2b41bd7dd3 Merge: a51f5c9b 23caa4e8 Author: Ryan Date: Sat Sep 4 01:07:39 2021 +0100 Merge branch 'development' into FS-273 commit f6d46b6178a9c135df11b5305ba6fb16404381c5 Merge: ee804d52 23caa4e8 Author: Ryan Date: Sat Sep 4 01:07:33 2021 +0100 Merge branch 'development' into FS-215 commit a2d11d4b939b524bfebef20dd79ac0476e80de91 Merge: dc490659 23caa4e8 Author: Ryan Date: Sat Sep 4 01:07:28 2021 +0100 Merge branch 'development' into FS-7 commit a51f5c9bbfae2665b229e6ffff267ddbe9a956d4 Author: Video Date: Fri Sep 3 13:53:33 2021 -0600 FS-273 commit ee804d52ff0747fdf67398b12080f708460b402c Author: Video Date: Fri Sep 3 12:52:15 2021 -0600 Makes [Discord] a hyperlink (FS-215) I've decided to overhaul the implementation of DiscordToMinecraftListener to make it more easily workable. This overhaul allows me to implement FS-215 more easily. commit dc490659c11f728c99584e591f79ddd61d11b4e8 Author: Video Date: Fri Sep 3 00:07:20 2021 -0600 Begins implementing FS-7 should be good enough, but feedback would be lovely commit 0d09c3a550eb014793cc800021a0064aaad5e3b1 Merge: e2ccd14e 4c3f188b Author: Ryan Date: Sun Aug 29 20:09:03 2021 +0100 Merge branch 'development' into shitcan-savedflags commit e2ccd14eb383844c1bfb5d0e56e7924bb47f5997 Author: Video Date: Fri Aug 27 16:54:55 2021 -0600 Unsaves SavedFlags --- .../command/Command_coins.java | 126 +++++++++++++++--- .../command/Command_opall.java | 4 + 2 files changed, 111 insertions(+), 19 deletions(-) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_coins.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_coins.java index f50b8985..3d0a812d 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_coins.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_coins.java @@ -9,8 +9,11 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +import java.util.ArrayList; +import java.util.List; + @CommandPermissions(level = Rank.OP, source = SourceType.BOTH) -@CommandParameters(description = "Shows the amount of coins you have or another player has", usage = "/ [playername]") +@CommandParameters(description = "Shows the amount of coins you or another player has. Also allows you to give coins to other players.", usage = "/ [player] | pay ") public class Command_coins extends FreedomCommand { @Override @@ -21,34 +24,119 @@ public class Command_coins extends FreedomCommand msg("The shop is currently disabled!", ChatColor.RED); return true; } - Player p; + final String prefix = FUtil.colorize(ConfigEntry.SHOP_PREFIX.getString() + " "); - if (args.length > 0) + + switch (args.length) { - if (getPlayer(args[0]) != null) + // Mode for seeing how many coins the sender has (doesn't work from console) + case 0: { - p = getPlayer(args[0]); - } - else - { - msg(PLAYER_NOT_FOUND); + if (senderIsConsole) + { + msg("When used from the console, you must define a target player."); + } + else + { + PlayerData playerData = getData(playerSender); + msg(prefix + ChatColor.GREEN + "You have " + ChatColor.RED + playerData.getCoins() + ChatColor.GREEN + + " coins."); + } return true; } - } - else - { - if (senderIsConsole) + + // Mode for seeing how many coins a player has. + case 1: { - msg(prefix + ChatColor.RED + "You are not a player, use /coins "); + Player target = getPlayer(args[0]); + + if (target == null) + { + msg(PLAYER_NOT_FOUND); + } + else + { + PlayerData playerData = getData(target); + msg(prefix + ChatColor.GREEN + target.getName() + " has " + ChatColor.RED + playerData.getCoins() + ChatColor.GREEN + " coins."); + } return true; } - else + + // Mode for paying another player coins + case 3: { - p = playerSender; + if (args[0].equalsIgnoreCase("pay")) + { + checkPlayer(); + + final Player target = getPlayer(args[1]); + final PlayerData senderData = getData(playerSender); + + int coinsToTransfer; + + // Processes args[2] + try + { + // Prevents players from trying to be cheeky with negative numbers. + coinsToTransfer = Math.max(Math.abs(Integer.parseInt(args[2])), 1); + } + catch (NumberFormatException ex) + { + msg("Invalid number: " + args[2], ChatColor.RED); + return true; + } + + // Prevents players from performing transactions they can't afford to do. + if (senderData.getCoins() < coinsToTransfer) + { + msg("You don't have enough coins to perform this transaction.", ChatColor.RED); + return true; + } + + if (target == null) + { + msg(PLAYER_NOT_FOUND); + } + else + { + PlayerData playerData = getData(target); + playerData.setCoins(playerData.getCoins() + coinsToTransfer); + senderData.setCoins(senderData.getCoins() - coinsToTransfer); + + msg(target, sender.getName() + + ChatColor.GREEN + " has given you " + + ChatColor.GOLD + coinsToTransfer + + ChatColor.GREEN + " coin" + (coinsToTransfer > 1 ? "s" : "") + "!", ChatColor.GOLD); + + msg("You have given " + + ChatColor.GOLD + coinsToTransfer + + ChatColor.GREEN + " coin" + (coinsToTransfer > 1 ? "s" : "") + + " to " + ChatColor.GOLD + target.getName() + ChatColor.GREEN + ".", ChatColor.GREEN); + } + + return true; + } + } + + default: + { + return false; } } - PlayerData playerData = plugin.pl.getData(p); - msg(prefix + ChatColor.GREEN + (args.length > 0 ? p.getName() + " has " : "You have ") + ChatColor.RED + playerData.getCoins() + ChatColor.GREEN + " coins."); - return true; + } + + @Override + public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) + { + if (args.length == 1) + { + List options = new ArrayList<>(FUtil.getPlayerList()); + + options.add("pay"); + + return options; + } + + return FUtil.getPlayerList(); } } \ No newline at end of file diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_opall.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_opall.java index a02671cc..45ff1689 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_opall.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_opall.java @@ -24,6 +24,10 @@ public class Command_opall extends FreedomCommand msg(player, YOU_ARE_OP); plugin.rm.updateDisplay(player); } + else + { + player.recalculatePermissions(); + } } return true;