Skip to content

Commit 42b0017

Browse files
committed
Implement dimension toggle for nether
1 parent 257c10e commit 42b0017

20 files changed

Lines changed: 268 additions & 158 deletions

build.gradle.kts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,11 @@ val plugin: Configuration by configurations.creating {
1818
}
1919

2020
repositories {
21+
mavenLocal {
22+
content {
23+
includeGroup("dev.jorel")
24+
}
25+
}
2126
maven("https://repo.cloudcraftmc.de/public/")
2227
}
2328

src/main/java/dev/booky/craftattack/CaMain.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import dev.booky.cloudcore.i18n.CloudTranslator;
44
import dev.booky.craftattack.commands.CaCommand;
55
import dev.booky.craftattack.listener.ElytraListener;
6-
import dev.booky.craftattack.listener.EndListener;
6+
import dev.booky.craftattack.listener.DimensionListener;
77
import dev.booky.craftattack.listener.ExplosionListener;
88
import dev.booky.craftattack.listener.MineStatListener;
99
import dev.booky.craftattack.listener.SitListener;
@@ -41,7 +41,7 @@ public void onEnable() {
4141
this.manager.reloadConfig();
4242

4343
Bukkit.getPluginManager().registerEvents(new ElytraListener(this.manager), this);
44-
Bukkit.getPluginManager().registerEvents(new EndListener(this.manager), this);
44+
Bukkit.getPluginManager().registerEvents(new DimensionListener(this.manager), this);
4545
Bukkit.getPluginManager().registerEvents(new ExplosionListener(this.manager), this);
4646
Bukkit.getPluginManager().registerEvents(new MineStatListener(this.manager), this);
4747
Bukkit.getPluginManager().registerEvents(new SitListener(this.manager), this);

src/main/java/dev/booky/craftattack/commands/CaCommand.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,10 @@ public CaCommand(CaManager manager) {
3030
this.withSubcommand(new MineStatsCommand(entry));
3131
}
3232

33-
// TODO commandapi unregistration is broken
34-
// CommandAPI.unregister(this.getName(), true);
35-
// for (String alias : this.getAliases()) {
36-
// CommandAPI.unregister(alias, true);
37-
// }
33+
CommandAPI.unregister(this.getName(), true);
34+
for (String alias : this.getAliases()) {
35+
CommandAPI.unregister(alias, true);
36+
}
3837

3938
this.register();
4039
}

src/main/java/dev/booky/craftattack/commands/admin/AdminSubCommand.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,21 @@
22
// Created by booky10 in CraftAttack (15:03 01.03.21)
33

44
import dev.booky.craftattack.CaManager;
5-
import dev.booky.craftattack.commands.admin.end.EndSubCommand;
5+
import dev.booky.craftattack.commands.admin.dimension.DimensionSubCommand;
66
import dev.booky.craftattack.commands.admin.spawn.SpawnSubCommand;
77
import dev.jorel.commandapi.CommandAPICommand;
88

9+
import static dev.booky.craftattack.utils.CaConstants.DIMENSION_END;
10+
import static dev.booky.craftattack.utils.CaConstants.DIMENSION_NETHER;
11+
912
public class AdminSubCommand extends CommandAPICommand {
1013

1114
public AdminSubCommand(CaManager manager) {
1215
super("admin");
1316
super.withPermission("craftattack.command.admin");
1417

15-
super.withSubcommand(new EndSubCommand(manager));
18+
super.withSubcommand(new DimensionSubCommand(manager, "nether", DIMENSION_NETHER));
19+
super.withSubcommand(new DimensionSubCommand(manager, "end", DIMENSION_END));
1620
super.withSubcommand(new SpawnSubCommand(manager));
1721
super.withSubcommand(new ReloadConfigCommand(manager));
1822
super.withSubcommand(new MobCountCommand());
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package dev.booky.craftattack.commands.admin.dimension;
2+
// Created by booky10 in Kingdoms (12:29 09.04.21)
3+
4+
import dev.booky.craftattack.CaManager;
5+
import dev.jorel.commandapi.CommandAPICommand;
6+
import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException;
7+
import dev.jorel.commandapi.executors.CommandArguments;
8+
import dev.jorel.commandapi.executors.CommandExecutor;
9+
import net.kyori.adventure.key.Key;
10+
import net.kyori.adventure.text.Component;
11+
import net.kyori.adventure.text.format.NamedTextColor;
12+
import org.bukkit.command.CommandSender;
13+
14+
public class DimensionActivationGetCommand extends CommandAPICommand implements CommandExecutor {
15+
16+
private final CaManager manager;
17+
private final String id;
18+
private final Key dimension;
19+
20+
public DimensionActivationGetCommand(CaManager manager, String id, Key dimension) {
21+
super("activate");
22+
this.manager = manager;
23+
this.id = id;
24+
this.dimension = dimension;
25+
26+
super.withPermission("craftattack.command.admin." + id + ".activate.get");
27+
super.executes(this);
28+
}
29+
30+
@Override
31+
public void run(CommandSender sender, CommandArguments args) throws WrapperCommandSyntaxException {
32+
String activatedStr = this.manager.getConfig().getDimensionConfig(this.dimension).isActivated() ? "activated" : "deactivated";
33+
sender.sendMessage(CaManager.getPrefix().append(Component.translatable("ca.command.admin." + this.id + ".activate.get.message", NamedTextColor.GREEN)
34+
.arguments(Component.translatable("ca.command.admin." + this.id + "." + activatedStr))));
35+
}
36+
}
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package dev.booky.craftattack.commands.admin.dimension;
2+
// Created by booky10 in Kingdoms (12:29 09.04.21)
3+
4+
import dev.booky.craftattack.CaManager;
5+
import dev.jorel.commandapi.CommandAPICommand;
6+
import dev.jorel.commandapi.arguments.BooleanArgument;
7+
import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException;
8+
import dev.jorel.commandapi.executors.CommandArguments;
9+
import dev.jorel.commandapi.executors.CommandExecutor;
10+
import net.kyori.adventure.key.Key;
11+
import net.kyori.adventure.text.Component;
12+
import net.kyori.adventure.text.format.NamedTextColor;
13+
import org.bukkit.command.CommandSender;
14+
15+
import java.util.Objects;
16+
17+
public class DimensionActivationSetCommand extends CommandAPICommand implements CommandExecutor {
18+
19+
private final CaManager manager;
20+
private final String id;
21+
private final Key dimension;
22+
23+
public DimensionActivationSetCommand(CaManager manager, String id, Key dimension) {
24+
super("activate");
25+
this.manager = manager;
26+
this.id = id;
27+
this.dimension = dimension;
28+
29+
super.withArguments(new BooleanArgument("active"));
30+
super.withPermission("craftattack.command.admin." + id + ".activate.set");
31+
super.executes(this);
32+
}
33+
34+
@Override
35+
public void run(CommandSender sender, CommandArguments args) throws WrapperCommandSyntaxException {
36+
boolean activate = Objects.requireNonNull(args.<Boolean>getUnchecked("active"));
37+
38+
if (this.manager.getConfig().getDimensionConfig(this.dimension).isActivated() == activate) {
39+
sender.sendMessage(CaManager.getPrefix().append(Component.translatable("ca.command.admin." + this.id + ".activate.set.already", NamedTextColor.RED)
40+
.arguments(Component.translatable("ca.command.admin." + this.id + "." + (activate ? "activated" : "deactivated")))));
41+
return;
42+
}
43+
44+
this.manager.updateConfig(config -> config.getDimensionConfig(this.dimension).setActivated(activate));
45+
sender.sendMessage(CaManager.getPrefix().append(Component.translatable("ca.command.admin." + this.id + ".activate.set.success", NamedTextColor.GREEN)
46+
.arguments(Component.translatable("ca.command.admin." + this.id + "." + (activate ? "activated" : "deactivated")))));
47+
}
48+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package dev.booky.craftattack.commands.admin.dimension;
2+
// Created by booky10 in Kingdoms (20:34 26.08.21)
3+
4+
import dev.booky.craftattack.CaManager;
5+
import dev.jorel.commandapi.CommandAPICommand;
6+
import net.kyori.adventure.key.Key;
7+
8+
public class DimensionSubCommand extends CommandAPICommand {
9+
10+
public DimensionSubCommand(CaManager manager, String id, Key dimension) {
11+
super(id);
12+
super.withPermission("craftattack.command.admin." + id);
13+
14+
super.withSubcommand(new DimensionWarpLocationGetCommand(manager, id, dimension));
15+
super.withSubcommand(new DimensionWarpLocationSetCommand(manager, id, dimension));
16+
super.withSubcommand(new DimensionActivationGetCommand(manager, id, dimension));
17+
super.withSubcommand(new DimensionActivationSetCommand(manager, id, dimension));
18+
}
19+
}

src/main/java/dev/booky/craftattack/commands/admin/end/EndWarpLocationGetCommand.java renamed to src/main/java/dev/booky/craftattack/commands/admin/dimension/DimensionWarpLocationGetCommand.java

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,42 @@
1-
package dev.booky.craftattack.commands.admin.end;
1+
package dev.booky.craftattack.commands.admin.dimension;
22
// Created by booky10 in CraftAttack (15:51 01.03.21)
33

44
import dev.booky.craftattack.CaManager;
55
import dev.jorel.commandapi.CommandAPICommand;
66
import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException;
77
import dev.jorel.commandapi.executors.CommandArguments;
88
import dev.jorel.commandapi.executors.CommandExecutor;
9+
import net.kyori.adventure.key.Key;
910
import net.kyori.adventure.text.Component;
1011
import net.kyori.adventure.text.format.NamedTextColor;
1112
import org.bukkit.Location;
1213
import org.bukkit.command.CommandSender;
1314

14-
public class EndWarpLocationGetCommand extends CommandAPICommand implements CommandExecutor {
15+
public class DimensionWarpLocationGetCommand extends CommandAPICommand implements CommandExecutor {
1516

1617
private final CaManager manager;
18+
private final String id;
19+
private final Key dimension;
1720

18-
public EndWarpLocationGetCommand(CaManager manager) {
21+
public DimensionWarpLocationGetCommand(CaManager manager, String id, Key dimension) {
1922
super("location");
2023
this.manager = manager;
24+
this.id = id;
25+
this.dimension = dimension;
2126

22-
super.withPermission("craftattack.command.admin.end.location.get");
27+
super.withPermission("craftattack.command.admin." + id + ".location.get");
2328
super.executes(this);
2429
}
2530

2631
@Override
2732
public void run(CommandSender sender, CommandArguments args) throws WrapperCommandSyntaxException {
28-
Location location = this.manager.getConfig().getEndConfig().getWarpLocation();
33+
Location location = this.manager.getConfig().getDimensionConfig(this.dimension).getWarpLocation();
2934
if (location == null) {
30-
sender.sendMessage(CaManager.getPrefix().append(Component.translatable("ca.command.admin.end.location.get.not-set", NamedTextColor.RED)));
35+
sender.sendMessage(CaManager.getPrefix().append(Component.translatable("ca.command.admin." + this.id + ".location.get.not-set", NamedTextColor.RED)));
3136
return;
3237
}
3338

34-
sender.sendMessage(CaManager.getPrefix().append(Component.translatable("ca.command.admin.end.location.get.success", NamedTextColor.GREEN).args(
39+
sender.sendMessage(CaManager.getPrefix().append(Component.translatable("ca.command.admin." + this.id + ".location.get.success", NamedTextColor.GREEN).arguments(
3540
Component.text(location.getX()), Component.text(location.getY()), Component.text(location.getZ()),
3641
Component.text(location.getYaw()), Component.text(location.getPitch()),
3742
Component.text(location.getWorld().getKey().asString()))));

src/main/java/dev/booky/craftattack/commands/admin/end/EndWarpLocationSetCommand.java renamed to src/main/java/dev/booky/craftattack/commands/admin/dimension/DimensionWarpLocationSetCommand.java

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package dev.booky.craftattack.commands.admin.end;
1+
package dev.booky.craftattack.commands.admin.dimension;
22
// Created by booky10 in CraftAttack (15:52 01.03.21)
33

44
import dev.booky.craftattack.CaManager;
@@ -10,25 +10,30 @@
1010
import dev.jorel.commandapi.executors.CommandArguments;
1111
import dev.jorel.commandapi.executors.CommandExecutor;
1212
import dev.jorel.commandapi.wrappers.Rotation;
13+
import net.kyori.adventure.key.Key;
1314
import net.kyori.adventure.text.Component;
1415
import net.kyori.adventure.text.format.NamedTextColor;
1516
import org.bukkit.Location;
1617
import org.bukkit.command.CommandSender;
1718

1819
import java.util.Objects;
1920

20-
public class EndWarpLocationSetCommand extends CommandAPICommand implements CommandExecutor {
21+
public class DimensionWarpLocationSetCommand extends CommandAPICommand implements CommandExecutor {
2122

2223
private final CaManager manager;
24+
private final String id;
25+
private final Key dimension;
2326

24-
public EndWarpLocationSetCommand(CaManager manager) {
27+
public DimensionWarpLocationSetCommand(CaManager manager, String id, Key dimension) {
2528
super("location");
2629
this.manager = manager;
30+
this.id = id;
31+
this.dimension = dimension;
2732

2833
super.withArguments(new LocationArgument("location", LocationType.PRECISE_POSITION));
2934
super.withOptionalArguments(new RotationArgument("rotation"));
3035

31-
super.withPermission("craftattack.command.admin.end.location.set");
36+
super.withPermission("craftattack.command.admin." + id + ".location.set");
3237
super.executes(this);
3338
}
3439

@@ -41,12 +46,12 @@ public void run(CommandSender sender, CommandArguments args) throws WrapperComma
4146
location.setPitch(rotation.getPitch());
4247
}
4348

44-
if (location.equals(this.manager.getConfig().getEndConfig().getWarpLocation())) {
45-
sender.sendMessage(CaManager.getPrefix().append(Component.translatable("ca.command.admin.end.location.set.already", NamedTextColor.RED)));
49+
if (location.equals(this.manager.getConfig().getDimensionConfig(this.dimension).getWarpLocation())) {
50+
sender.sendMessage(CaManager.getPrefix().append(Component.translatable("ca.command.admin." + this.id + ".location.set.already", NamedTextColor.RED)));
4651
return;
4752
}
4853

49-
this.manager.updateConfig(config -> config.getEndConfig().setWarpLocation(location));
50-
sender.sendMessage(CaManager.getPrefix().append(Component.translatable("ca.command.admin.end.location.set.success", NamedTextColor.GREEN)));
54+
this.manager.updateConfig(config -> config.getDimensionConfig(this.dimension).setWarpLocation(location));
55+
sender.sendMessage(CaManager.getPrefix().append(Component.translatable("ca.command.admin." + this.id + ".location.set.success", NamedTextColor.GREEN)));
5156
}
5257
}

src/main/java/dev/booky/craftattack/commands/admin/end/EndActivationGetCommand.java

Lines changed: 0 additions & 31 deletions
This file was deleted.

0 commit comments

Comments
 (0)