Skip to content

Commit

Permalink
add: color module
Browse files Browse the repository at this point in the history
  • Loading branch information
sakurawald committed Jul 16, 2024
1 parent 0cffe76 commit 2e183c5
Show file tree
Hide file tree
Showing 6 changed files with 77 additions and 4 deletions.
1 change: 0 additions & 1 deletion src/main/java/io/github/sakurawald/Fuji.java
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@

// TODO: friendly mixin check
// TODO: luckperms context calculator
// TODO: sign module

public class Fuji implements ModInitializer {
public static final String MOD_ID = "fuji";
Expand Down
12 changes: 12 additions & 0 deletions src/main/java/io/github/sakurawald/config/model/ConfigModel.java
Original file line number Diff line number Diff line change
Expand Up @@ -1155,9 +1155,21 @@ public class InteractEntity {
}

public Nickname nickname = new Nickname();

@Documentation("""
This module provides `/nickname` command.
""")
public class Nickname {
public boolean enable = false;
}

public Color color = new Color();
@Documentation("""
This module provides colorize for: sign, anvil
""")
public class Color {
public boolean enable = false;
}
}

}
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
package io.github.sakurawald.module.initializer.test;

import com.mojang.authlib.GameProfile;
import com.mojang.brigadier.Command;
import com.mojang.brigadier.CommandDispatcher;
import com.mojang.brigadier.context.CommandContext;
import eu.pb4.placeholders.api.PlaceholderContext;
import eu.pb4.placeholders.api.Placeholders;
import io.github.sakurawald.Fuji;
import io.github.sakurawald.module.initializer.ModuleInitializer;
import lombok.extern.slf4j.Slf4j;
import net.fabricmc.loader.api.FabricLoader;
Expand Down Expand Up @@ -35,9 +37,6 @@ private static int clearChat(CommandContext<ServerCommandSource> ctx) {
ServerPlayerEntity player = source.getPlayer();


log.warn("custom name = {}", player.getCustomName());


return 1;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package io.github.sakurawald.module.mixin.color.anvil;

import io.github.sakurawald.util.MessageUtil;
import net.minecraft.entity.player.PlayerInventory;
import net.minecraft.screen.AnvilScreenHandler;
import net.minecraft.screen.ForgingScreenHandler;
import net.minecraft.screen.ScreenHandlerContext;
import net.minecraft.screen.ScreenHandlerType;
import org.jetbrains.annotations.Nullable;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.ModifyArg;

@Mixin(AnvilScreenHandler.class)
public abstract class AnvilScreenHandlerMixin {

@Shadow
private String newItemName;

@ModifyArg(method = "updateResult", at = @At(value = "INVOKE", target = "Lnet/minecraft/item/ItemStack;set(Lnet/minecraft/component/ComponentType;Ljava/lang/Object;)Ljava/lang/Object;", ordinal = 0))
public Object updateResult(Object text) {
return MessageUtil.ofText(newItemName);
}

@ModifyArg(method = "setNewItemName", at = @At(value = "INVOKE", target = "Lnet/minecraft/item/ItemStack;set(Lnet/minecraft/component/ComponentType;Ljava/lang/Object;)Ljava/lang/Object;", ordinal = 0))
public Object newItemName(Object text) {
return MessageUtil.ofText(newItemName);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package io.github.sakurawald.module.mixin.color.sign;

import io.github.sakurawald.util.MessageUtil;
import lombok.extern.slf4j.Slf4j;
import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer;
import net.minecraft.block.entity.SignBlockEntity;
import net.minecraft.block.entity.SignText;
import net.minecraft.text.Text;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.ModifyVariable;

import java.util.Arrays;

@Mixin(SignBlockEntity.class)
@Slf4j
public class SignBlockEntityMixin {

@ModifyVariable(method = "setText", at = @At("HEAD"), argsOnly = true)
SignText method(SignText signText) {
Text[] messages = signText.getMessages(false);
Text[] newMessages = new Text[messages.length];
for (int i = 0; i < messages.length; i++) {
String string = PlainTextComponentSerializer.plainText().serialize(messages[i].asComponent());
Text formated = MessageUtil.ofText(string);
newMessages[i] = formated;
}

return new SignText(newMessages, newMessages, signText.getColor(), signText.isGlowing());
}
}
2 changes: 2 additions & 0 deletions src/main/resources/fuji.mixins.json
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,8 @@
"resource_world.registry.DimensionOptionsMixin",
"resource_world.registry.WorldGenSettingsMixin",
"seen.PlayerListMixin",
"color.anvil.AnvilScreenHandlerMixin",
"color.sign.SignBlockEntityMixin",
"sit.InteractModifierMixin",
"skin.PlayerListMixin",
"skin.ServerLoginNetworkHandlerMixin",
Expand Down

0 comments on commit 2e183c5

Please sign in to comment.