DB ausbauen

This commit is contained in:
Sebastian Zeidler
2019-09-05 19:29:44 +02:00
parent 2f91ce6e4f
commit e28d8450fd
3 changed files with 111 additions and 16 deletions

View File

@ -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'

View File

@ -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<String, String> 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;
}

View File

@ -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("");
}
}