General plugin inheritance/interfacing question

Hello - complete uMod noob here.

I've decided to try and set up my own Rust server with Oxide as a side project. I'm already very familiar and confident working with C# however I'm completely new to applying this knowledge to an Oxide plugin.

My first question is: is it possible to implement a plugin that inherits/interfaces with another class?

For example: I want to add a plugin that will log the amount of time played by a player over the past week. In order to implement this, I've 'designed' a class diagram that would require an interface (we'll call it ISqlOperations), which creates contracts to implement some generic GetAll, GetById methods and a base class (we'll call it BaseSqlEntity) that will allow it's children to inherit the same SQL connection info.

Is it possible to define a new plugin (like the one I've briefly described) but also have interfacing/inheritance like I've described?


Thanks!

The plugin's main class must be inheriting one of the plugin types we provide though, such as RustPlugin, CovalencePlugin, etc. Aside from that, there shouldn't be any reason why you couldn't inherit or use an interface.
Sounds great, thanks Wulf.

I take it that any base classes or interfaces that are written need to be dumped into the same folder as all plugins on the server?
In response to defrrdClock ():
Sounds great, thanks Wulf.

I take it that any base classes or interfaces that are written...
You wouldn't be able to have separate files like that; they'd all need to be in the same plugin or placed under oxide/plugins/include and then referenced.