Obsidian
Obsidian copied to clipboard
A C# implementation of the Minecraft server protocol.
Depends on #66. https://wiki.vg/Protocol#Update_Light
Networking can be made a lot faster and more clients can be handled. The idea is to use [SocketAsyncEventArgs](https://docs.microsoft.com/en-us/dotnet/api/system.net.sockets.socketasynceventargs?view=net-5.0), pure TCP [Socket](https://docs.microsoft.com/en-us/dotnet/api/system.net.sockets.socket?view=net-5.0) and a custom lightweight buffered stream. Resources: https://github.com/chronoxor/NetCoreServer/blob/master/source/NetCoreServer/TcpServer.cs...
Provide a set of completions, warnings, fixes etc. for plugin developers working with `Obsidian.API`. For certain code actions, making an extension might be needed (I don't think that analyzers can...
Adding this feature was decided by a discord poll. Nullable annotation should be enabled in the whole solution.
Currently we load assets at runtime upon server start. This could be changed so that assets are parsed at compile time and injected into code with a source generator. Startup...
In the future, it may be timeworthy to look into different GC settings. Server garbage collection in particular looks appealing. It should be significantly faster, but also consume more resources...
`Commands.TestCommandExec()` fails with an exception: ``` ❌ Obsidian.Commands.Framework.Exceptions.InvalidCommandOverloadException : No such overload for command pong ``` It seems that command groups are not registered properly.
Allow Obsidian plugins to have nuget dependencies. They should be correctly: - detected - checked for duplicity - downloaded - loaded There might be a problem with versioning? [Related StackOverflow...
In an effort to streamline and standardize DI, logging, and the lifetime of the bot, I would like to propose changing to a GenericHost. Items to discuss: * [ ]...
Currently, if a plugin is unloaded, its dependencies are not informed. Unexpected or undocumented behavior may occur when attempting to interact with the unloaded plugin. When a plugin unloads itself...