1
0
Fork 0
mirror of https://github.com/TheClashFruit/CreatePissAndShit.git synced 2024-09-19 17:36:47 +00:00

feat: 😳

This commit is contained in:
TheClashFruit 2024-08-27 23:29:26 +02:00
parent e79a41fe2c
commit 367a202c8c
Signed by: TheClashFruit
GPG key ID: 09BB24C34C2F3204
5 changed files with 106 additions and 1 deletions

View file

@ -8,6 +8,7 @@ import me.theclashfruit.pissnshit.config.MainConfig;
import me.theclashfruit.pissnshit.criteria.ToiletUseTrigger; import me.theclashfruit.pissnshit.criteria.ToiletUseTrigger;
import me.theclashfruit.pissnshit.network.PissingPacket; import me.theclashfruit.pissnshit.network.PissingPacket;
import me.theclashfruit.pissnshit.registry.*; import me.theclashfruit.pissnshit.registry.*;
import me.theclashfruit.pissnshit.util.FlushedUtil;
import net.fabricmc.api.ModInitializer; import net.fabricmc.api.ModInitializer;
import net.fabricmc.fabric.api.gamerule.v1.GameRuleFactory; import net.fabricmc.fabric.api.gamerule.v1.GameRuleFactory;
import net.fabricmc.fabric.api.gamerule.v1.GameRuleRegistry; import net.fabricmc.fabric.api.gamerule.v1.GameRuleRegistry;
@ -70,6 +71,8 @@ public class PissAndShit implements ModInitializer {
} }
}); });
LOGGER.info(FlushedUtil.flushify("Hello, World!"));
// Register Packets // Register Packets
PissingPacket.register(); PissingPacket.register();
} }

View file

@ -0,0 +1,16 @@
package me.theclashfruit.pissnshit.mixin;
import me.theclashfruit.pissnshit.util.FlushedUtil;
import net.minecraft.client.MinecraftClient;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(MinecraftClient.class)
public class MinecraftClientMixin {
@Inject(method = "tick", at = @At("TAIL"))
private void tick(CallbackInfo info) {
FlushedUtil.tick();
}
}

View file

@ -0,0 +1,45 @@
package me.theclashfruit.pissnshit.mixin;
import me.theclashfruit.pissnshit.util.FlushedUtil;
import net.minecraft.client.font.TextRenderer;
import net.minecraft.text.OrderedText;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.ModifyVariable;
import static me.theclashfruit.pissnshit.PissAndShit.LOGGER;
@Mixin(TextRenderer.class)
public class TextRendererMixin {
@ModifyVariable(
method = "drawLayer(Ljava/lang/String;FFIZLorg/joml/Matrix4f;Lnet/minecraft/client/render/VertexConsumerProvider;Lnet/minecraft/client/font/TextRenderer$TextLayerType;II)F",
at = @At(
value = "HEAD",
ordinal = 0
),
argsOnly = true
)
private String modifyString(String text) {
if (FlushedUtil.isEnabled())
return FlushedUtil.flushify(text);
else
return text;
}
/* TODO: Somehow make it so I can use the flushed emoji with this one too...
@ModifyVariable(
method = "drawLayer(Lnet/minecraft/text/OrderedText;FFIZLorg/joml/Matrix4f;Lnet/minecraft/client/render/VertexConsumerProvider;Lnet/minecraft/client/font/TextRenderer$TextLayerType;II)F",
at = @At(
value = "HEAD",
ordinal = 0
),
argsOnly = true
)
private OrderedText modifyString(OrderedText text) {
if (FlushedUtil.isEnabled())
return new FlushedOrderedText(text);
else
return text;
}
*/
}

View file

@ -0,0 +1,39 @@
package me.theclashfruit.pissnshit.util;
import me.theclashfruit.pissnshit.registry.Items;
import net.minecraft.client.MinecraftClient;
import net.minecraft.item.ItemStack;
import java.util.regex.Pattern;
public class FlushedUtil {
private static boolean isEnabled = false;
public static void tick() {
MinecraftClient client = MinecraftClient.getInstance();
if (client.player == null) {
isEnabled = false;
return;
}
isEnabled = client.player.getInventory().contains(
new ItemStack(Items.FLUSHED)
);
}
public static String flushify(String input) {
input = Pattern.compile("([A-Za-zÀ-ÖØ-öø-ÿőű]+)").matcher(input).replaceAll(m -> {
String group = m.group();
return "😳".repeat(group.length());
});
return input;
}
public static boolean isEnabled() {
return isEnabled;
}
}

View file

@ -8,7 +8,9 @@
"PlayerEntityMixin" "PlayerEntityMixin"
], ],
"client": [ "client": [
"InGameHudMixin" "InGameHudMixin",
"MinecraftClientMixin",
"TextRendererMixin"
], ],
"injectors": { "injectors": {
"defaultRequire": 1 "defaultRequire": 1