Ini-Funktion hinzugefügt

This commit is contained in:
Ocame
2019-03-05 04:14:39 +01:00
parent 1df3fb1f64
commit 0552f1b17c
2 changed files with 134 additions and 98 deletions

View File

@ -31,7 +31,7 @@ public class dice extends ListenerAdapter {
private language activLang; private language activLang;
Map<String, String> channelList = new HashMap<String, String>(); private Map<String, String> channelList = new HashMap<>();
public dice() { public dice() {
@ -139,8 +139,6 @@ public class dice extends ListenerAdapter {
} }
catch (Exception e) { catch (Exception e) {
System.out.println("problem: " + e.getMessage()); System.out.println("problem: " + e.getMessage());
} finally {
} }
} }
@ -151,8 +149,6 @@ public class dice extends ListenerAdapter {
*/ */
private void roll(MessageReceivedEvent event) { private void roll(MessageReceivedEvent event) {
EmbedBuilder outputBox = new EmbedBuilder(); EmbedBuilder outputBox = new EmbedBuilder();
int[] verteilung = new int[6]; int[] verteilung = new int[6];
@ -224,19 +220,6 @@ public class dice extends ListenerAdapter {
return; return;
} }
} }
/*
if(MsgParts[1].trim().toLowerCase().replace(" ", "").matches("^([0-9]*\\+)?[0-9]*([dw][0-9]*)?(\\+[0-9]*)?")) { // format besteh aus (Zahlen)+(Zahlen)d(Zahlen) oder (Zahlen)d(Zahlen)+(Zahlen)
String[] diceInterpreter = MsgParts[1].trim().toLowerCase().replace(" ", "").split("\\+");
try {
diceart = Integer.parseInt(diceInterpreter[1]);
numberOdDice = Integer.parseInt(diceInterpreter[0]);
}
catch (NumberFormatException e) {
event.getChannel().sendMessage(event.getMember().getAsMention() + " Irgent was dummes ist passiert beim Verstehen von " + MsgParts[1].trim().toLowerCase()).queue();
return;
}
}*/
if(numberOfDice <= 0) { if(numberOfDice <= 0) {
@ -255,7 +238,7 @@ public class dice extends ListenerAdapter {
} }
verteilung[dice1]++; verteilung[dice1]++;
if((dice1 >= 4) || (dice1 == 0)) if((dice1 >= 4) || (dice1 == 0))
result.append("**" + (dice1+1) + "**"); result.append("**").append(dice1+1).append("**");
else else
result.append(dice1+1); result.append(dice1+1);
result.append(" "); result.append(" ");
@ -265,16 +248,16 @@ public class dice extends ListenerAdapter {
} }
if(hits == 0 && glitches == false) { // kein Erfolg, kein Patzer if(hits == 0 && !glitches) { // kein Erfolg, kein Patzer
outputBox.setColor(Color.gray); outputBox.setColor(Color.gray);
} }
else if(hits == 0 && glitches == true) { // kriischer Patzer else if(hits == 0 && glitches) { // kritischer Patzer
outputBox.setColor(Color.red); outputBox.setColor(Color.red);
} }
else if(glitches == true) { // Patzer else if(glitches) { // Patzer
outputBox.setColor(Color.yellow); outputBox.setColor(Color.yellow);
} }
else { // Efolg else { // Erfolg
outputBox.setColor(Color.green); outputBox.setColor(Color.green);
} }
@ -304,8 +287,6 @@ public class dice extends ListenerAdapter {
} }
catch (Exception e) { catch (Exception e) {
System.out.println("problem: " + e.getMessage()); System.out.println("problem: " + e.getMessage());
} finally {
} }
} }
@ -313,15 +294,16 @@ public class dice extends ListenerAdapter {
EmbedBuilder outputBox = new EmbedBuilder(); EmbedBuilder outputBox = new EmbedBuilder();
int[] verteilung = new int[6];
int dice1; int dice1;
int numberOfDice = 1; int numberOfDice = 1;
int diceart = 6; int diceart = 6;
int iniBase = 0;
int ini = 0;
StringBuilder result = new StringBuilder(""); StringBuilder result = new StringBuilder("");
try { try {
String[] MsgParts = event.getMessage().getContentRaw().split(" ", 2); String[] MsgParts = event.getMessage().getContentRaw().split(" ", 2);
if(MsgParts.length < 2) { if(MsgParts.length < 2) { // Leerer Befehl
String message = activLang.emptyCommand; String message = activLang.emptyCommand;
message = message.replace("%command%", this.prefixIni); message = message.replace("%command%", this.prefixIni);
event.getChannel().sendMessage(event.getMember().getAsMention() + message).queue(); event.getChannel().sendMessage(event.getMember().getAsMention() + message).queue();
@ -344,37 +326,38 @@ public class dice extends ListenerAdapter {
String[] iniParts = MsgParts[1].trim().toLowerCase().split("\\+", 2); String[] iniParts = MsgParts[1].trim().toLowerCase().split("\\+", 2);
if(iniParts.length == 1) { messageInterpreter mI = new messageInterpreter(event, activLang);
if(iniParts.length == 1) { // Nachricht hat kein + Zeichen
mI.inputInterpreter(iniParts[0]);
if(mI.isNum()) {
numberOfDice = mI.getIntResult();
}
else if(mI.isDice()) {
diceart = mI.getDiceart();
numberOfDice = mI.getNumberOfDice();
}
} }
else { else {
mI.inputInterpreter(iniParts[0]); // Vor dem +
if(mI.isNum()) {
iniBase = mI.getIntResult();
}
else if(mI.isDice()) {
iniBase = mI.getNumberOfDice();
}
mI.inputInterpreter(iniParts[1]); // Nach dem +
if(mI.isNum()) {
numberOfDice = mI.getIntResult();
}
else if(mI.isDice()) {
diceart = mI.getDiceart();
numberOfDice = mI.getNumberOfDice();
}
} }
if(true) {
this.inputInterpreter(event, iniParts[0]);
return;
}
if(MsgParts[1].trim().toLowerCase().replace(" ", "").matches("([0-9]*)[dw]([0-9].*)")) { // format besteh aus (Zahlen)d(Zahlen) oder (Zahlen)w(Zahlen)
String[] diceInterpreter = MsgParts[1].trim().toLowerCase().replace(" ", "").split("[wd]");
try {
diceart = Integer.parseInt(diceInterpreter[1]);
numberOfDice = Integer.parseInt(diceInterpreter[0]);
verteilung = new int[diceart];
}
catch (NumberFormatException e) {
String message = activLang.error;
message = message.replace("%command%", MsgParts[1].trim().toLowerCase());
event.getChannel().sendMessage(event.getMember().getAsMention() + message).queue();
return;
}
}
else {
String message = activLang.error;
message = message.replace("%command%", MsgParts[1].trim());
event.getChannel().sendMessage(event.getMember().getAsMention() + message).queue();
return;
}
} }
else { else {
try { try {
@ -387,20 +370,6 @@ public class dice extends ListenerAdapter {
return; return;
} }
} }
/*
if(MsgParts[1].trim().toLowerCase().replace(" ", "").matches("^([0-9]*\\+)?[0-9]*([dw][0-9]*)?(\\+[0-9]*)?")) { // format besteh aus (Zahlen)+(Zahlen)d(Zahlen) oder (Zahlen)d(Zahlen)+(Zahlen)
String[] diceInterpreter = MsgParts[1].trim().toLowerCase().replace(" ", "").split("\\+");
try {
diceart = Integer.parseInt(diceInterpreter[1]);
numberOdDice = Integer.parseInt(diceInterpreter[0]);
}
catch (NumberFormatException e) {
event.getChannel().sendMessage(event.getMember().getAsMention() + " Irgent was dummes ist passiert beim Verstehen von " + MsgParts[1].trim().toLowerCase()).queue();
return;
}
}*/
if(numberOfDice <= 0) { if(numberOfDice <= 0) {
String message = activLang.noNegativ; String message = activLang.noNegativ;
@ -409,24 +378,23 @@ public class dice extends ListenerAdapter {
} }
ini += iniBase;
for(int i = 0; i < numberOfDice; i++) { for(int i = 0; i < numberOfDice; i++) {
dice1 = new Random().nextInt(diceart); dice1 = new Random().nextInt(diceart);
verteilung[dice1]++;
result.append(dice1+1).append(" "); result.append(dice1+1).append(" ");
ini += (dice1+1);
} }
outputBox.setColor(new Color(104, 34, 139)); outputBox.setColor(new Color(104, 34, 139));
String addition = ""; String message = "%iniBase%+%numberOfDice%w%diceart%\tIni: %ini%"; //activLang.resultText;
String message = activLang.resultText;
//%numberOfDice%%dice%%diceart% %EdgeDice%:\tErfolge: %hits%\tMisserfolge: %oneHits%"; //%numberOfDice%%dice%%diceart% %EdgeDice%:\tErfolge: %hits%\tMisserfolge: %oneHits%";
message = message.replace("%numberOfDice%", String.valueOf(numberOfDice)).replace("%diceart%", String.valueOf(diceart)).replace("%EdgeDice%", addition); message = message.replace("%numberOfDice%", String.valueOf(numberOfDice)).replace("%diceart%", String.valueOf(diceart))
.replace("%iniBase%", String.valueOf(iniBase)).replace("%ini%", String.valueOf(ini));
outputBox.setTitle(event.getMember().getEffectiveName() + " " + message); outputBox.setTitle(event.getMember().getEffectiveName() + " " + message);
outputBox.setDescription("(" + result.toString().trim() + ")"); outputBox.setDescription(String.valueOf(iniBase) + " + (" + result.toString().trim().replace(" ", "+") + ")");
event.getChannel().sendMessage(outputBox.build()).queue(); event.getChannel().sendMessage(outputBox.build()).queue();
@ -434,10 +402,11 @@ public class dice extends ListenerAdapter {
catch (NumberFormatException e) { catch (NumberFormatException e) {
event.getChannel().sendMessage("Nope").queue(); event.getChannel().sendMessage("Nope").queue();
} }
catch (IllegalArgumentException e) {
event.getChannel().sendMessage(e.getMessage()).queue();
}
catch (Exception e) { catch (Exception e) {
System.out.println("problem: " + e.getMessage()); System.out.println("problem: " + e.getMessage());
} finally {
} }
} }
@ -460,28 +429,5 @@ public class dice extends ListenerAdapter {
event.getChannel().sendMessage(quotes[dice%6]).queue(); event.getChannel().sendMessage(quotes[dice%6]).queue();
} }
private void inputInterpreter(MessageReceivedEvent event, String Input) {
Scanner sc = new Scanner(Input.trim());
Integer diceart = 6;
Integer numberOfDice = 1;
if(sc.hasNextInt()) { // ist eine Zahl
}
else {
if (Input.trim().toLowerCase().replace(" ", "").matches("([0-9]*)[dw]([0-9].*)")) { // format besteh aus (Zahlen)d(Zahlen) oder (Zahlen)w(Zahlen)
String[] diceInterpreter = Input.trim().toLowerCase().replace(" ", "").split("[wd]");
try {
diceart = Integer.parseInt(diceInterpreter[1]);
numberOfDice = Integer.parseInt(diceInterpreter[0]);
} catch (NumberFormatException e) {
String message = activLang.error;
message = message.replace("%command%", Input.trim().toLowerCase());
event.getChannel().sendMessage(event.getMember().getAsMention() + message).queue();
return;
}
}
}
}
} }

View File

@ -0,0 +1,90 @@
package Shadowrun;
import net.dv8tion.jda.core.events.message.MessageReceivedEvent;
import java.util.Scanner;
public class messageInterpreter {
private Integer diceart = 6;
private Integer numberOfDice = 1;
private Integer typ = 0;
private Integer intResult = 0;
private language activLang;
private MessageReceivedEvent event;
public Integer getDiceart() {
return diceart;
}
public Integer getNumberOfDice() {
return numberOfDice;
}
public Integer getIntResult() {
return intResult;
}
public boolean isNum() {
if(typ == 1) {
return true;
}
return false;
}
public boolean isDice() {
if(typ == 2) {
return true;
}
return false;
}
/**
*
* @param event JDA Event
* @param activLang Aktive Sprache
*/
public messageInterpreter(MessageReceivedEvent event, language activLang) {
this.event = event;
this.activLang = activLang;
}
private void reset() {
diceart = 6;
numberOfDice = 1;
typ = 0;
intResult = 0;
}
public void inputInterpreter(String Input) {
reset();
Scanner sc = new Scanner(Input.trim());
if(sc.hasNextInt()) { // ist eine Zahl
typ = 1;
intResult = Integer.parseInt(Input.trim());
return;
}
else {
if (Input.trim().toLowerCase().replace(" ", "").matches("([0-9]*)[dw]([0-9].*)")) { // format besteh aus (Zahlen)d(Zahlen) oder (Zahlen)w(Zahlen)
String[] diceInterpreter = Input.trim().toLowerCase().replace(" ", "").split("[wd]");
try {
diceart = Integer.parseInt(diceInterpreter[1]);
numberOfDice = Integer.parseInt(diceInterpreter[0]);
typ = 2;
} catch (NumberFormatException e) {
String message = activLang.error;
message = message.replace("%command%", Input.trim().toLowerCase());
//event.getChannel().sendMessage(event.getMember().getAsMention() + message).queue();
typ = -1;
throw new IllegalArgumentException( message );
}
}
else {
String message = activLang.error;
message = message.replace("%command%", Input.trim().toLowerCase());
typ = -1;
throw new IllegalArgumentException( message );
}
}
}
}