RuneHive-Tarnish
Neural OSRS Enhancement Framework
Loading...
Searching...
No Matches
DiscordPlugin.java
1package com.osroyale.net.discord;
2
3import net.dv8tion.jda.api.EmbedBuilder;
4import net.dv8tion.jda.api.JDA;
5import net.dv8tion.jda.api.JDABuilder;
6import net.dv8tion.jda.api.entities.Activity;
7
8import java.io.BufferedReader;
9import java.io.FileReader;
10import java.io.IOException;
11import java.time.LocalDateTime;
12import java.time.format.DateTimeFormatter;
13import java.util.Objects;
14
44
45public class DiscordPlugin {
46 private static JDA discord = null;
47
48 public static void startUp() {
49 System.out.println("Initing Discord...");
50 discord = JDABuilder.createDefault(Constants.TOKEN).build();
51 discord.addEventListener(new BotListener());
52 discord.getPresence().setActivity(Activity.playing("Tarnish"));
53 }
54
55 public static JDA getJDA() {
56 return discord;
57 }
58
59 public static void sendSimpleMessage(String message) {
60 if (discord == null) {
61 System.out.println("discord error: discord is null.");
62 return;
63 }
64 discord.getTextChannelById(Constants.EVENTS_CHANNEL).sendMessage(message).queue();
65 }
66
67 public static void sendBugReport(String playername, String message) {
68 if (discord == null) {
69 System.out.println("discord error: discord is null.");
70 return;
71 }
72 discord.getTextChannelById(Constants.BUG_CHANNEL).sendMessage("Bug report from " + playername + ": " + message).queue();
73 }
74 public static void sendAnnouncement(String message) {
75 if (discord == null) {
76 System.out.println("discord error: discord is null.");
77 return;
78 }
79 discord.getTextChannelById(Constants.ANNOUNCEMENT_CHANNEL).sendMessage(message).queue();
80 }
81
82 public static void sendSuggestion(String playername, String message) {
83 if (discord == null) {
84 System.out.println("discord error: discord is null.");
85 return;
86 }
87 discord.getTextChannelById(Constants.SUGGESTION_CHANNEL).sendMessage("Suggestion from " + playername + ": " + message).queue();
88 }
89
90 public static void sendPunishmentMessage(String staffMember, String action, String playerName, String time) {
91 if (discord == null) {
92 System.out.println("discord error: discord is null.");
93 return;
94 }
95 Objects.requireNonNull(discord.getTextChannelById(Constants.PUNISHMENT_CHANNEL))
96 .sendMessage(staffMember + " has " + action + " " + playerName + " " + time).queue();
97 }
98
99 public static void sendEventMessage(String message, String reciever, String icon, int skillID) {
100 if (discord == null) {
101 System.out.println("discord error: discord is null.");
102 return;
103 }
104
105 Objects.requireNonNull(discord.getTextChannelById(Constants.EVENTS_CHANNEL)).sendMessage((CharSequence) new EmbedBuilder()
106 .setAuthor(reciever, "https://harmonyrsps.com", "https://harmonyrsps.com/files/discord/"+icon+".png")
107 .setDescription(message)
108 .setThumbnail("https://harmonyrsps.com/files/discord/"+skillID+".png")
109 .build()).queue();
110 }
111
112 public static void sendUpdateMessage(String reciever) {
113 if (discord == null) {
114 System.out.println("discord error: discord is null.");
115 return;
116 }
117
118 LocalDateTime now = LocalDateTime.now();
119 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy");
120 String formatedDateTime = now.format(formatter);
121 String fileLine = "";
122 try {
123 BufferedReader file = new BufferedReader(new FileReader("source/tools/website_logs/DiscordUpdateLog.txt"));
124 String line = file.readLine();
125
126 while (line != null) {
127 fileLine += "> "+line + "\n";
128 // read next line
129 line = file.readLine();
130 }
131
132 file.close();
133 } catch (IOException e) {
134 e.printStackTrace();
135 }
136 Objects.requireNonNull(discord.getTextChannelById(Constants.UPDATE_CHANNEL)).sendMessage((CharSequence) new EmbedBuilder()
137 .setAuthor(reciever, "https://harmonyrsps.com", "https://harmonyrsps.com/assets/images/avatar.png")
138 .setDescription(fileLine)
139 .setThumbnail("https://oldschool.runescape.wiki/images/thumb/Ring_of_wealth_scroll_detail.png/1200px-Ring_of_wealth_scroll_detail.png?b1944")
140 .setTitle("Update Log - " + formatedDateTime)
141 );
142 }
143
144 public static void pollYN(String question) {
145 EmbedBuilder embedBuilder = new EmbedBuilder();
146 embedBuilder.setTitle(question);
147 embedBuilder.setDescription("\uD83D\uDC4D Yes | \uD83D\uDC4E No");
148
149 discord.getTextChannelById(Constants.POLL_CHANNEL).sendMessage((CharSequence) embedBuilder.build()).queue(msg->{
150 });
151 }
152
153}
154
155
156