Skip to content

Commit dced57f

Browse files
committed
Admins can now delete home from others and teleport to them
1 parent 2f1c17d commit dced57f

File tree

4 files changed

+71
-39
lines changed

4 files changed

+71
-39
lines changed

src/main/java/dev/lars/utilsmanager/commands/teleport/home/DeleteHomeCommand.java

Lines changed: 50 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
public class DeleteHomeCommand implements BasicCommand {
1818

1919
@Override
20-
public void execute(@NotNull CommandSourceStack stack, @NotNull String[] args) {
20+
public void execute(@NotNull CommandSourceStack stack, @NotNull String @NonNull [] args) {
2121
if (!(stack.getExecutor() instanceof Player player)) {
2222
stack.getSender().sendMessage(Statements.getOnlyPlayers());
2323
return;
@@ -32,55 +32,72 @@ public void execute(@NotNull CommandSourceStack stack, @NotNull String[] args) {
3232
return;
3333
}
3434

35-
String HomeName = args[0];
36-
if (!HomeAPI.getApi().doesOwnHomeExist(player, HomeName)) {
37-
if(LanguageAPI.getApi().getLanguage(player) == 2) {
38-
player.sendMessage(Statements.getPrefix().append(Component.text("Der Home ", NamedTextColor.RED))
39-
.append(Component.text(HomeName, NamedTextColor.YELLOW))
40-
.append(Component.text(" existiert nicht!", NamedTextColor.RED)));
41-
} else {
42-
player.sendMessage(Statements.getPrefix().append(Component.text("The home ", NamedTextColor.RED))
43-
.append(Component.text(HomeName, NamedTextColor.YELLOW))
44-
.append(Component.text(" does not exist!", NamedTextColor.RED)));
45-
}
35+
String homeName = args[0];
36+
boolean isAdmin = player.hasPermission("utilsmanager.admin");
37+
boolean homeExists = isAdmin
38+
? HomeAPI.getApi().doesHomeExist(homeName)
39+
: HomeAPI.getApi().doesOwnHomeExist(player, homeName);
40+
41+
if (!homeExists) {
42+
boolean german = LanguageAPI.getApi().getLanguage(player) == 2;
43+
44+
Component message = Statements.getPrefix()
45+
.append(Component.text(
46+
german ? "Der Home " : "The home ",
47+
NamedTextColor.RED))
48+
.append(Component.text(homeName, NamedTextColor.YELLOW))
49+
.append(Component.text(
50+
german ? " existiert nicht!" : " does not exist!",
51+
NamedTextColor.RED));
52+
53+
player.sendMessage(message);
4654
return;
4755
}
4856

57+
HomeAPI.getApi().deleteHome(HomeAPI.getApi().getHomeId(player, homeName));
4958
if(LanguageAPI.getApi().getLanguage(player) == 2) {
50-
player.sendMessage(Statements.getPrefix().append(Component.text("Du hast den Homepunkt ", NamedTextColor.YELLOW))
51-
.append(Component.text(HomeName, NamedTextColor.RED))
59+
player.sendMessage(Statements.getPrefix().append(Component.text("Du hast den Home ", NamedTextColor.YELLOW))
60+
.append(Component.text(homeName, NamedTextColor.RED))
5261
.append(Component.text(" gelöscht!", NamedTextColor.YELLOW)));
5362
} else {
54-
player.sendMessage(Statements.getPrefix().append(Component.text("You've deleted the homepoint ", NamedTextColor.YELLOW))
55-
.append(Component.text(HomeName, NamedTextColor.RED))
63+
player.sendMessage(Statements.getPrefix().append(Component.text("You've deleted the home ", NamedTextColor.YELLOW))
64+
.append(Component.text(homeName, NamedTextColor.RED))
5665
.append(Component.text("!", NamedTextColor.YELLOW)));
5766
}
58-
HomeAPI.getApi().deleteHome(HomeAPI.getApi().getHomeId(player, HomeName));
5967
}
6068

6169
@Override
62-
public @NonNull Collection<String> suggest(final CommandSourceStack commandSourceStack, final String[] args) {
70+
public @NonNull Collection<String> suggest(final CommandSourceStack commandSourceStack, final String @NonNull [] args) {
6371
Player player = (Player) commandSourceStack.getSender();
64-
Collection<String> homes = Objects.requireNonNullElse(HomeAPI.getApi().getOwnHomes(player), Collections.emptyList());
72+
if (player.hasPermission("utilsmanager.admin")) {
73+
Collection<String> homes = Objects.requireNonNullElse(HomeAPI.getApi().getAllHomes(), Collections.emptyList());
6574

66-
if (args.length == 0) {
67-
return homes;
68-
}
69-
if (args.length == 1) {
70-
return SuggestHelper.filter(args[0], homes.toArray(new String[0]));
75+
if (args.length == 0) {
76+
return homes;
77+
}
78+
if (args.length == 1) {
79+
return SuggestHelper.filter(args[0], homes.toArray(new String[0]));
80+
}
81+
} else {
82+
Collection<String> homes = Objects.requireNonNullElse(HomeAPI.getApi().getOwnHomes(player), Collections.emptyList());
83+
84+
if (args.length == 0) {
85+
return homes;
86+
}
87+
if (args.length == 1) {
88+
return SuggestHelper.filter(args[0], homes.toArray(new String[0]));
89+
}
7190
}
7291
return Collections.emptyList();
7392
}
7493

75-
private void sendUsage(Player sender) {
76-
if (LanguageAPI.getApi().getLanguage(sender) == 2) {
77-
sender.sendMessage(Component.text("Verwendung", NamedTextColor.GRAY)
78-
.append(Component.text(": ", NamedTextColor.DARK_GRAY))
79-
.append(Component.text("/sethome <Name>", NamedTextColor.BLUE)));
94+
private void sendUsage(Player player) {
95+
if (LanguageAPI.getApi().getLanguage(player) == 2) {
96+
player.sendMessage(Statements.getUsage(player)
97+
.append(Component.text("/deletehome <Name>", NamedTextColor.BLUE)));
8098
} else {
81-
sender.sendMessage(Component.text("Use", NamedTextColor.GRAY)
82-
.append(Component.text(": ", NamedTextColor.DARK_GRAY))
83-
.append(Component.text("/sethome <name>", NamedTextColor.BLUE)));
99+
player.sendMessage(Statements.getUsage(player)
100+
.append(Component.text("/deletehome <name>", NamedTextColor.BLUE)));
84101
}
85102
}
86-
}
103+
}

src/main/java/dev/lars/utilsmanager/commands/teleport/home/HomeCommand.java

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -69,13 +69,24 @@ public void execute(@NotNull CommandSourceStack stack, @NotNull String[] args) {
6969
@Override
7070
public @NonNull Collection<String> suggest(final CommandSourceStack commandSourceStack, final String[] args) {
7171
Player player = (Player) commandSourceStack.getSender();
72-
Collection<String> homes = Objects.requireNonNullElse(HomeAPI.getApi().getHomes(player), Collections.emptyList());
72+
if (player.hasPermission("utilsmanager.admin")) {
73+
Collection<String> homes = Objects.requireNonNullElse(HomeAPI.getApi().getAllHomes(), Collections.emptyList());
7374

74-
if (args.length == 0) {
75-
return homes;
76-
}
77-
if (args.length == 1) {
78-
return SuggestHelper.filter(args[0], homes.toArray(new String[0]));
75+
if (args.length == 0) {
76+
return homes;
77+
}
78+
if (args.length == 1) {
79+
return SuggestHelper.filter(args[0], homes.toArray(new String[0]));
80+
}
81+
} else {
82+
Collection<String> homes = Objects.requireNonNullElse(HomeAPI.getApi().getHomes(player), Collections.emptyList());
83+
84+
if (args.length == 0) {
85+
return homes;
86+
}
87+
if (args.length == 1) {
88+
return SuggestHelper.filter(args[0], homes.toArray(new String[0]));
89+
}
7990
}
8091
return Collections.emptyList();
8192
}

src/main/java/dev/lars/utilsmanager/features/rank/RankManager.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ public void setPermissions(Player player) {
4848
}
4949
switch (rankId) {
5050
case 10: {
51+
attachment.setPermission("utilsmanager.admin", true);
5152
attachment.setPermission("utilsmanager.addcoins", true);
5253
attachment.setPermission("utilsmanager.setcoins", true);
5354
attachment.setPermission("utilsmanager.backpack", true);
@@ -106,6 +107,7 @@ public void setPermissions(Player player) {
106107
attachment.setPermission("utilsmanager.feature.spawn.setspawn", true);
107108
}
108109
case 9: {
110+
attachment.setPermission("utilsmanager.admin", true);
109111
attachment.setPermission("utilsmanager.addcoins", true);
110112
attachment.setPermission("utilsmanager.setcoins", true);
111113
attachment.setPermission("utilsmanager.backpack", true);

src/main/resources/paper-plugin.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ dependencies:
1919
join-classpath: true
2020

2121
permissions:
22+
utilsmanager.admin:
23+
default: false
2224
utilsmanager.addcoins:
2325
default: false
2426
utilsmanager.backpack:

0 commit comments

Comments
 (0)