einfache Zitate hinzugfügt
This commit is contained in:
@ -1,272 +0,0 @@
|
|||||||
package Shadowrun;
|
|
||||||
|
|
||||||
import net.dv8tion.jda.core.EmbedBuilder;
|
|
||||||
import net.dv8tion.jda.core.entities.ChannelType;
|
|
||||||
import net.dv8tion.jda.core.entities.User;
|
|
||||||
import net.dv8tion.jda.core.events.message.MessageReceivedEvent;
|
|
||||||
import net.dv8tion.jda.core.hooks.ListenerAdapter;
|
|
||||||
import org.json.JSONArray;
|
|
||||||
import org.json.JSONObject;
|
|
||||||
|
|
||||||
import java.awt.*;
|
|
||||||
import java.io.*;
|
|
||||||
import java.net.HttpURLConnection;
|
|
||||||
import java.net.URL;
|
|
||||||
import java.text.DecimalFormat;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Random;
|
|
||||||
|
|
||||||
public class Shadowrun extends ListenerAdapter {
|
|
||||||
|
|
||||||
private String prefixSr;
|
|
||||||
private String prefixDegradation;
|
|
||||||
private String prefixDetail;
|
|
||||||
|
|
||||||
|
|
||||||
public Shadowrun() {
|
|
||||||
this.prefixSr = "!sr";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onMessageReceived(MessageReceivedEvent event) {
|
|
||||||
if (event.getMessage().getContentRaw().startsWith("!ende")) { // nur zum Debugen #todo muss wieder raus
|
|
||||||
event.getJDA().shutdown();
|
|
||||||
}
|
|
||||||
if ((!event.getMessage().getContentRaw().startsWith(this.prefixSr)) || event.getChannelType() != ChannelType.TEXT) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
User author = event.getAuthor();
|
|
||||||
if (!author.isBot()) {
|
|
||||||
if (event.getMessage().getContentRaw().startsWith(this.prefixSr))
|
|
||||||
this.getInfo(event);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void getInfo(MessageReceivedEvent event) {
|
|
||||||
this.getInfo(event, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Holt Kontostand ab
|
|
||||||
*
|
|
||||||
* @param event JDA Event
|
|
||||||
* @param detail true = Abrufen der Detail, Chronologich, false = gesammt Kontostand
|
|
||||||
*/
|
|
||||||
private void getInfo(MessageReceivedEvent event, Boolean detail) {
|
|
||||||
|
|
||||||
EmbedBuilder test = new EmbedBuilder();
|
|
||||||
test.setTitle("Das ist ein Test");
|
|
||||||
test.setColor(Color.red);
|
|
||||||
test.setDescription("Text " + event.getMember().getAsMention());
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int[] verteilung = new int[6];
|
|
||||||
int dice1;
|
|
||||||
|
|
||||||
try {
|
|
||||||
String[] MsgParts_exl_Mention = event.getMessage().getContentRaw().split(" ");
|
|
||||||
int rounds = Integer.parseInt(MsgParts_exl_Mention[1]);
|
|
||||||
if(rounds <= 0) {
|
|
||||||
event.getChannel().sendMessage("Nope").queue();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
for(int i = 0; i < rounds; i++) {
|
|
||||||
dice1 = new Random().nextInt(6);
|
|
||||||
verteilung[dice1]++;
|
|
||||||
}
|
|
||||||
for(int i = 0; i < 6; i++) {
|
|
||||||
float pro = verteilung[i]*100f/rounds;
|
|
||||||
test.addField(Integer.toString(i+1), Integer.toString(verteilung[i]) + " - " + String.format("%.2f", pro), true);
|
|
||||||
}
|
|
||||||
event.getChannel().sendMessage(test.build()).queue();
|
|
||||||
|
|
||||||
}
|
|
||||||
catch (NumberFormatException e) {
|
|
||||||
event.getChannel().sendMessage("Nope").queue();
|
|
||||||
}
|
|
||||||
catch (Exception e) {
|
|
||||||
System.out.println("problem: " + e.getMessage());
|
|
||||||
} finally {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Fügt neue Transaktion hinzu
|
|
||||||
*
|
|
||||||
* @param event JDA Event
|
|
||||||
*/
|
|
||||||
private void addTransaction(MessageReceivedEvent event) {
|
|
||||||
Map<String, Integer> IdConvert = new HashMap<>();
|
|
||||||
IdConvert.put("256888865103544321", 2); // Niclos
|
|
||||||
IdConvert.put("495895196685303818", 3); // Birgit
|
|
||||||
IdConvert.put("385865287586545676", 7); // Felix
|
|
||||||
IdConvert.put("493359873480720384", 5); // orko
|
|
||||||
IdConvert.put("339859242917953537", 4); // christian
|
|
||||||
IdConvert.put("397055491488088065", 6); // Filip
|
|
||||||
IdConvert.put(event.getJDA().getSelfUser().getId(), 1); // Schiff
|
|
||||||
|
|
||||||
|
|
||||||
Map<String, Integer> currencyConvert = new HashMap<>();
|
|
||||||
currencyConvert.put("credit", 1);
|
|
||||||
currencyConvert.put("c", 1);
|
|
||||||
currencyConvert.put("doller", 2);
|
|
||||||
currencyConvert.put("d", 2);
|
|
||||||
currencyConvert.put("$", 2);
|
|
||||||
currencyConvert.put("platinum", 3);
|
|
||||||
currencyConvert.put("p", 3);
|
|
||||||
currencyConvert.put("gold", 4);
|
|
||||||
currencyConvert.put("g", 4);
|
|
||||||
currencyConvert.put("silver", 5);
|
|
||||||
currencyConvert.put("s", 5);
|
|
||||||
|
|
||||||
Map<Integer, String> currencyConvert2 = new HashMap<>();
|
|
||||||
currencyConvert2.put(1, "Credit");
|
|
||||||
currencyConvert2.put(2, "Doller");
|
|
||||||
currencyConvert2.put(3, "Platinum");
|
|
||||||
currencyConvert2.put(4, "Gold");
|
|
||||||
currencyConvert2.put(5, "Silver");
|
|
||||||
|
|
||||||
int[] ids;
|
|
||||||
StringBuilder result = new StringBuilder("");
|
|
||||||
boolean allfound = true;
|
|
||||||
String[] MsgParts;
|
|
||||||
float ammount;
|
|
||||||
|
|
||||||
HttpURLConnection con = null;
|
|
||||||
|
|
||||||
try {
|
|
||||||
// Aufteilen Nachricht in Bennunungen und Rest
|
|
||||||
String[] MsgParts_exl_Mention = event.getMessage().getContentRaw().split(event.getMessage().getMentionedUsers().get(event.getMessage().getMentionedUsers().size() - 1).getAsMention(), 2);
|
|
||||||
MsgParts = MsgParts_exl_Mention[1].trim().split(" ");
|
|
||||||
|
|
||||||
ids = new int[event.getMessage().getMentionedUsers().size()];
|
|
||||||
|
|
||||||
// Pürfen ob Angebe der Währung bekannt ist
|
|
||||||
if (!currencyConvert.containsKey(MsgParts[1].toLowerCase())) {
|
|
||||||
event.getChannel().sendMessage(event.getMember().getAsMention() + " " + MsgParts[1] + " ist keine bekannte Währung").queue();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Prüfen ob Zahl legal ist
|
|
||||||
try {
|
|
||||||
|
|
||||||
ammount = Float.parseFloat(MsgParts[0]);
|
|
||||||
} catch (NumberFormatException e) {
|
|
||||||
event.getChannel().sendMessage(event.getMember().getAsMention() + " " + MsgParts[MsgParts.length - 2] + " ist keine gültige Zahl").queue();
|
|
||||||
return;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Prüfen ob alle gennanten Personen zur Zahlung gehören
|
|
||||||
for (int i = 0; i < event.getMessage().getMentionedUsers().size(); i++) {
|
|
||||||
if (!IdConvert.containsKey(event.getMessage().getMentionedUsers().get(i).getId())) {
|
|
||||||
allfound = false;
|
|
||||||
result.append(" ").append(event.getMessage().getMentionedUsers().get(i).getName());
|
|
||||||
} else {
|
|
||||||
ids[i] = IdConvert.get(event.getMessage().getMentionedUsers().get(i).getId());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!allfound) {
|
|
||||||
event.getChannel().sendMessage(event.getMember().getAsMention() + result.toString() + " wurde(n) nicht gefunden").queue();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
String reason = MsgParts_exl_Mention[1].trim().substring(MsgParts[0].length() + MsgParts[1].length() + 2);
|
|
||||||
|
|
||||||
// Aufbau Payload zur übertragung an REST Schnittstelle
|
|
||||||
JSONObject payload = new JSONObject();
|
|
||||||
payload.put("ammount", ammount);
|
|
||||||
payload.put("currency_id", currencyConvert.get(MsgParts[1].toLowerCase()));
|
|
||||||
payload.put("ids", ids);
|
|
||||||
payload.put("reason", reason);
|
|
||||||
|
|
||||||
URL url = new URL("http://localhost/REST/balance");
|
|
||||||
con = (HttpURLConnection) url.openConnection();
|
|
||||||
con.setRequestMethod("POST");
|
|
||||||
con.setConnectTimeout(3600);
|
|
||||||
con.setReadTimeout(3600);
|
|
||||||
con.setDoInput(true);
|
|
||||||
con.setDoOutput(true);
|
|
||||||
con.setDefaultUseCaches(false);
|
|
||||||
|
|
||||||
// Übertragen der Payload
|
|
||||||
OutputStream os = con.getOutputStream();
|
|
||||||
BufferedWriter writer = new BufferedWriter(
|
|
||||||
new OutputStreamWriter(os, "UTF-8"));
|
|
||||||
writer.write(payload.toString());
|
|
||||||
writer.flush();
|
|
||||||
writer.close();
|
|
||||||
|
|
||||||
int status = con.getResponseCode();
|
|
||||||
|
|
||||||
switch (status) {
|
|
||||||
case 200:
|
|
||||||
case 201: // Verarbeiten der Antwort
|
|
||||||
BufferedReader in = new BufferedReader(
|
|
||||||
new InputStreamReader(con.getInputStream()));
|
|
||||||
String inputLine;
|
|
||||||
StringBuffer content = new StringBuffer();
|
|
||||||
while ((inputLine = in.readLine()) != null) {
|
|
||||||
content.append(inputLine);
|
|
||||||
}
|
|
||||||
in.close();
|
|
||||||
JSONObject responseJson = new JSONObject(content.toString());
|
|
||||||
Iterator<String> keys = responseJson.keys();
|
|
||||||
|
|
||||||
result = new StringBuilder("");
|
|
||||||
while (keys.hasNext()) {
|
|
||||||
String key = keys.next();
|
|
||||||
String id = getKey(IdConvert, Integer.parseInt(key));
|
|
||||||
|
|
||||||
if (key.equals("1")) {
|
|
||||||
result.append("Das Schiff bekommt: ").append(responseJson.get(key)).append(" ").append(currencyConvert2.get(currencyConvert.get(MsgParts[1].toLowerCase()))).append(" ");
|
|
||||||
} else {
|
|
||||||
result.append(event.getGuild().getMemberById(id).getAsMention()).append(" bekommt ").append(responseJson.get(key)).append(" ").append(currencyConvert2.get(currencyConvert.get(MsgParts[1].toLowerCase()))).append(" ");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
event.getChannel().sendMessage(event.getMember().getAsMention() + " " + result.toString()).queue();
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
System.out.println(":(");
|
|
||||||
}
|
|
||||||
con.disconnect();
|
|
||||||
|
|
||||||
} catch (Exception e) {
|
|
||||||
System.out.println("problem: " + e.getMessage());
|
|
||||||
} finally {
|
|
||||||
if (con != null) { // Verbindung schließen wenn noch offen
|
|
||||||
try {
|
|
||||||
con.disconnect();
|
|
||||||
} catch (Exception ex) {
|
|
||||||
System.out.println("final fehler");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sucht in einer Map nach Wert und gibt Schlüßel zurück
|
|
||||||
* @param map Map mit allen Werten
|
|
||||||
* @param value gesuchtet wert
|
|
||||||
* @param <K> erste Typ
|
|
||||||
* @param <V> zweiter typ
|
|
||||||
* @return <K,V>|null
|
|
||||||
*/
|
|
||||||
private <K, V> K getKey(Map<K, V> map, V value) {
|
|
||||||
for (Map.Entry<K, V> entry : map.entrySet()) {
|
|
||||||
if (entry.getValue().equals(value)) {
|
|
||||||
return entry.getKey();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
108
src/main/java/Shadowrun/dice.java
Executable file
108
src/main/java/Shadowrun/dice.java
Executable file
@ -0,0 +1,108 @@
|
|||||||
|
package Shadowrun;
|
||||||
|
|
||||||
|
import net.dv8tion.jda.core.EmbedBuilder;
|
||||||
|
import net.dv8tion.jda.core.entities.ChannelType;
|
||||||
|
import net.dv8tion.jda.core.entities.User;
|
||||||
|
import net.dv8tion.jda.core.events.message.MessageReceivedEvent;
|
||||||
|
import net.dv8tion.jda.core.hooks.ListenerAdapter;
|
||||||
|
import org.json.JSONArray;
|
||||||
|
import org.json.JSONObject;
|
||||||
|
|
||||||
|
import java.awt.*;
|
||||||
|
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
|
public class dice extends ListenerAdapter {
|
||||||
|
|
||||||
|
private String prefixSr;
|
||||||
|
private String prefixZitat;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public dice() {
|
||||||
|
this.prefixSr = "!sr";
|
||||||
|
this.prefixZitat = "!zitat";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onMessageReceived(MessageReceivedEvent event) {
|
||||||
|
if ((!event.getMessage().getContentRaw().startsWith(this.prefixSr) && !event.getMessage().getContentRaw().startsWith(this.prefixZitat)) || event.getChannelType() != ChannelType.TEXT) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
User author = event.getAuthor();
|
||||||
|
if (!author.isBot()) {
|
||||||
|
if (event.getMessage().getContentRaw().startsWith(this.prefixSr))
|
||||||
|
this.roll(event);
|
||||||
|
if (event.getMessage().getContentRaw().startsWith(this.prefixZitat))
|
||||||
|
this.zitat(event);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Holt Kontostand ab
|
||||||
|
*
|
||||||
|
* @param event JDA Event
|
||||||
|
*/
|
||||||
|
private void roll(MessageReceivedEvent event) {
|
||||||
|
|
||||||
|
EmbedBuilder test = new EmbedBuilder();
|
||||||
|
test.setTitle("Das ist ein Test");
|
||||||
|
test.setColor(Color.red);
|
||||||
|
test.setDescription("Text " + event.getMember().getAsMention());
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
int[] verteilung = new int[6];
|
||||||
|
int dice1;
|
||||||
|
|
||||||
|
try {
|
||||||
|
String[] MsgParts_exl_Mention = event.getMessage().getContentRaw().split(" ");
|
||||||
|
int rounds = Integer.parseInt(MsgParts_exl_Mention[1]);
|
||||||
|
if(rounds <= 0) {
|
||||||
|
event.getChannel().sendMessage("Nope").queue();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
for(int i = 0; i < rounds; i++) {
|
||||||
|
dice1 = new Random().nextInt(6);
|
||||||
|
verteilung[dice1]++;
|
||||||
|
}
|
||||||
|
for(int i = 0; i < 6; i++) {
|
||||||
|
float pro = verteilung[i]*100f/rounds;
|
||||||
|
test.addField(Integer.toString(i+1), Integer.toString(verteilung[i]) + " - " + String.format("%.2f", pro), true);
|
||||||
|
}
|
||||||
|
event.getChannel().sendMessage(test.build()).queue();
|
||||||
|
|
||||||
|
}
|
||||||
|
catch (NumberFormatException e) {
|
||||||
|
event.getChannel().sendMessage("Nope").queue();
|
||||||
|
}
|
||||||
|
catch (Exception e) {
|
||||||
|
System.out.println("problem: " + e.getMessage());
|
||||||
|
} finally {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
private void zitat(MessageReceivedEvent event) {
|
||||||
|
String[] quotes = new String[7];
|
||||||
|
|
||||||
|
quotes[0] = "*quiek quiek quiek*";
|
||||||
|
quotes[1] = "" +
|
||||||
|
"(\\\\_____/)\n" +
|
||||||
|
"( ͡ ͡° ͜ ʖ ͡ ͡°) *snuff snuff*\n" +
|
||||||
|
"\\\\╭☞ \\\\╭☞\n" +
|
||||||
|
"";
|
||||||
|
quotes[2] = "(づ。◕‿‿◕。)づ";
|
||||||
|
quotes[3] = "zzzZZZZZzzZZ";
|
||||||
|
quotes[4] = "piiiep";
|
||||||
|
quotes[5] = "grrrrr";
|
||||||
|
quotes[6] = "ʕᵔᴥᵔʔ =*Auto translator*=> In meiner psychophysischen Konstituton manifestiert sich eine absolute Dominanz positiver Effekte für die Individualität Deiner Person. ";
|
||||||
|
|
||||||
|
int dice = new Random().nextInt(700);
|
||||||
|
event.getChannel().sendMessage(quotes[dice%7]).queue();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
4
src/main/java/core/Main.java
Normal file → Executable file
4
src/main/java/core/Main.java
Normal file → Executable file
@ -2,7 +2,7 @@ package core;
|
|||||||
|
|
||||||
|
|
||||||
import Serenity.balance;
|
import Serenity.balance;
|
||||||
import Shadowrun.Shadowrun;
|
import Shadowrun.dice;
|
||||||
import net.dv8tion.jda.core.JDA;
|
import net.dv8tion.jda.core.JDA;
|
||||||
import net.dv8tion.jda.core.JDABuilder;
|
import net.dv8tion.jda.core.JDABuilder;
|
||||||
import net.dv8tion.jda.core.AccountType;
|
import net.dv8tion.jda.core.AccountType;
|
||||||
@ -28,7 +28,7 @@ public class Main {
|
|||||||
builder.setStatus(OnlineStatus.ONLINE);
|
builder.setStatus(OnlineStatus.ONLINE);
|
||||||
builder.setGame(Game.playing("mit den Würfeln"));
|
builder.setGame(Game.playing("mit den Würfeln"));
|
||||||
builder.addEventListener(new balance());
|
builder.addEventListener(new balance());
|
||||||
builder.addEventListener(new Shadowrun() );
|
builder.addEventListener(new dice() );
|
||||||
|
|
||||||
try {
|
try {
|
||||||
JDA jda = builder.build();
|
JDA jda = builder.build();
|
||||||
|
|||||||
Reference in New Issue
Block a user