Skip to content
This repository was archived by the owner on Feb 7, 2024. It is now read-only.

Commit 0cfb611

Browse files
committed
Add method to save rtp buttons in config.
1 parent 7351683 commit 0cfb611

13 files changed

+86
-31
lines changed

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ tasks {
5757
}
5858

5959
runServer {
60-
minecraftVersion("1.19.4")
60+
minecraftVersion("1.20.1")
6161
}
6262
// run local developement server ^^^
6363

run/bukkit.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
settings:
2-
allow-end: true
2+
allow-end: false
33
warn-on-overload: false
44
permissions-file: permissions.yml
55
update-folder: false

run/server.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#Minecraft server properties
2-
#Mon Apr 17 19:00:31 CEST 2023
2+
#Mon Jul 03 01:47:47 CEST 2023
33
enable-jmx-monitoring=false
44
level-seed=
55
rcon.port=25575

src/main/java/com/eternalcode/randomteleport/RandomTeleport.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public void onEnable() {
3131
ButtonDataConfig buttonDataConfig = configManager.load(new ButtonDataConfig());
3232

3333
TeleportService teleportService = new TeleportService();
34-
TeleportButtonService teleportButtonService = new TeleportButtonService();
34+
TeleportButtonService teleportButtonService = new TeleportButtonService(buttonDataConfig, configManager);
3535

3636
this.liteCommands = LiteBukkitAdventurePlatformFactory.builder(server, "randomteleport", this.audienceProvider)
3737
.argument(Player.class, new BukkitPlayerArgument<>(this.getServer(), "cant find player"))
Lines changed: 4 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,22 @@
11
package com.eternalcode.randomteleport;
22

3-
import com.eternalcode.randomteleport.config.ConfigManager;
4-
import com.eternalcode.randomteleport.config.impl.ButtonDataConfig;
5-
import com.eternalcode.randomteleport.shared.Position;
6-
import com.eternalcode.randomteleport.shared.PositionAdapter;
7-
import com.eternalcode.randomteleport.teleport.TeleportButtonPlace;
83
import com.eternalcode.randomteleport.teleport.TeleportButtonService;
94
import com.eternalcode.randomteleport.teleport.TeleportButtonType;
105
import com.eternalcode.randomteleport.teleport.TeleportService;
116
import dev.rollczi.litecommands.argument.Arg;
127
import dev.rollczi.litecommands.command.execute.Execute;
138
import dev.rollczi.litecommands.command.route.Route;
14-
import org.bukkit.Location;
159
import org.bukkit.entity.Player;
1610

17-
@Route(name = "randomteleport", aliases = { "rt", "rtp" })
11+
@Route(name = "randomteleport", aliases = {"rtp"})
1812
public class RandomTeleportCommand {
1913

2014
private final TeleportService teleportService;
2115
private final TeleportButtonService teleportButtonService;
2216

23-
private final ButtonDataConfig buttonDataConfig;
24-
private final ConfigManager configManager;
25-
26-
public RandomTeleportCommand(TeleportService teleportService, TeleportButtonService teleportButtonService, ButtonDataConfig buttonDataConfig, ConfigManager configManager) {
17+
public RandomTeleportCommand(TeleportService teleportService, TeleportButtonService teleportButtonService) {
2718
this.teleportService = teleportService;
2819
this.teleportButtonService = teleportButtonService;
29-
this.buttonDataConfig = buttonDataConfig;
30-
this.configManager = configManager;
3120
}
3221

3322
@Execute
@@ -36,13 +25,8 @@ void randomTeleport(Player player, @Arg int radius) {
3625
}
3726

3827
@Execute(route = "setbutton")
39-
void button(Player player, @Arg String name, @Arg TeleportButtonType type) {
40-
Location buttonLocation = this.teleportButtonService.setButtonsAround(player);
41-
Position convertButtonLocation = PositionAdapter.convert(buttonLocation);
42-
43-
TeleportButtonPlace buttonPlace = new TeleportButtonPlace(name, convertButtonLocation, type);
44-
this.buttonDataConfig.buttons.put(name, buttonPlace);
45-
this.configManager.save(this.buttonDataConfig);
28+
void button(Player player, @Arg TeleportButtonType type, @Arg String name) {
29+
this.teleportButtonService.createButtonArea(player, name, type);
4630
}
4731
}
4832

src/main/java/com/eternalcode/randomteleport/config/ConfigManager.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
package com.eternalcode.randomteleport.config;
22

3+
import com.eternalcode.randomteleport.config.composer.PositionComposer;
4+
import com.eternalcode.randomteleport.shared.Position;
35
import net.dzikoysk.cdn.Cdn;
46
import net.dzikoysk.cdn.CdnFactory;
7+
import net.dzikoysk.cdn.reflect.Visibility;
58

69
import java.io.File;
710
import java.util.HashSet;
@@ -12,6 +15,9 @@ public class ConfigManager {
1215
private final Cdn cdn = CdnFactory
1316
.createYamlLike()
1417
.getSettings()
18+
.withMemberResolver(Visibility.PRIVATE)
19+
.withMemberResolver(Visibility.PACKAGE_PRIVATE)
20+
.withComposer(Position.class, new PositionComposer())
1521
.build();
1622

1723
private final Set<ReloadableConfig> configs = new HashSet<>();
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.eternalcode.randomteleport.config.composer;
2+
3+
import com.eternalcode.randomteleport.shared.Position;
4+
import panda.std.Result;
5+
6+
public class PositionComposer implements SimpleComposer<Position> {
7+
8+
@Override
9+
public Result<Position, Exception> deserialize(String source) {
10+
return Result.supplyThrowing(IllegalArgumentException.class, () -> Position.parse(source));
11+
}
12+
13+
@Override
14+
public Result<String, Exception> serialize(Position entity) {
15+
return Result.ok(entity.toString());
16+
}
17+
18+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package com.eternalcode.randomteleport.config.composer;
2+
3+
import net.dzikoysk.cdn.serdes.Composer;
4+
import net.dzikoysk.cdn.serdes.SimpleDeserializer;
5+
import net.dzikoysk.cdn.serdes.SimpleSerializer;
6+
7+
public interface SimpleComposer<T> extends Composer<T>, SimpleDeserializer<T>, SimpleSerializer<T> {
8+
9+
}

src/main/java/com/eternalcode/randomteleport/config/impl/ButtonDataConfig.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,22 @@
22

33
import com.eternalcode.randomteleport.config.ReloadableConfig;
44
import com.eternalcode.randomteleport.teleport.TeleportButtonPlace;
5+
import net.dzikoysk.cdn.entity.Description;
56
import net.dzikoysk.cdn.source.Resource;
67
import net.dzikoysk.cdn.source.Source;
78

89
import java.io.File;
9-
import java.util.HashMap;
10-
import java.util.Map;
10+
import java.util.ArrayList;
11+
import java.util.List;
1112

1213
public class ButtonDataConfig implements ReloadableConfig {
1314

14-
public Map<String, TeleportButtonPlace> buttons = new HashMap<>();
15+
@Description("# Please don't touch this, this is automatically added by /rtp setbutton command")
16+
public List<TeleportButtonPlace> buttons = new ArrayList<>();
1517

1618
@Override
1719
public Resource resource(File folder) {
1820
return Source.of(folder, "buttons.yml");
1921
}
20-
}
22+
23+
}

src/main/java/com/eternalcode/randomteleport/teleport/TeleportButtonPlace.java

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,30 @@
44
import net.dzikoysk.cdn.entity.Contextual;
55

66
@Contextual
7-
public final class TeleportButtonPlace {
7+
public class TeleportButtonPlace {
88

99
public String name;
1010
public Position position;
11-
public TeleportButtonType type;
11+
public TeleportButtonType type = TeleportButtonType.SOLO;
1212

1313
public TeleportButtonPlace(String name, Position position, TeleportButtonType type) {
1414
this.name = name;
1515
this.position = position;
1616
this.type = type;
1717
}
1818

19+
public TeleportButtonPlace() {}
20+
21+
public String name() {
22+
return this.name;
23+
}
24+
25+
public Position position() {
26+
return this.position;
27+
}
28+
29+
public TeleportButtonType type() {
30+
return this.type;
31+
}
32+
1933
}

0 commit comments

Comments
 (0)