Commit Graph

86 Commits

Author SHA1 Message Date
mworzala
98067f966e bye bye linked list 2022-01-10 16:51:21 +01:00
mworzala
d1124be0f3 Use enum for internal ExtensionManager state 2022-01-10 16:51:21 +01:00
mworzala
d273ff401b Run extension pre/post/init at sensible times. 2022-01-10 16:51:21 +01:00
Matt Worzala
0491a63e0c Remove extension observer mechanism and cleanup/simplify classloader 2022-01-10 16:51:21 +01:00
Matt Worzala
4d089d84fb Cleanup 2022-01-10 16:51:21 +01:00
Matt Worzala
58e5bab5da Stop using ExtensionDependencyResolver, load external dependencies correctly 2022-01-10 16:51:21 +01:00
Matt Worzala
9f5122019f Remove dynamic extension unload/reload (dynamic load from file still exists) 2022-01-10 16:51:21 +01:00
Matt Worzala
0c6e4c0129 Remove Bootstrap, MinestomRootClassLoader. Cleanup 2022-01-10 16:51:21 +01:00
Matt Worzala
7130cc9dc9 Working extensions + extension dependencies without MSRC
The code is pretty messy, and external dependencies do not work (i dont think). MSEC instances now have a parent of MinecraftServer's CL and use the regular Java classloader search path (parent first). If the class cannot be found (its in a dependency), then it searches through its child classloaders (of which the dependency is one).
2022-01-10 16:51:21 +01:00
Matt Worzala
18ecefd97a remove code modification, bootstrap + MinestomRootClassLoader still required for now 2022-01-10 16:51:21 +01:00
Xavier Niochaut
9ab4277502 Port to Hephaistos v2 (#424) 2022-01-10 16:51:21 +01:00
TheMode
7891cc5bbe Use more instanceof pattern matching
Signed-off-by: TheMode <themode@outlook.fr>
2021-10-22 02:19:38 +02:00
TheMode
8cbd6460f4 Cleanup...
Signed-off-by: TheMode <themode@outlook.fr>
2021-09-05 03:40:30 +02:00
TheMode
f3524d4a4f Use var to replace verbose map entrySet loop 2021-08-16 01:29:46 +02:00
djytw
8f771bb867 more 2021-07-08 20:25:10 +02:00
djytw
694d05e78a Fix resource load in Windows 2021-07-08 18:42:38 +02:00
LeoDog896
4b4c3cda32 Ensure proper error when extension.json is missing 2021-06-19 18:12:56 -04:00
TheMode
8c6d7ad1c3 Provide an event node per extension 2021-06-08 16:25:46 +02:00
Matt Worzala
a749f07a3f
Inline nullable and nonnull annotations 2021-05-21 08:56:30 -04:00
Matt Worzala
51409705e1
Stop using reflection, update to latest 2021-05-20 22:26:35 -04:00
LeoDog896
ee590e8325 Add meta 2021-04-17 15:00:52 -04:00
themode
49397957a2 Style cleanup, add more information when the server is not run using bootstrap 2021-04-05 18:24:38 +02:00
LeoDog896
d896cda22c Add comment describing null check 2021-03-26 19:52:31 -04:00
LeoDog896
78734b5a3c Add null check to makeClassLoader 2021-03-26 19:32:18 -04:00
LeoDog896
c60b92394c jglr's notes 2021-03-24 15:55:48 -04:00
LeoDog896
1b6bf4f173 Comment fixes 2021-03-24 15:53:02 -04:00
LeoDog896
69efdfd63f Spacing, more annotations 2021-03-24 13:25:36 -04:00
LeoDog896
606079ea98 Move cleanup to front, don't discover if not necessary 2021-03-24 12:23:44 -04:00
LeoDog896
2de657bca6 Outsource classloader to DiscoveredExtension 2021-03-24 12:16:29 -04:00
LeoDog896
0fe222ea85 Small docs cleanup 2021-03-24 11:58:51 -04:00
LeoDog896
faa53b3d48 Cleanup, renaming, and docs 2021-03-24 11:55:46 -04:00
LeoDog896
5e92e04c29 JavaDocs 2021-03-24 11:23:56 -04:00
LeoDog896
5e52121f3b Use one LinkedHashMap instead of multiple lists 2021-03-24 08:48:55 -04:00
LeoDog896
f2924b37a1 Make logger public
Good for encompassing logs EX a hanging System.out log can be passed back to the extension that called it
2021-03-24 08:48:37 -04:00
LeoDog896
34a56cf00e Move to Map of Extension 2021-03-24 08:39:47 -04:00
LeoDog896
e9a5389680 More scoping 2021-03-23 20:13:15 -04:00
LeoDog896
b5728e2255 Scope the dependency map 2021-03-23 20:04:25 -04:00
LeoDog896
1de1fb062d Better mapping! 2021-03-23 19:59:40 -04:00
LeoDog896
79a8f4bd93 General style alignment 2021-03-23 11:50:42 -04:00
LeoDog896
5adbbd8c45 Style cleanup
Note: Stream is nice to have in some places, just *please* don't abuse it
2021-03-23 11:42:32 -04:00
LeoDog896
701b1cb2e5 Move to DiscoveredExtension vs ExtensionDescription
For those who are wondering why I replaced some streams:

https://stackoverflow.com/questions/16635398/java-8-iterable-foreach-vs-foreach-loop
2021-03-23 11:35:52 -04:00
jglrxavpok
e40186a2aa Periodically remove extension observers (every minute at the moment) 2021-02-17 17:37:54 +01:00
jglrxavpok
6addd63396 Fix extension subdependencies not being loaded + Test that J9 modules are supported 2021-02-04 20:40:12 +01:00
jglrxavpok
9ce7a08d12 Extension can check if their code modifiers (including Mixins) loaded correctly 2021-02-04 19:11:43 +01:00
jglrxavpok
2a96beb819 Extensions will be unloaded when server is stopped 2021-02-03 20:56:36 +01:00
jglrxavpok
a63e9462c2 All EventHandler remove extension callback when the extension unloads 2021-02-03 20:47:01 +01:00
jglrxavpok
c8e311855f Auto-unschedule and cancel tasks from extensions 2021-02-03 17:51:14 +01:00
jglrxavpok
eadd4a2b39 Automatically unload GlobalEventHandler callbacks 2021-02-03 17:11:06 +01:00
jglrxavpok
2b5d67a3ca Don't crash the server if Mixin can't be loaded due to identical file names inside the JAR file.
But please spam the console.
2021-02-02 14:49:19 +01:00
jglrxavpok
9b9565dbbd Early loading of Mixin and code modifiers
+ System property to disable early loading if necessary
2021-02-02 12:44:57 +01:00