Skip to content

Commit

Permalink
catch invalid contexts to avoid NPEs
Browse files Browse the repository at this point in the history
  • Loading branch information
mcmonkey4eva committed Mar 9, 2019
1 parent d566cc5 commit d082df1
Showing 1 changed file with 70 additions and 35 deletions.
105 changes: 70 additions & 35 deletions src/main/java/com/denizenscript/ddiscordbot/DiscordScriptEvent.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@
import sx.blah.discord.handle.impl.events.guild.channel.message.MessageEvent;
import sx.blah.discord.handle.impl.events.guild.channel.message.MessageUpdateEvent;
import sx.blah.discord.handle.impl.events.guild.member.GuildMemberEvent;
import sx.blah.discord.handle.obj.IGuild;
import sx.blah.discord.handle.obj.IMessage;
import sx.blah.discord.handle.obj.IUser;

public abstract class DiscordScriptEvent extends ScriptEvent {
Expand Down Expand Up @@ -44,19 +46,28 @@ else if (name.equals("is_direct")) {
}
if (event instanceof GuildEvent) {
if (name.equals("group")) {
return new Element(((GuildEvent) event).getGuild().getLongID());
IGuild guild = ((GuildEvent) event).getGuild();
if (guild != null) {
return new Element(guild.getLongID());
}
}
else if (name.equals("group_name")) {
return new Element(((GuildEvent) event).getGuild().getName());
IGuild guild = ((GuildEvent) event).getGuild();
if (guild != null) {
return new Element(guild.getName());
}
}
}
if (event instanceof MessageEvent) {
if (name.equals("message")) {
return new Element(((MessageEvent) event).getMessage().getContent());
}
if (name.equals("new_message_valid")) {
return new Element(((MessageEvent) event).getMessage() != null);
}
if (name.equals("message")) {
IMessage message = ((MessageEvent) event).getMessage();
if (message != null) {
return new Element(message.getContent());
}
}
if (name.equals("no_mention_message")) {
String res = ((MessageEvent) event).getMessage().getContent();
for (IUser user : ((MessageEvent) event).getMessage().getMentions()) {
Expand All @@ -66,60 +77,84 @@ else if (name.equals("group_name")) {
return new Element(res);
}
else if (name.equals("formatted_message")) {
return new Element(((MessageEvent) event).getMessage().getFormattedContent());
}
else if (name.equals("author_id")) {
return new Element(((MessageEvent) event).getAuthor().getLongID());
}
else if (name.equals("author_name")) {
return new Element(((MessageEvent) event).getAuthor().getName());
IMessage message = ((MessageEvent) event).getMessage();
if (message != null) {
return new Element(message.getFormattedContent());
}
}
else if (name.equals("mentions")) {
dList list = new dList();
for (IUser user : ((MessageEvent) event).getMessage().getMentions()) {
list.add(String.valueOf(user.getLongID()));
IMessage message = ((MessageEvent) event).getMessage();
if (message != null) {
dList list = new dList();
for (IUser user : message.getMentions()) {
list.add(String.valueOf(user.getLongID()));
}
return list;
}
return list;
}
else if (name.equals("mention_names")) {
dList list = new dList();
for (IUser user : ((MessageEvent) event).getMessage().getMentions()) {
list.add(String.valueOf(user.getName()));
IMessage message = ((MessageEvent) event).getMessage();
if (message != null) {
dList list = new dList();
for (IUser user : message.getMentions()) {
list.add(String.valueOf(user.getName()));
}
return list;
}
return list;
}
else if (name.equals("author_id")) {
return new Element(((MessageEvent) event).getAuthor().getLongID());
}
else if (name.equals("author_name")) {
return new Element(((MessageEvent) event).getAuthor().getName());
}
}
if (event instanceof MessageUpdateEvent) {
if (name.equals("old_message_valid")) {
return new Element(((MessageUpdateEvent) event).getOldMessage() != null);
}
if (name.equals("old_message")) {
return new Element(((MessageUpdateEvent) event).getOldMessage().getContent());
IMessage message = ((MessageUpdateEvent) event).getOldMessage();
if (message != null) {
return new Element(message.getContent());
}
}
if (name.equals("old_no_mention_message")) {
String res = ((MessageUpdateEvent) event).getOldMessage().getContent();
for (IUser user : ((MessageUpdateEvent) event).getOldMessage().getMentions()) {
res = res.replace(user.mention(true), "")
.replace(user.mention(false), "");
IMessage message = ((MessageUpdateEvent) event).getOldMessage();
if (message != null) {
String res = message.getContent();
for (IUser user : message.getMentions()) {
res = res.replace(user.mention(true), "")
.replace(user.mention(false), "");
}
return new Element(res);
}
return new Element(res);
}
else if (name.equals("old_formatted_message")) {
return new Element(((MessageUpdateEvent) event).getOldMessage().getFormattedContent());
IMessage message = ((MessageUpdateEvent) event).getOldMessage();
if (message != null) {
return new Element(message.getFormattedContent());
}
}
else if (name.equals("old_mentions")) {
dList list = new dList();
for (IUser user : ((MessageUpdateEvent) event).getOldMessage().getMentions()) {
list.add(String.valueOf(user.getLongID()));
IMessage message = ((MessageUpdateEvent) event).getOldMessage();
if (message != null) {
dList list = new dList();
for (IUser user : message.getMentions()) {
list.add(String.valueOf(user.getLongID()));
}
return list;
}
return list;
}
else if (name.equals("old_mention_names")) {
dList list = new dList();
for (IUser user : ((MessageEvent) event).getMessage().getMentions()) {
list.add(String.valueOf(user.getName()));
IMessage message = ((MessageUpdateEvent) event).getOldMessage();
if (message != null) {
dList list = new dList();
for (IUser user : message.getMentions()) {
list.add(String.valueOf(user.getName()));
}
return list;
}
return list;
}
}
if (event instanceof GuildMemberEvent) {
Expand Down

0 comments on commit d082df1

Please sign in to comment.