refactor: use Component.equals on bossbar title checking and new placeholder title
This commit is contained in:
@@ -1,18 +1,22 @@
|
||||
package me.chayapak1.chomens_bot.data;
|
||||
|
||||
import me.chayapak1.chomens_bot.Bot;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.format.NamedTextColor;
|
||||
import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
|
||||
import org.geysermc.mcprotocollib.protocol.data.game.BossBarColor;
|
||||
import org.geysermc.mcprotocollib.protocol.data.game.BossBarDivision;
|
||||
import me.chayapak1.chomens_bot.Bot;
|
||||
import me.chayapak1.chomens_bot.util.ComponentUtilities;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
public class BotBossBar extends BossBar {
|
||||
public UUID uuid = UUID.randomUUID(); // the random uuid will be temporary
|
||||
|
||||
public final Component secret = Component.text(Math.random() * 69420);
|
||||
public final Component secret = Component
|
||||
.text(UUID.randomUUID().toString())
|
||||
.color(NamedTextColor.BLACK)
|
||||
.append(Component.space())
|
||||
.append(Component.text("(please ignore!)").color(NamedTextColor.GRAY));
|
||||
|
||||
public boolean gotSecret = false;
|
||||
|
||||
@@ -54,7 +58,7 @@ public class BotBossBar extends BossBar {
|
||||
public void setTitle(Component title, boolean force) {
|
||||
if (!gotSecret) return;
|
||||
|
||||
if (ComponentUtilities.isEqual(this.title, title) && !force) return;
|
||||
if (this.title.equals(title) && !force) return;
|
||||
|
||||
if (bot.bossbar.actionBar) {
|
||||
bot.chat.actionBar(title, players);
|
||||
|
||||
@@ -1,17 +1,16 @@
|
||||
package me.chayapak1.chomens_bot.plugins;
|
||||
|
||||
import me.chayapak1.chomens_bot.Bot;
|
||||
import me.chayapak1.chomens_bot.data.BossBar;
|
||||
import me.chayapak1.chomens_bot.data.BotBossBar;
|
||||
import me.chayapak1.chomens_bot.data.PlayerEntry;
|
||||
import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
|
||||
import org.geysermc.mcprotocollib.network.Session;
|
||||
import org.geysermc.mcprotocollib.network.event.session.ConnectedEvent;
|
||||
import org.geysermc.mcprotocollib.network.event.session.DisconnectedEvent;
|
||||
import org.geysermc.mcprotocollib.network.packet.Packet;
|
||||
import org.geysermc.mcprotocollib.protocol.data.game.BossBarColor;
|
||||
import org.geysermc.mcprotocollib.protocol.packet.ingame.clientbound.ClientboundBossEventPacket;
|
||||
import me.chayapak1.chomens_bot.Bot;
|
||||
import me.chayapak1.chomens_bot.data.BossBar;
|
||||
import me.chayapak1.chomens_bot.data.BotBossBar;
|
||||
import me.chayapak1.chomens_bot.data.PlayerEntry;
|
||||
import me.chayapak1.chomens_bot.util.ComponentUtilities;
|
||||
import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
@@ -62,7 +61,7 @@ public class BossbarManagerPlugin extends Bot.Listener {
|
||||
for (Map.Entry<UUID, BotBossBar> _bossBar : mapCopy.entrySet()) {
|
||||
final BotBossBar bossBar = _bossBar.getValue();
|
||||
|
||||
if (ComponentUtilities.isEqual(bossBar.secret, packet.getTitle())) {
|
||||
if (bossBar.secret.equals(packet.getTitle())) {
|
||||
bossBars.remove(_bossBar.getKey());
|
||||
|
||||
final BotBossBar newBossBar = new BotBossBar(
|
||||
@@ -114,7 +113,7 @@ public class BossbarManagerPlugin extends Bot.Listener {
|
||||
|
||||
final BotBossBar botBossBar = get(bossBar.uuid);
|
||||
|
||||
if (botBossBar != null && ComponentUtilities.isEqual(botBossBar.secret, packet.getTitle())) {
|
||||
if (botBossBar != null && botBossBar.secret.equals(packet.getTitle())) {
|
||||
botBossBar.uuid = packet.getUuid();
|
||||
|
||||
botBossBar.gotSecret = true;
|
||||
@@ -144,7 +143,7 @@ public class BossbarManagerPlugin extends Bot.Listener {
|
||||
bossBar.gotSecret = false;
|
||||
|
||||
addBossBar(bossBar.id, bossBar, true);
|
||||
} else if (!ComponentUtilities.isEqual(bossBar.title(), serverBossBar.title)) {
|
||||
} else if (!bossBar.title().equals(serverBossBar.title)) {
|
||||
bossBar.setTitle(bossBar.title, true);
|
||||
} else if (bossBar.value() != serverBossBar.health * bossBar.max()) {
|
||||
bossBar.setValue(bossBar.value(), true);
|
||||
|
||||
@@ -19,11 +19,6 @@ import java.util.regex.Pattern;
|
||||
|
||||
// totallynotskidded™ from chipmunkbot and added colors (ignore the ohio code please,..,.)
|
||||
public class ComponentUtilities {
|
||||
// is this the best way to check?
|
||||
public static boolean isEqual (Component component1, Component component2) {
|
||||
return component1.toString().equals(component2.toString());
|
||||
}
|
||||
|
||||
// component parsing
|
||||
public static final Map<String, String> language = loadJsonStringMap("language.json");
|
||||
private static final Map<String, String> voiceChatLanguage = loadJsonStringMap("voiceChatLanguage.json");
|
||||
|
||||
Reference in New Issue
Block a user