2024/11/23
进一步完善了一下
This commit is contained in:
parent
f81569bde3
commit
c80f53d5c9
|
|
@ -1,3 +1,7 @@
|
|||
// 1.21 2024-11-11T12:54:18.1914427 Tags for minecraft:item mod id leashedplayer
|
||||
// 1.21 2024-11-23T19:27:19.709121 Tags for minecraft:item mod id leashedplayer
|
||||
84707301f1fe2490a899deb51302d413cfff5a89 data/c/tags/item/tools/shear.json
|
||||
63e4ad58dc8397171f84264d53dfe4fb503c7b1e data/minecraft/tags/item/arrows.json
|
||||
84707301f1fe2490a899deb51302d413cfff5a89 data/minecraft/tags/item/enchantable/durability.json
|
||||
84707301f1fe2490a899deb51302d413cfff5a89 data/minecraft/tags/item/enchantable/mining.json
|
||||
84707301f1fe2490a899deb51302d413cfff5a89 data/minecraft/tags/item/enchantable/vanishing.json
|
||||
5cf114c796db4c2235df11ee7f656bba09d72a7a data/minecraft/tags/item/head_armor.json
|
||||
|
|
|
|||
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"values": [
|
||||
"leashedplayer:amethyst_shears"
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"values": [
|
||||
"leashedplayer:amethyst_shears"
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"values": [
|
||||
"leashedplayer:amethyst_shears"
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"values": [
|
||||
"leashedplayer:amethyst_shears"
|
||||
]
|
||||
}
|
||||
|
|
@ -13,6 +13,7 @@ import com.r3944realms.leashedplayer.utils.Logger;
|
|||
import mcjty.theoneprobe.config.Config;
|
||||
import mcjty.theoneprobe.gui.GuiNote;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.screens.ChatScreen;
|
||||
import net.minecraft.client.gui.screens.Screen;
|
||||
import net.minecraft.client.gui.screens.inventory.CreativeModeInventoryScreen;
|
||||
import net.minecraft.client.renderer.entity.player.PlayerRenderer;
|
||||
|
|
@ -52,7 +53,7 @@ public abstract class ClientEventHandler {
|
|||
Screen currentScreen = mc.screen;
|
||||
if (IS_TOP_LOADED) {
|
||||
if (currentScreen != null) {
|
||||
if (currentScreen instanceof GuiNote) {
|
||||
if (currentScreen instanceof GuiNote || currentScreen instanceof ChatScreen) {
|
||||
configSaved = false;
|
||||
oldSelect = Config.needsProbe.get();
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -10,14 +10,19 @@ import com.r3944realms.leashedplayer.content.effects.ModPotionRegister;
|
|||
import com.r3944realms.leashedplayer.content.entities.LeashRopeArrow;
|
||||
import com.r3944realms.leashedplayer.content.entities.LittlePlayer;
|
||||
import com.r3944realms.leashedplayer.content.entities.ModEntityRegister;
|
||||
import com.r3944realms.leashedplayer.content.gamerules.GameruleRegistry;
|
||||
import com.r3944realms.leashedplayer.content.gamerules.Gamerules;
|
||||
import com.r3944realms.leashedplayer.content.gamerules.Server.OpenTOPNeededModeWhenScreenIsNotNull;
|
||||
import com.r3944realms.leashedplayer.content.items.ModItemRegister;
|
||||
import com.r3944realms.leashedplayer.content.misc.LeadBreakItemBehavior;
|
||||
import com.r3944realms.leashedplayer.modInterface.PlayerLeashable;
|
||||
import com.r3944realms.leashedplayer.network.client.BooleanGameRuleValueChangeData;
|
||||
import com.r3944realms.leashedplayer.utils.Util;
|
||||
import net.minecraft.ChatFormatting;
|
||||
import net.minecraft.commands.CommandSourceStack;
|
||||
import net.minecraft.core.component.DataComponents;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.server.level.ServerPlayer;
|
||||
import net.minecraft.tags.ItemTags;
|
||||
import net.minecraft.world.effect.MobEffectInstance;
|
||||
import net.minecraft.world.entity.Entity;
|
||||
|
|
@ -29,6 +34,7 @@ import net.minecraft.world.item.ItemStack;
|
|||
import net.minecraft.world.item.Items;
|
||||
import net.minecraft.world.item.alchemy.PotionBrewing;
|
||||
import net.minecraft.world.item.alchemy.Potions;
|
||||
import net.minecraft.world.level.GameRules;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.block.DispenserBlock;
|
||||
import net.neoforged.bus.api.SubscribeEvent;
|
||||
|
|
@ -38,7 +44,9 @@ import net.neoforged.neoforge.event.AnvilUpdateEvent;
|
|||
import net.neoforged.neoforge.event.RegisterCommandsEvent;
|
||||
import net.neoforged.neoforge.event.brewing.RegisterBrewingRecipesEvent;
|
||||
import net.neoforged.neoforge.event.entity.EntityAttributeCreationEvent;
|
||||
import net.neoforged.neoforge.event.entity.player.PlayerEvent;
|
||||
import net.neoforged.neoforge.event.tick.EntityTickEvent;
|
||||
import net.neoforged.neoforge.network.PacketDistributor;
|
||||
|
||||
|
||||
public class CommonEventHandler {
|
||||
|
|
@ -53,6 +61,18 @@ public class CommonEventHandler {
|
|||
TickCommand.register(dispatcher);
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void onJoinServer(PlayerEvent.PlayerLoggedInEvent event) {
|
||||
PacketDistributor.sendToPlayer((ServerPlayer) event.getEntity(),
|
||||
new BooleanGameRuleValueChangeData(
|
||||
OpenTOPNeededModeWhenScreenIsNotNull.ID,
|
||||
GameruleRegistry.getGameruleBoolValue(
|
||||
event.getEntity().level(),
|
||||
OpenTOPNeededModeWhenScreenIsNotNull.ID)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@SubscribeEvent
|
||||
public static void OnRegisterPotionBrewing(RegisterBrewingRecipesEvent event) {
|
||||
|
|
|
|||
|
|
@ -3,14 +3,21 @@ package com.r3944realms.leashedplayer.api;
|
|||
import com.r3944realms.leashedplayer.LeashedPlayer;
|
||||
|
||||
import com.r3944realms.leashedplayer.apiContent.item.repcipe.JEIRecipeTypes;
|
||||
import com.r3944realms.leashedplayer.content.items.repcipe.TippedLeashRopeArrowRecipe;
|
||||
import mezz.jei.api.IModPlugin;
|
||||
import mezz.jei.api.JeiPlugin;
|
||||
import mezz.jei.api.constants.RecipeTypes;
|
||||
import mezz.jei.api.constants.VanillaTypes;
|
||||
import mezz.jei.api.recipe.vanilla.IVanillaRecipeFactory;
|
||||
import mezz.jei.api.registration.IRecipeRegistration;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.item.crafting.RecipeManager;
|
||||
import net.minecraft.world.item.crafting.RecipeType;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@JeiPlugin
|
||||
public class JEIPlugin implements IModPlugin {
|
||||
private static final ResourceLocation UID = ResourceLocation.fromNamespaceAndPath(LeashedPlayer.MOD_ID, "jei_plugin");
|
||||
|
|
@ -23,5 +30,6 @@ public class JEIPlugin implements IModPlugin {
|
|||
@Override
|
||||
public void registerRecipes(@NotNull IRecipeRegistration registration) {
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,38 +0,0 @@
|
|||
package com.r3944realms.leashedplayer.apiContent.item.repcipe;
|
||||
|
||||
import mezz.jei.api.constants.ModIds;
|
||||
import mezz.jei.api.helpers.IJeiHelpers;
|
||||
|
||||
import net.minecraft.core.HolderLookup;
|
||||
import net.minecraft.core.NonNullList;
|
||||
import net.minecraft.core.Registry;
|
||||
import net.minecraft.core.registries.Registries;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.Items;
|
||||
import net.minecraft.world.item.alchemy.Potion;
|
||||
import net.minecraft.world.item.alchemy.PotionContents;
|
||||
import net.minecraft.world.item.crafting.*;
|
||||
import net.neoforged.neoforge.common.CommonHooks;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
import static net.minecraft.world.item.Items.*;
|
||||
|
||||
public class TippedLeashRopeArrowRecipeMaker {
|
||||
public static List<RecipeHolder<CraftingRecipe>> createRecipes(IJeiHelpers jeiHelpers) {
|
||||
|
||||
|
||||
String group = "jei.tipped.arrow";
|
||||
ItemStack arrowStack = new ItemStack(Items.ARROW);
|
||||
Ingredient arrowIngredient = Ingredient.of(arrowStack);
|
||||
|
||||
HolderLookup.RegistryLookup<Potion> potionRegistry = CommonHooks.resolveLookup(Registries.POTION);
|
||||
return null;
|
||||
}
|
||||
|
||||
private TippedLeashRopeArrowRecipeMaker() {
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -2,11 +2,13 @@ package com.r3944realms.leashedplayer.content.gamerules.Server;
|
|||
|
||||
import com.r3944realms.leashedplayer.LeashedPlayer;
|
||||
import com.r3944realms.leashedplayer.content.gamerules.Gamerules;
|
||||
import com.r3944realms.leashedplayer.network.client.BooleanGameRuleValueChangeData;
|
||||
import com.r3944realms.leashedplayer.utils.Util;
|
||||
import net.minecraft.world.level.GameRules;
|
||||
import net.neoforged.bus.api.SubscribeEvent;
|
||||
import net.neoforged.fml.common.EventBusSubscriber;
|
||||
import net.neoforged.fml.event.lifecycle.FMLCommonSetupEvent;
|
||||
import net.neoforged.neoforge.network.PacketDistributor;
|
||||
|
||||
import static com.r3944realms.leashedplayer.content.gamerules.Gamerules.GAMERULE_REGISTRY;
|
||||
|
||||
|
|
@ -20,6 +22,8 @@ public class OpenTOPNeededModeWhenScreenIsNotNull {
|
|||
|
||||
@SubscribeEvent
|
||||
public static void onCommonSetup(final FMLCommonSetupEvent event) {
|
||||
GAMERULE_REGISTRY.registerGamerule(ID, CATEGORY, DEFAULT_VALUE, (i, j)->{});
|
||||
GAMERULE_REGISTRY.registerGamerule(ID, CATEGORY, DEFAULT_VALUE, (server, value)->{
|
||||
PacketDistributor.sendToAllPlayers(new BooleanGameRuleValueChangeData(ID, value.get()));
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,8 +6,10 @@ import net.minecraft.core.HolderLookup;
|
|||
import net.minecraft.data.PackOutput;
|
||||
import net.minecraft.data.tags.ItemTagsProvider;
|
||||
import net.minecraft.tags.ItemTags;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.Items;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.neoforged.neoforge.common.Tags;
|
||||
import net.neoforged.neoforge.common.data.ExistingFileHelper;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
|
|
@ -28,5 +30,13 @@ public class ModItemTagProvider extends ItemTagsProvider {
|
|||
this.tag(ItemTags.HEAD_ARMOR)
|
||||
.add(ModItemRegister.NEOFORGE.get())
|
||||
.add(Items.LEAD);
|
||||
this.tag(ItemTags.MINING_ENCHANTABLE)
|
||||
.add(ModItemRegister.AMETHYST_SHEARS.get());
|
||||
this.tag(ItemTags.VANISHING_ENCHANTABLE)
|
||||
.add(ModItemRegister.AMETHYST_SHEARS.get());
|
||||
this.tag(ItemTags.DURABILITY_ENCHANTABLE)
|
||||
.add(ModItemRegister.AMETHYST_SHEARS.get());
|
||||
this.tag(Tags.Items.TOOLS_SHEAR)
|
||||
.add(ModItemRegister.AMETHYST_SHEARS.get());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package com.r3944realms.leashedplayer.network;
|
||||
|
||||
import com.r3944realms.leashedplayer.LeashedPlayer;
|
||||
import com.r3944realms.leashedplayer.network.client.BooleanGameRuleValueChangeData;
|
||||
import com.r3944realms.leashedplayer.network.client.UpdatePlayerMovement;
|
||||
import net.neoforged.bus.api.SubscribeEvent;
|
||||
import net.neoforged.fml.common.EventBusSubscriber;
|
||||
|
|
@ -18,6 +19,11 @@ public class LeashedPlayerNetwork {
|
|||
UpdatePlayerMovement.STREAM_CODEC,
|
||||
UpdatePlayerMovement::handle
|
||||
);
|
||||
registrar.playToClient(
|
||||
BooleanGameRuleValueChangeData.TYPE,
|
||||
BooleanGameRuleValueChangeData.STREAM_CODEC,
|
||||
BooleanGameRuleValueChangeData::handle
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,31 @@
|
|||
package com.r3944realms.leashedplayer.network.client;
|
||||
|
||||
import com.r3944realms.leashedplayer.LeashedPlayer;
|
||||
import com.r3944realms.leashedplayer.content.gamerules.Gamerules;
|
||||
import net.minecraft.network.FriendlyByteBuf;
|
||||
import net.minecraft.network.codec.ByteBufCodecs;
|
||||
import net.minecraft.network.codec.StreamCodec;
|
||||
import net.minecraft.network.protocol.common.custom.CustomPacketPayload;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.neoforged.neoforge.network.handling.IPayloadContext;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public record BooleanGameRuleValueChangeData(String gamerule_id, boolean value) implements IGameRuleValueChangeData {
|
||||
public static CustomPacketPayload.Type<BooleanGameRuleValueChangeData> TYPE = new CustomPacketPayload.Type<>(ResourceLocation.fromNamespaceAndPath(LeashedPlayer.MOD_ID,"bool_gamerule_value_change"));
|
||||
public static final StreamCodec<FriendlyByteBuf, BooleanGameRuleValueChangeData> STREAM_CODEC =
|
||||
StreamCodec.composite(
|
||||
ByteBufCodecs.STRING_UTF8, BooleanGameRuleValueChangeData::gamerule_id,
|
||||
ByteBufCodecs.BOOL, BooleanGameRuleValueChangeData::value,
|
||||
BooleanGameRuleValueChangeData::new
|
||||
);
|
||||
|
||||
public void handle(IPayloadContext context) {
|
||||
context.enqueueWork(() -> {
|
||||
Gamerules.gamerulesBooleanValuesClient.put(gamerule_id, value);
|
||||
});
|
||||
}
|
||||
@Override
|
||||
public @NotNull Type<? extends CustomPacketPayload> type() {
|
||||
return TYPE;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
package com.r3944realms.leashedplayer.network.client;
|
||||
|
||||
import net.minecraft.network.FriendlyByteBuf;
|
||||
import net.minecraft.network.protocol.common.custom.CustomPacketPayload;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public interface IGameRuleValueChangeData extends CustomPacketPayload {
|
||||
@Override
|
||||
@NotNull
|
||||
Type<? extends CustomPacketPayload> type();
|
||||
}
|
||||
|
|
@ -34,7 +34,7 @@ public class Util {
|
|||
if (!file.exists()) {
|
||||
boolean mkdirChildrenSuccess = file.mkdirs();
|
||||
if (!mkdirChildrenSuccess) {
|
||||
logger.error("failed to create " + child + " directory for +" + LeashedPlayer.MOD_ID);
|
||||
logger.error("failed to create {} directory for +" + LeashedPlayer.MOD_ID, child);
|
||||
throw new RuntimeException("failed to create " + child + " directory for" +LeashedPlayer.MOD_ID);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user