Skip to content

Commit e1d38e0

Browse files
authored
Merge pull request #98 from BuildTheEarth/railgen-v2
Add configurable multi-track rail generation and persistent in-game editing
2 parents a60f672 + f351c42 commit e1d38e0

48 files changed

Lines changed: 5155 additions & 741 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ dependencies {
7676

7777
testImplementation("org.junit.jupiter:junit-jupiter:5.12.2")
7878
testRuntimeOnly("org.junit.platform:junit-platform-launcher:1.12.2")
79-
testRuntimeOnly(libs.paper.api)
79+
testImplementation(libs.paper.api)
8080
}
8181

8282
fun Project.versionDetails(): VersionDetails {

src/main/java/net/buildtheearth/buildteamtools/modules/common/commands/BuildTeamToolsCommand.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public class BuildTeamToolsCommand implements CommandExecutor, TabCompleter {
2828
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command cmd, @NotNull String label, String @NotNull [] args) {
2929

3030
if (!sender.hasPermission(Permissions.BUILD_TEAM_TOOLS)) {
31-
Utils.sendNoPermissionMessage(sender, Permissions.BUILD_TEAM_TOOLS);
31+
Permissions.sendNoPermissionMessage(sender, Permissions.BUILD_TEAM_TOOLS);
3232
return true;
3333
}
3434

@@ -40,7 +40,7 @@ public boolean onCommand(@NotNull CommandSender sender, @NotNull Command cmd, @N
4040
switch (args[0].toLowerCase()) {
4141
case "communicators" -> {
4242
if (!sender.hasPermission(Permissions.BUILD_TEAM_TOOLS_COMMUNICATORS)) {
43-
Utils.sendNoPermissionMessage(sender, Permissions.BUILD_TEAM_TOOLS_COMMUNICATORS);
43+
Permissions.sendNoPermissionMessage(sender, Permissions.BUILD_TEAM_TOOLS_COMMUNICATORS);
4444
return true;
4545
}
4646

@@ -70,7 +70,7 @@ public boolean onCommand(@NotNull CommandSender sender, @NotNull Command cmd, @N
7070

7171
private static void debugCommand(@NonNull CommandSender sender, String @NonNull [] args) {
7272
if (!sender.hasPermission(Permissions.BUILD_TEAM_TOOLS_DEBUG)) {
73-
Utils.sendNoPermissionMessage(sender, Permissions.BUILD_TEAM_TOOLS_DEBUG);
73+
Permissions.sendNoPermissionMessage(sender, Permissions.BUILD_TEAM_TOOLS_DEBUG);
7474
return;
7575
}
7676

@@ -88,7 +88,7 @@ private static void debugCommand(@NonNull CommandSender sender, String @NonNull
8888

8989
private static void cacheCommand(@NonNull CommandSender sender, String @NonNull [] args) {
9090
if (!sender.hasPermission(Permissions.BUILD_TEAM_TOOLS_CACHE)) {
91-
Utils.sendNoPermissionMessage(sender, Permissions.BUILD_TEAM_TOOLS_CACHE);
91+
Permissions.sendNoPermissionMessage(sender, Permissions.BUILD_TEAM_TOOLS_CACHE);
9292
return;
9393
}
9494

@@ -110,7 +110,7 @@ private static void cacheCommand(@NonNull CommandSender sender, String @NonNull
110110

111111
private static void reloadCommand(@NonNull CommandSender sender) {
112112
if (!sender.hasPermission(Permissions.BUILD_TEAM_TOOLS_RELOAD)) {
113-
Utils.sendNoPermissionMessage(sender, Permissions.BUILD_TEAM_TOOLS_RELOAD);
113+
Permissions.sendNoPermissionMessage(sender, Permissions.BUILD_TEAM_TOOLS_RELOAD);
114114
return;
115115
}
116116

@@ -127,7 +127,7 @@ private static void reloadCommand(@NonNull CommandSender sender) {
127127

128128
private void updateCommand(@NotNull CommandSender sender) {
129129
if (!sender.hasPermission(Permissions.BUILD_TEAM_TOOLS_UPDATE)) {
130-
Utils.sendNoPermissionMessage(sender, Permissions.BUILD_TEAM_TOOLS_UPDATE);
130+
Permissions.sendNoPermissionMessage(sender, Permissions.BUILD_TEAM_TOOLS_UPDATE);
131131
return;
132132
}
133133

src/main/java/net/buildtheearth/buildteamtools/modules/common/components/updater/UpdaterComponent.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import net.buildtheearth.buildteamtools.BuildTeamTools;
66
import net.buildtheearth.buildteamtools.modules.ModuleComponent;
77
import net.buildtheearth.buildteamtools.modules.network.model.Permissions;
8-
import net.buildtheearth.buildteamtools.utils.Utils;
98
import net.buildtheearth.buildteamtools.utils.io.ConfigPaths;
109
import org.bukkit.Bukkit;
1110
import org.bukkit.Sound;
@@ -84,7 +83,7 @@ public void update(CommandSender sender, boolean checkMsg) {
8483

8584
public void checkForUpdates(@NonNull CommandSender sender) {
8685
if (!sender.hasPermission(Permissions.BUILD_TEAM_TOOLS_CHECK_FOR_UPDATES)) {
87-
Utils.sendNoPermissionMessage(sender, Permissions.BUILD_TEAM_TOOLS_CHECK_FOR_UPDATES);
86+
Permissions.sendNoPermissionMessage(sender, Permissions.BUILD_TEAM_TOOLS_CHECK_FOR_UPDATES);
8887
return;
8988
}
9089

src/main/java/net/buildtheearth/buildteamtools/modules/generator/components/rail/Rail.java

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,14 @@
66
import com.sk89q.worldedit.regions.CuboidRegion;
77
import com.sk89q.worldedit.regions.Polygonal2DRegion;
88
import com.sk89q.worldedit.regions.Region;
9+
import lombok.Getter;
10+
import net.buildtheearth.buildteamtools.BuildTeamTools;
911
import net.buildtheearth.buildteamtools.modules.generator.GeneratorModule;
12+
import net.buildtheearth.buildteamtools.modules.generator.components.rail.configuration.RailTypeManager;
13+
import net.buildtheearth.buildteamtools.modules.generator.components.rail.generation.RailScripts;
1014
import net.buildtheearth.buildteamtools.modules.generator.model.GeneratorComponent;
1115
import net.buildtheearth.buildteamtools.modules.generator.model.GeneratorType;
16+
import net.buildtheearth.buildteamtools.modules.network.model.Permissions;
1217
import org.bukkit.Sound;
1318
import org.bukkit.entity.Player;
1419

@@ -20,8 +25,12 @@ public class Rail extends GeneratorComponent {
2025

2126
private final Set<UUID> preparingPlayers = ConcurrentHashMap.newKeySet();
2227

28+
@Getter
29+
private final RailTypeManager railTypeManager;
30+
2331
public Rail() {
2432
super(GeneratorType.RAIL);
33+
railTypeManager = new RailTypeManager(BuildTeamTools.getInstance().getDataFolder());
2534
}
2635

2736
@Override
@@ -38,7 +47,7 @@ public boolean checkForPlayer(Player player) {
3847
"Rail Generator supports cuboid, polygonal and convex WorldEdit selections."
3948
)));
4049
player.closeInventory();
41-
player.playSound(player.getLocation(), Sound.ENTITY_ITEM_BREAK, 1.0F, 1.0F);
50+
playSound(player, Sound.ENTITY_ITEM_BREAK);
4251
return false;
4352
}
4453

@@ -50,6 +59,9 @@ private boolean isSupportedRailSelection(Region region) {
5059

5160
@Override
5261
public void generate(Player player) {
62+
if (!Permissions.checkPermission(player, Permissions.RAIL_GENERATOR_USE))
63+
return;
64+
5365
if (GeneratorModule.getInstance().isGenerating(player) || !preparingPlayers.add(player.getUniqueId())) {
5466
sendAlreadyGeneratingMessage(player);
5567
return;
@@ -67,6 +79,10 @@ private void sendAlreadyGeneratingMessage(Player player) {
6779
player.sendMessage(ChatHelper.PREFIX_COMPONENT.append(ChatHelper.getErrorComponent(
6880
"Rail Generator is already running. Please wait until the current generation is finished."
6981
)));
70-
player.playSound(player.getLocation(), Sound.ENTITY_ITEM_BREAK, 1.0F, 1.0F);
82+
playSound(player, Sound.ENTITY_ITEM_BREAK);
83+
}
84+
85+
private void playSound(Player player, Sound sound) {
86+
player.playSound(player, sound, 1.0F, 1.0F);
7187
}
7288
}

0 commit comments

Comments
 (0)