Skip to content

Commit 718f92d

Browse files
committed
feat: config and events
1 parent 1093415 commit 718f92d

6 files changed

Lines changed: 94 additions & 28 deletions

File tree

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ loader_version=0.16.14
99
loom_version=1.10-SNAPSHOT
1010

1111
# Mod Properties
12-
mod_version=1.0.0
12+
mod_version=0.0.1
1313
maven_group=lol.gito.pingremote
1414
archives_base_name=pingremote
1515

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,32 @@
11
package lol.gito.pingremote;
22

3+
import lol.gito.pingremote.config.ConfigBuilder;
4+
import lol.gito.pingremote.config.PingRemoteConfig;
35
import net.fabricmc.api.ModInitializer;
46

7+
import net.fabricmc.fabric.api.event.lifecycle.v1.ServerTickEvents;
58
import org.slf4j.Logger;
69
import org.slf4j.LoggerFactory;
710

811
public class PingRemote implements ModInitializer {
912
public static final String MOD_ID = "pingremote";
1013
public static final Logger LOGGER = LoggerFactory.getLogger(MOD_ID);
14+
public static PingRemoteConfig config;
15+
public static int counter;
1116

1217
@Override
1318
public void onInitialize() {
14-
LOGGER.info("Hello Fabric world!");
19+
LOGGER.info("Ping Remote initialized.");
20+
config = ConfigBuilder.load(PingRemoteConfig.class, MOD_ID);
21+
22+
ServerTickEvents.START_SERVER_TICK.register((serverWorld) -> {
23+
PingRemote.counter++;
24+
});
25+
26+
ServerTickEvents.END_WORLD_TICK.register((serverWorld) -> {
27+
if (PingRemote.counter == PingRemote.config.getTickAmount()) {
28+
29+
}
30+
});
1531
}
1632
}
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package lol.gito.pingremote.config;
2+
3+
import com.google.gson.Gson;
4+
import com.google.gson.GsonBuilder;
5+
6+
import java.io.File;
7+
import java.io.FileReader;
8+
import java.io.PrintWriter;
9+
10+
public class ConfigBuilder<T> {
11+
private final Class<T> clazz;
12+
private final String path;
13+
14+
private ConfigBuilder(Class<T> clazz, String path) {
15+
this.clazz = clazz;
16+
this.path = path;
17+
}
18+
19+
public static <T> T load(Class<T> clazz, String path) {
20+
return new ConfigBuilder<>(clazz, path)._load();
21+
}
22+
23+
public T _load() {
24+
Gson gson = new GsonBuilder()
25+
.disableHtmlEscaping()
26+
.setPrettyPrinting()
27+
.create();
28+
29+
T config = gson.fromJson("{}", clazz);
30+
File configFile = new File("config/" + path + ".json");
31+
configFile.getParentFile().mkdirs();
32+
33+
if (configFile.exists()) {
34+
try (FileReader fileReader = new FileReader(configFile)) {
35+
config = gson.fromJson(fileReader, clazz);
36+
} catch (Exception e) {
37+
System.out.println("Error reading config file");
38+
}
39+
}
40+
41+
try (PrintWriter pw = new PrintWriter(configFile)) {
42+
gson.toJson(config, pw);
43+
} catch (Exception e) {
44+
System.out.println("Error writing config file");
45+
}
46+
47+
return config;
48+
}
49+
}
50+
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package lol.gito.pingremote.config;
2+
3+
import java.net.URL;
4+
5+
public class PingRemoteConfig {
6+
private URL remoteHost;
7+
private int tickAmount = 6000;
8+
9+
public URL getRemoteHost() {
10+
return remoteHost;
11+
}
12+
13+
public void setRemoteHost(URL remoteHost) {
14+
this.remoteHost = remoteHost;
15+
}
16+
17+
public int getTickAmount() {
18+
return tickAmount;
19+
}
20+
21+
public void setTickAmount(int tickAmount) {
22+
this.tickAmount = tickAmount;
23+
}
24+
}

src/main/java/lol/gito/pingremote/mixin/ExampleMixin.java

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

src/main/resources/fabric.mod.json

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"name": "Ping Remote",
66
"description": "This is an example description! Tell everyone what your mod is about!",
77
"authors": [
8-
"Me!"
8+
"Gitoido"
99
],
1010
"contact": {
1111
"homepage": "https://fabricmc.net/",
@@ -17,18 +17,9 @@
1717
"entrypoints": {
1818
"main": [
1919
"lol.gito.pingremote.PingRemote"
20-
],
21-
"client": [
22-
"lol.gito.pingremote.PingRemoteClient"
2320
]
2421
},
25-
"mixins": [
26-
"pingremote.mixins.json",
27-
{
28-
"config": "pingremote.client.mixins.json",
29-
"environment": "client"
30-
}
31-
],
22+
"mixins": [],
3223
"depends": {
3324
"fabricloader": ">=0.16.14",
3425
"minecraft": "~1.21.1",

0 commit comments

Comments
 (0)