Commit 49d468cd authored by Ash's avatar Ash
Browse files

Renamed chattags to stickers

parent 05f7d78b
......@@ -15,7 +15,7 @@ import io.lumine.cosmetics.logging.MCLogger;
import io.lumine.cosmetics.types.CosmeticsExecutor;
import io.lumine.cosmetics.types.back.BackManager;
import io.lumine.cosmetics.types.chat.ChatColorManager;
import io.lumine.cosmetics.types.chat.ChatTagManager;
import io.lumine.cosmetics.types.chat.StickerManager;
import io.lumine.cosmetics.types.equipment.EquipmentManager;
import io.lumine.cosmetics.types.gestures.GestureManager;
import io.lumine.cosmetics.types.equipment.hats.HatManager;
......@@ -56,7 +56,7 @@ public class MCCosmeticsPlugin extends LuminePlugin {
@Getter private EquipmentManager equipmentManager;
@Getter private BackManager backManager;
@Getter private ChatTagManager chatTagManager;
@Getter private StickerManager chatTagManager;
@Getter private ChatColorManager chatColorManager;
@Getter private GestureManager gestureManager;
@Getter private HatManager hatManager;
......@@ -124,7 +124,7 @@ public class MCCosmeticsPlugin extends LuminePlugin {
sprayManager = new SprayManager(this);
offhandManager = new OffhandManager(this);
chatColorManager = new ChatColorManager(this);
chatTagManager = new ChatTagManager(this);
chatTagManager = new StickerManager(this);
if(Bukkit.getPluginManager().getPlugin("ModelEngine") != null) {
......
package io.lumine.cosmetics.compat;
import io.lumine.cosmetics.MCCosmeticsPlugin;
import io.lumine.cosmetics.types.chat.ChatTag;
import io.lumine.cosmetics.types.chat.Sticker;
import io.lumine.cosmetics.players.Profile;
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
import org.bukkit.entity.Player;
......@@ -36,10 +36,10 @@ public class PlaceholderAPICompat extends PlaceholderExpansion {
}
switch (identifier) {
case "chattag": {
final var maybeTag = profile.getEquipped(ChatTag.class);
case "sticker": {
final var maybeTag = profile.getEquipped(Sticker.class);
if(maybeTag.isPresent()) {
return ((ChatTag) maybeTag.get().getCosmetic()).getChatTag().get();
return ((Sticker) maybeTag.get().getCosmetic()).getChatTag().get();
} else {
return "";
}
......
......@@ -3,7 +3,7 @@ package io.lumine.cosmetics.constants;
import io.lumine.cosmetics.api.cosmetics.Cosmetic;
import io.lumine.cosmetics.types.back.BackAccessory;
import io.lumine.cosmetics.types.chat.ChatColor;
import io.lumine.cosmetics.types.chat.ChatTag;
import io.lumine.cosmetics.types.chat.Sticker;
import io.lumine.cosmetics.types.gestures.Gesture;
import io.lumine.cosmetics.types.equipment.hats.Hat;
import io.lumine.cosmetics.types.modelengine.MEGAccessory;
......@@ -30,7 +30,7 @@ public class CosmeticType {
register(Offhand.class, new CosmeticConstant("OFFHAND", "offhands"));
register(Gesture.class, new CosmeticConstant("GESTURE", "gestures"));
register(ChatColor.class, new CosmeticConstant("CHATCOLOR", "chatcolors"));
register(ChatTag.class, new CosmeticConstant("CHATTAG", "chattags"));
register(Sticker.class, new CosmeticConstant("STICKER", "stickers"));
}
public static void register(Class<? extends Cosmetic> clazz, CosmeticConstant cosmeticConstant) {
......
package io.lumine.cosmetics.types.chat;
import io.lumine.cosmetics.MCCosmeticsPlugin;
import io.lumine.cosmetics.api.players.CosmeticProfile;
import io.lumine.cosmetics.types.MCCosmeticsManager;
import io.lumine.mythic.api.packs.Pack;
import java.io.File;
public class ChatTagManager extends MCCosmeticsManager<ChatTag> {
public ChatTagManager(MCCosmeticsPlugin plugin) {
super(plugin, ChatTag.class);
load(plugin);
}
@Override
public void load(MCCosmeticsPlugin plugin) {
super.load(plugin);
}
@Override
public ChatTag build(Pack pack, File file, String node) {
return new ChatTag(this, pack, file, node);
}
@Override
public void equip(CosmeticProfile profile) {}
@Override
public void unequip(CosmeticProfile profile) {}
}
......@@ -13,21 +13,21 @@ import lombok.Getter;
import java.io.File;
public class ChatTag extends AbstractCosmetic {
public class Sticker extends AbstractCosmetic {
private static final StringProp TAG = Property.String(Scope.NONE, "Tag");
private static final StringProp TAG = Property.String(Scope.NONE, "Sticker");
@Getter private final PlaceholderString chatTag;
public ChatTag(ChatTagManager manager, Pack pack, File file, String key) {
super(manager, pack, file, CosmeticType.type(ChatTag.class), key);
public Sticker(StickerManager manager, Pack pack, File file, String key) {
super(manager, pack, file, CosmeticType.type(Sticker.class), key);
this.chatTag = PlaceholderString.of(TAG.fget(file, this));
}
@Override
public Icon<CosmeticProfile> getIcon() {
return buildIcon("chattag");
return buildIcon("stickers");
}
}
package io.lumine.cosmetics.types.chat;
import io.lumine.cosmetics.MCCosmeticsPlugin;
import io.lumine.cosmetics.api.players.CosmeticProfile;
import io.lumine.cosmetics.types.MCCosmeticsManager;
import io.lumine.mythic.api.packs.Pack;
import io.lumine.mythic.bukkit.utils.Events;
import io.lumine.mythic.bukkit.utils.logging.Log;
import io.papermc.paper.event.player.AsyncChatEvent;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.TextReplacementConfig;
import org.bukkit.event.EventPriority;
import java.io.File;
import java.util.regex.Pattern;
public class StickerManager extends MCCosmeticsManager<Sticker> {
private static final Pattern EMOJI_PATTERN = Pattern.compile(":([a-zA-Z0-9_]+):");
public StickerManager(MCCosmeticsPlugin plugin) {
super(plugin, Sticker.class);
load(plugin);
}
@Override
public void load(MCCosmeticsPlugin plugin) {
super.load(plugin);
Events.subscribe(AsyncChatEvent.class, EventPriority.LOWEST).handler(event -> {
final var player = event.getPlayer();
var messageComponent = event.message();
final var emojiReplacement = TextReplacementConfig.builder()
.match(EMOJI_PATTERN)
.replacement(matchResult -> {
String emojiKey = matchResult.content();
Log.info("CONTENT {0}", emojiKey);
//String emoji = getEmoji(emojiKey);
//// If no emoji is found, keep the original text
//return emoji != null ? emoji : matchResult.group();
return Component.text().resetStyle().append(Component.text("bweee")).build(); //.hoverEvent(heldItem.asHoverEvent()).build()
})
.build();
messageComponent = messageComponent.replaceText(emojiReplacement);
event.message(messageComponent);
}).bindWith(this);
}
@Override
public Sticker build(Pack pack, File file, String node) {
return new Sticker(this, pack, file, node);
}
@Override
public void equip(CosmeticProfile profile) {}
@Override
public void unequip(CosmeticProfile profile) {}
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment