@@ -7,12 +7,28 @@ This is the Seriously Necessary Adapter Plugin to enable plugins written against
7
7
8
8
Simply add the Bungee plugins into the plugins folder inside the Snap plugin folder.
9
9
10
- Snap will load the plugins from there and translate methods, classes as well as event
11
- calls.
10
+ Snap will use it's own instance of BungeeCord's plugin manager to load the plugins
11
+ from there and translate BungeeCord methods, classes as well as event calls to the
12
+ respective Velocity ones and vice versa.
12
13
14
+ ## Why?
15
+
16
+ Originally I wanted to document the Velocity equivalents to Bungee events, methods
17
+ and classes. This evolved into the idea of writing a converter for source code which
18
+ led me to decide to try to make a plugin which can directly load Bungee plugins.
19
+
20
+ Seeing as the proxies don't have too much logic that seems to have worked although
21
+ it is definitely a lot more inefficient than just running native Velocity plugins
22
+ due lots of classes being in need of getting translated on the fly.
23
+
24
+ Technically this could be made in a way that is a lot more efficient by directly
25
+ modifying the Velocity or BungeeCord source code to extend the respective other
26
+ classes but in practice that massively increases the work required to get this
27
+ plugin running, and that's all I wanted to do for now.
28
+
13
29
## What works?
14
30
15
- Most of it (hopefully). I mean that's the goal...
31
+ Most of it (hopefully). I mean that's the goal... make sure to report any issues!
16
32
17
33
## What doesn't work?
18
34
@@ -40,7 +56,10 @@ If you are sure that the plugin will work fine otherwise then you can have it re
40
56
- Some ** ProxyConfig** settings don't exist on Velocity or aren't exposed in the API so
41
57
they return some sensible defaults which should reflect the proxy's state.
42
58
- Registering commands after a plugin was enabled. I currently have no good way to hook
43
- into this besides straight up modifying the PluginManager class
59
+ into this besides straight up modifying the PluginManager class which I would like to
60
+ avoid.
61
+ - Velocity plugins and Bungee plugins are not available to each other via the respective
62
+ PluginManager APIs and as dependencies. Their classes should be accessible though.
44
63
- Some connection handling and related events might not work 100% exactly like on
45
64
Bungee. They are as close as possible though but if you already have to fiddle with
46
65
that then its best to create a standalone Velocity plugin tbh.
@@ -55,6 +74,16 @@ If you are sure that the plugin will work fine otherwise then you can have it re
55
74
56
75
You can download the jar via [ GitHub releases] ( https://github.com/Phoenix616/Snap/releases )
57
76
or get builds from the latest commits from the [ Minebench.de Jenkins] ( https://ci.minebench.de/job/Snap/ ) .
77
+
78
+ ## How can I support the project?
79
+
80
+ For the start trying out the plugin and reporting what other plugins work and don't work
81
+ would already help a ton figuring out what work is still needed.
82
+
83
+ Of course I would also appreciate [ monetary help] ( https://tip.phoenix616.dev ) if the plugin
84
+ has helped you transition to Velocity either by directly using it or referencing its code to
85
+ adapt Bungee plugins to get running on Velocity natively. (Did you know that GitHub is still
86
+ doubling donations to [ my GitHub Sponsors page] ( https://ghsponsor.phoenix616.dev ) ? 😉)
58
87
59
88
## Is it open source?
60
89
0 commit comments