Skip to content
This repository has been archived by the owner on Dec 1, 2023. It is now read-only.

Commit

Permalink
Various patches, fixes and improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
LeStegii committed Jan 20, 2022
1 parent 0b7b52a commit 3b196f7
Show file tree
Hide file tree
Showing 7 changed files with 84 additions and 40 deletions.
18 changes: 17 additions & 1 deletion src/net/kettlemc/discordbridge/DiscordBridge.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@

import net.kettlemc.discordbridge.config.Configuration;
import net.kettlemc.discordbridge.discord.DiscordBot;
import net.kettlemc.discordbridge.listener.AsyncChatListener;
import net.kettlemc.discordbridge.listener.JoinQuitListener;
import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;

public class DiscordBridge extends JavaPlugin {
Expand All @@ -11,7 +14,20 @@ public class DiscordBridge extends JavaPlugin {

public void onEnable() {
this.configuration = new Configuration();
this.bot = new DiscordBot(this);
if (!this.configuration.token.equalsIgnoreCase("ENTER TOKEN HERE"))
this.bot = new DiscordBot(this);
else
this.getLogger().warning("Please enter a token!");
this.registerListener();
}

public void onDisable() {
this.bot.shutdown();
}

private void registerListener() {
Bukkit.getPluginManager().registerEvents(new AsyncChatListener(this), this);
Bukkit.getPluginManager().registerEvents(new JoinQuitListener(this), this);
}

public Configuration getConfiguration() {
Expand Down
20 changes: 14 additions & 6 deletions src/net/kettlemc/discordbridge/config/Configuration.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,26 @@ public class Configuration {

private BasicConfigurationHandler config;

public String token;
public String channel;
public String status;
public String botName;
public String token, status, defaultRank;
public String chatFormat, joinFormat, quitFormat;
public long channel;
public boolean embed;


public Configuration() {
this.config = new BasicConfigurationHandler("plugins/DiscordBridge/config.yml");

this.token = config.getString("bot.token", "ENTER TOKEN HERE");
this.channel = config.getString("bot.channel-id", "ENTER CHANNEL ID HERE");
this.channel = config.getLong("bot.channel-id", -1);
this.status = config.getString("bot.status", " auf KettleMC.net");
this.botName = config.getString("bot.name", "KettleMC");

this.embed = config.getBool("bot.messages.embeds.enabled", false);
this.embed = config.getBool("bot.messages.embeds.show-skin", true);

this.chatFormat = config.getString("bot.messages.chat-format", ":speech_left: **[%rank%] %player% »** %msg%");
this.joinFormat = config.getString("bot.messages.join-format", ":arrow_right: %msg%");
this.quitFormat = config.getString("bot.messages.quit-format", ":arrow_left: %msg%");

this.defaultRank = config.getString("bot.messages.default-rank", "Player");
}
}
14 changes: 7 additions & 7 deletions src/net/kettlemc/discordbridge/discord/DiscordBot.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,6 @@
import net.dv8tion.jda.api.entities.Activity;
import net.dv8tion.jda.api.entities.TextChannel;
import net.kettlemc.discordbridge.DiscordBridge;
import net.kettlemc.discordbridge.utils.LuckPermsUtils;
import org.bukkit.ChatColor;
import org.bukkit.event.player.AsyncPlayerChatEvent;

import javax.security.auth.login.LoginException;

Expand All @@ -24,22 +21,25 @@ public DiscordBot(DiscordBridge plugin) {
builder.setActivity(Activity.playing(plugin.getConfiguration().status));
builder.setStatus(OnlineStatus.ONLINE);
this.jda = builder.build();
this.jda.getSelfUser().getManager().setName(plugin.getConfiguration().botName).queue();
} catch (LoginException e) {
e.printStackTrace();
}
}

public TextChannel getTextChannelByID(String id) {
public void shutdown() {
jda.shutdownNow();
}

public TextChannel getTextChannelByID(long id) {
return jda.getTextChannelById(id);
}

public void sendMessage(TextChannel channel, String message) {
channel.sendMessage(message).queue();
}

public void sendMessage(String channelId, String message) {
getTextChannelByID(channelId).sendMessage(message).queue();
public void sendMessage(long channelId, String message) {
sendMessage(getTextChannelByID(channelId), message);
}

public void sendEmbed() {
Expand Down
13 changes: 9 additions & 4 deletions src/net/kettlemc/discordbridge/listener/AsyncChatListener.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package net.kettlemc.discordbridge.listener;

import net.kettlemc.discordbridge.DiscordBridge;
import net.kettlemc.discordbridge.utils.LuckPermsUtils;
import net.kettlemc.discordbridge.utils.Utils;
import org.bukkit.ChatColor;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
Expand All @@ -20,11 +20,16 @@ public void onChat(AsyncPlayerChatEvent event) {
if (event.isCancelled())
return;

String prefix = LuckPermsUtils.getLuckPermsPrefix(event.getPlayer());
String prefix = Utils.getLuckPermsPrefix(event.getPlayer());
String name = event.getPlayer().getDisplayName();
String message = ChatColor.stripColor(event.getMessage());
String msg = Utils.stripColor(event.getMessage());

plugin.getBot().sendMessage(plugin.getConfiguration().channel, prefix + " **|** " + name + " **»** " + message);
if (prefix == null)
prefix = plugin.getConfiguration().defaultRank;

String message = plugin.getConfiguration().chatFormat.replace("%rank%", prefix).replace("%player%", name).replace("%msg%", msg);

plugin.getBot().sendMessage(plugin.getConfiguration().channel, message);
}

}
9 changes: 5 additions & 4 deletions src/net/kettlemc/discordbridge/listener/JoinQuitListener.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package net.kettlemc.discordbridge.listener;

import net.kettlemc.discordbridge.DiscordBridge;
import net.kettlemc.discordbridge.utils.Utils;
import org.bukkit.ChatColor;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
Expand All @@ -17,13 +18,13 @@ public JoinQuitListener(DiscordBridge plugin) {

@EventHandler
public void onJoin(PlayerJoinEvent event) {
String message = ChatColor.stripColor(event.getJoinMessage());
plugin.getBot().sendMessage(plugin.getConfiguration().channel, message);
String message = Utils.stripColor(event.getJoinMessage());
plugin.getBot().sendMessage(plugin.getConfiguration().channel, plugin.getConfiguration().joinFormat.replace("%msg%", message));
}
@EventHandler
public void onQuit(PlayerQuitEvent event) {
String message = ChatColor.stripColor(event.getQuitMessage());
plugin.getBot().sendMessage(plugin.getConfiguration().channel, message);
String message = Utils.stripColor(event.getQuitMessage());
plugin.getBot().sendMessage(plugin.getConfiguration().channel, plugin.getConfiguration().quitFormat.replace("%msg%", message));
}

}
18 changes: 0 additions & 18 deletions src/net/kettlemc/discordbridge/utils/LuckPermsUtils.java

This file was deleted.

32 changes: 32 additions & 0 deletions src/net/kettlemc/discordbridge/utils/Utils.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package net.kettlemc.discordbridge.utils;

import net.luckperms.api.LuckPerms;
import net.luckperms.api.LuckPermsProvider;
import net.luckperms.api.model.user.User;
import org.bukkit.ChatColor;
import org.bukkit.entity.Player;

import java.util.regex.Pattern;


public class Utils {

private static LuckPerms luckperms = LuckPermsProvider.get();

public static String getLuckPermsPrefix(Player player) {
User user = luckperms.getUserManager().getUser(player.getUniqueId());
return stripColor(user.getCachedData().getMetaData().getPrefix());
}

// Inspired by Spigot's Chatcolor
private static final Pattern COLOR_PATTERN = Pattern.compile("(?i)" + "(&|§)" + "[0-9A-FK-OR]");

public static String stripColor(final String input) {
if (input == null) {
return null;
}

return COLOR_PATTERN.matcher(input).replaceAll("");
}

}

0 comments on commit 3b196f7

Please sign in to comment.