Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add mixin for longer chat messages #252

Merged
merged 20 commits into from
Nov 5, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
7a86cfd
Add mixin for longer chat messages
serenibyss Sep 21, 2023
46c37e6
register GuiChat mixin on client only to prevent crash on server
Alexdoru Sep 21, 2023
8594c3a
both handlers in MixinC01PacketChatMessage_LongerMessages can be merg…
Alexdoru Sep 21, 2023
2dd0411
Merge branch 'master' into sb-longer-chat-messages
Alexdoru Sep 23, 2023
8ef3f03
hardcode max sent message length to 256
Alexdoru Sep 23, 2023
011c95f
add a separate setting for longer sent messages feature
Alexdoru Sep 23, 2023
0df2850
Merge branch 'master' into sb-longer-chat-messages
Dream-Master Oct 12, 2023
9d7e655
Merge branch 'master' into sb-longer-chat-messages
Dream-Master Oct 17, 2023
7b9c570
Merge branch 'master' into sb-longer-chat-messages
Dream-Master Oct 27, 2023
0bafcb6
Merge branch 'master' into sb-longer-chat-messages
Dream-Master Oct 28, 2023
e39e6b1
Merge branch 'master' into sb-longer-chat-messages
Dream-Master Nov 3, 2023
5000433
Always have the packet size change on client and server
Caedis Nov 3, 2023
eab2382
Spotless apply for branch sb-longer-chat-messages for #252 (#274)
github-actions[bot] Nov 3, 2023
e18c628
Merge branch 'master' into sb-longer-chat-messages
Dream-Master Nov 3, 2023
20a745b
Merge branch 'master' into sb-longer-chat-messages
Dream-Master Nov 3, 2023
1a4ad3b
Merge branch 'master' into sb-longer-chat-messages
Caedis Nov 4, 2023
b63f4d4
Add config syncing between server and client
Caedis Nov 4, 2023
86c19be
fix spotless formatting
Caedis Nov 4, 2023
42afe55
Fix client side mixin message
Caedis Nov 5, 2023
e1aa372
Consolidate Message and MessageHandler
Caedis Nov 5, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions src/main/java/com/mitchej123/hodgepodge/Hodgepodge.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
package com.mitchej123.hodgepodge;

import net.minecraftforge.common.MinecraftForge;

import com.mitchej123.hodgepodge.client.HodgepodgeClient;
import com.mitchej123.hodgepodge.commands.DebugCommand;
import com.mitchej123.hodgepodge.net.NetworkHandler;
import com.mitchej123.hodgepodge.util.AnchorAlarm;

import cpw.mods.fml.common.FMLCommonHandler;
Expand Down Expand Up @@ -32,7 +31,7 @@ public class Hodgepodge {
@EventHandler
public void preinit(FMLPreInitializationEvent event) {
Compat.init(event.getSide());
MinecraftForge.EVENT_BUS.register(EVENT_HANDLER);
EVENT_HANDLER.preinit();

if (event.getSide() == Side.CLIENT) {
HodgepodgeClient.preInit();
Expand All @@ -42,6 +41,7 @@ public void preinit(FMLPreInitializationEvent event) {
@EventHandler
public void init(FMLInitializationEvent event) {
FMLCommonHandler.instance().bus().register(ANCHOR_ALARM);
NetworkHandler.init();
}

@EventHandler
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,24 @@
package com.mitchej123.hodgepodge;

import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.entity.living.ZombieEvent;

import com.mitchej123.hodgepodge.net.MessageConfigSync;
import com.mitchej123.hodgepodge.net.NetworkHandler;

import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.eventhandler.Event;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.gameevent.PlayerEvent;

public class HodgepodgeEventHandler {

public void preinit() {
MinecraftForge.EVENT_BUS.register(this);
FMLCommonHandler.instance().bus().register(this);
}

private boolean xuDisableAidTrigger;

@SubscribeEvent
Expand All @@ -19,4 +31,9 @@ public void onZombieAidSummon(ZombieEvent.SummonAidEvent event) {
public void setAidTriggerDisabled(boolean disableAidTrigger) {
xuDisableAidTrigger = disableAidTrigger;
}

@SubscribeEvent
public void onPlayerLogin(PlayerEvent.PlayerLoggedInEvent event) {
NetworkHandler.instance.sendTo(new MessageConfigSync(Common.config), (EntityPlayerMP) event.player);
}
}
2 changes: 2 additions & 0 deletions src/main/java/com/mitchej123/hodgepodge/LoadingConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,7 @@ public class LoadingConfig {
public boolean java12MineChemCompat;
public boolean logHugeChat;
public boolean longerChat;
public boolean longerSentMessages;
public boolean makeBigFirsPlantable;
public boolean optimizeASMDataTable;
public boolean optimizeIc2ReactorInventoryAccess;
Expand Down Expand Up @@ -311,6 +312,7 @@ public LoadingConfig(File file) {
java12MineChemCompat = config.get(Category.FIXES.toString(), "java12MineChemCompat", true, "Minechem Java 12 compatibility patch").getBoolean();
logHugeChat = config.get(Category.FIXES.toString(), "logHugeChat", true, "Log oversized chat message to console. WARNING: might create huge log files if this happens very often.").getBoolean();
longerChat = config.get(Category.TWEAKS.toString(), "longerChat", true, "Makes the chat history longer instead of 100 lines").getBoolean();
longerSentMessages = config.get(Category.TWEAKS.toString(), "longerSentMessages", true, "Allows you to send longer chat messages, up to 256 characters, instead of 100 in vanilla.").getBoolean();
makeBigFirsPlantable = config.get(Category.TWEAKS.toString(), "makeBigFirsPlantable", true, "Allow 5 Fir Sapling planted together ('+' shape) to grow to a big fir tree").getBoolean();
optimizeASMDataTable = config.get(Category.SPEEDUPS.toString(), "optimizeASMDataTable", true, "Optimize ASMDataTable getAnnotationsFor for faster startup").getBoolean();
optimizeIc2ReactorInventoryAccess = config.get(Category.FIXES.toString(), "optimizeIc2ReactorInventoryAccess", true, "Optimize inventory access to IC2 nuclear reactor").getBoolean();
Expand Down
8 changes: 8 additions & 0 deletions src/main/java/com/mitchej123/hodgepodge/mixins/Mixins.java
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,14 @@ public enum Mixins {
TRANSPARENT_CHAT(new Builder("Transparent Chat").setPhase(Phase.EARLY)
.addMixinClasses("minecraft.MixinGuiNewChat_TransparentChat").setSide(Side.CLIENT)
.setApplyIf(() -> Common.config.transparentChat).addTargetedMod(TargetedMod.VANILLA)),
// config handled in mixin due to server->client config sync
LONGER_MESSAGES_CLIENT(new Builder("Longer Messages Client Side").setPhase(Phase.EARLY)
.addMixinClasses("minecraft.MixinGuiChat_LongerMessages").setApplyIf(() -> true)
.addTargetedMod(TargetedMod.VANILLA).setSide(Side.CLIENT)),
// config handled in mixin due to server->client config sync
LONGER_MESSAGES_SERVER(new Builder("Longer Messages Server Side").setPhase(Phase.EARLY)
.addMixinClasses("minecraft.MixinC01PacketChatMessage_LongerMessages").setApplyIf(() -> true)
miozune marked this conversation as resolved.
Show resolved Hide resolved
.addTargetedMod(TargetedMod.VANILLA).setSide(Side.BOTH)),
SPEEDUP_GRASS_BLOCK_RANDOM_TICKING(new Builder("Speed up grass block random ticking").setPhase(Phase.EARLY)
.addMixinClasses("minecraft.MixinBlockGrass").addTargetedMod(TargetedMod.VANILLA).setSide(Side.BOTH)
.setApplyIf(() -> Common.config.speedupGrassBlockRandomTicking)),
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package com.mitchej123.hodgepodge.mixins.early.minecraft;

import net.minecraft.network.play.client.C01PacketChatMessage;

import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.Constant;
import org.spongepowered.asm.mixin.injection.ModifyConstant;

import com.mitchej123.hodgepodge.Common;

@Mixin(C01PacketChatMessage.class)
public class MixinC01PacketChatMessage_LongerMessages {

@ModifyConstant(method = { "<init>(Ljava/lang/String;)V", "readPacketData" }, constant = @Constant(intValue = 100))
public int hodgepodge$LongerMessages(int constant) {
return Common.config.longerSentMessages ? 256 : constant;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package com.mitchej123.hodgepodge.mixins.early.minecraft;

import net.minecraft.client.gui.GuiChat;

import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.Constant;
import org.spongepowered.asm.mixin.injection.ModifyConstant;

import com.mitchej123.hodgepodge.Common;

@Mixin(GuiChat.class)
public class MixinGuiChat_LongerMessages {

@ModifyConstant(method = "initGui", constant = @Constant(intValue = 100))
public int hodgepodge$LongerMessages(int constant) {
return Common.config.longerSentMessages ? 256 : constant;
}
}
41 changes: 41 additions & 0 deletions src/main/java/com/mitchej123/hodgepodge/net/MessageConfigSync.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package com.mitchej123.hodgepodge.net;

import com.mitchej123.hodgepodge.Common;
import com.mitchej123.hodgepodge.LoadingConfig;

import cpw.mods.fml.common.network.simpleimpl.IMessage;
import cpw.mods.fml.common.network.simpleimpl.IMessageHandler;
import cpw.mods.fml.common.network.simpleimpl.MessageContext;
import io.netty.buffer.ByteBuf;

public class MessageConfigSync implements IMessage, IMessageHandler<MessageConfigSync, IMessage> {

private boolean longerSentMessages;

public MessageConfigSync() {}

public MessageConfigSync(LoadingConfig config) {
longerSentMessages = config.longerSentMessages;
}

@Override
public void fromBytes(ByteBuf buf) {
longerSentMessages = buf.readBoolean();
}

@Override
public void toBytes(ByteBuf buf) {
buf.writeBoolean(longerSentMessages);
}

public boolean isLongerSentMessages() {
return longerSentMessages;
}

@Override
public IMessage onMessage(MessageConfigSync message, MessageContext ctx) {
Common.config.longerSentMessages = message.isLongerSentMessages();

return null;
}
}
15 changes: 15 additions & 0 deletions src/main/java/com/mitchej123/hodgepodge/net/NetworkHandler.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.mitchej123.hodgepodge.net;

import com.mitchej123.hodgepodge.Hodgepodge;

import cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper;
import cpw.mods.fml.relauncher.Side;

public class NetworkHandler {

public static final SimpleNetworkWrapper instance = new SimpleNetworkWrapper(Hodgepodge.MODID);

public static void init() {
instance.registerMessage(MessageConfigSync.class, MessageConfigSync.class, 0, Side.CLIENT);
}
}