2
2
3
3
import com .denizenscript .denizencore .DenizenCore ;
4
4
import com .denizenscript .denizencore .scripts .ScriptHelper ;
5
- import com .denizenscript .denizencore .utilities .ReflectionHelper ;
6
5
import com .denizenscript .denizencore .utilities .YamlConfiguration ;
7
6
import com .denizenscript .denizencore .utilities .debugging .Debug ;
8
7
import net .fabricmc .fabric .api .client .networking .v1 .ClientPlayConnectionEvents ;
9
8
import net .fabricmc .fabric .api .client .networking .v1 .ClientPlayNetworking ;
10
9
import net .fabricmc .fabric .api .networking .v1 .PacketByteBufs ;
11
10
import net .minecraft .util .Identifier ;
12
11
13
- import java .util .HashMap ;
14
12
import java .util .Map ;
15
13
16
14
public class NetworkManager {
17
15
18
- public static final Map <String , String > scriptSources = ReflectionHelper .getFieldValue (ScriptHelper .class , "scriptSources" , null );
19
-
20
16
public static void init () {
21
17
Debug .log ("Initializing NetworkManager..." );
22
18
ClientPlayConnectionEvents .JOIN .register (((handler , sender , client ) -> {
@@ -26,17 +22,13 @@ public static void init() {
26
22
27
23
// Register receivers
28
24
registerInChannel (Channels .SET_SCRIPTS , (message ) -> {
29
- Map <String , String > scripts = message .readStringMap ();
25
+ Map <String , String > scriptsMap = message .readStringMap ();
30
26
DenizenCore .runOnMainThread (() -> {
31
- ScriptHelper .additionalScripts .clear ();
32
- scriptSources .clear ();
33
- for (Map .Entry <String , String > entry : scripts .entrySet ()) {
34
- ScriptHelper .additionalScripts .add (YamlConfiguration .load (ScriptHelper .clearComments (entry .getKey (), entry .getValue (), true )));
27
+ ScriptHelper .buildAdditionalScripts .clear ();
28
+ for (Map .Entry <String , String > entry : scriptsMap .entrySet ()) {
29
+ ScriptHelper .buildAdditionalScripts .add (scripts -> scripts .add (YamlConfiguration .load (ScriptHelper .clearComments (entry .getKey (), entry .getValue (), true ))));
35
30
}
36
- Map <String , String > backupSources = new HashMap <>(scriptSources );
37
- DenizenCore .reloadScripts ();
38
- // TODO: this is a temporary hack, should be properly fixed in core / Clientizen
39
- scriptSources .putAll (backupSources );
31
+ DenizenCore .reloadScripts (true , null );
40
32
});
41
33
});
42
34
}
0 commit comments