From 0d0c4a13e5d1b8c848e9c76d7ca721b24bc955fe Mon Sep 17 00:00:00 2001
From: len <40720638+destro174@users.noreply.github.com>
Date: Mon, 24 May 2021 09:53:45 +0200
Subject: [PATCH] remove API module
---
.../com/alttd/chat/ChatImplementation.java | 2 +
.../java/com/alttd/chat/config/Config.java | 10 +-
.../chat/database/DatabaseConnection.java | 12 +--
.../java/com/alttd/chat/database/Queries.java | 4 +-
pom.xml | 2 +-
.../java/com/alttd/chat/VelocityChat.java | 2 +-
.../java/com/alttd/chat/commands/Message.java | 15 ++-
.../com/alttd/chat/commands/SendMail.java | 98 ++++++++++++-------
.../com/alttd/chat/handlers/ChatHandler.java | 20 +++-
9 files changed, 103 insertions(+), 62 deletions(-)
diff --git a/api/src/main/java/com/alttd/chat/ChatImplementation.java b/api/src/main/java/com/alttd/chat/ChatImplementation.java
index af4afe8..648c167 100644
--- a/api/src/main/java/com/alttd/chat/ChatImplementation.java
+++ b/api/src/main/java/com/alttd/chat/ChatImplementation.java
@@ -2,6 +2,7 @@ package com.alttd.chat;
import com.alttd.chat.config.Config;
import com.alttd.chat.database.DatabaseConnection;
+import com.alttd.chat.database.Queries;
import com.alttd.chat.managers.ChatUserManager;
import com.alttd.chat.managers.RegexManager;
import net.luckperms.api.LuckPerms;
@@ -26,6 +27,7 @@ public class ChatImplementation implements ChatAPI{
luckPerms = getLuckPerms();
databaseConnection = getDataBase();
+ Queries.createTables();
ChatUserManager.initialize(); // loads all the users from the db and adds them.
RegexManager.initRegex(); // load the filters and regexes from config
diff --git a/api/src/main/java/com/alttd/chat/config/Config.java b/api/src/main/java/com/alttd/chat/config/Config.java
index 873253d..a0030db 100644
--- a/api/src/main/java/com/alttd/chat/config/Config.java
+++ b/api/src/main/java/com/alttd/chat/config/Config.java
@@ -28,8 +28,10 @@ public final class Config {
static int version;
static boolean verbose;
- public static void init() { // todo setup share for the config
- CONFIG_FILE = new File(new File(System.getProperty("user.home")), "config.yml");;
+ public static void init(File path) {
+ CONFIG_FILE = new File(path, "config.yml");;
+// public static void init() { // todo setup share for the config
+// CONFIG_FILE = new File(new File(System.getProperty("user.home")+File.separator+"ChatPlugin"), "config.yml");;
configLoader = YAMLConfigurationLoader.builder()
.setFile(CONFIG_FILE)
.setFlowStyle(DumperOptions.FlowStyle.BLOCK)
@@ -181,7 +183,7 @@ public final class Config {
MESSAGESENDER = getString("commands.message.sender-message", MESSAGESENDER);
MESSAGERECIEVER = getString("commands.message.reciever-message", MESSAGERECIEVER);
}
-
+///broadcast Momlly to Global: We Love Teri and Kappa
public static String GCFORMAT = " >to Global: ";
public static String GCPERMISSION = "proxy.globalchat";
public static List GCALIAS = new ArrayList<>();
@@ -195,7 +197,7 @@ public final class Config {
}
public static List GACECOMMANDALIASES = new ArrayList<>();
- public static String GACFORMAT = " >( on -> Team) ";
+ public static String GACFORMAT = "( on -> Team) ";
private static void globalAdminChat() {
GACECOMMANDALIASES = getList("commands.globaladminchat.aliases", Lists.newArrayList("acg"));
GACFORMAT = getString("commands.globaladminchat.format", GACFORMAT);
diff --git a/api/src/main/java/com/alttd/chat/database/DatabaseConnection.java b/api/src/main/java/com/alttd/chat/database/DatabaseConnection.java
index 9f7a2ea..5b274ee 100644
--- a/api/src/main/java/com/alttd/chat/database/DatabaseConnection.java
+++ b/api/src/main/java/com/alttd/chat/database/DatabaseConnection.java
@@ -11,19 +11,11 @@ public class DatabaseConnection {
private static DatabaseConnection instance;
private Connection connection;
- private final String drivers, ip, port, database, username, password;
/**
* Sets information for the database and opens the connection.
*/
public DatabaseConnection() {
-
- this.drivers = Config.DRIVER;
- this.ip = Config.IP;
- this.port = Config.PORT;
- this.database = Config.DATABASE;
- this.username = Config.USERNAME;
- this.password = Config.PASSWORD;
instance = this;
try {
@@ -52,8 +44,8 @@ public class DatabaseConnection {
e.printStackTrace();
}
connection = DriverManager.getConnection(
- "jdbc:" + drivers + "://" + ip + ":" + port + "/" + database + "?autoReconnect=true", username,
- password);
+ "jdbc:" + Config.DRIVER + "://" + Config.IP + ":" + Config.PORT + "/" + Config.DATABASE + "?autoReconnect=true",
+ Config.USERNAME, Config.PASSWORD);
}
}
diff --git a/api/src/main/java/com/alttd/chat/database/Queries.java b/api/src/main/java/com/alttd/chat/database/Queries.java
index 4bd5fc3..177bbe9 100644
--- a/api/src/main/java/com/alttd/chat/database/Queries.java
+++ b/api/src/main/java/com/alttd/chat/database/Queries.java
@@ -22,7 +22,7 @@ public class Queries {
List tables = new ArrayList<>();
tables.add("CREATE TABLE IF NOT EXISTS ignored_users (`uuid` VARCHAR(36) NOT NULL, `ignored_uuid` VARCHAR(36) NOT NULL, PRIMARY KEY (`uuid`, `ignored_uuid`))");
tables.add("CREATE TABLE IF NOT EXISTS parties (`id` INT NOT NULL AUTO_INCREMENT, `owner_uuid` VARCHAR(36) NOT NULL, `party_name` VARCHAR(36) NOT NULL, `password` VARCHAR(36), PRIMARY KEY (`id`))");
- tables.add("CREATE TABLE IF NOT EXISTS chat_users (`uuid` VARCHAR(36) NOT NULL, `party_id` INT NOT NULL, `toggled_chat` BIT(1) DEFAULT b'0', `force_tp` BIT(1) DEFAULT b'1', `toggled_gc` BIT(1) DEFAULT b'0', PRIMARY KEY (`uuid`), FOREIGN KEY (party_id) REFERENCES parties(id) ON DELETE CASCADE)");
+ tables.add("CREATE TABLE IF NOT EXISTS chat_users (`uuid` VARCHAR(36) NOT NULL, `party_id` INT NOT NULL, `toggled_chat` BIT(1) DEFAULT b'0', `force_tp` BIT(1) DEFAULT b'1', `toggled_gc` BIT(1) DEFAULT b'0', PRIMARY KEY (`uuid`))");
try {
Connection connection = DatabaseConnection.getConnection();
@@ -249,8 +249,6 @@ public class Queries {
//-----------------------------------------
- //Chat Users
- //@teri what's this?
private static void getChatUsers(HashMap parties) { //TODO Get parties from cache somewhere
String query = "SELECT * FROM chat_users";
diff --git a/pom.xml b/pom.xml
index ec54292..e687da6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -46,7 +46,7 @@
-->
- api
+
velocity
diff --git a/velocity/src/main/java/com/alttd/chat/VelocityChat.java b/velocity/src/main/java/com/alttd/chat/VelocityChat.java
index 91cec92..44ecf03 100644
--- a/velocity/src/main/java/com/alttd/chat/VelocityChat.java
+++ b/velocity/src/main/java/com/alttd/chat/VelocityChat.java
@@ -52,7 +52,7 @@ public class VelocityChat {
@Subscribe
public void onProxyInitialization(ProxyInitializeEvent event) {
new ALogger(logger);
- chatAPI = new ChatImplementation();
+ chatAPI = new ChatImplementation(getDataDirectory());
serverHandler = new ServerHandler();
chatHandler = new ChatHandler();
diff --git a/velocity/src/main/java/com/alttd/chat/commands/Message.java b/velocity/src/main/java/com/alttd/chat/commands/Message.java
index 3593ed2..4f9a637 100644
--- a/velocity/src/main/java/com/alttd/chat/commands/Message.java
+++ b/velocity/src/main/java/com/alttd/chat/commands/Message.java
@@ -6,6 +6,7 @@ import com.alttd.chat.config.Config;
import com.mojang.brigadier.arguments.StringArgumentType;
import com.mojang.brigadier.builder.LiteralArgumentBuilder;
import com.mojang.brigadier.builder.RequiredArgumentBuilder;
+import com.mojang.brigadier.suggestion.Suggestions;
import com.mojang.brigadier.tree.LiteralCommandNode;
import com.velocitypowered.api.command.BrigadierCommand;
import com.velocitypowered.api.command.CommandMeta;
@@ -14,6 +15,8 @@ import com.velocitypowered.api.event.ResultedEvent;
import com.velocitypowered.api.proxy.Player;
import com.velocitypowered.api.proxy.ProxyServer;
+import java.util.ArrayList;
+import java.util.Collection;
import java.util.Optional;
public class Message {
@@ -25,8 +28,16 @@ public class Message {
.then(RequiredArgumentBuilder
.argument("player", StringArgumentType.word())
.suggests((context, builder) -> {
- for (Player player : proxyServer.getAllPlayers()) {
- builder.suggest(player.getGameProfile().getName());
+ Collection possibleValues = new ArrayList<>();
+ for (Player player : proxyServer.getAllPlayers()) { // todo all chatplayers? this can be heavy
+ possibleValues.add(player.getGameProfile().getName());
+ }
+ if(possibleValues.isEmpty()) return Suggestions.empty();
+ String remaining = builder.getRemaining().toLowerCase();
+ for (String str : possibleValues) {
+ if (str.toLowerCase().startsWith(remaining)) {
+ builder.suggest(str = StringArgumentType.escapeIfRequired(str));
+ }
}
return builder.buildFuture();
})
diff --git a/velocity/src/main/java/com/alttd/chat/commands/SendMail.java b/velocity/src/main/java/com/alttd/chat/commands/SendMail.java
index b3ca2d5..06e1e41 100644
--- a/velocity/src/main/java/com/alttd/chat/commands/SendMail.java
+++ b/velocity/src/main/java/com/alttd/chat/commands/SendMail.java
@@ -18,75 +18,93 @@ import java.util.Collection;
public class SendMail {
public SendMail(ProxyServer proxyServer) {
+
+ RequiredArgumentBuilder playerNode = RequiredArgumentBuilder
+ .argument("player", StringArgumentType.string())
+ .suggests((context, builder) -> {
+ Collection possibleValues = new ArrayList<>();
+ for (Player player : proxyServer.getAllPlayers()) {
+ possibleValues.add(player.getGameProfile().getName());
+ }
+ if(possibleValues.isEmpty()) return Suggestions.empty();
+ String remaining = builder.getRemaining().toLowerCase();
+ for (String str : possibleValues) {
+ if (str.toLowerCase().startsWith(remaining)) {
+ builder.suggest(str = StringArgumentType.escapeIfRequired(str));
+ }
+ }
+ return builder.buildFuture();
+ })
+ .executes(context -> {
+ sendHelpMessage(context.getSource());
+ return 1;
+ });
+
LiteralCommandNode command = LiteralArgumentBuilder
.literal("mail")
- .requires(ctx -> ctx.hasPermission("command.proxy.mail"))// TODO permission system? load permissions from config?
+ .requires(ctx -> ctx.hasPermission("command.proxy.mail"))// TODO permission
.then(LiteralArgumentBuilder.literal("send")
- .then(RequiredArgumentBuilder
- .argument("player", StringArgumentType.string())
- .suggests((context, builder) -> {
- Collection possibleValues = new ArrayList<>();
- for (Player player : proxyServer.getAllPlayers()) { // todo all chatplayers? this can be heavy
- possibleValues.add(player.getGameProfile().getName());
- }
- if(possibleValues.isEmpty()) return Suggestions.empty();
- String remaining = builder.getRemaining().toLowerCase();
- for (String str : possibleValues) {
- if (str.toLowerCase().startsWith(remaining)) {
- builder.suggest(str = StringArgumentType.escapeIfRequired(str));
- }
- }
- return builder.buildFuture();
- })
+ .then(playerNode
.then(RequiredArgumentBuilder
.argument("message", StringArgumentType.greedyString())
.executes(context -> {
- // todo construct the mail and notify the player if online?
- VelocityChat.getPlugin().getChatHandler().sendMail();
+ VelocityChat.getPlugin().getChatHandler().sendMail(context.getSource(), context.getArgument("player", String.class), context.getArgument("message", String.class));
return 1;
})
)
.executes(context -> {
-
+ sendHelpMessage(context.getSource());
return 1;
})
)
+ .executes(context -> {
+ sendHelpMessage(context.getSource());
+ return 1;
+ })
)
.then(LiteralArgumentBuilder.literal("list")
- // TODO list read, unread, all?
- .then(LiteralArgumentBuilder.literal("read")
- .executes(context -> {
-
- return 1;
- })
- )
+ .requires(ctx -> ctx.hasPermission("command.proxy.list"))// TODO permission
.then(LiteralArgumentBuilder.literal("unread")
.executes(context -> {
-
+ VelocityChat.getPlugin().getChatHandler().readMail(context.getSource(), true);
return 1;
})
)
.then(LiteralArgumentBuilder.literal("all")
.executes(context -> {
-
+ VelocityChat.getPlugin().getChatHandler().readMail(context.getSource(), false);
+ return 1;
+ })
+ )
+ .then(playerNode
+ .then(LiteralArgumentBuilder.literal("unread")
+ .executes(context -> {
+ VelocityChat.getPlugin().getChatHandler().readMail(context.getSource(), context.getArgument("player", String.class), true);
+ return 1;
+ })
+ )
+ .then(LiteralArgumentBuilder.literal("all")
+ .executes(context -> {
+ VelocityChat.getPlugin().getChatHandler().readMail(context.getSource(), context.getArgument("player", String.class), false);
+ return 1;
+ })
+ )
+ .executes(context -> {
+ sendHelpMessage(context.getSource());
return 1;
})
)
- .executes(context -> {
-
- return 1;
- })
)
.then(LiteralArgumentBuilder.literal("admin")
- .requires(ctx -> ctx.hasPermission("command.proxy.mail.admin"))// TODO permission system? load permissions from config?
+ .requires(ctx -> ctx.hasPermission("command.proxy.mail.admin"))// TODO permission
// TODO admin command, remove, edit?
.executes(context -> {
-
+ sendAdminHelpMessage(context.getSource());
return 1;
})
)
.executes(context -> {
- // todo mail help message
+ sendHelpMessage(context.getSource());
return 1;
})
.build();
@@ -103,4 +121,12 @@ public class SendMail {
proxyServer.getCommandManager().register(meta, brigadierCommand);
}
+
+ private void sendHelpMessage(CommandSource commandSource) {
+
+ }
+
+ private void sendAdminHelpMessage(CommandSource commandSource) {
+
+ }
}
diff --git a/velocity/src/main/java/com/alttd/chat/handlers/ChatHandler.java b/velocity/src/main/java/com/alttd/chat/handlers/ChatHandler.java
index 7a3a698..bf74f9a 100644
--- a/velocity/src/main/java/com/alttd/chat/handlers/ChatHandler.java
+++ b/velocity/src/main/java/com/alttd/chat/handlers/ChatHandler.java
@@ -1,7 +1,6 @@
package com.alttd.chat.handlers;
import com.alttd.chat.VelocityChat;
-import com.alttd.chat.events.PrivateMessageEvent;
import com.alttd.chat.config.Config;
import com.alttd.chat.managers.ChatUserManager;
import com.alttd.chat.managers.RegexManager;
@@ -13,7 +12,10 @@ import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.minimessage.MiniMessage;
import net.kyori.adventure.text.minimessage.Template;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
public class ChatHandler {
@@ -93,8 +95,8 @@ public class ChatHandler {
* constructs a mail object and notifies all involved players about it
* / mail send playerA,playerB,playerC message
*/
- public void sendMail() {
-
+ public void sendMail(CommandSource commandSource, String recipient, String message) {
+ // todo construct the mail and notify the player if online?
}
/**
@@ -106,6 +108,14 @@ public class ChatHandler {
return "";
}
- public void sendMail(CommandSource source, String message, List targets) {
+
+ public void readMail(CommandSource commandSource, String targetPlayer, boolean unread) {
+
}
+
+ public void readMail(CommandSource commandSource, boolean unread) {
+
+ }
+
+
}