Listening in both directions

This commit is contained in:
skippyall
2026-01-25 22:28:09 +01:00
parent 382b394523
commit 017b2ec590
44 changed files with 550 additions and 211 deletions
@@ -12,6 +12,7 @@ import net.minecraft.item.ItemStack;
import net.minecraft.item.ItemUsageContext;
import net.minecraft.item.Items;
import net.minecraft.item.tooltip.TooltipType;
import net.minecraft.server.MinecraftServer;
import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.server.world.ServerWorld;
import net.minecraft.text.Text;
@@ -23,7 +24,6 @@ import net.minecraft.world.World;
import org.jetbrains.annotations.Nullable;
import xyz.nucleoid.packettweaker.PacketContext;
import java.util.List;
import java.util.function.Consumer;
public class MinionItem extends Item implements PolymerItem {
@@ -49,8 +49,8 @@ public class MinionItem extends Item implements PolymerItem {
}
@Override
public void appendTooltip(ItemStack stack, TooltipContext context, TooltipDisplayComponent component, Consumer<Text> tooltip, TooltipType type) {
MinionData data = getData(stack);
public void appendTooltip(ItemStack stack, TooltipContext context, TooltipDisplayComponent component, Consumer<Text> tooltip, TooltipType type) {
MinionData data = null /*getData(stack)*/;
if(data != null) {
tooltip.accept(Text.translatable("minions.minion_item.tooltip", data.name()));
}
@@ -70,31 +70,31 @@ public class MinionItem extends Item implements PolymerItem {
@Override
public ActionResult useOnBlock(ItemUsageContext context) {
if(!context.getWorld().isClient) {
MinionData data = getDataOrDefault(context.getStack());
MinionData data = getDataOrDefault(context.getWorld().getServer(), context.getStack());
MinionFakePlayer.spawnMinion(data, (ServerWorld) context.getWorld(), context.getBlockPos().toCenterPos().add(0,0.5,0), new Vec2f(0, 0));
}
context.getStack().decrement(1);
return ActionResult.SUCCESS;
}
public static void setData(MinionData data, ItemStack item) {
public static void setData(MinecraftServer server, MinionData data, ItemStack item) {
item.set(MinionData.COMPONENT, data.uuid());
MinionPersistentState.INSTANCE.updateMinionData(data);
MinionPersistentState.get(server).updateMinionData(data);
}
@Nullable
public static MinionData getData(ItemStack item) {
public static MinionData getData(MinecraftServer server, ItemStack item) {
if(item.contains(MinionData.COMPONENT)) {
return MinionPersistentState.INSTANCE.getMinionData(item.get(MinionData.COMPONENT));
return MinionPersistentState.get(server).getMinionData(item.get(MinionData.COMPONENT));
}
return null;
}
public static MinionData getDataOrDefault(ItemStack item) {
MinionData data = getData(item);
public static MinionData getDataOrDefault(MinecraftServer server, ItemStack item) {
MinionData data = getData(server, item);
if(data == null) {
data = MinionData.createDefault();
setData(data, item);
data = MinionData.createDefault(server);
setData(server, data, item);
}
return data;
}