Hinzufügen !add, !info und !detail
This commit is contained in:
@ -1,117 +0,0 @@
|
||||
package AtlasGruppe;
|
||||
|
||||
import net.dv8tion.jda.core.entities.ChannelType;
|
||||
import net.dv8tion.jda.core.entities.Member;
|
||||
import net.dv8tion.jda.core.entities.Role;
|
||||
import net.dv8tion.jda.core.entities.User;
|
||||
import net.dv8tion.jda.core.entities.impl.RoleImpl;
|
||||
import net.dv8tion.jda.core.events.message.MessageReceivedEvent;
|
||||
import net.dv8tion.jda.core.hooks.ListenerAdapter;
|
||||
import net.dv8tion.jda.core.exceptions.InsufficientPermissionException;
|
||||
|
||||
|
||||
public class groupchange extends ListenerAdapter {
|
||||
|
||||
private String prefixPromote;
|
||||
private String prefixDegradation;
|
||||
|
||||
|
||||
public groupchange() {
|
||||
this.prefixPromote = "!add";
|
||||
this.prefixDegradation = "!remove";
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMessageReceived(MessageReceivedEvent event) {
|
||||
if ((!event.getMessage().getContentRaw().startsWith(this.prefixPromote) && !event.getMessage().getContentRaw().startsWith(this.prefixDegradation)) || event.getChannelType() != ChannelType.TEXT) {
|
||||
return;
|
||||
}
|
||||
|
||||
User author = event.getAuthor();
|
||||
if (!author.isBot()) {
|
||||
if (event.getMessage().getContentRaw().startsWith(this.prefixPromote + " ")) {
|
||||
this.changeGroup(event, true);
|
||||
} else if (event.getMessage().getContentRaw().startsWith(this.prefixDegradation + " ")) {
|
||||
this.changeGroup(event, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void changeGroup(MessageReceivedEvent event, Boolean promote) {
|
||||
|
||||
Member MentionedMember = null;
|
||||
User MentionedUser = null;
|
||||
boolean roleCheck = false;
|
||||
|
||||
try {
|
||||
|
||||
Role targetRole = event.getGuild().getRolesByName("Test2", true).get(0);
|
||||
Role authorizedRole = event.getGuild().getRolesByName("Test2", true).get(0);
|
||||
|
||||
if (event.getMessage().getMentionedUsers().isEmpty()) {
|
||||
event.getChannel().sendMessage(event.getMember().getAsMention() + " Benutzer nicht gefunden").queue();
|
||||
return;
|
||||
}
|
||||
|
||||
MentionedUser = event.getMessage().getMentionedUsers().get(0);
|
||||
|
||||
if (MentionedUser.isBot()) { // Ziel darf kein Bot sein
|
||||
event.getChannel().sendMessage(event.getMember().getAsMention() + " Finger weg von den Bots!").queue();
|
||||
return;
|
||||
}
|
||||
|
||||
MentionedMember = event.getGuild().getMemberById(MentionedUser.getId());
|
||||
|
||||
roleCheck = false;
|
||||
for (Object x : event.getMember().getRoles().toArray()) {
|
||||
if (((RoleImpl) x).getId().equals(authorizedRole.getId())) { // hat Absender die Notwendig Gruppe
|
||||
roleCheck = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!roleCheck) {
|
||||
event.getChannel().sendMessage(event.getMember().getAsMention() + " Du bist nicht berechtigt den Befehl auszuführen").queue();
|
||||
return;
|
||||
}
|
||||
|
||||
if (promote) {
|
||||
roleCheck = false;
|
||||
for (Object x : MentionedMember.getRoles().toArray()) {
|
||||
if (((RoleImpl) x).getId().equals(targetRole.getId())) { // hat Ziel bereits die Gruppe?
|
||||
roleCheck = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (roleCheck) {
|
||||
event.getChannel().sendMessage(event.getMember().getAsMention() + " " + MentionedMember.getEffectiveName() + " hat bereits die Gruppe " + targetRole.getName()).queue();
|
||||
return;
|
||||
}
|
||||
event.getGuild().getController().addSingleRoleToMember(MentionedMember, targetRole).queue();
|
||||
event.getChannel().sendMessage(event.getMember().getAsMention() + " " + MentionedMember.getEffectiveName() + " wurde der Gruppe " + targetRole.getName() + " zugeteilt").queue();
|
||||
} else {
|
||||
roleCheck = false;
|
||||
for (Object x : MentionedMember.getRoles().toArray()) {
|
||||
if (((RoleImpl) x).getId().equals(targetRole.getId())) { // hat Ziel bereits die Gruppe?
|
||||
roleCheck = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!roleCheck) {
|
||||
event.getChannel().sendMessage(event.getMember().getAsMention() + " " + MentionedMember.getEffectiveName() + " ist nicht in der Gruppe " + targetRole.getName()).queue();
|
||||
return;
|
||||
}
|
||||
event.getGuild().getController().removeSingleRoleFromMember(MentionedMember, targetRole).queue();
|
||||
event.getChannel().sendMessage(event.getMember().getAsMention() + " " + MentionedMember.getEffectiveName() + " wurde aus der Gruppe " + targetRole.getName() + " entfernt").queue();
|
||||
}
|
||||
|
||||
} catch (InsufficientPermissionException e) {
|
||||
event.getChannel().sendMessage(event.getMember().getAsMention() + " " + e.getMessage()).queue();
|
||||
} catch (Exception e) {
|
||||
//System.out.println("problem: "+e.getMessage());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
321
src/main/java/Serenity/balance.java
Normal file
321
src/main/java/Serenity/balance.java
Normal file
@ -0,0 +1,321 @@
|
||||
package Serenity;
|
||||
|
||||
import net.dv8tion.jda.core.entities.ChannelType;
|
||||
import net.dv8tion.jda.core.entities.Member;
|
||||
import net.dv8tion.jda.core.entities.Role;
|
||||
import net.dv8tion.jda.core.entities.User;
|
||||
import net.dv8tion.jda.core.entities.impl.RoleImpl;
|
||||
import net.dv8tion.jda.core.events.message.MessageReceivedEvent;
|
||||
import net.dv8tion.jda.core.exceptions.InsufficientPermissionException;
|
||||
import net.dv8tion.jda.core.hooks.ListenerAdapter;
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONObject;
|
||||
|
||||
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;
|
||||
|
||||
public class balance extends ListenerAdapter {
|
||||
|
||||
private String prefixPromote;
|
||||
private String prefixDegradation;
|
||||
private String prefixDetail;
|
||||
|
||||
|
||||
public balance() {
|
||||
this.prefixPromote = "!info";
|
||||
this.prefixDegradation = "!add ";
|
||||
this.prefixDetail = "!detail";
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMessageReceived(MessageReceivedEvent event) {
|
||||
if(event.getMessage().getContentRaw().startsWith("!ende")) {
|
||||
event.getJDA().shutdown();
|
||||
}
|
||||
if ((!event.getMessage().getContentRaw().startsWith(this.prefixPromote) &&
|
||||
!event.getMessage().getContentRaw().startsWith(this.prefixDegradation) &&
|
||||
!event.getMessage().getContentRaw().startsWith(this.prefixDetail)) || event.getChannelType() != ChannelType.TEXT) {
|
||||
return;
|
||||
}
|
||||
|
||||
User author = event.getAuthor();
|
||||
if (!author.isBot()) {
|
||||
if(event.getMessage().getContentRaw().startsWith(this.prefixPromote))
|
||||
this.getInfo(event);
|
||||
else if(event.getMessage().getContentRaw().startsWith(this.prefixDegradation))
|
||||
this.addTransaction(event);
|
||||
else if(event.getMessage().getContentRaw().startsWith(this.prefixDetail))
|
||||
this.getInfo(event, true);
|
||||
|
||||
}
|
||||
}
|
||||
private void getInfo(MessageReceivedEvent event) {
|
||||
this.getInfo(event, false);
|
||||
}
|
||||
private void getInfo(MessageReceivedEvent event, Boolean detail) {
|
||||
HttpURLConnection con = null;
|
||||
String result = "";
|
||||
DecimalFormat myFormatter = new DecimalFormat();
|
||||
|
||||
Map 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
|
||||
|
||||
try {
|
||||
String parameter = "";
|
||||
if(event.getMessage().getMentionedUsers().size() > 0) {
|
||||
if(IdConvert.containsKey(event.getMessage().getMentionedUsers().get(0).getId()))
|
||||
parameter = "?id=" + (IdConvert.get(event.getMessage().getMentionedUsers().get(0).getId()));
|
||||
}
|
||||
else {
|
||||
parameter = "?id=1";
|
||||
}
|
||||
if(detail) {
|
||||
parameter += "&detail=1";
|
||||
}
|
||||
URL url = new URL("http://localhost/REST/balance" + parameter);
|
||||
con = (HttpURLConnection) url.openConnection();
|
||||
con.setRequestMethod("GET");
|
||||
con.setConnectTimeout(3600);
|
||||
con.setReadTimeout(360);
|
||||
con.setUseCaches(false);
|
||||
con.connect();
|
||||
|
||||
int status = con.getResponseCode();
|
||||
switch (status) {
|
||||
case 200:
|
||||
case 201:
|
||||
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 testjason = new JSONObject(content.toString());
|
||||
Iterator<String> keys = testjason.keys();
|
||||
|
||||
while(keys.hasNext()) {
|
||||
String key = keys.next();
|
||||
if (testjason.get(key) instanceof JSONObject) {
|
||||
result += "**" + ((JSONObject) testjason.get(key)).get("name").toString() + ":**\n";
|
||||
result += "```";
|
||||
JSONArray transaction = (JSONArray) ((JSONObject) testjason.get(key)).get("transaction");
|
||||
for(int i = 0; i < transaction.length(); i++) {
|
||||
for (int j = 7-(myFormatter.format(Float.parseFloat(((JSONObject) transaction.get(i)).get("amount").toString()))).length(); j > 0; j--) {
|
||||
result += " ";
|
||||
}
|
||||
result += (myFormatter.format(Float.parseFloat(((JSONObject) transaction.get(i)).get("amount").toString())));
|
||||
|
||||
|
||||
result += " " + ((JSONObject) transaction.get(i)).get("currency_name").toString() + " ";
|
||||
if(detail) {
|
||||
result += " - " + ((JSONObject) transaction.get(i)).get("reason").toString();
|
||||
}
|
||||
result += "\n";
|
||||
}
|
||||
result += "```";
|
||||
}
|
||||
}
|
||||
event.getChannel().sendMessage(event.getMember().getAsMention() + "\n" + result).queue();
|
||||
break;
|
||||
default:
|
||||
System.out.println(":(");
|
||||
}
|
||||
con.disconnect();
|
||||
|
||||
} catch (Exception e) {
|
||||
System.out.println("problem: "+e.getMessage());
|
||||
}
|
||||
finally {
|
||||
if (con != null) {
|
||||
try {
|
||||
con.disconnect();
|
||||
} catch (Exception ex) {
|
||||
System.out.println("final fehler");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void addTransaction(MessageReceivedEvent event) {
|
||||
Map 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 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 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;
|
||||
String result = "";
|
||||
boolean allfound = true;
|
||||
String[] MsgParts;
|
||||
String reason = "";
|
||||
float ammount = 0;
|
||||
|
||||
HttpURLConnection con = null;
|
||||
DecimalFormat myFormatter = new DecimalFormat();
|
||||
|
||||
try {
|
||||
|
||||
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()];
|
||||
|
||||
if(!currencyConvert.containsKey(MsgParts[1].toLowerCase())) {
|
||||
event.getChannel().sendMessage(event.getMember().getAsMention() + " " + MsgParts[1] + " ist keine bekannte Währung").queue();
|
||||
return;
|
||||
}
|
||||
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();
|
||||
|
||||
}
|
||||
|
||||
reason = MsgParts_exl_Mention[1].trim().substring(MsgParts[0].length() + MsgParts[1].length()+2);
|
||||
|
||||
for(int i = 0; i< event.getMessage().getMentionedUsers().size(); i++) {
|
||||
if(!IdConvert.containsKey( event.getMessage().getMentionedUsers().get(i).getId())) {
|
||||
allfound = false;
|
||||
result = result + " " + event.getMessage().getMentionedUsers().get(i).getName();
|
||||
}
|
||||
else {
|
||||
ids[i] = (int) IdConvert.get(event.getMessage().getMentionedUsers().get(i).getId());
|
||||
}
|
||||
}
|
||||
|
||||
if(!allfound) {
|
||||
event.getChannel().sendMessage(event.getMember().getAsMention() + result + " wurde(n) nicht gefunden").queue();
|
||||
return;
|
||||
}
|
||||
|
||||
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);
|
||||
|
||||
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:
|
||||
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 testjason = new JSONObject(content.toString());
|
||||
Iterator<String> keys = testjason.keys();
|
||||
|
||||
result = "";
|
||||
while(keys.hasNext()) {
|
||||
String key = keys.next();
|
||||
String id = getKey(IdConvert, Integer.parseInt(key)).toString();
|
||||
|
||||
if(key.equals("1")) {
|
||||
result += "Das Schiff bekommt: " + testjason.get(key) + " " + currencyConvert2.get(currencyConvert.get(MsgParts[1].toLowerCase())) + " ";
|
||||
}
|
||||
else {
|
||||
result += event.getGuild().getMemberById(id).getAsMention() + " bekommt " + testjason.get(key) + " " + currencyConvert2.get(currencyConvert.get(MsgParts[1].toLowerCase())) + " ";
|
||||
}
|
||||
/*if (testjason.get(key) instanceof JSONObject) {
|
||||
result = result + "**" + ((JSONObject) testjason.get(key)).get("name").toString() + ":**\n";
|
||||
JSONArray transaction = (JSONArray) ((JSONObject) testjason.get(key)).get("transaction");
|
||||
for(int i = 0; i < transaction.length(); i++) {
|
||||
result = result + (myFormatter.format(Float.parseFloat(((JSONObject) transaction.get(i)).get("amount").toString())));
|
||||
result = result + " " + ((JSONObject) transaction.get(i)).get("currency_name").toString() + "\n";
|
||||
}
|
||||
}*/
|
||||
}
|
||||
event.getChannel().sendMessage(event.getMember().getAsMention() + " " + result).queue();
|
||||
break;
|
||||
default:
|
||||
System.out.println(":(");
|
||||
}
|
||||
con.disconnect();
|
||||
|
||||
//event.getJDA().getSelfUser().
|
||||
}
|
||||
|
||||
catch (Exception e) {
|
||||
System.out.println("problem: "+e.getMessage());
|
||||
}
|
||||
finally {
|
||||
if (con != null) {
|
||||
try {
|
||||
con.disconnect();
|
||||
} catch (Exception ex) {
|
||||
System.out.println("final fehler");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
@ -1,7 +1,7 @@
|
||||
package core;
|
||||
|
||||
|
||||
import AtlasGruppe.groupchange;
|
||||
import Serenity.balance;
|
||||
import net.dv8tion.jda.core.JDA;
|
||||
import net.dv8tion.jda.core.JDABuilder;
|
||||
import net.dv8tion.jda.core.AccountType;
|
||||
@ -16,15 +16,17 @@ public class Main {
|
||||
public static void main(String[] args) {
|
||||
|
||||
// Insert your bot's token here
|
||||
String token = "NDA1MDQ2NDg1OTk0OTYyOTQ2.DUessg.YFKvsTLIyPwprLlEOnZc0PXWJH0";
|
||||
String token = "NTQ2ODk5MzYwMDEzODc3MjU4.D0u8wA.VfA2vJzundVhCl1-ibDiBaKuA8w";
|
||||
// iro
|
||||
//String token = "NTQ2NzEwODUwOTIxMjk5OTc5.D0sL6A.1fUd5iBr3eo2tbPXofEqyumDm6w";
|
||||
|
||||
JDABuilder builder = new JDABuilder(AccountType.BOT);
|
||||
|
||||
builder.setToken(token);
|
||||
builder.setAutoReconnect(true);
|
||||
builder.setStatus(OnlineStatus.ONLINE);
|
||||
builder.setGame(Game.watching("Den NinjaSäuen zu"));
|
||||
builder.addEventListener(new groupchange());
|
||||
builder.setGame(Game.playing("mit den Würfeln"));
|
||||
builder.addEventListener(new balance());
|
||||
|
||||
try {
|
||||
JDA jda = builder.build();
|
||||
|
||||
Reference in New Issue
Block a user