Jump to content

Recommended Posts

Posted

hey all,

i cant seem to find an event that triggers before the server shuts down.

I have found ServerStoppingEvent, but this event crashes the server because:
 

Caused by: java.lang.IllegalArgumentException: Listener for event class net.minecraftforge.event.server.ServerStoppingEvent takes an argument that is not a subtype of the base type interface net.minecraftforge.fml.event.IModBusEvent

 

Posted
  On 5/13/2022 at 12:21 PM, diesieben07 said:

Why are you changing the user's config file?

Expand  

I am changing the server config file, and i have to save data to it. (i want the data to be easily accessible and changeable)

Would there be a different way to save this per-player data? its just three integers per player

Posted (edited)
  On 5/13/2022 at 12:38 PM, diesieben07 said:

Config files are not suitable for saving per player data. Config files are intended to be changed by the user to configure your mod. If your mod changes the config file on its own, this defeats the purpose of a config file, using which the user can decide how your mod behaves.

If you want to save per-player data you need to use capabilities.

For very simple data structures, you can also use Entity#getPersistentData for the player. If you want the data to persist after death, store it under the sub-tag Player.PERSISTED_NBT_TAGNote that in both cases (persisting through death or not) you must use a sub-tag based on your ModID, to avoid collisions with other mods as this is a shared data storage. I would only recommend using getPersistentData for very simple data structures, as it requires constant (de-)serialization from and to NBT.

Expand  

So, if I understand correctly, capabilities are NBT tags?

I want to make a method that saves an integer to a tag created by my mod, but I'm not entirely sure how to do that.

Edited by guid118

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • whenever I try to get this item to render into the game it appears with the not texture purple and black squares and calls itself by the lang translation file path instead of the name i gave it.   { "item.testmod.alexandrite": "Alexandrite" } this is the lang json file package net.Hurst.testmod.item; import net.Hurst.testmod.TestMod; import net.minecraft.world.item.Item; import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.ForgeRegistries; import net.minecraftforge.registries.RegistryObject; public class ModItems { public static final DeferredRegister<Item> ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, TestMod.MOD_ID); public static final RegistryObject<Item> ALEXANDRITE = ITEMS.register("alexandrite", () -> new Item(new Item.Properties())); public static void register(IEventBus eventBus){ ITEMS.register(eventBus); } } this is my ModItems.java file package net.Hurst.testmod; import com.mojang.logging.LogUtils; import net.Hurst.testmod.item.ModItems; import net.minecraft.world.item.CreativeModeTabs; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.BuildCreativeModeTabContentsEvent; import net.minecraftforge.event.server.ServerStartingEvent; import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.ModLoadingContext; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.config.ModConfig; import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent; import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; import org.slf4j.Logger; // The value here should match an entry in the META-INF/mods.toml file @Mod(TestMod.MOD_ID) public class TestMod { public static final String MOD_ID = "testmod"; private static final Logger LOGGER = LogUtils.getLogger(); public TestMod() { IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus(); modEventBus.addListener(this::commonSetup); ModItems.register(modEventBus); MinecraftForge.EVENT_BUS.register(this); modEventBus.addListener(this::addCreative); ModLoadingContext.get().registerConfig(ModConfig.Type.COMMON, Config.SPEC); } private void commonSetup(final FMLCommonSetupEvent event) { } // Add the example block item to the building blocks tab private void addCreative(BuildCreativeModeTabContentsEvent event) { if(event.getTabKey() == CreativeModeTabs.INGREDIENTS){ event.accept(ModItems.ALEXANDRITE); } } // You can use SubscribeEvent and let the Event Bus discover methods to call @SubscribeEvent public void onServerStarting(ServerStartingEvent event) { } // You can use EventBusSubscriber to automatically register all static methods in the class annotated with @SubscribeEvent @Mod.EventBusSubscriber(modid = MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD, value = Dist.CLIENT) public static class ClientModEvents { @SubscribeEvent public static void onClientSetup(FMLClientSetupEvent event) { } } } this is my TestMod.java file { "parent": "minecraft:item/generated", "textures": { "layer0": "testmod:item/generated" } } this is my model file for the item. I am using intellij 2025.1.2 with fdk 1.21 and java 21 I would appreciate the help.
    • Also remove VS Create Armor, createbigcannons and The Factory Must Grow
    • Add the latest.log (logs-folder) with sites like https://mclo.gs/ and paste the link to it here  
    • You are using Create 6 - some addons are not compatible with this version - add the addons one by one to find the incompatible ones Or Use Create 5 - but you also have to use older builds of the addons - addons updated March 2025 or later are usually for Create 6  
  • Topics

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.