RediSkript/RediSkript-bukkit/src/main/java/net/limework/rediskript/RediSkript.java

92 lines
3.4 KiB
Java
Raw Normal View History

package net.limework.rediskript;
2020-11-28 08:02:14 +00:00
2020-12-03 09:55:45 +00:00
import ch.njol.skript.Skript;
import ch.njol.skript.SkriptAddon;
import ch.njol.skript.lang.ExpressionType;
import ch.njol.skript.registrations.EventValues;
import ch.njol.skript.util.Date;
import ch.njol.skript.util.Getter;
import net.limework.rediskript.commands.CommandReloadRedis;
2020-12-03 09:55:45 +00:00
import net.limework.rediskript.events.RedisMessageEvent;
2020-12-23 17:04:23 +00:00
import net.limework.rediskript.managers.RedisController;
2020-12-03 09:55:45 +00:00
import net.limework.rediskript.skript.elements.*;
import org.bukkit.ChatColor;
2020-06-28 14:40:53 +00:00
import org.bukkit.plugin.java.JavaPlugin;
2020-12-03 09:55:45 +00:00
import java.io.IOException;
public class RediSkript extends JavaPlugin {
2020-06-28 14:40:53 +00:00
2020-12-23 17:04:23 +00:00
private RedisController redisController;
2020-06-28 14:40:53 +00:00
public void reloadRedis() {
2020-12-26 11:09:25 +00:00
reloadConfig();
2020-12-23 17:04:23 +00:00
redisController.shutdown();
redisController = new RedisController(this);
}
2020-12-23 17:04:23 +00:00
public void sendLogs(String message) {
getLogger().info(
ChatColor.translateAlternateColorCodes('&', "&b" + message)
);
}
public void sendErrorLogs(String message) {
getLogger().severe(
ChatColor.translateAlternateColorCodes('&', "&c" + message)
);
}
2020-12-23 17:04:23 +00:00
2020-12-03 09:55:45 +00:00
public void registerSyntax() {
SkriptAddon addon = Skript.registerAddon(this);
try {
addon.loadClasses("net.limework.rediskript.skript", "elements");
Skript.registerEvent("redis message", EvtRedis.class, RedisMessageEvent.class, "redis message");
Skript.registerExpression(ExprVariableInChannel.class, Object.class, ExpressionType.PROPERTY, "variable[s] %strings% in [redis] [channel] %string%");
Skript.registerExpression(ExprChannel.class, String.class, ExpressionType.SIMPLE, "redis channel");
EventValues.registerEventValue(RedisMessageEvent.class, String.class, new Getter<String, RedisMessageEvent>() {
@Override
public String get(RedisMessageEvent e) {
return e.getChannelName();
}
}, 0);
Skript.registerExpression(ExprMessage.class, String.class, ExpressionType.SIMPLE, "redis message");
EventValues.registerEventValue(RedisMessageEvent.class, String.class, new Getter<String, RedisMessageEvent>() {
@Override
public String get(RedisMessageEvent e) {
return e.getMessage();
}
}, 0);
Skript.registerExpression(ExprMessageDate.class, Date.class, ExpressionType.SIMPLE, "redis message date");
EventValues.registerEventValue(RedisMessageEvent.class, Date.class, new Getter<Date, RedisMessageEvent>() {
@Override
public Date get(RedisMessageEvent e) {
return new Date(e.getDate());
}
}, 0);
} catch (IOException e) {
e.printStackTrace();
}
}
2020-06-28 14:40:53 +00:00
@Override
public void onEnable() {
saveDefaultConfig();
2020-12-23 17:04:23 +00:00
redisController = new RedisController(this);
2020-12-03 09:55:45 +00:00
getServer().getPluginCommand("reloadredis").setExecutor(new CommandReloadRedis(this));
registerSyntax();
2020-06-28 14:40:53 +00:00
}
2020-06-28 14:41:22 +00:00
2020-07-06 18:38:54 +00:00
@Override
public void onDisable() {
2021-01-26 08:51:31 +00:00
if (redisController != null) {
redisController.shutdown();
}
getServer().getPluginCommand("reloadredis").setExecutor(null);
2020-07-06 18:38:54 +00:00
}
2020-12-23 17:04:23 +00:00
public RedisController getRC() {
return redisController;
2020-06-28 14:40:53 +00:00
}
2020-07-06 18:38:54 +00:00
}