From e28d8450fd33205c7b299793972186328653a96f Mon Sep 17 00:00:00 2001 From: Sebastian Zeidler Date: Thu, 5 Sep 2019 19:29:44 +0200 Subject: [PATCH] DB ausbauen --- src/main/java/Shadowrun/db_connect.java | 50 ++++++++++++++++++++++++- src/main/java/Shadowrun/dice.java | 47 ++++++++++++++++------- src/main/java/Shadowrun/help.java | 30 +++++++++++++++ 3 files changed, 111 insertions(+), 16 deletions(-) create mode 100755 src/main/java/Shadowrun/help.java diff --git a/src/main/java/Shadowrun/db_connect.java b/src/main/java/Shadowrun/db_connect.java index 5add1e4..b459680 100755 --- a/src/main/java/Shadowrun/db_connect.java +++ b/src/main/java/Shadowrun/db_connect.java @@ -1,5 +1,6 @@ package Shadowrun; +import javax.print.DocFlavor; import java.sql.*; import java.sql.PreparedStatement; import java.sql.ResultSet; @@ -87,6 +88,49 @@ public class db_connect extends DB.base { close(); return result; } + + public void setChannelSettings(String channelId, String Sprache, String ServerId, String Kanalname) { + + if(!isActive()) { + return; + } + + open(); + try { + conn = getConn(); + String SQL_SELECT = "SELECT * FROM shadowrun_channelSettings where channelId = ?"; + + PreparedStatement preparedStatement = conn.prepareStatement(SQL_SELECT); + preparedStatement.setString(1, channelId); + ResultSet rs = preparedStatement.executeQuery(); + if (rs.next()) { + String SQL_Update = "UPDATE shadowrun_channelSettings SET lang = ? WHERE channelId = ?"; + preparedStatement = conn.prepareStatement(SQL_Update); + preparedStatement.setString(1, Sprache); + preparedStatement.setString(2, channelId); + preparedStatement.executeUpdate(); + + } + else { + String SQL_INSERT = "INSERT INTO shadowrun_channelSettings (channelId, lang, serverId, kanalname) VALUES (?,?,?,?)"; + preparedStatement = conn.prepareStatement(SQL_INSERT); + preparedStatement.setString(1, channelId); + preparedStatement.setString(2, Sprache); + preparedStatement.setString(3, ServerId); + preparedStatement.setString(4, Kanalname); + preparedStatement.executeUpdate(); + } + + close(); + return; + + } + catch (SQLException e) { + e.printStackTrace(); + } + close(); + return; + } } /* @@ -103,11 +147,13 @@ public class db_connect extends DB.base { COLLATE='utf8_general_ci' ; - CREATE TABLE `shadowrun_log` ( + CREATE TABLE `shadowrun_channelSettings` ( `id` INT NOT NULL AUTO_INCREMENT, `zeitstempel` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, `channelId` VARCHAR(50) NOT NULL DEFAULT '0', - `lang` VARCHAR(255) NOT NULL DEFAULT 'de' + `lang` VARCHAR(255) NOT NULL DEFAULT 'de', + `serverId` VARCHAR(255) NULL, + `kanalname` VARCHAR(255) NULL, PRIMARY KEY (`id`) ) COLLATE='utf8_general_ci' diff --git a/src/main/java/Shadowrun/dice.java b/src/main/java/Shadowrun/dice.java index ed1ce04..3f69bd7 100755 --- a/src/main/java/Shadowrun/dice.java +++ b/src/main/java/Shadowrun/dice.java @@ -26,7 +26,11 @@ public class dice extends ListenerAdapter { private language langDe = new language("de"); private language langEn = new language("en"); + private help helpDe = new help("de"); + private help helpEn = new help("En"); + private language activLang; + private help activHelp; private db_connect db; @@ -40,6 +44,21 @@ public class dice extends ListenerAdapter { this.prefixTest = "/rollTest"; this.prefixZitat = "/zitat"; this.prefixCId = "/cid"; + + helpDe.add("Alle Befehle können in einen Channel geschrieben werden oder per Direkt Nachricht gesender werden"); + helpDe.add(this.prefixSr + "Zahl", "Würfelt Zahl x W6. Gewürfelte 5. und 6. Werden als Erfolge gezählt, 1. als Misserfolge.\n" + + "Erreicht oder übersteigt die Anzhal der 1. die hälfte der gewürfelten Würfel, zählt dies als ein Patzer. Gibt es mind. 1 Erfolg wird die Markierung der Ausgabe Gelb." + + "wird aber kein Erfolg gewürfelt zählt dies als Kritischer Patzer und die Markierung wird Rot **Wichtig: Vor- und Nachteile die Einfluss auf die Patzer Changse haben werden nicht berücksichtigt"); + + helpDe.add(this.prefixSr + "+ Zahl", "Gleich wie bei " + this.prefixSr + "Zahl. Mit dem Unterschied dass alle gewürfelten 6. ein zuzätlichen Würfel generien."); + + helpDe.add(this.prefixSr + " Zahl_1 + Zahl_2", "Würfelt Zahl_2 x W6 und addiert Zahl_1 hinzu, um die Initative zu bestimmen"); + + helpDe.add(this.prefixIni + " Zahl_1 + Zahl_2", "Synonym für " + this.prefixSr + " Zahl_1 + Zahl_2"); + + helpDe.add(this.prefixCId, "Gibt aktuelle Channel ID zurück"); + + this.db = new db_connect(); } @@ -55,21 +74,19 @@ public class dice extends ListenerAdapter { } if(!channelList.containsKey(event.getChannel().getId())) { - channelList.put(event.getChannel().getId(), "de"); - activLang = langDe; + Map Einstellungen = db.getChannelSettings(event.getChannel().getId()); + channelList.put(event.getChannel().getId(), Einstellungen.get("lang").toString()); } - else { - switch (channelList.get(event.getChannel().getId())) { - case "de": - activLang = langDe; - break; - case "en": - activLang = langEn; - break; - default: - activLang = langDe; + switch (channelList.get(event.getChannel().getId())) { + case "de": + activLang = langDe; + break; + case "en": + activLang = langEn; + break; + default: + activLang = langDe; - } } User author = event.getAuthor(); if (!author.isBot()) { @@ -199,12 +216,14 @@ public class dice extends ListenerAdapter { activLang = langDe; channelList.put(event.getChannel().getId(), "de"); event.getChannel().sendMessage(getAsMention(event) + activLang.language).queue(); + db.setChannelSettings(event.getChannel().getId(), "de", event.getGuild().getId(), event.getChannel().getName()); return; } else if(MsgParts[1].trim().toLowerCase().equals("en")) { activLang = langEn; channelList.put(event.getChannel().getId(), "en"); event.getChannel().sendMessage(getAsMention(event) + activLang.language).queue(); + db.setChannelSettings(event.getChannel().getId(), "en", event.getGuild().getId(), event.getChannel().getName()); return; } @@ -263,7 +282,7 @@ public class dice extends ListenerAdapter { result.append(dice1+1); result.append(" "); } - if (verteilung[0] >= (numberOfDice+bonusEdegeDice)/2f) { + if (verteilung[0] > (numberOfDice+bonusEdegeDice)/2f) { // Patzer nur bei über er Hälfte an 1er glitches = true; } diff --git a/src/main/java/Shadowrun/help.java b/src/main/java/Shadowrun/help.java new file mode 100755 index 0000000..bbaa87e --- /dev/null +++ b/src/main/java/Shadowrun/help.java @@ -0,0 +1,30 @@ +package Shadowrun; + +import net.dv8tion.jda.core.events.message.MessageReceivedEvent; + + +public class help { + + private StringBuilder hilfstext; + private String sprache; + + public help(String sprache) { + this.sprache = sprache; + hilfstext = new StringBuilder(""); + } + + public void add(String befehl, String hilftext) { + if(this.hilfstext.length() > 0) + this.hilfstext.append("\n\n"); + this.add("**" + befehl + "** " + hilftext); + } + + public void add(String hilftext) { + this.hilfstext.append(hilftext); + } + + public void send() { + StringBuilder ausgabe = new StringBuilder(""); + + } +}