Deleted old commands
This commit is contained in:
parent
c045aba112
commit
130d8b027a
|
|
@ -1,7 +1,6 @@
|
|||
package com.alttd.proxydiscordlink.bot;
|
||||
|
||||
import com.alttd.proxydiscordlink.bot.commandManager.CommandManager;
|
||||
import com.alttd.proxydiscordlink.bot.listeners.DiscordMessageListener;
|
||||
import com.alttd.proxydiscordlink.bot.listeners.DiscordRoleListener;
|
||||
import com.alttd.proxydiscordlink.config.BotConfig;
|
||||
import com.alttd.proxydiscordlink.util.ALogger;
|
||||
|
|
@ -19,7 +18,6 @@ import net.dv8tion.jda.api.requests.GatewayIntent;
|
|||
import net.dv8tion.jda.api.utils.MemberCachePolicy;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import javax.security.auth.login.LoginException;
|
||||
import java.util.Optional;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
|
|
@ -35,7 +33,7 @@ public class Bot {
|
|||
.enableIntents(GatewayIntent.GUILD_MEMBERS)
|
||||
.build();
|
||||
jda.setAutoReconnect(true);
|
||||
jda.addEventListener(new DiscordMessageListener(),
|
||||
jda.addEventListener(
|
||||
new DiscordRoleListener());
|
||||
DiscordCommand.loadCommands();
|
||||
} catch (Exception e) {
|
||||
|
|
|
|||
|
|
@ -1,52 +0,0 @@
|
|||
package com.alttd.proxydiscordlink.bot.commands;
|
||||
|
||||
import com.alttd.proxydiscordlink.DiscordLink;
|
||||
import com.alttd.proxydiscordlink.bot.Bot;
|
||||
import com.alttd.proxydiscordlink.bot.DiscordCommand;
|
||||
import com.alttd.proxydiscordlink.config.BotConfig;
|
||||
import com.alttd.proxydiscordlink.util.Utilities;
|
||||
import net.dv8tion.jda.api.entities.Message;
|
||||
|
||||
public class DiscordBroadCast extends DiscordCommand {
|
||||
|
||||
private DiscordLink plugin;
|
||||
private final Bot bot;
|
||||
|
||||
public DiscordBroadCast() {
|
||||
plugin = DiscordLink.getPlugin();
|
||||
bot = plugin.getBot();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getCommand() {
|
||||
return "broadcast";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPermission() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDescription() {
|
||||
return "Broadcast a message to all online players";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSyntax() {
|
||||
return "broadcast";
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getChannel() {
|
||||
return BotConfig.STAFF_COMMAND_CHANNEL;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleCommand(Message message, String sender, String command, String[] args) {
|
||||
//TODO also send this to the bot channel, optional command args for color and decoration?
|
||||
String msg = String.join(" ", args);
|
||||
bot.sendMessageToDiscord(BotConfig.COMMAND_CHANNEL, msg);
|
||||
Utilities.broadcast(msg);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,138 +0,0 @@
|
|||
package com.alttd.proxydiscordlink.bot.commands;
|
||||
|
||||
import com.alttd.proxydiscordlink.DiscordLink;
|
||||
import com.alttd.proxydiscordlink.bot.DiscordCommand;
|
||||
import com.alttd.proxydiscordlink.bot.objects.DiscordRole;
|
||||
import com.alttd.proxydiscordlink.config.BotConfig;
|
||||
import com.alttd.proxydiscordlink.config.Config;
|
||||
import com.alttd.proxydiscordlink.objects.DiscordLinkPlayer;
|
||||
import com.alttd.proxydiscordlink.util.Utilities;
|
||||
import com.velocitypowered.api.proxy.Player;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
import net.dv8tion.jda.api.entities.Message;
|
||||
import net.dv8tion.jda.api.entities.TextChannel;
|
||||
import net.dv8tion.jda.api.exceptions.HierarchyException;
|
||||
import net.luckperms.api.model.user.User;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class DiscordLinkCommand extends DiscordCommand {
|
||||
@Override
|
||||
public String getCommand() {
|
||||
return "link";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPermission() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDescription() {
|
||||
return "Link your Minecraft and Discord accounts.";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSyntax() {
|
||||
return "link <code>";
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getChannel() {
|
||||
return BotConfig.LINK_CHANNEL;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleCommand(Message message, String sender, String command, String[] args) {
|
||||
Member member = message.getMember();
|
||||
if (member == null)
|
||||
return;
|
||||
|
||||
UUID uuid;
|
||||
if ((uuid = getUUID(message.getTextChannel(), args.length == 1 ? args[0] : "")) == null)
|
||||
return;
|
||||
|
||||
List<DiscordRole> discordRoles = Utilities.getDiscordRolesForUser(uuid, member);
|
||||
|
||||
DiscordLinkPlayer discordLinkPlayer = new DiscordLinkPlayer(
|
||||
member.getIdLong(),
|
||||
uuid,
|
||||
getUsername(uuid),
|
||||
member.getUser().getName(),
|
||||
false,
|
||||
true,
|
||||
discordRoles.stream()
|
||||
.map(DiscordRole::getInternalName)
|
||||
.collect(Collectors.toList()));
|
||||
|
||||
linkAccount(discordLinkPlayer, message);
|
||||
}
|
||||
|
||||
private void linkAccount(DiscordLinkPlayer discordLinkPlayer, Message message) {
|
||||
discordLinkPlayer.updateDiscord(
|
||||
DiscordRole.getDiscordRoles().stream()
|
||||
.filter(role -> discordLinkPlayer.getRoles().contains(role.getInternalName()))
|
||||
.collect(Collectors.toList()),
|
||||
true);
|
||||
discordLinkPlayer.updateMinecraft(
|
||||
DiscordRole.getDiscordRoles().stream()
|
||||
.filter(role -> discordLinkPlayer.getRoles().contains(role.getInternalName()))
|
||||
.collect(Collectors.toList()),
|
||||
true);
|
||||
|
||||
discordLinkPlayer.linkedRole(true);
|
||||
Player player = DiscordLink.getPlugin().getProxy().getPlayer(discordLinkPlayer.getUuid()).orElse(null);
|
||||
User user = Utilities.getLuckPerms().getUserManager().getUser(discordLinkPlayer.getUuid());
|
||||
if (player != null || user != null)
|
||||
DiscordLink.getPlugin().getBot().changeNick(
|
||||
message.getGuild().getIdLong(),
|
||||
message.getMember().getIdLong(),
|
||||
player == null ?
|
||||
user.getUsername() :
|
||||
player.getUsername());
|
||||
else
|
||||
DiscordLink.getPlugin().getBot().changeNick(
|
||||
message.getGuild().getIdLong(),
|
||||
message.getMember().getIdLong(),
|
||||
discordLinkPlayer.getUsername());
|
||||
|
||||
message.getChannel().sendMessage("You have successfully linked " +
|
||||
discordLinkPlayer.getUsername() + " with " +
|
||||
discordLinkPlayer.getDiscordUsername() + "!")
|
||||
.queue(message1 -> message1.delete().queueAfter(5, TimeUnit.SECONDS));
|
||||
|
||||
DiscordLinkPlayer.addDiscordLinkPlayer(discordLinkPlayer);
|
||||
DiscordLink.getPlugin().getDatabase().syncPlayer(discordLinkPlayer);
|
||||
DiscordLink.getPlugin().getDatabase().syncRoles(discordLinkPlayer);
|
||||
DiscordLink.getPlugin().getCache().removeCachedPlayer(discordLinkPlayer.getUuid());
|
||||
}
|
||||
|
||||
private String getUsername(UUID uuid) {
|
||||
Optional<Player> player = DiscordLink.getPlugin().getProxy().getPlayer(uuid);
|
||||
if (player.isPresent())
|
||||
return player.get().getUsername();
|
||||
|
||||
User user = Utilities.getLuckPerms().getUserManager().getUser(uuid);
|
||||
if (user != null)
|
||||
return user.getUsername();
|
||||
|
||||
return "No User";
|
||||
}
|
||||
|
||||
private UUID getUUID(TextChannel channel, String code) {
|
||||
UUID uuid;
|
||||
if (code.matches("[0-9]{6}")) {
|
||||
if ((uuid = DiscordLink.getPlugin().getCache().getUUID(code)) != null)
|
||||
return uuid;
|
||||
}
|
||||
|
||||
channel.sendMessage("Please use `&link ######` where the #'s are the code you received in-game.")
|
||||
.queue(message1 -> message1.delete().queueAfter(15, TimeUnit.SECONDS, null, error -> {
|
||||
}));
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,75 +0,0 @@
|
|||
package com.alttd.proxydiscordlink.bot.commands;
|
||||
|
||||
import com.alttd.proxydiscordlink.DiscordLink;
|
||||
import com.alttd.proxydiscordlink.bot.DiscordCommand;
|
||||
import com.alttd.proxydiscordlink.config.BotConfig;
|
||||
import com.alttd.proxydiscordlink.objects.DiscordLinkPlayer;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
import net.dv8tion.jda.api.entities.Message;
|
||||
import net.dv8tion.jda.api.entities.MessageChannel;
|
||||
|
||||
public class DiscordNick extends DiscordCommand {
|
||||
@Override
|
||||
public String getCommand() {
|
||||
return "nick";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPermission() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDescription() {
|
||||
return "Change your name between your Minecraft username and Minecraft nickname.";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSyntax() {
|
||||
return "nick <username/nickname>";
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getChannel() {
|
||||
return BotConfig.COMMAND_CHANNEL;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleCommand(Message message, String sender, String command, String[] args) {
|
||||
MessageChannel channel = message.getChannel();
|
||||
if (args.length != 1) {
|
||||
channel.sendMessage("The correct syntax is: `" +
|
||||
BotConfig.prefixMap.get(message.getGuild().getIdLong()) +
|
||||
getSyntax() + "`.").queue();
|
||||
return;
|
||||
}
|
||||
|
||||
Member member = message.getMember();
|
||||
DiscordLinkPlayer discordLinkPlayer = DiscordLinkPlayer.getDiscordLinkPlayer(member.getIdLong());
|
||||
if (discordLinkPlayer == null) {
|
||||
channel.sendMessage("You aren't linked, please link before using this command.").queue();
|
||||
return;
|
||||
}
|
||||
|
||||
switch (args[0].toLowerCase()) {
|
||||
case "username" -> {
|
||||
member.modifyNickname(discordLinkPlayer.getUsername()).queue();
|
||||
channel.sendMessage("Your nickname has been set to `" + discordLinkPlayer.getUsername() + "`.").queue();
|
||||
discordLinkPlayer.setNick(false);
|
||||
DiscordLink.getPlugin().getDatabase().syncPlayer(discordLinkPlayer);
|
||||
}
|
||||
case "nickname" -> {
|
||||
String nick = DiscordLink.getPlugin().getDatabase().getNick(discordLinkPlayer.getUuid());
|
||||
if (nick == null || nick.isBlank())
|
||||
nick = discordLinkPlayer.getUsername();
|
||||
member.modifyNickname(nick).queue();
|
||||
channel.sendMessage("Your nickname has been set to `" + nick + "`.").queue();
|
||||
discordLinkPlayer.setNick(true);
|
||||
DiscordLink.getPlugin().getDatabase().syncPlayer(discordLinkPlayer);
|
||||
}
|
||||
default -> channel.sendMessage("The correct syntax is: `" +
|
||||
BotConfig.prefixMap.get(message.getGuild().getIdLong()) +
|
||||
getSyntax() + "`.").queue();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,138 +0,0 @@
|
|||
package com.alttd.proxydiscordlink.bot.commands;
|
||||
|
||||
import com.alttd.proxydiscordlink.DiscordLink;
|
||||
import com.alttd.proxydiscordlink.bot.Bot;
|
||||
import com.alttd.proxydiscordlink.bot.DiscordCommand;
|
||||
import com.alttd.proxydiscordlink.config.BotConfig;
|
||||
import com.alttd.proxydiscordlink.util.Utilities;
|
||||
import com.velocitypowered.api.proxy.Player;
|
||||
import com.velocitypowered.api.proxy.server.RegisteredServer;
|
||||
import com.velocitypowered.api.proxy.server.ServerInfo;
|
||||
import net.dv8tion.jda.api.EmbedBuilder;
|
||||
import net.dv8tion.jda.api.entities.Message;
|
||||
import net.luckperms.api.LuckPerms;
|
||||
import net.luckperms.api.model.user.User;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class DiscordServerList extends DiscordCommand {
|
||||
|
||||
private DiscordLink plugin;
|
||||
private final Bot bot;
|
||||
|
||||
public DiscordServerList() {
|
||||
plugin = DiscordLink.getPlugin();
|
||||
bot = plugin.getBot();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getCommand() {
|
||||
return "serverlist";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPermission() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDescription() {
|
||||
return "Lists all online players on the server or a specific server";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSyntax() {
|
||||
return "serverlist";
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getChannel() {
|
||||
return BotConfig.STAFF_COMMAND_CHANNEL;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleCommand(Message message, String sender, String command, String[] args) {
|
||||
String serverName = "Altitude";
|
||||
Collection<Player> onlinePlayer = plugin.getProxy().getAllPlayers();
|
||||
ServerInfo server;
|
||||
if (args.length != 0) {
|
||||
Optional<RegisteredServer> registeredServer = plugin.getProxy().getServer(args[0]);
|
||||
if (registeredServer.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
onlinePlayer = registeredServer.get().getPlayersConnected();
|
||||
serverName = registeredServer.get().getServerInfo().getName();
|
||||
}
|
||||
LuckPerms luckPerms = Utilities.getLuckPerms();
|
||||
List<User> players = onlinePlayer
|
||||
.stream()
|
||||
.map(player -> luckPerms.getUserManager().getUser(player.getUniqueId()))
|
||||
.sorted((o1, o2) -> {
|
||||
int i = Integer.compare(luckPerms.getGroupManager().getGroup(o2.getPrimaryGroup()).getWeight().orElse(0), luckPerms.getGroupManager().getGroup(o1.getPrimaryGroup()).getWeight().orElse(0));
|
||||
return i != 0 ? i : o1.getUsername().compareToIgnoreCase(o2.getUsername());
|
||||
})
|
||||
.collect(Collectors.toList());
|
||||
EmbedBuilder embedBuilder = new EmbedBuilder();
|
||||
String title = "Players online on " + serverName + ": " + players.size();
|
||||
embedBuilder.setTitle(title);
|
||||
String separator = "\n";
|
||||
String rankname = "";
|
||||
StringBuilder currentFieldText = new StringBuilder();
|
||||
int entryCounter = 0;
|
||||
int totalCharacters = title.length();
|
||||
int fieldCounter = 0;
|
||||
|
||||
Iterator<User> iterator = players.iterator();
|
||||
while (iterator.hasNext()) {
|
||||
User user = iterator.next();
|
||||
if(user != null) {
|
||||
if(!rankname.equalsIgnoreCase(user.getPrimaryGroup())) {
|
||||
if (currentFieldText.length() != 0) {
|
||||
totalCharacters += rankname.length() + currentFieldText.length();
|
||||
fieldCounter++;
|
||||
if (totalCharacters > 6000 || fieldCounter > 25) {
|
||||
bot.sendEmbedToDiscord(getChannel(), embedBuilder, 300);
|
||||
embedBuilder.clearFields();
|
||||
totalCharacters = title.length() + rankname.length() + currentFieldText.length();
|
||||
fieldCounter = 1;
|
||||
}
|
||||
embedBuilder.addField(rankname, currentFieldText.toString(), true);
|
||||
entryCounter = 0;
|
||||
currentFieldText = new StringBuilder();
|
||||
}
|
||||
rankname = Utilities.capitalize(user.getPrimaryGroup());
|
||||
} else if(rankname.equalsIgnoreCase(user.getPrimaryGroup())) {
|
||||
currentFieldText.append(separator);
|
||||
}
|
||||
if (entryCounter <= 50) {
|
||||
Optional<Player> optionalPlayer = plugin.getProxy().getPlayer(user.getUniqueId());
|
||||
if(optionalPlayer.isPresent()) {
|
||||
Player player = optionalPlayer.get();
|
||||
currentFieldText.append("`").append(player.getUsername()).append("`");
|
||||
}
|
||||
} else if (entryCounter == 51){
|
||||
currentFieldText.append("...");
|
||||
}
|
||||
entryCounter++;
|
||||
}
|
||||
}
|
||||
|
||||
if (currentFieldText.length() > 0) {
|
||||
totalCharacters = title.length() + rankname.length() + currentFieldText.length();
|
||||
fieldCounter++;
|
||||
if (totalCharacters > 6000 || fieldCounter > 25) {
|
||||
bot.sendEmbedToDiscord(getChannel(), embedBuilder, 300);
|
||||
embedBuilder.clearFields();
|
||||
}
|
||||
embedBuilder.addField(rankname, currentFieldText.toString(), true);
|
||||
}
|
||||
|
||||
message.delete().queueAfter(300, TimeUnit.SECONDS);
|
||||
bot.sendEmbedToDiscord(getChannel(), embedBuilder, 300);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,152 +0,0 @@
|
|||
package com.alttd.proxydiscordlink.bot.commands;
|
||||
|
||||
import com.alttd.proxydiscordlink.DiscordLink;
|
||||
import com.alttd.proxydiscordlink.bot.Bot;
|
||||
import com.alttd.proxydiscordlink.bot.DiscordCommand;
|
||||
import com.alttd.proxydiscordlink.config.BotConfig;
|
||||
import com.alttd.proxydiscordlink.util.Utilities;
|
||||
import com.velocitypowered.api.proxy.Player;
|
||||
import net.dv8tion.jda.api.EmbedBuilder;
|
||||
import net.dv8tion.jda.api.entities.Message;
|
||||
import net.luckperms.api.LuckPerms;
|
||||
import net.luckperms.api.model.user.User;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class DiscordStaffList extends DiscordCommand {
|
||||
|
||||
private DiscordLink plugin;
|
||||
private final Bot bot;
|
||||
|
||||
public DiscordStaffList() {
|
||||
plugin = DiscordLink.getPlugin();
|
||||
bot = plugin.getBot();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getCommand() {
|
||||
return "stafflist";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPermission() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDescription() {
|
||||
return "Lists all online staff on the server";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSyntax() {
|
||||
return "staffList";
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getChannel() {
|
||||
return BotConfig.STAFF_COMMAND_CHANNEL;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleCommand(Message message, String sender, String command, String[] args) {
|
||||
LuckPerms luckPerms = Utilities.getLuckPerms();
|
||||
List<User> staff = plugin.getProxy().getAllPlayers()
|
||||
.stream().filter(player-> player.hasPermission("group." + BotConfig.SL_MINIMUMRANK))
|
||||
.map(player -> luckPerms.getUserManager().getUser(player.getUniqueId()))
|
||||
.sorted((o1, o2) -> {
|
||||
int i = Integer.compare(luckPerms.getGroupManager().getGroup(o2.getPrimaryGroup()).getWeight().orElse(0), luckPerms.getGroupManager().getGroup(o1.getPrimaryGroup()).getWeight().orElse(0));
|
||||
return i != 0 ? i : o1.getUsername().compareToIgnoreCase(o2.getUsername());
|
||||
})
|
||||
.collect(Collectors.toList());
|
||||
EmbedBuilder embedBuilder = new EmbedBuilder();
|
||||
String title = "Online Staff: " + staff.size() + " - Online Players: " + plugin.getProxy().getAllPlayers().size();
|
||||
embedBuilder.setTitle(title);
|
||||
String separator = "\n";
|
||||
String rankname = "";
|
||||
|
||||
Map<String, Integer> onlineStaff = new HashMap<>();
|
||||
StringBuilder currentFieldText = new StringBuilder();
|
||||
int entryCounter = 0;
|
||||
int totalCharacters = title.length();
|
||||
int fieldCounter = 0;
|
||||
|
||||
Iterator<User> iterator = staff.iterator();
|
||||
while (iterator.hasNext()) {
|
||||
User user = iterator.next();
|
||||
if(user != null) {
|
||||
if(!rankname.equalsIgnoreCase(user.getPrimaryGroup())) {
|
||||
if (currentFieldText.length() != 0) {
|
||||
totalCharacters += rankname.length() + currentFieldText.length();
|
||||
fieldCounter++;
|
||||
if (totalCharacters > 6000 || fieldCounter > 25) {
|
||||
bot.sendEmbedToDiscord(getChannel(), embedBuilder, -1);
|
||||
embedBuilder.clearFields();
|
||||
totalCharacters = title.length() + rankname.length() + currentFieldText.length();
|
||||
fieldCounter = 1;
|
||||
}
|
||||
embedBuilder.addField(rankname, currentFieldText.toString(), true);
|
||||
entryCounter = 0;
|
||||
currentFieldText = new StringBuilder();
|
||||
}
|
||||
rankname = Utilities.capitalize(user.getPrimaryGroup());
|
||||
} else if(rankname.equalsIgnoreCase(user.getPrimaryGroup())) {
|
||||
currentFieldText.append(separator);
|
||||
}
|
||||
|
||||
Optional<Player> optionalPlayer = plugin.getProxy().getPlayer(user.getUniqueId());
|
||||
if(optionalPlayer.isPresent()) {
|
||||
Player player = optionalPlayer.get();
|
||||
String currentServerName = player.getCurrentServer().isPresent() ? player.getCurrentServer().get().getServerInfo().getName() : "";
|
||||
if (onlineStaff.containsKey(currentServerName)){
|
||||
onlineStaff.put(currentServerName, onlineStaff.get(currentServerName) + 1);
|
||||
} else {
|
||||
onlineStaff.put(currentServerName, 1);
|
||||
}
|
||||
|
||||
if (entryCounter <= 50) {
|
||||
currentFieldText.append("`").append(player.getUsername()).append("`");
|
||||
} else if (entryCounter == 51){
|
||||
currentFieldText.append("...");
|
||||
}
|
||||
entryCounter++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (currentFieldText.length() > 0) {
|
||||
totalCharacters = title.length() + rankname.length() + currentFieldText.length();
|
||||
fieldCounter++;
|
||||
if (totalCharacters > 6000 || fieldCounter > 25) {
|
||||
bot.sendEmbedToDiscord(getChannel(), embedBuilder, -1);
|
||||
embedBuilder.clearFields();
|
||||
}
|
||||
embedBuilder.addField(rankname, currentFieldText.toString(), true);
|
||||
currentFieldText = new StringBuilder();
|
||||
}
|
||||
|
||||
for (Map.Entry<String, Integer> entry : onlineStaff.entrySet()){
|
||||
String serverName = entry.getKey();
|
||||
Integer amountOfStaff = entry.getValue();
|
||||
// this might error:/
|
||||
int playerCount = plugin.getProxy().getServer(serverName).isPresent() ? plugin.getProxy().getServer(serverName).get().getPlayersConnected().size() - amountOfStaff : 1;
|
||||
currentFieldText.append(serverName).append(" online staff per player ")
|
||||
.append(amountOfStaff).append(" / ").append(Math.max(playerCount, 0)).append(" = ")
|
||||
.append(playerCount > 0 ? Math.round(((double)amountOfStaff / playerCount) * 100.0) / 100.0 : "-").append("\n");
|
||||
}
|
||||
|
||||
if (currentFieldText.length() > 0) {
|
||||
rankname = "Staff per server";
|
||||
totalCharacters = title.length() + rankname.length() + currentFieldText.length();
|
||||
fieldCounter++;
|
||||
if (totalCharacters > 6000 || fieldCounter > 25) {
|
||||
bot.sendEmbedToDiscord(getChannel(), embedBuilder, -1);
|
||||
embedBuilder.clearFields();
|
||||
}
|
||||
embedBuilder.addField(rankname, currentFieldText.toString(), true);
|
||||
}
|
||||
|
||||
bot.sendEmbedToDiscord(getChannel(), embedBuilder, -1);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,49 +0,0 @@
|
|||
package com.alttd.proxydiscordlink.bot.commands;
|
||||
|
||||
import com.alttd.proxydiscordlink.bot.DiscordCommand;
|
||||
import com.alttd.proxydiscordlink.config.BotConfig;
|
||||
import com.alttd.proxydiscordlink.objects.DiscordLinkPlayer;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
import net.dv8tion.jda.api.entities.Message;
|
||||
|
||||
public class DiscordUnlink extends DiscordCommand {
|
||||
@Override
|
||||
public String getCommand() {
|
||||
return "unlink";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPermission() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDescription() {
|
||||
return "Unlink your Minecraft and Discord accounts.";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSyntax() {
|
||||
return "unlink";
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getChannel() {
|
||||
return BotConfig.LINK_CHANNEL;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleCommand(Message message, String sender, String command, String[] args) {
|
||||
Member member = message.getMember();
|
||||
if (member == null)
|
||||
return;
|
||||
|
||||
DiscordLinkPlayer discordLinkPlayer = DiscordLinkPlayer.getDiscordLinkPlayer(member.getIdLong());
|
||||
if (discordLinkPlayer == null) {
|
||||
message.getChannel().sendMessage("Your accounts aren't linked.").queue();
|
||||
return;
|
||||
}
|
||||
discordLinkPlayer.unlinkDiscordLinkPlayer();
|
||||
message.getChannel().sendMessage("Your Discord and Minecraft accounts have been unlinked.").queue();
|
||||
}
|
||||
}
|
||||
|
|
@ -1,77 +0,0 @@
|
|||
package com.alttd.proxydiscordlink.bot.listeners;
|
||||
|
||||
import com.alttd.proxydiscordlink.DiscordLink;
|
||||
import com.alttd.proxydiscordlink.bot.Bot;
|
||||
import com.alttd.proxydiscordlink.bot.DiscordCommand;
|
||||
import com.alttd.proxydiscordlink.config.BotConfig;
|
||||
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
|
||||
import net.dv8tion.jda.api.hooks.ListenerAdapter;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
public class DiscordMessageListener extends ListenerAdapter {
|
||||
|
||||
private final DiscordLink plugin;
|
||||
private final Bot bot;
|
||||
|
||||
public DiscordMessageListener() {
|
||||
plugin = DiscordLink.getPlugin();
|
||||
bot = plugin.getBot();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMessageReceived(MessageReceivedEvent event) {
|
||||
if (!event.isFromGuild())
|
||||
return;
|
||||
if (event.getAuthor() == event.getJDA().getSelfUser())
|
||||
return;
|
||||
if (event.isWebhookMessage())
|
||||
return;
|
||||
/*
|
||||
if (event.getMessage().getChannel().getIdLong() == BotConfig.COMMAND_CHANNEL) {
|
||||
String content = event.getMessage().getContentRaw();
|
||||
if (content.startsWith(BotConfig.prefixMap.get(event.getGuild().getIdLong())) && content.length() > 1) {
|
||||
String[] split = content.split(" ");
|
||||
String cmd = split[0].substring(1).toLowerCase();
|
||||
String[] args = Arrays.copyOfRange(split, 1, split.length);
|
||||
for(DiscordCommand command : DiscordCommand.getCommands()) {
|
||||
if(!command.getCommand().equalsIgnoreCase(cmd))
|
||||
continue;
|
||||
if(command.getPermission() != null) {
|
||||
// TODO permission check? do we need this?
|
||||
}
|
||||
command.handleCommand(event.getMessage(), event.getAuthor().getName(), cmd, args);
|
||||
}
|
||||
}
|
||||
} else if (event.getMessage().getChannel().getIdLong() == BotConfig.LINK_CHANNEL) {
|
||||
String content = event.getMessage().getContentRaw();
|
||||
String[] split = content.split(" ");
|
||||
String cmd = split[0].substring(1).toLowerCase();
|
||||
String[] args = Arrays.copyOfRange(split, 1, split.length);
|
||||
if (cmd.equalsIgnoreCase("link"))
|
||||
DiscordCommand.getCommands().stream()
|
||||
.filter(discordCommand -> discordCommand.getCommand().equals("link"))
|
||||
.findFirst()
|
||||
.ifPresent(discordCommand -> discordCommand.handleCommand(event.getMessage(), event.getAuthor().getName(), cmd, args));
|
||||
}
|
||||
*/
|
||||
String content = event.getMessage().getContentRaw();
|
||||
if (!BotConfig.prefixMap.containsKey(event.getGuild().getIdLong())) return; // early return
|
||||
if (content.startsWith(BotConfig.prefixMap.get(event.getGuild().getIdLong())) && content.length() > 1) {
|
||||
String[] split = content.split(" ");
|
||||
String cmd = split[0].substring(1).toLowerCase();
|
||||
String[] args = Arrays.copyOfRange(split, 1, split.length);
|
||||
for (DiscordCommand command : DiscordCommand.getCommands()) {
|
||||
if (!command.getCommand().equalsIgnoreCase(cmd))
|
||||
continue;
|
||||
if (!(event.getMessage().getChannel().getIdLong() == command.getChannel()))
|
||||
continue;
|
||||
if (command.getPermission() != null) {
|
||||
// TODO permission check? do we need this?
|
||||
}
|
||||
command.handleCommand(event.getMessage(), event.getAuthor().getName(), cmd, args);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -3,6 +3,7 @@ package com.alttd.proxydiscordlink.objects;
|
|||
import com.alttd.proxydiscordlink.DiscordLink;
|
||||
import com.alttd.proxydiscordlink.bot.objects.DiscordRole;
|
||||
import com.alttd.proxydiscordlink.config.BotConfig;
|
||||
import com.alttd.proxydiscordlink.database.Database;
|
||||
import com.alttd.proxydiscordlink.util.Utilities;
|
||||
import net.luckperms.api.model.user.UserManager;
|
||||
import net.luckperms.api.node.types.InheritanceNode;
|
||||
|
|
@ -130,6 +131,7 @@ public class DiscordLinkPlayer {
|
|||
.collect(Collectors.toList()),
|
||||
false);
|
||||
linkedRole(false);
|
||||
DiscordLink.getPlugin().getDatabase().removeLinkedAccount(this);
|
||||
}
|
||||
|
||||
//Static stuff
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user