forked from SteamWar/SteamWar
Fix links in chat not clickable
This commit is contained in:
@@ -26,9 +26,9 @@ import com.velocitypowered.api.proxy.Player;
|
|||||||
import com.velocitypowered.api.proxy.ServerConnection;
|
import com.velocitypowered.api.proxy.ServerConnection;
|
||||||
import de.steamwar.persistent.Servertype;
|
import de.steamwar.persistent.Servertype;
|
||||||
import de.steamwar.persistent.Subserver;
|
import de.steamwar.persistent.Subserver;
|
||||||
import de.steamwar.velocitycore.VelocityCore;
|
|
||||||
import de.steamwar.sql.SteamwarUser;
|
import de.steamwar.sql.SteamwarUser;
|
||||||
import de.steamwar.sql.UserPerm;
|
import de.steamwar.sql.UserPerm;
|
||||||
|
import de.steamwar.velocitycore.VelocityCore;
|
||||||
import net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
import net.kyori.adventure.text.event.ClickEvent;
|
import net.kyori.adventure.text.event.ClickEvent;
|
||||||
import net.kyori.adventure.text.event.HoverEvent;
|
import net.kyori.adventure.text.event.HoverEvent;
|
||||||
@@ -47,6 +47,7 @@ import java.util.function.Supplier;
|
|||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
public interface Chatter {
|
public interface Chatter {
|
||||||
|
LegacyComponentSerializer SERIALIZER = LegacyComponentSerializer.builder().extractUrls().build();
|
||||||
|
|
||||||
static Stream<Player> allPlayers() {
|
static Stream<Player> allPlayers() {
|
||||||
return VelocityCore.getProxy().getAllPlayers().stream();
|
return VelocityCore.getProxy().getAllPlayers().stream();
|
||||||
@@ -138,7 +139,7 @@ public interface Chatter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
default String parseToLegacy(Message message) {
|
default String parseToLegacy(Message message) {
|
||||||
return LegacyComponentSerializer.legacySection().serialize(parse(message));
|
return SERIALIZER.serialize(parse(message));
|
||||||
}
|
}
|
||||||
|
|
||||||
default Component parse(String format, Object... params) {
|
default Component parse(String format, Object... params) {
|
||||||
@@ -178,7 +179,7 @@ public interface Chatter {
|
|||||||
params[i] = func.apply(this);
|
params[i] = func.apply(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return LegacyComponentSerializer.legacySection().deserialize(format.format(params));
|
return SERIALIZER.deserialize(format.format(params));
|
||||||
}
|
}
|
||||||
|
|
||||||
static PlayerChatter of(Player player) {
|
static PlayerChatter of(Player player) {
|
||||||
|
|||||||
@@ -20,18 +20,17 @@
|
|||||||
package de.steamwar.velocitycore.mods;
|
package de.steamwar.velocitycore.mods;
|
||||||
|
|
||||||
import com.velocitypowered.api.proxy.Player;
|
import com.velocitypowered.api.proxy.Player;
|
||||||
import de.steamwar.sql.Punishment;
|
|
||||||
import de.steamwar.velocitycore.VelocityCore;
|
|
||||||
import de.steamwar.velocitycore.commands.PunishmentCommand;
|
|
||||||
import de.steamwar.messages.Chatter;
|
import de.steamwar.messages.Chatter;
|
||||||
import de.steamwar.sql.Mod;
|
import de.steamwar.sql.Mod;
|
||||||
import de.steamwar.sql.Mod.ModType;
|
import de.steamwar.sql.Mod.ModType;
|
||||||
|
import de.steamwar.sql.Punishment;
|
||||||
import de.steamwar.sql.SteamwarUser;
|
import de.steamwar.sql.SteamwarUser;
|
||||||
import de.steamwar.sql.UserPerm;
|
import de.steamwar.sql.UserPerm;
|
||||||
|
import de.steamwar.velocitycore.VelocityCore;
|
||||||
|
import de.steamwar.velocitycore.commands.PunishmentCommand;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.experimental.UtilityClass;
|
import lombok.experimental.UtilityClass;
|
||||||
import net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
|
|
||||||
|
|
||||||
import java.sql.Timestamp;
|
import java.sql.Timestamp;
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
@@ -88,7 +87,7 @@ public class ModUtils {
|
|||||||
VelocityCore.getLogger().log(Level.SEVERE, "%s %s wurde automatisch wegen der Mods %s gebannt.".formatted(user.getUserName(), user.getId(), modList));
|
VelocityCore.getLogger().log(Level.SEVERE, "%s %s wurde automatisch wegen der Mods %s gebannt.".formatted(user.getUserName(), user.getId(), modList));
|
||||||
}
|
}
|
||||||
|
|
||||||
disconnect.accept(LegacyComponentSerializer.legacySection().deserialize(message));
|
disconnect.accept(Chatter.SERIALIZER.deserialize(message));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,6 +20,7 @@
|
|||||||
package de.steamwar.velocitycore.network.handlers;
|
package de.steamwar.velocitycore.network.handlers;
|
||||||
|
|
||||||
import com.velocitypowered.api.proxy.Player;
|
import com.velocitypowered.api.proxy.Player;
|
||||||
|
import de.steamwar.messages.Chatter;
|
||||||
import de.steamwar.network.packets.PacketHandler;
|
import de.steamwar.network.packets.PacketHandler;
|
||||||
import de.steamwar.network.packets.common.FightEndsPacket;
|
import de.steamwar.network.packets.common.FightEndsPacket;
|
||||||
import de.steamwar.sql.SchematicType;
|
import de.steamwar.sql.SchematicType;
|
||||||
@@ -29,7 +30,6 @@ import de.steamwar.velocitycore.ArenaMode;
|
|||||||
import de.steamwar.velocitycore.VelocityCore;
|
import de.steamwar.velocitycore.VelocityCore;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
|
|
||||||
import net.kyori.adventure.title.Title;
|
import net.kyori.adventure.title.Title;
|
||||||
|
|
||||||
import java.time.Duration;
|
import java.time.Duration;
|
||||||
@@ -186,10 +186,10 @@ public class EloPlayerHandler extends PacketHandler {
|
|||||||
|
|
||||||
double eloStep = eloGain / 40.0;
|
double eloStep = eloGain / 40.0;
|
||||||
for (int i = 0; i < 40; i++) {
|
for (int i = 0; i < 40; i++) {
|
||||||
Component eloGainComponent = LegacyComponentSerializer.legacySection().deserialize(color + (int) (eloStep * (i + 1)));
|
Component eloGainComponent = Chatter.SERIALIZER.deserialize(color + (int) (eloStep * (i + 1)));
|
||||||
int finalI = i;
|
int finalI = i;
|
||||||
VelocityCore.schedule(() -> player.showTitle(Title.title(
|
VelocityCore.schedule(() -> player.showTitle(Title.title(
|
||||||
LegacyComponentSerializer.legacySection().deserialize(getRankup.apply(finalI)),
|
Chatter.SERIALIZER.deserialize(getRankup.apply(finalI)),
|
||||||
eloGainComponent,
|
eloGainComponent,
|
||||||
Title.Times.times(Duration.ofMillis(finalI == 0 ? 250 : 0), Duration.ofSeconds(2), Duration.ofMillis(finalI == 39 ? 250 : 0))
|
Title.Times.times(Duration.ofMillis(finalI == 0 ? 250 : 0), Duration.ofSeconds(2), Duration.ofMillis(finalI == 39 ? 250 : 0))
|
||||||
))).delay(i * 50L, TimeUnit.MILLISECONDS).schedule();
|
))).delay(i * 50L, TimeUnit.MILLISECONDS).schedule();
|
||||||
|
|||||||
@@ -26,7 +26,6 @@ import de.steamwar.sql.SteamwarUser;
|
|||||||
import de.steamwar.sql.UserPerm;
|
import de.steamwar.sql.UserPerm;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
@@ -43,7 +42,7 @@ public interface TablistPart {
|
|||||||
|
|
||||||
public Item(UUID uuid, String displayName, List<GameProfile.Property> properties) {
|
public Item(UUID uuid, String displayName, List<GameProfile.Property> properties) {
|
||||||
this.uuid = uuid;
|
this.uuid = uuid;
|
||||||
this.displayName = LegacyComponentSerializer.legacySection().deserialize(displayName);
|
this.displayName = Chatter.SERIALIZER.deserialize(displayName);
|
||||||
this.properties = properties;
|
this.properties = properties;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -55,9 +54,9 @@ public interface TablistPart {
|
|||||||
this.uuid = player.getUniqueId();
|
this.uuid = player.getUniqueId();
|
||||||
UserPerm.Prefix prefix = SteamwarUser.get(player.getUniqueId()).prefix();
|
UserPerm.Prefix prefix = SteamwarUser.get(player.getUniqueId()).prefix();
|
||||||
if (prefix == UserPerm.emptyPrefix && sameTeam) {
|
if (prefix == UserPerm.emptyPrefix && sameTeam) {
|
||||||
this.displayName = LegacyComponentSerializer.legacySection().deserialize("§f" + player.getUsername());
|
this.displayName = Chatter.SERIALIZER.deserialize("§f" + player.getUsername());
|
||||||
} else {
|
} else {
|
||||||
this.displayName = LegacyComponentSerializer.legacySection().deserialize(prefix.getColorCode() + player.getUsername());
|
this.displayName = Chatter.SERIALIZER.deserialize(prefix.getColorCode() + player.getUsername());
|
||||||
}
|
}
|
||||||
this.properties = player.getGameProfileProperties();
|
this.properties = player.getGameProfileProperties();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user