fixed issues causing plugin not to operate

This commit is contained in:
2019-02-15 00:42:27 -06:00
parent fbe9ed4cb8
commit 5b9fb5548e
8 changed files with 100 additions and 185 deletions

View File

@@ -52,7 +52,7 @@ public class Main extends JavaPlugin {
sql.connect();
if(!sql.tableExists(sqltable)){
log(Level.INFO, "Table not found. Creating new table...");
sql.update("CREATE TABLE " + sqltable + " (DiscordID NOT NULL CHAR(18), MinecraftName VARCHAR(16), UUID CHAR(36), PRIMARY KEY (DiscordID);");
sql.update("CREATE TABLE " + sqltable + " (DiscordID CHAR(18), MinecraftName VARCHAR(16), UUID CHAR(36), PRIMARY KEY (DiscordID));");
log(Level.INFO, "Table created!");
}
startReconnect();
@@ -180,7 +180,7 @@ public class Main extends JavaPlugin {
public ServerBot getBot() {
return bot;
}
public boolean isExempt(String name) {
for(String item: exempt) {
if(item.equalsIgnoreCase(name)) {
@@ -189,15 +189,15 @@ public class Main extends JavaPlugin {
}
return false;
}
public boolean assignRole() {
return assignrole;
}
public String getAssignRoleName() {
return rolename;
}
public String getKickMessage() {
return kickmsg;
}
@@ -213,56 +213,63 @@ public class Main extends JavaPlugin {
public boolean isMember(Player p) {
String name = p.getName().toLowerCase();
ArrayList<String> ids = new ArrayList<String>();
ResultSet rs = sql.query("SELECT * FROM " + sqltable + " WHERE MinecraftName = " + name.toLowerCase());
try {
while (rs.next()) {
ids.add(rs.getString("DiscordID"));
ResultSet rs;
if(sql.itemExists("MinecraftName", name, sqltable)) {
rs = sql.query("SELECT * FROM " + sqltable + " HAVING MinecraftName = " + "\'" + name.toLowerCase() + "\';");
try {
while (rs.next()) {
String tempid = rs.getString("DiscordID");
ids.add(tempid);
}
} catch (SQLException e) {
log(Level.SEVERE, "Error getting Discord IDs from database!");
e.printStackTrace();
}
} catch (SQLException e) {
log(Level.SEVERE, "Error getting Discord IDs from database!");
e.printStackTrace();
}
for(String id : ids) {
User user = bot.getJDA().getUserById(id);
if(user != null) {
for(Guild guild : bot.getJDA().getGuilds()) {
if(guild.isMember(user)) {
return true;
for(String id : ids) {
User user = bot.getJDA().getUserById(id);
if(user != null) {
for(Guild guild : bot.getJDA().getGuilds()) {
if(guild.isMember(user)) {
String uuid = p.getUniqueId().toString();
sql.update("UPDATE " + sqltable + " SET UUID = " + "\'" + uuid + "\'" + " WHERE DiscordID = " + "\'" + id + "\';");
return true;
}
}
}
}
}
String uuid = p.getUniqueId().toString();
ids = new ArrayList<String>();
rs = sql.query("SELECT * FROM " + sqltable + " WHERE UUID = " + uuid);
try {
while (rs.next()) {
ids.add(rs.getString("DiscordID"));
if(sql.itemExists("UUID", uuid, sqltable)) {
ids = new ArrayList<String>();
rs = sql.query("SELECT * FROM " + sqltable + " WHERE UUID = " + "\'" + uuid + "\';");
try {
while (rs.next()) {
ids.add(rs.getString("DiscordID"));
}
} catch (SQLException e) {
log(Level.SEVERE, "Error getting Discord IDs from database!");
e.printStackTrace();
}
} catch (SQLException e) {
log(Level.SEVERE, "Error getting Discord IDs from database!");
e.printStackTrace();
}
for(String id : ids) {
User user = bot.getJDA().getUserById(id);
if(user != null) {
for(Guild guild : bot.getJDA().getGuilds()) {
if(guild.isMember(user)) {
sql.update("UPDATE " + sqltable + " SET MinecraftName = " + p.getName().toLowerCase() + " WHERE DiscordID = " + id + ";");
return true;
for(String id : ids) {
User user = bot.getJDA().getUserById(id);
if(user != null) {
for(Guild guild : bot.getJDA().getGuilds()) {
if(guild.isMember(user)) {
sql.update("UPDATE " + sqltable + " SET MinecraftName = " + "\'" + p.getName().toLowerCase() + "\'" + " WHERE DiscordID = " + "\'" + id + "\';");
return true;
}
}
}
}
}
return false;
}
public User getDiscordUser(Player p) {
String name = p.getName().toLowerCase();
ArrayList<String> ids = new ArrayList<String>();
ResultSet rs = sql.query("SELECT * FROM " + sqltable + " WHERE MinecraftName = " + name.toLowerCase());
ResultSet rs = sql.query("SELECT * FROM " + sqltable + " HAVING MinecraftName = " + "\'" + name.toLowerCase() + "\';");
try {
while (rs.next()) {
ids.add(rs.getString("DiscordID"));
@@ -283,5 +290,5 @@ public class Main extends JavaPlugin {
}
return null;
}
}

View File

@@ -38,6 +38,7 @@ public class ServerBot {
jda.addEventListener(new BotListener(this));
jda.setAutoReconnect(true);
String link = "https://discordapp.com/oauth2/authorize?&client_id=" + jda.getSelfUser().getId();
link = link + "&scope=bot&permissions=8";
plugin.log(Level.INFO, "Connection successful!");
plugin.log(Level.INFO, "You can add this bot to Discord using this link: ");
plugin.log(Level.INFO, link);
@@ -82,7 +83,6 @@ public class ServerBot {
return jda;
}
public void shutDown(){
jda.shutdown();
}

View File

@@ -27,7 +27,10 @@ public class AddMeCommand implements Command{
public void action(String[] args, MessageReceivedEvent event) {
if(args.length == 1) {
String name = args[0].toLowerCase();
bot.log(Level.INFO, event.getAuthor().getName() + " issued a Discord Bot command: -addme " + name);
if(name.length() > 16) {
return;
}
bot.log(Level.INFO, event.getAuthor().getName() + " issued a Discord Bot command: !addme " + name);
if(bot.getSQL().itemExists("DiscordID", event.getAuthor().getId(), bot.getTableName())) {
bot.getSQL().set("MinecraftName", name, "DiscordID", "=", event.getAuthor().getId(), bot.getTableName());
}else {

View File

@@ -8,7 +8,7 @@ public class CommandParser {
public CommandContainer parse(String rw, MessageReceivedEvent e){
ArrayList<String> split = new ArrayList<String>();
String raw = rw;
String fixed = raw.replaceFirst("-", "");
String fixed = raw.replaceFirst("!", "");
String[] splitf = fixed.split(" ");
for(String s: splitf){
split.add(s);

View File

@@ -38,6 +38,9 @@ public class AddExempt implements CommandExecutor{
}
}
String name = args[0];
if(name.length() > 16) {
return true;
}
plugin.addExempt(name);
if(sender instanceof Player) {
((Player)sender).sendMessage(ChatColor.GREEN + "[BCraftBot] Player added to the exempt list!");

View File

@@ -24,29 +24,33 @@ public class PlayerListener implements Listener {
@EventHandler
public void onPlayerLogin(PlayerLoginEvent event){
Player player = event.getPlayer();
if(plugin.isMember(player) || plugin.isExempt(player.getName())) {
if(plugin.assignRole()) {
for(Guild guild : plugin.getBot().getJDA().getGuilds()) {
Role role = null;
for(Role r : guild.getRoles()) {
if(r.getName().equalsIgnoreCase(plugin.getAssignRoleName())) {
role = r;
}
}
User user = plugin.getDiscordUser(player);
Member mem = guild.getMember(user);
if(user != null && user.getMutualGuilds().contains(guild) && role != null) {
guild.getController().addRolesToMember(mem, role).queue();
}
}
}
}else {
if(!plugin.isMember(player) && !plugin.isExempt(player.getName())) {
event.disallow(Result.KICK_OTHER, plugin.getKickMessage());
return;
}
if(plugin.assignRole() && !plugin.isExempt(player.getName())) {
for(Guild guild : plugin.getBot().getJDA().getGuilds()) {
Role role = null;
for(Role r : guild.getRoles()) {
if(r.getName().equalsIgnoreCase(plugin.getAssignRoleName())) {
role = r;
}
}
User user = plugin.getDiscordUser(player);
Member mem = guild.getMember(user);
if(user != null && user.getMutualGuilds().contains(guild) && role != null) {
guild.getController().addRolesToMember(mem, role).queue();
}
}
}
}
}