Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -21,17 +21,18 @@

public class SpigotAdventureFacet implements AdventureFacet {
private static final LegacyComponentSerializer LEGACY_SERIALIZER;
private static final LegacyComponentSerializer LEGACY_SERIALIZER_URLS;
private static final MiniMessage MINI_MESSAGE_NO_TAGS;

static {
final LegacyComponentSerializer.Builder builder = LegacyComponentSerializer.builder()
.flattener(ComponentFlattener.basic())
.extractUrls(AbstractChatEvent.URL_PATTERN)
.useUnusualXRepeatedCharacterHexFormat();
if (VersionUtil.getServerBukkitVersion().isHigherThanOrEqualTo(VersionUtil.v1_16_1_R01)) {
builder.hexColors();
}
LEGACY_SERIALIZER = builder.build();
LEGACY_SERIALIZER_URLS = builder.extractUrls(AbstractChatEvent.URL_PATTERN).build();

MINI_MESSAGE_NO_TAGS = MiniMessage.builder().strict(true).build();
}
Expand Down Expand Up @@ -127,6 +128,11 @@ public String stripTags(String input) {
return miniMessageInstance.stripTags(input);
}

@Override
public String legacyToMiniWithUrls(String message) {
return miniMessageInstance.serialize(LEGACY_SERIALIZER_URLS.deserialize(message));
}

@Override
public String escapeTags(String input) {
return miniMessageInstance.escapeTags(input);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.earth2me.essentials.commands;

import com.earth2me.essentials.CommandSource;
import com.earth2me.essentials.adventure.AdventureUtil;
import com.earth2me.essentials.utils.FormatUtil;
import org.bukkit.Server;

Expand All @@ -15,6 +16,9 @@ public void run(final Server server, final CommandSource sender, final String co
throw new NotEnoughArgumentsException();
}

ess.broadcastTl("broadcast", FormatUtil.replaceFormat(getFinalArg(args, 0)).replace("\\n", "\n"), sender.getDisplayName());
final String message = FormatUtil.replaceFormat(getFinalArg(args, 0)).replace("\\n", "\n");
ess.broadcastTl("broadcast",
AdventureUtil.parsed(ess.getAdventureFacet().legacyToMiniWithUrls(ess.getAdventureFacet().escapeTags(message))),
sender.getDisplayName());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,11 @@ private void sendBroadcast(final World world, final String name, final String me
if (message.isEmpty()) {
throw new NotEnoughArgumentsException();
}
ess.broadcastTl(null, u -> !u.getBase().getWorld().equals(world), true, "broadcast", FormatUtil.replaceFormat(message).replace("\\n", "\n"), AdventureUtil.parsed(ess.getAdventureFacet().legacyToMini(name)));
final String formatted = FormatUtil.replaceFormat(message).replace("\\n", "\n");
ess.broadcastTl(null, u -> !u.getBase().getWorld().equals(world), true, "broadcast",
AdventureUtil.parsed(
ess.getAdventureFacet().legacyToMiniWithUrls(ess.getAdventureFacet().escapeTags(formatted))),
AdventureUtil.parsed(ess.getAdventureFacet().legacyToMini(name)));
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -223,7 +223,10 @@ protected void handleChatRecipients(AbstractChatEvent event) {
server.getPluginManager().callEvent(spyEvent);

if (!spyEvent.isCancelled()) {
final String legacyString = ess.getAdventureFacet().miniToLegacy(String.format(spyEvent.getFormat(), ess.getAdventureFacet().legacyToMini(user.getDisplayName()), ess.getAdventureFacet().legacyToMini(ess.getAdventureFacet().escapeTags(spyEvent.getMessage()))));
final String legacyString = ess.getAdventureFacet().miniToLegacy(
String.format(spyEvent.getFormat(),
ess.getAdventureFacet().legacyToMini(user.getDisplayName()),
ess.getAdventureFacet().legacyToMiniWithUrls(ess.getAdventureFacet().escapeTags(spyEvent.getMessage()))));

for (final Player onlinePlayer : spyEvent.getRecipients()) {
onlinePlayer.sendMessage(legacyString);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,11 @@ public interface AdventureFacet {
*/
String legacyToMini(String message, boolean useCustomTags);

/**
* Converts a section sign legacy string to a MiniMessage string, auto-linking detected URLs as click events.
*/
String legacyToMiniWithUrls(String message);

/**
* Convenience method for submodules to escape MiniMessage tags.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@

public class PaperAdventureFacet implements AdventureFacet {
private final LegacyComponentSerializer legacySerializer;
private final LegacyComponentSerializer legacySerializerUrls;
private final MiniMessage miniMessageNoTags;
private final MiniMessage miniMessageInstance;

Expand All @@ -29,10 +30,10 @@ public PaperAdventureFacet(final String primaryColor, final String secondaryColo

final LegacyComponentSerializer.Builder builder = LegacyComponentSerializer.builder()
.flattener(ComponentFlattener.basic())
.extractUrls(AbstractChatEvent.URL_PATTERN)
.hexColors()
.useUnusualXRepeatedCharacterHexFormat();
legacySerializer = builder.build();
legacySerializerUrls = builder.extractUrls(AbstractChatEvent.URL_PATTERN).build();

miniMessageNoTags = MiniMessage.builder().strict(true).build();

Expand Down Expand Up @@ -88,6 +89,11 @@ public String legacyToMini(String message, boolean useCustomTags) {
}
}

@Override
public String legacyToMiniWithUrls(String message) {
return miniMessageInstance.serialize(legacySerializerUrls.deserialize(message));
}

@Override
public String escapeTags(String input) {
return miniMessageInstance.escapeTags(input);
Expand Down
Loading