mirror of
https://github.com/TotalFreedomMC/TF-EssentialsX.git
synced 2025-02-11 20:00:46 +00:00
Add name parameter for Discord avatar URL (#4369)
Allows offline mode/Geyser users to configure their own avatar URL using a service that accepts usernames.
This commit is contained in:
parent
d56ecaacdc
commit
ac8a13f039
4 changed files with 33 additions and 21 deletions
|
@ -252,7 +252,7 @@ public class JDADiscordService implements DiscordService {
|
||||||
MessageUtil.sanitizeDiscordMarkdown(FormatUtil.stripEssentialsFormat(getPlugin().getEss().getPermissionsHandler().getPrefix(player))),
|
MessageUtil.sanitizeDiscordMarkdown(FormatUtil.stripEssentialsFormat(getPlugin().getEss().getPermissionsHandler().getPrefix(player))),
|
||||||
MessageUtil.sanitizeDiscordMarkdown(FormatUtil.stripEssentialsFormat(getPlugin().getEss().getPermissionsHandler().getSuffix(player))));
|
MessageUtil.sanitizeDiscordMarkdown(FormatUtil.stripEssentialsFormat(getPlugin().getEss().getPermissionsHandler().getSuffix(player))));
|
||||||
|
|
||||||
final String avatarUrl = getSettings().isShowAvatar() ? getSettings().getAvatarURL().replace("{uuid}", player.getUniqueId().toString()) : null;
|
final String avatarUrl = DiscordUtil.getAvatarUrl(this, player);
|
||||||
final String name = getSettings().isShowName() ? player.getName() : (getSettings().isShowDisplayName() ? player.getDisplayName() : null);
|
final String name = getSettings().isShowName() ? player.getName() : (getSettings().isShowDisplayName() ? player.getDisplayName() : null);
|
||||||
|
|
||||||
DiscordUtil.dispatchDiscordMessage(this, MessageType.DefaultTypes.CHAT, formattedMessage, user.isAuthorized("essentials.discord.ping"), avatarUrl, name, player.getUniqueId());
|
DiscordUtil.dispatchDiscordMessage(this, MessageType.DefaultTypes.CHAT, formattedMessage, user.isAuthorized("essentials.discord.ping"), avatarUrl, name, player.getUniqueId());
|
||||||
|
|
|
@ -134,11 +134,8 @@ public class BukkitListener implements Listener {
|
||||||
MessageUtil.formatMessage(join ? jda.getSettings().getJoinFormat(player) : jda.getSettings().getQuitFormat(player),
|
MessageUtil.formatMessage(join ? jda.getSettings().getJoinFormat(player) : jda.getSettings().getQuitFormat(player),
|
||||||
MessageUtil.sanitizeDiscordMarkdown(player.getName()),
|
MessageUtil.sanitizeDiscordMarkdown(player.getName()),
|
||||||
MessageUtil.sanitizeDiscordMarkdown(player.getDisplayName()),
|
MessageUtil.sanitizeDiscordMarkdown(player.getDisplayName()),
|
||||||
MessageUtil.sanitizeDiscordMarkdown(message),
|
MessageUtil.sanitizeDiscordMarkdown(message)),
|
||||||
false,
|
player);
|
||||||
jda.getSettings().isShowAvatar() ? jda.getSettings().getAvatarURL().replace("{uuid}", player.getUniqueId().toString()) : null,
|
|
||||||
jda.getSettings().isShowName() ? player.getName() : (jda.getSettings().isShowDisplayName() ? player.getDisplayName() : null),
|
|
||||||
player.getUniqueId()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||||
|
@ -154,6 +151,7 @@ public class BukkitListener implements Listener {
|
||||||
if (!event.getEntity().getWorld().isGameRule("showDeathMessages")) {
|
if (!event.getEntity().getWorld().isGameRule("showDeathMessages")) {
|
||||||
showDeathMessages = null;
|
showDeathMessages = null;
|
||||||
} else {
|
} else {
|
||||||
|
//noinspection deprecation
|
||||||
showDeathMessages = event.getEntity().getWorld().getGameRuleValue("showDeathMessages").equals("true");
|
showDeathMessages = event.getEntity().getWorld().getGameRuleValue("showDeathMessages").equals("true");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -166,10 +164,7 @@ public class BukkitListener implements Listener {
|
||||||
MessageUtil.sanitizeDiscordMarkdown(event.getEntity().getName()),
|
MessageUtil.sanitizeDiscordMarkdown(event.getEntity().getName()),
|
||||||
MessageUtil.sanitizeDiscordMarkdown(event.getEntity().getDisplayName()),
|
MessageUtil.sanitizeDiscordMarkdown(event.getEntity().getDisplayName()),
|
||||||
MessageUtil.sanitizeDiscordMarkdown(event.getDeathMessage())),
|
MessageUtil.sanitizeDiscordMarkdown(event.getDeathMessage())),
|
||||||
false,
|
event.getEntity());
|
||||||
jda.getSettings().isShowAvatar() ? jda.getSettings().getAvatarURL().replace("{uuid}", event.getEntity().getUniqueId().toString()) : null,
|
|
||||||
jda.getSettings().isShowName() ? event.getEntity().getName() : (jda.getSettings().isShowDisplayName() ? event.getEntity().getDisplayName() : null),
|
|
||||||
event.getEntity().getUniqueId());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||||
|
@ -189,10 +184,7 @@ public class BukkitListener implements Listener {
|
||||||
MessageUtil.formatMessage(format,
|
MessageUtil.formatMessage(format,
|
||||||
MessageUtil.sanitizeDiscordMarkdown(event.getAffected().getName()),
|
MessageUtil.sanitizeDiscordMarkdown(event.getAffected().getName()),
|
||||||
MessageUtil.sanitizeDiscordMarkdown(event.getAffected().getDisplayName())),
|
MessageUtil.sanitizeDiscordMarkdown(event.getAffected().getDisplayName())),
|
||||||
false,
|
event.getAffected().getBase());
|
||||||
jda.getSettings().isShowAvatar() ? jda.getSettings().getAvatarURL().replace("{uuid}", event.getAffected().getBase().getUniqueId().toString()) : null,
|
|
||||||
jda.getSettings().isShowName() ? event.getAffected().getName() : (jda.getSettings().isShowDisplayName() ? event.getAffected().getDisplayName() : null),
|
|
||||||
event.getAffected().getBase().getUniqueId());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.MONITOR)
|
@EventHandler(priority = EventPriority.MONITOR)
|
||||||
|
@ -206,10 +198,7 @@ public class BukkitListener implements Listener {
|
||||||
MessageUtil.sanitizeDiscordMarkdown(event.getPlayer().getName()),
|
MessageUtil.sanitizeDiscordMarkdown(event.getPlayer().getName()),
|
||||||
MessageUtil.sanitizeDiscordMarkdown(event.getPlayer().getDisplayName()),
|
MessageUtil.sanitizeDiscordMarkdown(event.getPlayer().getDisplayName()),
|
||||||
event.getName()),
|
event.getName()),
|
||||||
false,
|
event.getPlayer());
|
||||||
jda.getSettings().isShowAvatar() ? jda.getSettings().getAvatarURL().replace("{uuid}", event.getPlayer().getUniqueId().toString()) : null,
|
|
||||||
jda.getSettings().isShowName() ? event.getPlayer().getName() : (jda.getSettings().isShowDisplayName() ? event.getPlayer().getDisplayName() : null),
|
|
||||||
event.getPlayer().getUniqueId());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||||
|
@ -233,10 +222,27 @@ public class BukkitListener implements Listener {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sendDiscordMessage(final MessageType messageType, final String message) {
|
private void sendDiscordMessage(final MessageType messageType, final String message) {
|
||||||
sendDiscordMessage(messageType, message, false, null, null, null);
|
sendDiscordMessage(messageType, message, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sendDiscordMessage(final MessageType messageType, final String message, final boolean allowPing, final String avatarUrl, final String name, final UUID uuid) {
|
private void sendDiscordMessage(final MessageType messageType, final String message, final Player player) {
|
||||||
DiscordUtil.dispatchDiscordMessage(jda, messageType, message, allowPing, avatarUrl, name, uuid);
|
String avatarUrl = null;
|
||||||
|
String name = null;
|
||||||
|
UUID uuid = null;
|
||||||
|
if (player != null) {
|
||||||
|
if (jda.getSettings().isShowAvatar()) {
|
||||||
|
avatarUrl = DiscordUtil.getAvatarUrl(jda, player);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (jda.getSettings().isShowName()) {
|
||||||
|
name = player.getName();
|
||||||
|
} else if (jda.getSettings().isShowDisplayName()) {
|
||||||
|
name = player.getDisplayName();
|
||||||
|
}
|
||||||
|
|
||||||
|
uuid = player.getUniqueId();
|
||||||
|
}
|
||||||
|
|
||||||
|
DiscordUtil.dispatchDiscordMessage(jda, messageType, message, false, avatarUrl, name, uuid);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,6 +19,7 @@ import net.essentialsx.api.v2.services.discord.MessageType;
|
||||||
import net.essentialsx.discord.JDADiscordService;
|
import net.essentialsx.discord.JDADiscordService;
|
||||||
import okhttp3.OkHttpClient;
|
import okhttp3.OkHttpClient;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
@ -194,6 +195,10 @@ public final class DiscordUtil {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String getAvatarUrl(final JDADiscordService jda, final Player player) {
|
||||||
|
return jda.getSettings().getAvatarURL().replace("{uuid}", player.getUniqueId().toString()).replace("{name}", player.getName());
|
||||||
|
}
|
||||||
|
|
||||||
public static void dispatchDiscordMessage(final JDADiscordService jda, final MessageType messageType, final String message, final boolean allowPing, final String avatarUrl, final String name, final UUID uuid) {
|
public static void dispatchDiscordMessage(final JDADiscordService jda, final MessageType messageType, final String message, final boolean allowPing, final String avatarUrl, final String name, final UUID uuid) {
|
||||||
if (jda.getPlugin().getSettings().getMessageChannel(messageType.getKey()).equalsIgnoreCase("none")) {
|
if (jda.getPlugin().getSettings().getMessageChannel(messageType.getKey()).equalsIgnoreCase("none")) {
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -133,6 +133,7 @@ show-avatar: false
|
||||||
# The URL which should be used to get the avatars of users when "show-avatar" is set to true.
|
# The URL which should be used to get the avatars of users when "show-avatar" is set to true.
|
||||||
# Any URL in here should only return a proper JPEG/PNG image and nothing else.
|
# Any URL in here should only return a proper JPEG/PNG image and nothing else.
|
||||||
# To include the UUID of the player in this URL, use "{uuid}".
|
# To include the UUID of the player in this URL, use "{uuid}".
|
||||||
|
# To include the name of the player in this URL, use "{name}".
|
||||||
avatar-url: "https://crafthead.net/helm/{uuid}"
|
avatar-url: "https://crafthead.net/helm/{uuid}"
|
||||||
# Whether or not player messages should show their name as the bot name in Discord.
|
# Whether or not player messages should show their name as the bot name in Discord.
|
||||||
show-name: false
|
show-name: false
|
||||||
|
|
Loading…
Reference in a new issue