5 Commits

7 changed files with 28 additions and 14 deletions

View File

@@ -51,8 +51,8 @@ pipeline {
projectSlug: "craterlib",
projectName: "${projectName}",
projectIcon: "${projectIcon}",
versionName: "Snapshot 1.0.${BUILD_NUMBER}",
version: "1.0.${BUILD_NUMBER}",
versionName: "Snapshot 1.1.${BUILD_NUMBER}",
version: "1.1.${BUILD_NUMBER}",
modLoaders: "forge|fabric|quilt",
minecraftVersions: "1.19.2",
failWebhook: env.SSS_WEBHOOK,

View File

@@ -11,11 +11,13 @@ public class MessageBroadcastEvent extends CraterEvent {
private final Component component;
private final Function<ServerPlayer, Component> function;
private final boolean bl;
private final String threadName;
public MessageBroadcastEvent(Component component, Function<ServerPlayer, Component> function, boolean bl) {
public MessageBroadcastEvent(Component component, Function<ServerPlayer, Component> function, boolean bl, String threadName) {
this.component = component;
this.function = function;
this.bl = bl;
this.threadName = threadName;
}
public Component getComponent() {
@@ -30,6 +32,10 @@ public class MessageBroadcastEvent extends CraterEvent {
return function;
}
public String getThreadName() {
return threadName;
}
@Override
public boolean canCancel() {
return false;

View File

@@ -18,10 +18,8 @@ public class PlayerAdvancementsMixin {
@Inject(method = "award", at = @At(value = "INVOKE", target = "Lnet/minecraft/advancements/AdvancementRewards;grant(Lnet/minecraft/server/level/ServerPlayer;)V", shift = At.Shift.AFTER))
private void injectAdvancementEvent(Advancement advancement, String $$1, CallbackInfoReturnable<Boolean> cir) {
CraterAdvancementEvent event = new CraterAdvancementEvent(this.player, advancement);
if (advancement.getDisplay() != null && advancement.getDisplay().shouldAnnounceChat()) {
CraterEventBus.INSTANCE.postEvent(event);
CraterEventBus.INSTANCE.postEvent(new CraterAdvancementEvent(this.player, advancement));
}
}
}

View File

@@ -23,7 +23,8 @@ public class PlayerListMixin {
@Inject(method = "broadcastSystemMessage(Lnet/minecraft/network/chat/Component;Ljava/util/function/Function;Z)V", at = @At("HEAD"))
private void injectBroadcastEvent(Component component, Function<ServerPlayer, Component> function, boolean bl, CallbackInfo ci) {
MessageBroadcastEvent event = new MessageBroadcastEvent(component, function, bl);
String thread = Thread.currentThread().getStackTrace()[3].getClassName();
MessageBroadcastEvent event = new MessageBroadcastEvent(component, function, bl, thread);
CraterEventBus.INSTANCE.postEvent(event);
}

View File

@@ -2,24 +2,33 @@ package com.hypherionmc.craterlib.mixin.events;
import com.hypherionmc.craterlib.api.event.server.CraterServerChatEvent;
import com.hypherionmc.craterlib.core.event.CraterEventBus;
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.PlayerChatMessage;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.server.network.FilteredText;
import net.minecraft.server.network.ServerGamePacketListenerImpl;
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.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
@Mixin(ServerGamePacketListenerImpl.class)
import java.util.concurrent.CompletableFuture;
@Mixin(value = ServerGamePacketListenerImpl.class, priority = Integer.MIN_VALUE)
public class ServerGamePacketListenerImplMixin {
@Shadow
public ServerPlayer player;
@Inject(method = "broadcastChatMessage", at = @At("HEAD"), cancellable = true)
private void injectChatEvent(PlayerChatMessage chatMessage, CallbackInfo ci) {
CraterServerChatEvent event = new CraterServerChatEvent(this.player, chatMessage.serverContent().getString(), chatMessage.serverContent());
@Inject(
method = "lambda$handleChat$9",
at = @At("HEAD"),
cancellable = true
)
private void injectChatEvent(PlayerChatMessage arg, CallbackInfoReturnable<CompletableFuture> ci) {
CraterServerChatEvent event = new CraterServerChatEvent(this.player, arg.serverContent().getString(), arg.serverContent());
CraterEventBus.INSTANCE.postEvent(event);
if (event.wasCancelled())
ci.cancel();

View File

@@ -111,8 +111,8 @@ publisher {
versionType = "release"
changelog = "https://raw.githubusercontent.com/hypherionmc/changelogs/main/craterlib/changelog-forge.md"
version = "${minecraft_version}-${project.version}"
displayName = "[FORGE 1.20.1/2] CraterLib - ${project.version}"
gameVersions = ["1.20", "1.20.1"]
displayName = "[FORGE 1.19.2] CraterLib - ${project.version}"
gameVersions = ["1.19.2"]
loaders = ["forge"]
artifact = remapJar
}

View File

@@ -1,7 +1,7 @@
#Project
version_major=1
version_minor=1
version_patch=0
version_patch=2
project_group=com.hypherionmc.craterlib
#Mod