Hey, I am new to the Rust plugin development, but not to the .net and C#(I work with it daily at my job) and I noticed this annoying thing... these plugins are written in one class file, at least every tutorial I found. Which breaks SOLID and makes the code unreadable... Was messing around with, found that I can create in my solution 2 projects, one called plugindll and another one the actual plugin and react to events etc in the plugin project and perform the logic in the DLL project. And then inside the server place the .cs file inside plugins and the build plugindll.dll file in the DLL folders. But the thing is if I write new logic in the DLL project I have to restart the server to have any changes for the DLL file. Is there any way to reload the DLLs files without restarting server? Or is there any other way how to have this file separation so everything is not made in one file for my plugin?
Seperation of pluginSolved
Plugins can be created as a single .cs file or as a plugin embedded in a .dll extension. There are also tools floating around that support merging multiple classes into a single .cs plugin.
Plugins can be made to call other plugins as well as have "include" files (oxide/plugins/include) that plugins can reference.
Can I have an example of "plugin embedded in a .dll extension" or is it the thing I am already doing? And if so it is what I am doing how can I reload(Updated with new methods etc) the .dll extension without restarting the server. And also an example of the "tools floating around that support merging multiple classes into a single .cs plugin"Wulf
Plugins can be created as a single .cs file or as a plugin embedded in a .dll extension. There are also tools floating around that support merging multiple classes into a single .cs plugin.
Plugins can be made to call other plugins as well as have "include" files (oxide/plugins/include) that plugins can reference.
Extensions aren't hotloadable at the moment, but most of Oxide is made of extensions.Latvish
Can I have an example of "plugin embedded in a .dll extension" or is it the thing I am already doing? And if so it is what I am doing how can I reload(Updated with new methods etc) the .dll extension without restarting the server. And also an example of the "tools floating around that support merging multiple classes into a single .cs plugin"
As far as single plugins go, having regions in them helps with organization if you aren't familiar with those.
Welp that kinda sucks that Extensions aren't hot loadable would be a nice feature for the code separation so is more SOLID and readable. Jea I saw the regions but the thing is that c# isn't a scripting language but is an Object-oriented language like java, so this single file architecture is a no-go.Wulf
Extensions aren't hotloadable at the moment, but most of Oxide is made of extensions.
As far as single plugins go, having regions in them helps with organization if you aren't familiar with those.
Here is one of the other options I mentioned: dassjosh/Plugin.Merge: Oxide / uMod .cs file merge tool (github.com)
Wulf
Here is one of the other options I mentioned: dassjosh/Plugin.Merge: Oxide / uMod .cs file merge tool (github.com)
Thanks will check this out, this looks promising.
UPDATE:
Tested it worked very nicely. Would recommend
Locked automatically