Skip to content

Commit

Permalink
1.4.2
Browse files Browse the repository at this point in the history
Fixed "SERVER HAS STARTED" bug
Updated chatmessage config variable viable with %GROUP%
  • Loading branch information
ScarletLovell authored Oct 31, 2019
1 parent 8b706fc commit b019d3b
Show file tree
Hide file tree
Showing 2 changed files with 97 additions and 67 deletions.
25 changes: 17 additions & 8 deletions src/com/johnymuffin/discordGameBridge/DiscordBot.java
Original file line number Diff line number Diff line change
Expand Up @@ -30,15 +30,21 @@ public class DiscordBot extends JavaPlugin implements Listener, EventListener {
// Custom Messages
private String discordChatMessage = "";

Boolean botEnabled = false;
private static Boolean botEnabled = false;
private ConfigReader configReader;
private int taskId = 0;

public static final String PLUGIN_FOLDER = "./plugins/DiscordBot";
private File pluginFolder = new File("./plugins/DiscordBot");
File config;

private static DiscordBot instance;
public static DiscordBot getInstance() {
return instance;
}

public void onLoad() {
instance = this;
this.config = new File(this.pluginFolder, "config.properties");
this.logger = getServer().getLogger();
if (!this.pluginFolder.exists() || !this.pluginFolder.exists()) {
Expand All @@ -58,6 +64,7 @@ private void quickSend(String s) {
discord.Discord().DiscordSendToChannel(gameBridge, s);
}

private GamePlayerEvents events;
public void onEnable() {
this.configReader = new ConfigReader(this);
this.logger = this.getServer().getLogger();
Expand All @@ -76,6 +83,7 @@ public void onEnable() {
this.logger.info("------------------------------------------------------------------");
}


if (configReader.getPrensencePlayercount()) {
System.out.println("[DiscordBot] Discord Player Timer Has Started");
Bukkit.getServer().broadcastMessage("Discord Player Timer Has Started");
Expand All @@ -84,10 +92,10 @@ public void run() {
if (jda.getStatus() == JDA.Status.CONNECTED) {
// There's no good way to announce the server was stopped as of now.
if(!botEnabled) {
botEnabled = true;
if(configReader.canAnnounceStartStop())
quickSend("**SERVER HAS STARTED**");
jda.addEventListener(this);
botEnabled = true;
jda.addEventListener(instance);
}
jda.getPresence().setGame(Game.playing(serverName + " With " + Bukkit.getServer().getOnlinePlayers().length + " Players"));
}
Expand All @@ -97,17 +105,18 @@ public void run() {


//Player Events
final GamePlayerEvents GamePlayerEvents = new GamePlayerEvents(this, discord, configReader);
getServer().getPluginManager().registerEvent(Event.Type.PLAYER_JOIN, GamePlayerEvents, Priority.Lowest, this);
getServer().getPluginManager().registerEvent(Event.Type.PLAYER_QUIT, GamePlayerEvents, Priority.Lowest, this);
getServer().getPluginManager().registerEvent(Type.PLAYER_CHAT, GamePlayerEvents, Priority.Lowest, this);
this.events = new GamePlayerEvents(this, discord, configReader);
getServer().getPluginManager().registerEvent(Event.Type.PLAYER_JOIN, events, Priority.Lowest, this);
getServer().getPluginManager().registerEvent(Event.Type.PLAYER_QUIT, events, Priority.Lowest, this);
getServer().getPluginManager().registerEvent(Type.PLAYER_CHAT, events, Priority.Lowest, this);
}

public void onDisable() {
quickSend("**SERVER HAS STOPPED** :no:");
quickSend("**SERVER HAS STOPPED**");
this.logger.info("[DiscordBot] Successfully stopped!");
// if (configReader.getPrensencePlayercount()) {
Bukkit.getServer().getScheduler().cancelTask(taskId);
discord.Discord().jda.removeEventListener(this);
// }
}

Expand Down
139 changes: 80 additions & 59 deletions src/com/johnymuffin/discordGameBridge/GamePlayerEvents.java
Original file line number Diff line number Diff line change
@@ -1,59 +1,80 @@
package com.johnymuffin.discordGameBridge;

import com.johnymuffin.discordcore.DiscordCore;
import org.bukkit.Bukkit;
import org.bukkit.event.player.PlayerChatEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerListener;
import org.bukkit.event.player.PlayerQuitEvent;

import java.util.regex.Pattern;

public class GamePlayerEvents extends PlayerListener {
private DiscordBot plugin;
private DiscordCore dbc;
private ConfigReader config;

public GamePlayerEvents(DiscordBot instance, DiscordCore plugin, ConfigReader configReader) {

this.plugin = instance;
this.dbc = plugin;
this.config = configReader;
}

@Override
public void onPlayerJoin(PlayerJoinEvent event) {
String message = config.getJoinMessage();
message = message.replaceAll("%username%", event.getPlayer().getName());
message = message.replaceAll("%onlineCount%",
Integer.toString(Bukkit.getServer().getOnlinePlayers().length));
message = message.replaceAll("%maxCount%", Integer.toString(Bukkit.getServer().getMaxPlayers()));
dbc.Discord().DiscordSendToChannel(config.getChannel(), message);

}

@Override
public void onPlayerQuit(PlayerQuitEvent event) {
String message = config.getQuitMessage();
message = message.replaceAll("%username%", event.getPlayer().getName());
message = message.replaceAll("%onlineCount%",
Integer.toString(Bukkit.getServer().getOnlinePlayers().length - 1));
message = message.replaceAll("%maxCount%", Integer.toString(Bukkit.getServer().getMaxPlayers()));
dbc.Discord().DiscordSendToChannel(config.getChannel(), message);
}

@Override
public void onPlayerChat(PlayerChatEvent event) {
String message = config.getGameChatMessage();
if(!event.isCancelled()) {
message = message.replaceAll("%messageAuthor%", event.getPlayer().getName());
message = message.replaceAll("%message%", event.getMessage());
message = message.replaceAll(Pattern.quote("@"), " ");
message = message.replaceAll(Pattern.quote("@everyone"), " ");
message = message.replaceAll(Pattern.quote("@here"), " ");
dbc.Discord().DiscordSendToChannel(config.getChannel(), message);
}
}


}
package com.johnymuffin.discordGameBridge;

import com.johnymuffin.discordcore.DiscordCore;
import org.bukkit.Bukkit;
import org.bukkit.event.player.PlayerChatEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerListener;
import org.bukkit.event.player.PlayerQuitEvent;
import ru.tehkode.permissions.PermissionManager;
import ru.tehkode.permissions.bukkit.PermissionsEx;

import java.util.regex.Pattern;

public class GamePlayerEvents extends PlayerListener {
private PermissionManager pex;
private DiscordBot plugin;
private DiscordCore dbc;
private ConfigReader config;

public GamePlayerEvents(DiscordBot instance, DiscordCore plugin, ConfigReader configReader) {
this.plugin = instance;
this.dbc = plugin;
this.config = configReader;
//PluginManager manager = plugin.getServer().getPluginManager();
pex = PermissionsEx.getPermissionManager();
}

@Override
public void onPlayerJoin(PlayerJoinEvent event) {
String message = config.getJoinMessage();
message = message.replaceAll("%username%", event.getPlayer().getName());
message = message.replaceAll("%onlineCount%",
Integer.toString(Bukkit.getServer().getOnlinePlayers().length));
message = message.replaceAll("%maxCount%", Integer.toString(Bukkit.getServer().getMaxPlayers()));
dbc.Discord().DiscordSendToChannel(config.getChannel(), message);

}

@Override
public void onPlayerQuit(PlayerQuitEvent event) {
String message = config.getQuitMessage();
message = message.replaceAll("%username%", event.getPlayer().getName());
message = message.replaceAll("%onlineCount%",
Integer.toString(Bukkit.getServer().getOnlinePlayers().length - 1));
message = message.replaceAll("%maxCount%", Integer.toString(Bukkit.getServer().getMaxPlayers()));
dbc.Discord().DiscordSendToChannel(config.getChannel(), message);
}

private String replaceMsg(String trueMsg) {
trueMsg = trueMsg.replaceAll(Pattern.quote("@"), " ");
trueMsg = trueMsg.replaceAll(Pattern.quote("@everyone"), " ");
trueMsg = trueMsg.replaceAll(Pattern.quote("@here"), " ");
trueMsg = trueMsg.replaceAll(Pattern.quote("*"), "\\*");
trueMsg = trueMsg.replaceAll(Pattern.quote("_"), "\\_");
trueMsg = trueMsg.replaceAll(Pattern.quote("|"), "\\|");
trueMsg = trueMsg.replaceAll(Pattern.quote("~"), "\\~");
return trueMsg;
}

@Override
public void onPlayerChat(PlayerChatEvent event) {
if(!event.isCancelled()) {
String message = config.getGameChatMessage();
String trueMsg = replaceMsg(event.getMessage());
String groupName = "MISSINGPEX";
if(pex != null) {
String pName = event.getPlayer().getName();
groupName = pex.getUser(pName).getGroups()[0].getName();
// [0] is always the top hierarchy group that the player has
}

message = message.replaceAll("%group%", groupName);
message = message.replaceAll("%messageAuthor%", event.getPlayer().getName());
message = message.replaceAll("%message%", trueMsg);
dbc.Discord().DiscordSendToChannel(config.getChannel(), message);
}
}


}

0 comments on commit b019d3b

Please sign in to comment.