Skip to content

Commit fdb96c3

Browse files
committed
Working Prototype
1 parent 363d0ad commit fdb96c3

17 files changed

Lines changed: 1177 additions & 107 deletions

build.gradle

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ dependencies {
2929
// Fabric API. This is technically optional, but you probably want it anyway.
3030
modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"
3131

32+
// Permissions
33+
include(modImplementation("me.lucko:fabric-permissions-api:${project.fabric_permissions_version}"))
3234
}
3335

3436
processResources {

gradle.properties

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,5 @@ maven_group=sam.packer
1717
archives_base_name=packer
1818

1919
# Dependencies
20-
fabric_version=0.138.3+1.21.10
20+
fabric_version=0.138.3+1.21.10
21+
fabric_permissions_version=0.5.0

src/main/java/sam/packer/Packer.java

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -5,44 +5,40 @@
55
import net.fabricmc.fabric.api.command.v2.CommandRegistrationCallback;
66
import net.fabricmc.fabric.api.entity.event.v1.ServerPlayerEvents;
77
import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents;
8-
import net.minecraft.commands.Commands;
9-
import net.minecraft.network.chat.Component;
8+
import net.minecraft.server.dedicated.DedicatedServer;
109
import org.slf4j.Logger;
1110
import org.slf4j.LoggerFactory;
1211
import sam.packer.web.PackerServer;
1312

13+
1414
public class Packer implements ModInitializer {
1515

1616
public static final String MOD_ID = "packer";
1717
public static final Logger LOGGER = LoggerFactory.getLogger(MOD_ID);
1818

1919
private static PackerServer packer_server;
20-
private static PackerManager packer_manger;
20+
21+
protected static PackerManager packer_manger;
2122

2223
@Override
2324
public void onInitialize() {
24-
ServerLifecycleEvents.SERVER_STARTED.register(server -> {
25-
packer_manger = new PackerManager(server);
26-
packer_server = new PackerServer(packer_manger, 8000);
27-
});
2825

29-
ServerLifecycleEvents.SERVER_STOPPING.register(server -> {
30-
packer_server.serverClosing();
31-
});
26+
CommandRegistrationCallback.EVENT.register((dispatcher, registryAccess, environment) -> PackerManager.register_command(dispatcher));
3227

33-
CommandRegistrationCallback.EVENT.register((dispatcher, registryAccess, environment) ->
34-
dispatcher.register(Commands.literal("packer")
35-
.executes(context -> {
36-
context.getSource().sendSystemMessage(Component.literal("Welcome to packer!"));
37-
return 1;
38-
}
39-
)));
28+
ServerLifecycleEvents.SERVER_STARTED.register(server -> {
29+
if(!server.isDedicatedServer()) return;
30+
PackerConfig.load();
31+
packer_manger = new PackerManager((DedicatedServer) server);
32+
packer_server = new PackerServer(packer_manger, PackerConfig.port);
33+
});
34+
ServerLifecycleEvents.SERVER_STOPPING.register(server -> packer_server.serverClosing());
4035

36+
ServerPlayerEvents.JOIN.register(player -> packer_manger.player_joining(player));
4137
ServerPlayerEvents.LEAVE.register(player -> {
42-
38+
packer_manger.player_leaving(player);
39+
packer_server.player_leaving(player);
4340
});
4441

45-
4642
}
4743

4844

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package sam.packer;
2+
3+
import java.io.*;
4+
import java.nio.file.Path;
5+
import java.util.Properties;
6+
7+
public class PackerConfig {
8+
private static final Path CONFIG_PATH = Path.of("config", "packer.properties");
9+
public static String server_address = "localhost";
10+
public static int port = 8081;
11+
12+
public static void load() {
13+
File configFile = CONFIG_PATH.toFile();
14+
Properties props = new Properties();
15+
16+
if (configFile.exists()) {
17+
try (InputStream is = new FileInputStream(configFile)) {
18+
props.load(is);
19+
server_address = props.getProperty("server-address", "localhost");
20+
port = Integer.parseInt(props.getProperty("port", "8081"));
21+
} catch (IOException e) {
22+
Packer.LOGGER.error("Failed to load config: {}", e.getMessage());
23+
}
24+
} else {
25+
save(); // Create default file
26+
}
27+
}
28+
29+
public static void save() {
30+
try (OutputStream os = new FileOutputStream(CONFIG_PATH.toFile())) {
31+
Properties props = new Properties();
32+
props.setProperty("server-address", server_address);
33+
props.setProperty("port", String.valueOf(port));
34+
props.store(os, "Packer Configuration\nSet server-address to your Public IP or Domain.\n");
35+
} catch (IOException e) {
36+
Packer.LOGGER.error("Failed to save config: {}", e.getMessage());
37+
}
38+
}
39+
40+
}

0 commit comments

Comments
 (0)