Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement RCON abilities #82

Closed
Naamloos opened this issue Jan 22, 2021 · 13 comments · Fixed by #259
Closed

Implement RCON abilities #82

Naamloos opened this issue Jan 22, 2021 · 13 comments · Fixed by #259
Labels
enhancement New feature or request epic Very cool future This feature will be worked on in the future hacktoberfest Issues for hacktoberfest people! priority: low Nice to have

Comments

@Naamloos
Copy link
Member

Naamloos commented Jan 22, 2021

The current console does not support user input. I don't think we'll ever implement this, because we run multiple servers on one console. A different option is implementing Minecraft's RCON protocol, so we can communicate with one specific server remotely.

https://wiki.vg/RCON

Hacktoberfest edit: welcome! Feel free to tackle this issue if you feel like it. The RCON protocol would have to be it's own class that is able to accept connections and interact with the console in/output from Obsidian. Good luck!

@Naamloos Naamloos added enhancement New feature or request epic Very cool future This feature will be worked on in the future labels Jan 22, 2021
@Naamloos
Copy link
Member Author

If we implement RCON, we could maybe add an [NoRcon] attribute to mark commands that can and will not be executed via RCON.

@Naamloos
Copy link
Member Author

Suggestion for if we do implement console input:

Add a .switch command (that can only be executed via the console) to switch to a different server's console.

@roxxel
Copy link
Contributor

roxxel commented Jan 23, 2021

We should also add attributes to mark which command can only be executed by the client/console(rcon)
[OnlyClient] & [OnlyConsole]

@Craftplacer
Copy link
Collaborator

To allow more flexibility a [IssuerScope] attribute could be useful with a accompanying flags-enum with values like None, Client, Console, RemoteConsole, Plugin (plugin issued command) and finally All = Client | Console | RemoteConsole....

In addition, a config entry probably would be advantage to server admins.

@roxxel
Copy link
Contributor

roxxel commented Jan 25, 2021

To allow more flexibility a [IssuerScope] attribute could be useful with a accompanying flags-enum with values like None, Client, Console, RemoteConsole, Plugin (plugin issued command) and finally All = Client | Console | RemoteConsole....

In addition, a config entry probably would be advantage to server admins.

Plugins can't execute commands, can they?

@Craftplacer
Copy link
Collaborator

To allow more flexibility a [IssuerScope] attribute could be useful with a accompanying flags-enum with values like None, Client, Console, RemoteConsole, Plugin (plugin issued command) and finally All = Client | Console | RemoteConsole....

In addition, a config entry probably would be advantage to server admins.

Plugins can't execute commands, can they?

It's entirely theoretical but I've seen Bukkit plugins like Essentials do that.

@Czompi
Copy link
Contributor

Czompi commented Feb 20, 2021

Suggestion for if we do implement console input:

Add a .switch command (that can only be executed via the console) to switch to a different server's console.

Also we can do like a .execute <serverId> <command> command to directly execute commands to a specific server.

@Aaron2550
Copy link
Contributor

A command only executable via RCON that returns server statistics like CPU and/or RAM usage would be kinda useful, that way a RCON client could display these stats without having to rely on a custom plugin and/or having to parse the data from command output.

@Craftplacer
Copy link
Collaborator

A command only executable via RCON that returns server statistics like CPU and/or RAM usage would be kinda useful, that way a RCON client could display these stats without having to rely on a custom plugin and/or having to parse the data from command output.

I don't entirely know why this should be only accessible over RCON. Besides that, I think it should be possible to override server commands (that Obsidian provides commands may be nice but maybe not everyone likes them), any thoughts on that?

@Aaron2550
Copy link
Contributor

I don't entirely know why this should be only accessible over RCON.

Well i mean theres no real reason to make those commands RCON only, but if a player/console executes the command it should maybe return more than just a number, "Memory Usage: 7.71GB / 8GB" or something like that.

@Aaron2550
Copy link
Contributor

Quick note: Like wiki.vg says: The Character used for Color Codes (§) isnt in ASCII. Im not sure if this will be a Problem if a User sends a Command to the Server that contains a §, so i suppose we should either add:

  • A Command that lets the Server know the RCON Client is able to and wants to switch to Unicode
    or
  • Always use the Latin1 Charset
    or maybe something else i cant think of right now?

Maybe this wont even be a Problem and im just overthinking this, i just wnated to note this here.

image

@Craftplacer
Copy link
Collaborator

Quick note: Like wiki.vg says: The Character used for Color Codes (§) isnt in ASCII. Im not sure if this will be a Problem if a User sends a Command to the Server that contains a §, so i suppose we should either add:

  • A Command that lets the Server know the RCON Client is able to and wants to switch to Unicode
    or
  • Always use the Latin1 Charset
    or maybe something else i cant think of right now?

Maybe this wont even be a Problem and im just overthinking this, i just wnated to note this here.

image

I don't know if RCON is supposed to be a "remote terminal protocol", in this case I'd send ANSI escape codes.

@Naamloos
Copy link
Member Author

Naamloos commented Oct 7, 2021

It is.

@Naamloos Naamloos added the hacktoberfest Issues for hacktoberfest people! label Oct 23, 2021
@Naamloos Naamloos added the priority: low Nice to have label Jan 9, 2022
@ndelta0 ndelta0 mentioned this issue May 5, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request epic Very cool future This feature will be worked on in the future hacktoberfest Issues for hacktoberfest people! priority: low Nice to have
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants