mirror of
https://github.com/System-End/Discord-MC-Chat.git
synced 2026-04-19 22:05:11 +00:00
parent
c71a41f1e4
commit
a21eb8fc14
4 changed files with 33 additions and 32 deletions
|
|
@ -13,9 +13,6 @@ import net.fellbaum.jemoji.EmojiManager;
|
|||
import net.minecraft.ChatFormatting;
|
||||
import net.minecraft.advancements.DisplayInfo;
|
||||
import net.minecraft.network.chat.Component;
|
||||
//#if MC >= 11900
|
||||
import net.minecraft.network.chat.ComponentContents;
|
||||
//#endif
|
||||
import net.minecraft.network.chat.MutableComponent;
|
||||
//#if MC < 11900
|
||||
//$$ import net.minecraft.network.chat.TextComponent;
|
||||
|
|
@ -247,40 +244,21 @@ public class MinecraftEventListener {
|
|||
}
|
||||
});
|
||||
|
||||
MinecraftEvents.PLAYER_DIE.register((player, source) -> {
|
||||
MinecraftEvents.PLAYER_DIE.register(player -> {
|
||||
if (CONFIG.generic.announceDeathMessages) {
|
||||
//#if MC >= 11900
|
||||
TranslatableContents deathMessage = (TranslatableContents) source.getLocalizedDeathMessage(player).getContents();
|
||||
TranslatableContents deathMessage = (TranslatableContents) player.getCombatTracker().getDeathMessage().getContents();
|
||||
//#else
|
||||
//$$ TranslatableComponent deathMessage = (TranslatableComponent) source.getLocalizedDeathMessage(player);
|
||||
//$$ TranslatableComponent deathMessage = (TranslatableComponent) player.getCombatTracker().getDeathMessage();
|
||||
//#endif
|
||||
String key = deathMessage.getKey();
|
||||
Object[] args = new String[deathMessage.getArgs().length];
|
||||
for (int i = 0; i < deathMessage.getArgs().length; i++) {
|
||||
Object object = deathMessage.getArgs()[i];
|
||||
if (object instanceof Component component) {
|
||||
//#if MC >= 11900
|
||||
ComponentContents componentContents = component.getContents();
|
||||
if (componentContents instanceof TranslatableContents) {
|
||||
args[i] = Translations.translate(((TranslatableContents) componentContents).getKey());
|
||||
//#else
|
||||
//$$ if (component instanceof TranslatableComponent) {
|
||||
//$$ args[i] = Translations.translate(((TranslatableComponent) component).getKey());
|
||||
//#endif
|
||||
} else {
|
||||
args[i] = component.getString();
|
||||
}
|
||||
} else {
|
||||
args[i] = object == null ? "null" : object.toString();
|
||||
}
|
||||
}
|
||||
|
||||
CHANNEL.sendMessage(Translations.translateMessage("message.deathMessage")
|
||||
.replace("%deathMessage%", MarkdownSanitizer.escape(Translations.translate(key, args)))
|
||||
.replace("%deathMessage%", MarkdownSanitizer.escape(Translations.translate(key, deathMessage.getArgs())))
|
||||
.replace("%playerName%", MarkdownSanitizer.escape(Objects.requireNonNull(player.getDisplayName()).getString()))).queue();
|
||||
if (CONFIG.multiServer.enable) {
|
||||
MULTI_SERVER.sendMessage(false, false, false, null, Translations.translateMessage("message.deathMessage")
|
||||
.replace("%deathMessage%", MarkdownSanitizer.escape(Translations.translate(key, args)))
|
||||
.replace("%deathMessage%", MarkdownSanitizer.escape(Translations.translate(key, deathMessage.getArgs())))
|
||||
.replace("%playerName%", MarkdownSanitizer.escape(player.getDisplayName().getString())));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@ import net.minecraft.advancements.AdvancementHolder;
|
|||
import net.minecraft.commands.CommandSourceStack;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.server.level.ServerPlayer;
|
||||
import net.minecraft.world.damagesource.DamageSource;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
|
|
@ -41,9 +40,9 @@ public interface MinecraftEvents {
|
|||
}
|
||||
});
|
||||
|
||||
Event<PlayerDie> PLAYER_DIE = EventFactory.createArrayBacked(PlayerDie.class, callbacks -> (player, source) -> {
|
||||
Event<PlayerDie> PLAYER_DIE = EventFactory.createArrayBacked(PlayerDie.class, callbacks -> player -> {
|
||||
for (PlayerDie callback : callbacks) {
|
||||
callback.die(player, source);
|
||||
callback.die(player);
|
||||
}
|
||||
});
|
||||
|
||||
|
|
@ -77,7 +76,7 @@ public interface MinecraftEvents {
|
|||
}
|
||||
|
||||
interface PlayerDie {
|
||||
void die(ServerPlayer player, DamageSource source);
|
||||
void die(ServerPlayer player);
|
||||
}
|
||||
|
||||
interface PlayerJoin {
|
||||
|
|
|
|||
|
|
@ -16,6 +16,6 @@ public class MixinServerPlayer {
|
|||
|
||||
@Inject(method = "die(Lnet/minecraft/world/damagesource/DamageSource;)V", at = @At("HEAD"))
|
||||
private void die(DamageSource damageSource, CallbackInfo ci) {
|
||||
MinecraftEvents.PLAYER_DIE.invoker().die((ServerPlayer) (Object) this, damageSource);
|
||||
MinecraftEvents.PLAYER_DIE.invoker().die((ServerPlayer) (Object) this);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,6 +5,11 @@ import com.google.gson.reflect.TypeToken;
|
|||
import net.fabricmc.loader.api.FabricLoader;
|
||||
import net.minecraft.DetectedVersion;
|
||||
import net.minecraft.locale.Language;
|
||||
import net.minecraft.network.chat.Component;
|
||||
//#if MC >= 11900
|
||||
import net.minecraft.network.chat.ComponentContents;
|
||||
//#endif
|
||||
import net.minecraft.network.chat.contents.TranslatableContents;
|
||||
import okhttp3.CacheControl;
|
||||
import okhttp3.Request;
|
||||
import okhttp3.Response;
|
||||
|
|
@ -105,6 +110,25 @@ public class Translations {
|
|||
}
|
||||
|
||||
public static String translate(String key, Object... args) {
|
||||
for (int i = 0; i < args.length; i++) {
|
||||
Object object = args[i];
|
||||
if (object instanceof Component component) {
|
||||
//#if MC >= 11900
|
||||
ComponentContents componentContents = component.getContents();
|
||||
if (componentContents instanceof TranslatableContents translatable) {
|
||||
args[i] = translate(translatable.getKey(), translatable.getArgs());
|
||||
//#else
|
||||
//$$ if (component instanceof TranslatableComponent translatable) {
|
||||
//$$ args[i] = translate(translatable.getKey(), translatable.getArgs());
|
||||
//#endif
|
||||
} else {
|
||||
args[i] = component.getString();
|
||||
}
|
||||
} else {
|
||||
args[i] = object == null ? "null" : object.toString();
|
||||
}
|
||||
}
|
||||
|
||||
String translation1 = translations.get(key);
|
||||
if (translation1 != null) {
|
||||
return String.format(translation1, args);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue