Added proper(?) rate limit handling
This commit is contained in:
parent
95ab347ef6
commit
b3131a063f
2 changed files with 13 additions and 16 deletions
|
@ -4,21 +4,14 @@ import java.io.BufferedReader;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.plugin.RegisteredServiceProvider;
|
import org.bukkit.plugin.RegisteredServiceProvider;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
|
||||||
import com.google.common.io.Files;
|
import com.google.common.io.Files;
|
||||||
import com.google.gson.JsonArray;
|
import com.google.gson.*;
|
||||||
import com.google.gson.JsonElement;
|
|
||||||
import com.google.gson.JsonObject;
|
|
||||||
import com.google.gson.JsonParser;
|
|
||||||
|
|
||||||
import buttondevteam.discordplugin.listeners.CommandListener;
|
import buttondevteam.discordplugin.listeners.*;
|
||||||
import buttondevteam.discordplugin.listeners.ExceptionListener;
|
|
||||||
import buttondevteam.discordplugin.listeners.MCChatListener;
|
|
||||||
import buttondevteam.discordplugin.listeners.MCListener;
|
|
||||||
import buttondevteam.discordplugin.mccommands.DiscordMCCommandBase;
|
import buttondevteam.discordplugin.mccommands.DiscordMCCommandBase;
|
||||||
import buttondevteam.lib.TBMCCoreAPI;
|
import buttondevteam.lib.TBMCCoreAPI;
|
||||||
import buttondevteam.lib.chat.TBMCChatAPI;
|
import buttondevteam.lib.chat.TBMCChatAPI;
|
||||||
|
@ -26,10 +19,8 @@ import net.milkbowl.vault.permission.Permission;
|
||||||
import sx.blah.discord.api.*;
|
import sx.blah.discord.api.*;
|
||||||
import sx.blah.discord.api.events.IListener;
|
import sx.blah.discord.api.events.IListener;
|
||||||
import sx.blah.discord.handle.impl.events.ReadyEvent;
|
import sx.blah.discord.handle.impl.events.ReadyEvent;
|
||||||
import sx.blah.discord.handle.obj.IChannel;
|
import sx.blah.discord.handle.obj.*;
|
||||||
import sx.blah.discord.handle.obj.IGuild;
|
import sx.blah.discord.util.RateLimitException;
|
||||||
import sx.blah.discord.handle.obj.IMessage;
|
|
||||||
import sx.blah.discord.handle.obj.Status;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Hello world!
|
* Hello world!
|
||||||
|
@ -209,12 +200,18 @@ public class DiscordPlugin extends JavaPlugin implements IListener<ReadyEvent> {
|
||||||
for (int i = 0; i < 10; i++) {
|
for (int i = 0; i < 10; i++) {
|
||||||
try {
|
try {
|
||||||
Thread.sleep(i * 100);
|
Thread.sleep(i * 100);
|
||||||
} catch (InterruptedException e) {
|
} catch (InterruptedException e2) {
|
||||||
e.printStackTrace();
|
e2.printStackTrace();
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
return channel
|
return channel
|
||||||
.sendMessage(Test ? "*The following message is from a test server*\n" + message : message);
|
.sendMessage(Test ? "*The following message is from a test server*\n" + message : message);
|
||||||
|
} catch (RateLimitException e) {
|
||||||
|
try {
|
||||||
|
Thread.sleep(e.getRetryDelay());
|
||||||
|
} catch (InterruptedException e1) {
|
||||||
|
e1.printStackTrace();
|
||||||
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
if (i == 9) {
|
if (i == 9) {
|
||||||
Bukkit.getLogger().warning("Failed to deliver message to Discord! Channel: " + channel.getName()
|
Bukkit.getLogger().warning("Failed to deliver message to Discord! Channel: " + channel.getName()
|
||||||
|
|
|
@ -47,7 +47,7 @@ public class MCChatListener implements Listener, IListener<MessageReceivedEvent>
|
||||||
if (!Arrays.stream(UnconnectedCmds).anyMatch(s -> cmd.startsWith(s))) {
|
if (!Arrays.stream(UnconnectedCmds).anyMatch(s -> cmd.startsWith(s))) {
|
||||||
// Command not whitelisted
|
// Command not whitelisted
|
||||||
DiscordPlugin.sendMessageToChannel(event.getMessage().getChannel(), // TODO
|
DiscordPlugin.sendMessageToChannel(event.getMessage().getChannel(), // TODO
|
||||||
"Sorry, you don't have your accounts connected (or you have, this part doesn't work yet), you can only access these commands:\n"
|
"Sorry, you don't have your accounts connected (or... idk, this part doesn't work yet), you can only access these commands:\n"
|
||||||
+ Arrays.toString(UnconnectedCmds));
|
+ Arrays.toString(UnconnectedCmds));
|
||||||
} else
|
} else
|
||||||
Bukkit.dispatchCommand(dsender, cmd);
|
Bukkit.dispatchCommand(dsender, cmd);
|
||||||
|
|
Loading…
Reference in a new issue