Skip to content
This repository has been archived by the owner on Nov 20, 2023. It is now read-only.

Commit

Permalink
Update to 1.19.2
Browse files Browse the repository at this point in the history
  • Loading branch information
solonovamax committed Oct 7, 2022
1 parent d890b45 commit 6ac1304
Show file tree
Hide file tree
Showing 6 changed files with 61 additions and 41 deletions.
4 changes: 2 additions & 2 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
org.gradle.jvmargs=-Xmx1G

minecraft_version=1.19
yarn_mappings=1.19+build.4
minecraft_version=1.19.2
yarn_mappings=1.19.2+build.11
loader_version=0.14.8

mod_version=1.3.0
Expand Down
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Original file line number Diff line number Diff line change
@@ -1,19 +1,25 @@
package me.thegiggitybyte.chathistory.message;

import net.minecraft.network.message.MessageType;

import net.minecraft.text.Text;
import net.minecraft.util.registry.RegistryKey;

public class GameMessage extends Message {

public class GameMessage implements Message {
private final boolean overlay;

private final Text message;

public GameMessage(Text message, RegistryKey<MessageType> typeKey) {
super(typeKey);
public GameMessage(Text message, boolean overlay) {
this.overlay = overlay;

this.message = message;
}

public Text getTextMessage() {
public Text getMessage() {
return message;
}

public boolean isOverlay() {
return overlay;
}
}
13 changes: 3 additions & 10 deletions src/main/java/me/thegiggitybyte/chathistory/message/Message.java
Original file line number Diff line number Diff line change
@@ -1,16 +1,9 @@
package me.thegiggitybyte.chathistory.message;


import net.minecraft.network.message.MessageType;
import net.minecraft.util.registry.RegistryKey;

public abstract class Message {
private final RegistryKey<MessageType> typeKey;

protected Message(RegistryKey<MessageType> typeKey) {
this.typeKey = typeKey;
}

public RegistryKey<MessageType> getTypeKey() {
return typeKey;
}

public interface Message {
}
Original file line number Diff line number Diff line change
@@ -1,26 +1,36 @@
package me.thegiggitybyte.chathistory.message;

import net.minecraft.network.message.MessageSender;

import net.minecraft.network.message.MessageType;
import net.minecraft.network.message.SignedMessage;
import net.minecraft.util.registry.RegistryKey;
import net.minecraft.server.network.ServerPlayerEntity;

import java.util.function.Predicate;

public class PlayerMessage extends Message {

public class PlayerMessage implements Message {
private final Predicate<ServerPlayerEntity> shouldSendFiltered;

private final SignedMessage message;
private final MessageSender sender;

public PlayerMessage(SignedMessage message, MessageSender sender, RegistryKey<MessageType> typeKey) {
super(typeKey);
private final MessageType.Parameters params;

public PlayerMessage(SignedMessage message, Predicate<ServerPlayerEntity> shouldSendFiltered, MessageType.Parameters params) {

this.message = message;
this.sender = sender;
this.shouldSendFiltered = shouldSendFiltered;
this.params = params;
}

public SignedMessage getSignedMessage() {
public SignedMessage getMessage() {
return message;
}

public MessageSender getSender() {
return sender;
public MessageType.Parameters getParams() {
return params;
}

public Predicate<ServerPlayerEntity> getShouldSendFiltered() {
return shouldSendFiltered;
}
}
Original file line number Diff line number Diff line change
@@ -1,43 +1,54 @@
package me.thegiggitybyte.chathistory.mixin;


import me.thegiggitybyte.chathistory.ChatHistory;
import me.thegiggitybyte.chathistory.message.GameMessage;
import me.thegiggitybyte.chathistory.message.PlayerMessage;
import net.minecraft.network.ClientConnection;
import net.minecraft.network.message.MessageSender;
import net.minecraft.network.message.MessageSourceProfile;
import net.minecraft.network.message.MessageType;
import net.minecraft.network.message.SentMessage;
import net.minecraft.network.message.SignedMessage;
import net.minecraft.server.PlayerManager;
import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.text.Text;
import net.minecraft.util.registry.RegistryKey;
import org.jetbrains.annotations.Nullable;
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;

import java.util.function.Function;
import java.util.function.Predicate;


@Mixin(PlayerManager.class)
public class PlayerManagerMixin {

@Inject(method = "broadcast(Lnet/minecraft/text/Text;Ljava/util/function/Function;Lnet/minecraft/util/registry/RegistryKey;)V", at = @At("HEAD"))
public void cacheGameMessage(Text message, Function<ServerPlayerEntity, Text> playerMessageFactory, RegistryKey<MessageType> typeKey, CallbackInfo ci) {
ChatHistory.MESSAGE_CACHE.add(new GameMessage(message, typeKey));
@Inject(method = "broadcast(Lnet/minecraft/text/Text;Ljava/util/function/Function;Z)V",
at = @At("HEAD"))
public void cacheGameMessage(Text message, Function<ServerPlayerEntity, Text> playerMessageFactory, boolean overlay, CallbackInfo ci) {
ChatHistory.MESSAGE_CACHE.add(new GameMessage(message, overlay));
}

@Inject(method = "broadcast(Lnet/minecraft/network/message/SignedMessage;Ljava/util/function/Function;Lnet/minecraft/network/message/MessageSender;Lnet/minecraft/util/registry/RegistryKey;)V", at = @At("HEAD"))
public void cachePlayerMessage(SignedMessage message, Function<ServerPlayerEntity, SignedMessage> playerMessageFactory, MessageSender sender, RegistryKey<MessageType> typeKey, CallbackInfo ci) {
ChatHistory.MESSAGE_CACHE.add(new PlayerMessage(message, sender, typeKey));

@Inject(method = "broadcast(Lnet/minecraft/network/message/SignedMessage;Ljava/util/function/Predicate;" +
"Lnet/minecraft/server/network/ServerPlayerEntity;Lnet/minecraft/network/message/MessageSourceProfile;" +
"Lnet/minecraft/network/message/MessageType$Parameters;)V",
at = @At("HEAD"))
public void cachePlayerMessage(SignedMessage message, Predicate<ServerPlayerEntity> shouldSendFiltered,
@Nullable ServerPlayerEntity sender, MessageSourceProfile sourceProfile, MessageType.Parameters params,
CallbackInfo ci) {
ChatHistory.MESSAGE_CACHE.add(new PlayerMessage(message, shouldSendFiltered, params));
}

@Inject(method = "onPlayerConnect", at = @At(value = "INVOKE", target = "Lnet/minecraft/server/network/ServerPlayerEntity;onSpawn()V"))
public void sendCachedMessages(ClientConnection connection, ServerPlayerEntity player, CallbackInfo ci) {
for (var message : ChatHistory.MESSAGE_CACHE) {
if (message instanceof PlayerMessage playerMessage) {
player.sendChatMessage(playerMessage.getSignedMessage(), playerMessage.getSender(), playerMessage.getTypeKey());
player.sendChatMessage(SentMessage.of(playerMessage.getMessage()), playerMessage.getShouldSendFiltered().test(player),
playerMessage.getParams());
} else if (message instanceof GameMessage gameMessage) {
player.sendMessage(gameMessage.getTextMessage(), gameMessage.getTypeKey());
player.sendMessage(gameMessage.getMessage(), gameMessage.isOverlay());
}
}
}
Expand Down

0 comments on commit 6ac1304

Please sign in to comment.