mirror of
https://github.com/TheClashFruit/CreatePissAndShit.git
synced 2024-09-19 17:36:47 +00:00
feat: 😳
This commit is contained in:
parent
e79a41fe2c
commit
367a202c8c
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
|
@ -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();
|
||||||
|
}
|
||||||
|
}
|
|
@ -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;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
}
|
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
|
@ -8,7 +8,9 @@
|
||||||
"PlayerEntityMixin"
|
"PlayerEntityMixin"
|
||||||
],
|
],
|
||||||
"client": [
|
"client": [
|
||||||
"InGameHudMixin"
|
"InGameHudMixin",
|
||||||
|
"MinecraftClientMixin",
|
||||||
|
"TextRendererMixin"
|
||||||
],
|
],
|
||||||
"injectors": {
|
"injectors": {
|
||||||
"defaultRequire": 1
|
"defaultRequire": 1
|
||||||
|
|
Loading…
Reference in a new issue