Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bumer-32/i-want-to-control-my-server
Simple minecraft mod, which allows you to connect to your server and control it
https://github.com/bumer-32/i-want-to-control-my-server
fabric fabric-mod fabric-modding fabric-mods fabricmc fabricmc-mod fabricmc-mods fabricmc-serverside-mod java kotlin minecaft-mod minecraft minecraft-modding minecraft-server-mod minecraft-server-plugin
Last synced: about 2 months ago
JSON representation
Simple minecraft mod, which allows you to connect to your server and control it
- Host: GitHub
- URL: https://github.com/bumer-32/i-want-to-control-my-server
- Owner: Bumer-32
- License: apache-2.0
- Created: 2024-09-28T19:46:28.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-11-02T12:50:07.000Z (about 2 months ago)
- Last Synced: 2024-11-02T13:28:10.943Z (about 2 months ago)
- Topics: fabric, fabric-mod, fabric-modding, fabric-mods, fabricmc, fabricmc-mod, fabricmc-mods, fabricmc-serverside-mod, java, kotlin, minecaft-mod, minecraft, minecraft-modding, minecraft-server-mod, minecraft-server-plugin
- Language: Kotlin
- Homepage: https://modrinth.com/mod/i-want-to-control-my-server
- Size: 105 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# I-Want-To-Control-My-Server
### or just IWTCMSSimple minecraft mod, which allows you to connect to your server and control it
---
## Configuration
```json
{
"ip": "127.0.0.1",
"port": 25566,
"logLevel": "INFO",
"useSSL": false,
"useAuthentication": false,
"authenticationPassword": ""
}
```
``ip: any ip you want to connect. By default it's 127.0.0.1 (localhost)````port: any free port (DONT USE 25565). By default it's 25566``
``logLevel: how much logs you get in client. can be TRACE, DEBUG, INFO, WARN, ERROR. By default it's INFO``
``useSSL: enabling SSL for internal server, clients must connect with SSL or they can't send/receive any data. By default it's disabled(false) BUT highly recommended to enable(true) it and setup SSL connection.``
``useAuthentication: enabling password for clients, client can't receive/send messages from/to server before login. By default it's disabled(false) BUT highly recommended to enable(true) it password.``
``"authenticationPassword": password for clients, works only if useAuthentication enabled, iwtcms_login {password} to login. By default it's "" and needs change.``
---There's also a simple example of client written on python:
https://github.com/Bumer-32/I-Want-To-Control-My-Server/blob/main/iwtcms_client.py
Or if you have enabled SSL:
https://github.com/Bumer-32/I-Want-To-Control-My-Server/blob/main/iwtcms_ssl_client.py
---
## Generating SSL key
If you have enabled SSL, you should to generate SSL keys
In fact,
if you have installed java
(if you playing minecraft or running minecraft server, I'm pretty sure you have installed java (or you alien))
**you already have installed *keygen***In my case, I have installed java at C:\Program Files\Java\jdk-21,
so *keygen* in my case located at C:\Program Files\Java\jdk-21\bin\keytool.exeSo just locate your java, and replace YOUR_JAVA_HERE in one of the commands below,
and launch it in CMD/BASH/POWERSHELL#### Example
#### *Before*
``& "YOUR_JAVA_HERE\bin\keytool.exe" -genkeypair -alias selfsigned -keyalg RSA -keystore keystore.jks -storepass keystorePassword -validity 365 -keysize 2048 -dname "CN=YourCommonName, OU=Test, O=YourOrganizationalUnit, L=YourCity, S=YourState, C=YourCountryCode"``
#### *After*
``& "C:\Program Files\Java\jdk-21\bin\keytool.exe" -genkeypair -alias selfsigned -keyalg RSA -keystore keystore.jks -storepass keystorePassword -validity 365 -keysize 2048 -dname "CN=YourCommonName, OU=Test, O=YourOrganizationalUnit, L=YourCity, S=YourState, C=YourCountryCode"``Oh, I almost forgot!
Don't forget to enter your data at the end of script, data must be written in file for better security.#### Example
```
CN=John Doe
OU=Development
O=Tech Innovations Inc
L=Springfield
S=Illinois
C=US
```
btw. Such a person does not exist#### Result
``& "C:\Program Files\Java\jdk-21\bin\keytool.exe" -genkeypair -alias selfsigned -keyalg RSA -keystore keystore.jks -storepass keystorePassword -validity 365 -keysize 2048 -dname "CN=John Doe, OU=Development, O=Tech Innovations Inc, L=Springfield, S=Illinois, C=US"``After *keygen* generates a file with the name "keystore.jks"
at directory which CMD/BASH/POWERSHELL been launched, just copy this file to **YOUR_SERVER/config/iwtcms/**### Commands HERE
#### CMD, BASH
```cmd
"YOUR_JAVA_HERE\bin\keytool.exe" -genkeypair -alias selfsigned -keyalg RSA -keystore keystore.jks -storepass keystorePassword -validity 365 -keysize 2048 -dname "CN=YourCommonName, OU=YourOrganizationalUnit, O=YourOrganization, L=YourCity, S=YourState, C=YourCountryCode"
```
#### POWERSHELL
```powershell
& "YOUR_JAVA_HERE\bin\keytool.exe" -genkeypair -alias selfsigned -keyalg RSA -keystore keystore.jks -storepass keystorePassword -validity 365 -keysize 2048 -dname "CN=YourCommonName, OU=Test, O=YourOrganizationalUnit, L=YourCity, S=YourState, C=YourCountryCode"
```---
## Custom commands
These commands are available only through connecting to IWTCMS internal server,
and didn't available from the default minecraft console.To "execute" this command, just send it to server.
##### Note: All these commands start with "iwtcms_"
| command | args | example usage | function | response | response type |
|-----------------|-----------------------------------------|-------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------|---------------|
| iwtcms_ping | | iwtcms_ping | Pings server, e.g. you can check is it alive | iwtcms_pong\n | text |
| iwtcms_login | password: hash (sha256) coded in string | iwtcms_login a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b4f8e0f1fbc8ed2a3 | Logins if password enabled, if client not logged it can't receive/send messages from/to server and receives iwtcms_not_authorized\n | iwtcms_login_success\n \|\| iwtcms_login_failed\n | text |
| iwtcms_shutdown | | iwtcms_shutdown | Shutdown connection with **this** client | iwtcms_shutdown\n | text |---
## Plans:
| Idea | Ready? |
|-------------------------------------------------------------------------------------------|-------:|
| Any security? Maybe password or something else, because now anyone can connect to console | ✔️ |
| Cool remote client for server, maybe site with client or just application | ❌ |
| Port to forge (Not sure) | ❌ |---