Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| ac6fe6cb99 | |||
| 9ce27df3b8 | |||
| 2e75fdaa08 | |||
| 8c971765de |
20
README.md
20
README.md
@@ -1,6 +1,7 @@
|
|||||||
[](https://github.com/Limework/RediSkript/actions/workflows/maven.yml)
|
|
||||||
|
|
||||||
RediSkript allows you to communicate between your servers with use of Redis, it's very fast and easy to use.
|
|
||||||
|
## RediSkript
|
||||||
|
Allows you to communicate between your Minecraft servers with use of Redis and Skript, it's very fast and easy to use.
|
||||||
|
|
||||||
Skript: https://github.com/SkriptLang/Skript
|
Skript: https://github.com/SkriptLang/Skript
|
||||||
|
|
||||||
@@ -12,7 +13,11 @@ You can transfer any data in the form of text between your servers, you can prog
|
|||||||
|
|
||||||
It is developed and maintained by Govindas & the team of Govindas Limework developers.
|
It is developed and maintained by Govindas & the team of Govindas Limework developers.
|
||||||
|
|
||||||
Redis Message:
|
There is only one command: **/reloadredis** it fully reloads the configuration, you can reload IP, password, channels and everything else.
|
||||||
|
|
||||||
|
You only need to have matching configuration in every server for communication and a Redis server to connect to. I recommend using a VPS for hosting redis server, but there also are free redis hosting options available.
|
||||||
|
|
||||||
|
### Redis Message
|
||||||
```
|
```
|
||||||
on redis message:
|
on redis message:
|
||||||
if redis channel is "world":
|
if redis channel is "world":
|
||||||
@@ -24,7 +29,7 @@ command /sendredis <text> <text>:
|
|||||||
send redis message arg 1 to channel arg 2
|
send redis message arg 1 to channel arg 2
|
||||||
send redis message "hello world!" to channel "world"
|
send redis message "hello world!" to channel "world"
|
||||||
```
|
```
|
||||||
Managing variables:
|
### Managing variables
|
||||||
```
|
```
|
||||||
set variables "test::1", "test::2", "test::3" in channel "global" to 100
|
set variables "test::1", "test::2", "test::3" in channel "global" to 100
|
||||||
#then use this in any server that listens to "global" redis channel and was online when the above line was executed:
|
#then use this in any server that listens to "global" redis channel and was online when the above line was executed:
|
||||||
@@ -43,11 +48,8 @@ Syntax:
|
|||||||
variable[s] %strings% in [redis] [channel] %string%
|
variable[s] %strings% in [redis] [channel] %string%
|
||||||
```
|
```
|
||||||
|
|
||||||
There is only one command: **/reloadredis** it fully reloads the configuration, you can reload IP, password, channels and everything else.
|
### Configuration
|
||||||
|
plugins/RediSkript/config.yml
|
||||||
You only need to have matching configuration in every server for communication and a Redis server to connect to. I recommend using VPS for hosting redis server, I personally use VPS from humbleservers.com.
|
|
||||||
|
|
||||||
Configuration:
|
|
||||||
```
|
```
|
||||||
Redis:
|
Redis:
|
||||||
#a secure password that cannot be cracked, please change it!
|
#a secure password that cannot be cracked, please change it!
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>RediSkript</artifactId>
|
<artifactId>RediSkript</artifactId>
|
||||||
<groupId>net.limework</groupId>
|
<groupId>net.limework</groupId>
|
||||||
<version>1.3.5</version>
|
<version>1.3.6-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
@@ -73,11 +73,6 @@
|
|||||||
<version>1.16.5-R0.1-SNAPSHOT</version>
|
<version>1.16.5-R0.1-SNAPSHOT</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
|
||||||
<groupId>redis.clients</groupId>
|
|
||||||
<artifactId>jedis</artifactId>
|
|
||||||
<version>3.8.0</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>net.limework</groupId>
|
<groupId>net.limework</groupId>
|
||||||
<artifactId>RediSkript-core</artifactId>
|
<artifactId>RediSkript-core</artifactId>
|
||||||
|
|||||||
@@ -47,18 +47,30 @@ public class RedisController extends BinaryJedisPubSub implements Runnable {
|
|||||||
int maxConnections = config.getInt("Redis.MaxConnections");
|
int maxConnections = config.getInt("Redis.MaxConnections");
|
||||||
|
|
||||||
//do not allow less than 2 max connections as that causes issues
|
//do not allow less than 2 max connections as that causes issues
|
||||||
if (maxConnections < 2) { maxConnections = 2; }
|
if (maxConnections < 2) {
|
||||||
|
maxConnections = 2;
|
||||||
|
}
|
||||||
|
|
||||||
JConfig.setMaxTotal(maxConnections);
|
JConfig.setMaxTotal(maxConnections);
|
||||||
JConfig.setMaxIdle(maxConnections);
|
JConfig.setMaxIdle(maxConnections);
|
||||||
JConfig.setMinIdle(1);
|
JConfig.setMinIdle(1);
|
||||||
JConfig.setBlockWhenExhausted(true);
|
JConfig.setBlockWhenExhausted(true);
|
||||||
|
final String password = config.getString("Redis.Password", "");
|
||||||
|
if (password.isEmpty()) {
|
||||||
this.jedisPool = new JedisPool(JConfig,
|
this.jedisPool = new JedisPool(JConfig,
|
||||||
config.getString("Redis.Host"),
|
config.getString("Redis.Host", "127.0.0.1"),
|
||||||
config.getInt("Redis.Port"),
|
config.getInt("Redis.Port", 6379),
|
||||||
config.getInt("Redis.TimeOut"),
|
config.getInt("Redis.TimeOut", 9000),
|
||||||
config.getString("Redis.Password"),
|
config.getBoolean("Redis.useTLS", false));
|
||||||
config.getBoolean("Redis.useTLS"));
|
} else {
|
||||||
|
this.jedisPool = new JedisPool(JConfig,
|
||||||
|
config.getString("Redis.Host", "127.0.0.1"),
|
||||||
|
config.getInt("Redis.Port", 6379),
|
||||||
|
config.getInt("Redis.TimeOut", 9000),
|
||||||
|
password,
|
||||||
|
config.getBoolean("Redis.useTLS", false));
|
||||||
|
}
|
||||||
|
|
||||||
encryption = new Encryption(config.getBoolean("Redis.EncryptMessages"),
|
encryption = new Encryption(config.getBoolean("Redis.EncryptMessages"),
|
||||||
config.getString("Redis.EncryptionKey"),
|
config.getString("Redis.EncryptionKey"),
|
||||||
config.getString("Redis.MacKey"));
|
config.getString("Redis.MacKey"));
|
||||||
@@ -102,7 +114,7 @@ public class RedisController extends BinaryJedisPubSub implements Runnable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onMessage(byte[] channel, byte[] message){
|
public void onMessage(byte[] channel, byte[] message) {
|
||||||
String channelString = new String(channel, StandardCharsets.UTF_8);
|
String channelString = new String(channel, StandardCharsets.UTF_8);
|
||||||
String receivedMessage = null;
|
String receivedMessage = null;
|
||||||
try {
|
try {
|
||||||
@@ -293,7 +305,7 @@ public class RedisController extends BinaryJedisPubSub implements Runnable {
|
|||||||
//so to avoid issues, it's best to do it always on separate thread
|
//so to avoid issues, it's best to do it always on separate thread
|
||||||
if (plugin.isEnabled()) {
|
if (plugin.isEnabled()) {
|
||||||
plugin.getServer().getScheduler().runTaskAsynchronously(plugin, () -> {
|
plugin.getServer().getScheduler().runTaskAsynchronously(plugin, () -> {
|
||||||
try (BinaryJedis j = jedisPool.getResource()) {
|
try (Jedis j = jedisPool.getResource()) {
|
||||||
j.publish(channel.getBytes(StandardCharsets.UTF_8), message);
|
j.publish(channel.getBytes(StandardCharsets.UTF_8), message);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
plugin.sendErrorLogs("Error sending redis message!");
|
plugin.sendErrorLogs("Error sending redis message!");
|
||||||
@@ -303,7 +315,7 @@ public class RedisController extends BinaryJedisPubSub implements Runnable {
|
|||||||
} else {
|
} else {
|
||||||
//execute sending of redis message on the main thread if plugin is disabling
|
//execute sending of redis message on the main thread if plugin is disabling
|
||||||
//so it can still process the sending
|
//so it can still process the sending
|
||||||
try (BinaryJedis j = jedisPool.getResource()) {
|
try (Jedis j = jedisPool.getResource()) {
|
||||||
j.publish(channel.getBytes(StandardCharsets.UTF_8), message);
|
j.publish(channel.getBytes(StandardCharsets.UTF_8), message);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
|||||||
@@ -5,21 +5,10 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>RediSkript</artifactId>
|
<artifactId>RediSkript</artifactId>
|
||||||
<groupId>net.limework</groupId>
|
<groupId>net.limework</groupId>
|
||||||
<version>1.3.5</version>
|
<version>1.3.6-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
<artifactId>RediSkript-core</artifactId>
|
<artifactId>RediSkript-core</artifactId>
|
||||||
|
|
||||||
|
|
||||||
<dependencies>
|
|
||||||
<dependency>
|
|
||||||
<groupId>redis.clients</groupId>
|
|
||||||
<artifactId>jedis</artifactId>
|
|
||||||
<version>3.8.0</version>
|
|
||||||
<scope>provided</scope>
|
|
||||||
</dependency>
|
|
||||||
</dependencies>
|
|
||||||
|
|
||||||
|
|
||||||
</project>
|
</project>
|
||||||
|
|||||||
11
pom.xml
11
pom.xml
@@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
<groupId>net.limework</groupId>
|
<groupId>net.limework</groupId>
|
||||||
<artifactId>RediSkript</artifactId>
|
<artifactId>RediSkript</artifactId>
|
||||||
<version>1.3.5</version>
|
<version>1.3.6-SNAPSHOT</version>
|
||||||
<modules>
|
<modules>
|
||||||
<module>RediSkript-core</module>
|
<module>RediSkript-core</module>
|
||||||
<module>RediSkript-bukkit</module>
|
<module>RediSkript-bukkit</module>
|
||||||
@@ -43,7 +43,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.json</groupId>
|
<groupId>org.json</groupId>
|
||||||
<artifactId>json</artifactId>
|
<artifactId>json</artifactId>
|
||||||
<version>20210307</version>
|
<version>20220320</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.cryptomator</groupId>
|
<groupId>org.cryptomator</groupId>
|
||||||
@@ -54,7 +54,12 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.apache.commons</groupId>
|
<groupId>org.apache.commons</groupId>
|
||||||
<artifactId>commons-pool2</artifactId>
|
<artifactId>commons-pool2</artifactId>
|
||||||
<version>2.6.2</version>
|
<version>2.11.1</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>redis.clients</groupId>
|
||||||
|
<artifactId>jedis</artifactId>
|
||||||
|
<version>4.2.2</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</project>
|
</project>
|
||||||
|
|||||||
Reference in New Issue
Block a user