-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathGuiApiMod.java
More file actions
49 lines (38 loc) · 1.98 KB
/
Copy pathGuiApiMod.java
File metadata and controls
49 lines (38 loc) · 1.98 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package dev.toolkitmc.guiapi;
import dev.toolkitmc.guiapi.command.GuiCommand;
import dev.toolkitmc.guiapi.component.GuiApiComponents;
import dev.toolkitmc.guiapi.config.GuiApiConfig;
import dev.toolkitmc.guiapi.event.OpenGuiItemUseHandler;
import dev.toolkitmc.guiapi.loader.GuiRegistry;
import dev.toolkitmc.guiapi.gui.BarrelGuiHandler;
import net.fabricmc.api.ModInitializer;
import net.fabricmc.fabric.api.command.v2.CommandRegistrationCallback;
import net.fabricmc.fabric.api.resource.ResourceManagerHelper;
import net.fabricmc.fabric.api.event.lifecycle.v1.ServerTickEvents;
import net.fabricmc.fabric.api.networking.v1.ServerPlayConnectionEvents;
import net.minecraft.server.packs.PackType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class GuiApiMod implements ModInitializer {
public static final String MOD_ID = "guiapi";
public static final Logger LOGGER = LoggerFactory.getLogger(MOD_ID);
@Override
public void onInitialize() {
LOGGER.info("[GuiAPI] Initializing...");
GuiApiConfig.INSTANCE.load();
// Triggers GuiApiComponents' static init block, registering guiapi:open_gui.
GuiApiComponents.register();
OpenGuiItemUseHandler.register();
ResourceManagerHelper.get(PackType.SERVER_DATA)
.registerReloadListener(GuiRegistry.INSTANCE);
CommandRegistrationCallback.EVENT.register((dispatcher, context, selection) ->
GuiCommand.register(dispatcher));
// Register Server Tick Event for Auto-Refreshing GUIs (tick_rate)
ServerTickEvents.END_SERVER_TICK.register(BarrelGuiHandler::tick);
// Release per-player cooldown state on disconnect to avoid a slow memory leak
// for players who close the GUI without triggering the normal close-cleanup path.
ServerPlayConnectionEvents.DISCONNECT.register((handler, server) ->
BarrelGuiHandler.onPlayerDisconnect(handler.getPlayer().getUUID()));
LOGGER.info("[GuiAPI] Ready.");
}
}