11package net .stonebound .simpleircbridge .simpleircbridge ;
22
33import com .mojang .logging .LogUtils ;
4- import net .minecraftforge .api .distmarker .Dist ;
5- import net .minecraftforge .api .distmarker .OnlyIn ;
6- import net .minecraftforge .common .ForgeHooks ;
7- import net .minecraftforge .common .MinecraftForge ;
8- import net .minecraftforge .event .server .ServerStartingEvent ;
9- import net .minecraftforge .event .server .ServerStoppedEvent ;
10- import net .minecraftforge .event .server .ServerStoppingEvent ;
11- import net .minecraftforge .eventbus .api .SubscribeEvent ;
12- import net .minecraftforge .fml .IExtensionPoint ;
13- import net .minecraftforge .fml .ModLoadingContext ;
14- import net .minecraftforge .fml .config .ModConfig ;
15- import net .minecraftforge .fml .loading .FMLPaths ;
16- import net .minecraftforge .network .NetworkConstants ;
17- import net .minecraftforge .server .ServerLifecycleHooks ;
4+ import dev .architectury .event .EventResult ;
5+ import dev .architectury .event .events .common .ChatEvent ;
6+ import dev .architectury .event .events .common .LifecycleEvent ;
7+ import dev .architectury .event .events .common .PlayerEvent ;
8+ import net .minecraft .network .chat .Component ;
9+ import net .minecraft .server .level .ServerPlayer ;
1810import net .minecraft .server .MinecraftServer ;
19- import net .minecraftforge . fml . common . Mod ;
11+ import net .stonebound . simpleircbridge . utils . MircColors ;
2012import org .slf4j .Logger ;
2113
14+ import static net .stonebound .simpleircbridge .simpleircbridge .ConfigHolder .MemoryConfigs ;
15+
16+
17+ public class SimpleIRCBridgeCommon {
2218
23- @ OnlyIn (Dist .DEDICATED_SERVER )
24- @ Mod (SimpleIRCBridge .MODID )
25- public class SimpleIRCBridge {
26- public static final String MODID = "simpleircbridge" ;
2719
2820 public static final Logger logger = LogUtils .getLogger ();
2921 private BridgeIRCBot bot ;
3022 private MinecraftServer mcServer ;
23+ public static GameEventHandler eventHandler ;
24+
25+ public static String indicator = "This is a string to remind git this is a different file" ;
26+
27+ public SimpleIRCBridgeCommon () {
28+ eventHandler = new GameEventHandler (this );
3129
32- public SimpleIRCBridge () {
33- ModLoadingContext .get ().registerConfig (ModConfig .Type .COMMON , SIBConfig .SERVER_CONFIG );
34- ModLoadingContext .get ().registerExtensionPoint (IExtensionPoint .DisplayTest .class , () -> new IExtensionPoint .DisplayTest (() -> NetworkConstants .IGNORESERVERONLY , (a , b ) -> true ));
3530
36- MinecraftForge .EVENT_BUS .register (this );
37- MinecraftForge .EVENT_BUS .register (new GameEventHandler (this ));
31+ PlayerEvent .PLAYER_JOIN .register ((Playerjoin ) -> eventHandler .playerLoggedIn (Playerjoin ));
32+ PlayerEvent .PLAYER_QUIT .register ((Playerquit ) -> eventHandler .playerLoggedOut (Playerquit ));
33+
34+ ChatEvent .RECEIVED .register ((ServerPlayer player , Component chat ) -> {
35+ eventHandler .serverChat (player , chat );
36+ return EventResult .pass ();
37+ });
38+ LifecycleEvent .SERVER_STARTING .register (this ::serverStarting );
39+ LifecycleEvent .SERVER_STOPPING .register (this ::serverStopping );
40+ LifecycleEvent .SERVER_STOPPED .register (this ::serverStopped );
3841
39- SIBConfig .loadConfig (SIBConfig .SERVER_CONFIG , FMLPaths .CONFIGDIR .get ().resolve ("simpleircbridge-common.toml" ));
4042 }
4143
42- @ SubscribeEvent
43- public void serverStarting (ServerStartingEvent event ) {
44- this .mcServer = ServerLifecycleHooks . getCurrentServer () ;
44+
45+ public void serverStarting (MinecraftServer instance ) {
46+ this .mcServer = instance ;
4547 this .bot = new BridgeIRCBot (this );
4648 this .bot .run ();
4749 }
4850
49- @ SubscribeEvent
50- public void serverStopping (ServerStoppingEvent event ) {
51- this .bot .disconnect ();
51+ public void serverStopping (MinecraftServer instance ) {
52+ if (this .mcServer != null && Boolean .parseBoolean (MemoryConfigs .get ("timestop" ).value )) {
53+ this .mcServer .getPlayerList ().getPlayers ().forEach (player -> sendToIrc (MircColors .BOLD + MircColors .LIGHT_RED + ">>>" + player .getName ().getString () + " was still online when time came to a halt<<<" ));
54+ }
55+ if (this .bot != null ) {
56+ this .bot .disconnect ();
57+ }
58+
5259 }
5360
54- @ SubscribeEvent
55- public void serverStopped (ServerStoppedEvent event ) {
56- this .bot .kill ();
57- this .bot = null ;
61+ public void serverStopped (MinecraftServer instance ) {
62+ if (this .bot != null ) {
63+ this .bot .kill ();
64+ this .bot = null ;
65+ }
66+
5867 this .mcServer = null ;
5968 }
6069
61- /* package-private */ static Logger log () {
70+ /* package-private */
71+ static Logger log () {
6272 return logger ;
6373 }
6474
6575 /* package-private */ void sendToIrc (String line ) {
6676 if (this .bot != null ) {
67- this .bot .sendMessage (SIBConfig . IRC_CHANNEL . get (). toString () , line );
77+ this .bot .sendMessage (MemoryConfigs . get ("channel" ). value , line );
6878 }
6979 }
7080
71- /* package-private */ void sendToMinecraft (String line ) {
81+ /* package-private */
82+ void sendToMinecraft (String line ){
7283 if (this .mcServer != null ) {
73- this .mcServer .getPlayerList ().getPlayers ().forEach (player -> player .sendSystemMessage (ForgeHooks . newChatWithLinks (line )));
84+ this .mcServer .getPlayerList ().getPlayers ().forEach (player -> player .sendSystemMessage (Component . literal (line )));
7485 }
7586 }
76- }
87+ }
0 commit comments