Skip to content

Commit 60a5a32

Browse files
committed
Add rename command, refactor locale
1 parent 6ae4e68 commit 60a5a32

26 files changed

+492
-513
lines changed

README.md

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,17 @@
22

33
## Commands
44

5-
| Command | Permission | Description | Usage | Aliases |
6-
|-----------|------------------------------|------------------------------|-------------------------------------------------------------|---------|
7-
| flyspeed | adminhax.commands.speed.fly | change your fly speed | /flyspeed [set \| get \|reset] [value \|player] <value> | fs |
8-
| walkspeed | adminhax.commands.speed.walk | change your walk speed | /walkspeed [set \| get \|reset] [value \|player] <value> | ws |
9-
| fly | adminhax.commands.fly | fly | /fly <player> | |
10-
| feed | adminhax.commands.feed | fill your hunger bar | /feed <player> | |
11-
| heal | adminhax.commands.heal | heal | /heal <player> | |
12-
| repair | adminhax.commands.repair | repair items | /repair [hand \| hotbar \|inventory \|armor \|all] <player> | |
13-
| godmode | adminhax.commands.godmode | toggle godmode/invincibility | /godmode [get \| toggle] <player> | |
5+
| Command | Permission | Description | Usage | Aliases |
6+
|----------------|------------------------------|----------------------------------------|-------------------------------------------------------------|--------------|
7+
| flyspeed | adminhax.commands.speed.fly | change your fly speed | /flyspeed [set \| get \|reset] [value \|player] <value> | fs |
8+
| walkspeed | adminhax.commands.speed.walk | change your walk speed | /walkspeed [set \| get \|reset] [value \|player] <value> | ws |
9+
| fly | adminhax.commands.fly | fly | /fly <player> | |
10+
| feed | adminhax.commands.feed | fill your hunger bar | /feed <player> | |
11+
| heal | adminhax.commands.heal | heal | /heal <player> | |
12+
| repair | adminhax.commands.repair | repair items | /repair [hand \| hotbar \|inventory \|armor \|all] <player> | |
13+
| godmode | adminhax.commands.godmode | toggle godmode/invincibility | /godmode [get \| toggle] <player> | |
14+
| broadcast | adminhax.commands.broadcast | Send a message to the whole server | /broadcast <message> | broadcastmsg |
15+
| adminhaxreload | adminhax.reload | reloads the AdminHax config and locale | /adminhaxreload | |
1416

1517
## Permissions
1618

@@ -42,5 +44,7 @@
4244
| adminhax.commands.repair.all | op | repair everything in your inventory and armor slots |
4345
| adminhax.commands.godmode | op | be invincible |
4446
| adminhax.commands.godmode.get | op | see what your godmode status is |
47+
| adminhax.commands.broadcast | op | broadcast a message server-wide |
48+
| adminhax.reload | op | reload the plugin configuration |
4549

4650
---

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>simplexity</groupId>
88
<artifactId>AdminHax</artifactId>
9-
<version>1.1.0</version>
9+
<version>1.2.0</version>
1010
<packaging>jar</packaging>
1111

1212
<name>AdminHax</name>

src/main/java/simplexity/adminhax/AdminHax.java

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,18 @@
44
import org.bukkit.plugin.java.JavaPlugin;
55
import simplexity.adminhax.commands.basic.BroadcastMsg;
66
import simplexity.adminhax.commands.basic.ReloadPlugin;
7-
import simplexity.adminhax.commands.withargs.GodMode;
7+
import simplexity.adminhax.commands.basic.RenameItem;
88
import simplexity.adminhax.commands.hax.Feed;
99
import simplexity.adminhax.commands.hax.Fly;
10-
import simplexity.adminhax.commands.withargs.Repair;
11-
import simplexity.adminhax.commands.speed.FlySpeed;
1210
import simplexity.adminhax.commands.hax.Heal;
11+
import simplexity.adminhax.commands.speed.FlySpeed;
1312
import simplexity.adminhax.commands.speed.WalkSpeed;
13+
import simplexity.adminhax.commands.withargs.GodMode;
14+
import simplexity.adminhax.commands.withargs.Repair;
1415
import simplexity.adminhax.config.ConfigHandler;
1516
import simplexity.adminhax.config.LocaleHandler;
1617
import simplexity.adminhax.listeners.FlyListeners;
18+
import simplexity.adminhax.util.Permissions;
1719

1820
public final class AdminHax extends JavaPlugin {
1921

@@ -24,18 +26,21 @@ public final class AdminHax extends JavaPlugin {
2426
@Override
2527
public void onEnable() {
2628
instance = this;
27-
LocaleHandler.getInstance().loadLocale();
29+
LocaleHandler.getInstance().reloadLocale();
2830
this.saveDefaultConfig();
31+
getConfig().options().copyDefaults(true);
32+
saveConfig();
2933
ConfigHandler.getInstance().reloadConfigValues();
30-
this.getCommand("flyspeed").setExecutor(new FlySpeed(Util.FLY_SPEED_PERMISSION, Util.FLY_SPEED_OTHER_PERMISSION, 0.1f));
31-
this.getCommand("walkspeed").setExecutor(new WalkSpeed(Util.WALK_SPEED_PERMISSION, Util.WALK_SPEED_OTHER_PERMISSION, 0.2f));
32-
this.getCommand("fly").setExecutor(new Fly(Util.FLY_PERMISSION, Util.FLY_OTHER_PERMISSION));
33-
this.getCommand("feed").setExecutor(new Feed(Util.FEED_PERMISSION, Util.FEED_OTHER_PERMISSION));
34-
this.getCommand("heal").setExecutor(new Heal(Util.HEAL_PERMISSION, Util.HEAL_OTHER_PERMISSION));
35-
this.getCommand("repair").setExecutor(new Repair(Util.REPAIR_HAND_PERMISSION, "hand"));
36-
this.getCommand("godmode").setExecutor(new GodMode(Util.GODMODE_PERMISSION, "toggle"));
34+
this.getCommand("flyspeed").setExecutor(new FlySpeed(Permissions.FLY_SPEED_PERMISSION, Permissions.FLY_SPEED_OTHER_PERMISSION, 0.1f));
35+
this.getCommand("walkspeed").setExecutor(new WalkSpeed(Permissions.WALK_SPEED_PERMISSION, Permissions.WALK_SPEED_OTHER_PERMISSION, 0.2f));
36+
this.getCommand("fly").setExecutor(new Fly(Permissions.FLY_PERMISSION, Permissions.FLY_OTHER_PERMISSION));
37+
this.getCommand("feed").setExecutor(new Feed(Permissions.FEED_PERMISSION, Permissions.FEED_OTHER_PERMISSION));
38+
this.getCommand("heal").setExecutor(new Heal(Permissions.HEAL_PERMISSION, Permissions.HEAL_OTHER_PERMISSION));
39+
this.getCommand("repair").setExecutor(new Repair(Permissions.REPAIR_HAND_PERMISSION, "hand"));
40+
this.getCommand("godmode").setExecutor(new GodMode(Permissions.GODMODE_PERMISSION, "toggle"));
3741
this.getCommand("broadcastmsg").setExecutor(new BroadcastMsg());
3842
this.getCommand("adminhaxreload").setExecutor(new ReloadPlugin());
43+
this.getCommand("rename").setExecutor(new RenameItem());
3944
this.getServer().getPluginManager().registerEvents(new FlyListeners(), this);
4045
}
4146

src/main/java/simplexity/adminhax/commands/basic/BroadcastMsg.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,21 +5,21 @@
55
import org.bukkit.command.CommandSender;
66
import org.jetbrains.annotations.NotNull;
77
import simplexity.adminhax.AdminHax;
8-
import simplexity.adminhax.config.LocaleHandler;
8+
import simplexity.adminhax.config.Message;
99

1010
public class BroadcastMsg implements CommandExecutor {
1111
@Override
1212
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String s, @NotNull String[] args) {
1313
if (args.length == 0) {
14-
sender.sendRichMessage(LocaleHandler.getInstance().getInvalidCommand());
14+
sender.sendRichMessage(Message.ERROR_INVALID_COMMAND.getMessage());
1515
return false;
1616
}
1717
StringBuilder msg = new StringBuilder();
1818
for (String arg : args) {
1919
msg.append(arg).append(" ");
2020
}
2121
String message = msg.toString().trim();
22-
message = LocaleHandler.getInstance().getBroadcastServerPrefix() + message;
22+
message = Message.BROADCAST_SERVER_PREFIX.getMessage() + message;
2323
AdminHax.getInstance().getServer().sendMessage(AdminHax.getMiniMessage().deserialize(message));
2424
return true;
2525
}

src/main/java/simplexity/adminhax/commands/basic/ReloadPlugin.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,14 @@
66
import org.jetbrains.annotations.NotNull;
77
import simplexity.adminhax.config.ConfigHandler;
88
import simplexity.adminhax.config.LocaleHandler;
9+
import simplexity.adminhax.config.Message;
910

1011
public class ReloadPlugin implements CommandExecutor {
1112
@Override
1213
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String s, @NotNull String[] args) {
1314
ConfigHandler.getInstance().reloadConfigValues();
14-
LocaleHandler.getInstance().loadLocale();
15-
sender.sendRichMessage(LocaleHandler.getInstance().getConfigReloaded());
15+
LocaleHandler.getInstance().reloadLocale();
16+
sender.sendRichMessage(Message.PLUGIN_MESSAGES_CONFIG_RELOADED.getMessage());
1617
return true;
1718
}
1819
}
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
package simplexity.adminhax.commands.basic;
2+
3+
import net.kyori.adventure.text.Component;
4+
import net.kyori.adventure.text.format.TextDecoration;
5+
import net.kyori.adventure.text.minimessage.MiniMessage;
6+
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
7+
import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver;
8+
import org.bukkit.command.Command;
9+
import org.bukkit.command.CommandExecutor;
10+
import org.bukkit.command.CommandSender;
11+
import org.bukkit.entity.Player;
12+
import org.bukkit.inventory.ItemStack;
13+
import org.bukkit.inventory.meta.ItemMeta;
14+
import org.jetbrains.annotations.NotNull;
15+
import simplexity.adminhax.AdminHax;
16+
import simplexity.adminhax.config.ConfigHandler;
17+
import simplexity.adminhax.config.Message;
18+
import simplexity.adminhax.util.Permissions;
19+
import simplexity.adminhax.util.RenamePermission;
20+
21+
public class RenameItem implements CommandExecutor {
22+
23+
private final MiniMessage miniMessage = AdminHax.getMiniMessage();
24+
25+
@Override
26+
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String s, @NotNull String[] args) {
27+
if (!(sender instanceof Player player)) {
28+
sender.sendRichMessage(Message.ERROR_MUST_BE_PLAYER.getMessage());
29+
return false;
30+
}
31+
String renameString = String.join(" ", args);
32+
renameString = renameString.trim();
33+
String strippedString = miniMessage.stripTags(renameString);
34+
if ( strippedString.length() > ConfigHandler.getInstance().getMaxRenameCharacters() && !sender.hasPermission(Permissions.BYPASS_RENAME_LENGTH)) {
35+
player.sendRichMessage(Message.ERROR_NAME_TOO_LONG.getMessage());
36+
return false;
37+
}
38+
ItemStack heldItem = player.getInventory().getItemInMainHand();
39+
if (heldItem.isEmpty() || heldItem.getType().isEmpty()) {
40+
player.sendRichMessage(Message.ERROR_MUST_HOLD_ITEM.getMessage());
41+
return false;
42+
}
43+
Component newName = parsedName(player, renameString);
44+
setItemName(newName, heldItem);
45+
player.sendRichMessage(Message.RENAME_SUCCESSFUL.getMessage(),
46+
Placeholder.unparsed("item", heldItem.translationKey()),
47+
Placeholder.component("name", newName));
48+
return true;
49+
}
50+
//Stolen from https://github.com/YouHaveTrouble/JustChat @YouHaveTrouble - I'm just gonna continue using this over and over
51+
private Component parsedName(Player player, String name) {
52+
TagResolver.Builder tagResolver = TagResolver.builder();
53+
for (RenamePermission permission : RenamePermission.values()) {
54+
if (player.hasPermission(permission.getPermission())) {
55+
tagResolver.resolver(permission.getTagResolver());
56+
}
57+
}
58+
MiniMessage nameParser = MiniMessage.builder().tags(tagResolver.build()).build();
59+
return nameParser.deserialize(name).decoration(TextDecoration.ITALIC, false);
60+
}
61+
62+
private void setItemName(Component name, ItemStack itemStack) {
63+
ItemMeta itemMeta = itemStack.getItemMeta();
64+
itemMeta.displayName(name);
65+
itemStack.setItemMeta(itemMeta);
66+
}
67+
}

src/main/java/simplexity/adminhax/commands/hax/AbstractHaxCommand.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
import org.bukkit.entity.Player;
77
import org.bukkit.permissions.Permission;
88
import org.jetbrains.annotations.NotNull;
9-
import simplexity.adminhax.Util;
10-
import simplexity.adminhax.config.LocaleHandler;
9+
import simplexity.adminhax.util.Util;
10+
import simplexity.adminhax.config.Message;
1111

1212
public abstract class AbstractHaxCommand implements CommandExecutor {
1313

@@ -24,7 +24,7 @@ public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command
2424
if (args.length > 0) {
2525
Player player = Util.getPlayerFromArgs(adminPermission, sender, args);
2626
if (player == null) {
27-
Util.sendUserMessage(sender, LocaleHandler.getInstance().getInvalidPlayer());
27+
Util.sendUserMessage(sender, Message.ERROR_INVALID_PLAYER.getMessage());
2828
return false;
2929
}
3030
runLogic(player, sender, args, true);

src/main/java/simplexity/adminhax/commands/hax/Feed.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
import org.bukkit.command.CommandSender;
44
import org.bukkit.entity.Player;
55
import org.bukkit.permissions.Permission;
6-
import simplexity.adminhax.Util;
7-
import simplexity.adminhax.config.LocaleHandler;
6+
import simplexity.adminhax.util.Util;
7+
import simplexity.adminhax.config.Message;
88

99
public class Feed extends AbstractHaxCommand {
1010
public Feed(Permission basicPermission, Permission adminPermission) {
@@ -21,12 +21,12 @@ public void runLogic(Player player, CommandSender sender, String[] args, boolean
2121

2222
@Override
2323
public void sendSelfMessage(Player player) {
24-
Util.sendUserMessage(player, LocaleHandler.getInstance().getFeedSelf());
24+
Util.sendUserMessage(player, Message.FEED_SELF.getMessage());
2525
}
2626

2727
@Override
2828
public void sendOtherMessage(CommandSender sender, Player player) {
29-
Util.sendUserMessage(sender, LocaleHandler.getInstance().getFeedOther(), null, player);
29+
Util.sendUserMessage(sender, Message.FEED_OTHER.getMessage(), null, player);
3030
}
3131

3232
}

src/main/java/simplexity/adminhax/commands/hax/Fly.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
import org.bukkit.permissions.Permission;
77
import org.bukkit.persistence.PersistentDataContainer;
88
import org.bukkit.persistence.PersistentDataType;
9-
import simplexity.adminhax.Util;
10-
import simplexity.adminhax.config.LocaleHandler;
9+
import simplexity.adminhax.util.Util;
10+
import simplexity.adminhax.config.Message;
1111

1212
public class Fly extends AbstractHaxCommand {
1313

@@ -26,22 +26,22 @@ public void runLogic(Player player, CommandSender sender, String[] args, boolean
2626
@Override
2727
public void sendSelfMessage(Player player) {
2828
String value = getValueString(player);
29-
Util.sendUserMessage(player, LocaleHandler.getInstance().getFlySetOwn(), value);
29+
Util.sendUserMessage(player, Message.FLY_SET_OWN.getMessage(), value);
3030
}
3131

3232
@Override
3333
public void sendOtherMessage(CommandSender sender, Player player) {
3434
String value = getValueString(player);
35-
Util.sendUserMessage(player, LocaleHandler.getInstance().getFlySetOwn(), value);
36-
Util.sendUserMessage(sender, LocaleHandler.getInstance().getFlySetOther(), value, player);
35+
Util.sendUserMessage(player, Message.FLY_SET_OWN.getMessage(), value);
36+
Util.sendUserMessage(sender, Message.FLY_SET_OTHER.getMessage(), value, player);
3737
}
3838

3939
private String getValueString(Player player){
4040
String value;
4141
if (isFlyEnabled(player)) {
42-
value = LocaleHandler.getInstance().getEnabled();
42+
value = Message.INSERT_ENABLED.getMessage();
4343
} else {
44-
value = LocaleHandler.getInstance().getDisabled();
44+
value = Message.INSERT_DISABLED.getMessage();
4545
}
4646
return value;
4747
}

src/main/java/simplexity/adminhax/commands/hax/Heal.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
import org.bukkit.command.CommandSender;
55
import org.bukkit.entity.Player;
66
import org.bukkit.permissions.Permission;
7-
import simplexity.adminhax.Util;
8-
import simplexity.adminhax.config.LocaleHandler;
7+
import simplexity.adminhax.util.Util;
8+
import simplexity.adminhax.config.Message;
99

1010
public class Heal extends AbstractHaxCommand {
1111

@@ -22,12 +22,12 @@ public void runLogic(Player player, CommandSender sender, String[] args, boolean
2222

2323
@Override
2424
public void sendSelfMessage(Player player) {
25-
Util.sendUserMessage(player, LocaleHandler.getInstance().getHealSelf());
25+
Util.sendUserMessage(player, Message.HEAL_SELF.getMessage());
2626
}
2727

2828
@Override
2929
public void sendOtherMessage(CommandSender sender, Player player) {
30-
Util.sendUserMessage(sender, LocaleHandler.getInstance().getHealOther(), null, player);
30+
Util.sendUserMessage(sender, Message.HEAL_OTHER.getMessage(), null, player);
3131
}
3232

3333
}

0 commit comments

Comments
 (0)