Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

3mptysl

Members
  • Joined

  • Last visited

Everything posted by 3mptysl

  1. In my ModClass @Mod(MOD_ID) public class Belloto { // Directly reference a slf4j logger private static final Logger LOGGER = LogUtils.getLogger(); public static final String MOD_ID = "belloto"; public static final CreativeModeTab BELLOTO_TAB = new CreativeModeTab(MOD_ID) { @Override @OnlyIn(Dist.CLIENT) public ItemStack makeIcon() { return new ItemStack(ItemInit.BELLOTA_ITEM.get()); } }; public Belloto() { IEventBus bus = FMLJavaModLoadingContext.get().getModEventBus(); ItemInit.ITEMS.register(bus); BlockInit.BLOCKS.register(bus); MinecraftForge.EVENT_BUS.register(this); ModEntityTypes.register(bus); GeckoLib.initialize(); } private void clientSetup(final FMLClientSetupEvent event) { EntityRenderers.register(ModEntityTypes.ARDILLA.get(), ArdillaRenderer::new); } private void setup (FMLCommonSetupEvent event){ event.enqueueWork(() -> { SpawnPlacements.register(ModEntityTypes.ARDILLA.get(), SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, Animal::checkAnimalSpawnRules); }); ModMessages.register(); } } I call it in setup
  2. I have here my deathEvent, when a player dies with totem its send packet to client with the packet and the serverPlayer @Mod.EventBusSubscriber(modid = Belloto.MOD_ID) public class onDeathEvent { @SubscribeEvent public static void onDeathEvent(LivingDeathEvent event) { if (event.getEntityLiving() instanceof Player player) { if (player.getMainHandItem().getItem().equals(ItemInit.TOTEM_BELLOTO.get())) { Level level = player.getLevel(); player.setItemInHand(InteractionHand.MAIN_HAND, ItemStack.EMPTY); event.setCanceled(true); player.setHealth(1.0F); player.addEffect(new MobEffectInstance(MobEffects.REGENERATION, 1000, 1)); player.addEffect(new MobEffectInstance(MobEffects.FIRE_RESISTANCE, 1000, 1)); player.addEffect(new MobEffectInstance(MobEffects.ABSORPTION, 80, 2)); level.playSound(null, player.getOnPos(), SoundEvents.TOTEM_USE, SoundSource.PLAYERS, 1F, level.random.nextFloat() * 0.1F + 0.9F); if (event.getEntityLiving() instanceof ServerPlayer serverPlayer) { ModMessages.sendToPlayer(new TotemBellotoClientPacket(), serverPlayer); } } } } } My packet public class TotemBellotoClientPacket { public TotemBellotoClientPacket() { } public TotemBellotoClientPacket(FriendlyByteBuf buf) { } public void toBytes(FriendlyByteBuf buf) { } public boolean handle(Supplier<NetworkEvent.Context> ctx) { NetworkEvent.Context context = ctx.get(); context.enqueueWork(() -> { // Client DistExecutor.unsafeCallWhenOn(Dist.CLIENT,() -> () -> ClientPacketHandlerClass.handlePacket(ctx)); }); return true; } } MyHandlerClass public class ClientPacketHandlerClass { public static boolean handlePacket(Supplier<NetworkEvent.Context> ctx) { Player player = Minecraft.getInstance().player; ClientLevel level = Minecraft.getInstance().level; //ClientTotem.particleStuff(player); ClientTotem.totemActivated(ItemInit.TOTEM_BELLOTO.get()); return true; } And finally my simpleChannel, idk where is the issue public class ModMessages { private static SimpleChannel INSTANCE; private static int packetId = 0; private static int id() { return packetId++; } public static void register() { SimpleChannel net = NetworkRegistry.ChannelBuilder .named(new ResourceLocation(Belloto.MOD_ID, "messages")) .networkProtocolVersion(() -> "1.0") .clientAcceptedVersions(s -> true) .serverAcceptedVersions(s -> true) .simpleChannel(); INSTANCE = net; net.messageBuilder(TotemBellotoClientPacket.class, id(), NetworkDirection.PLAY_TO_CLIENT) .decoder(TotemBellotoClientPacket::new) .encoder(TotemBellotoClientPacket::toBytes) .consumer(TotemBellotoClientPacket::handle) .add(); } public static <MSG> void sendToServer(MSG message) { INSTANCE.sendToServer(message); } public static <MSG> void sendToPlayer(MSG message, ServerPlayer player) { INSTANCE.send(PacketDistributor.PLAYER.with(() -> player), message); } }
  3. im trying getInvetory().removeItem(new...) but not remove the item idk
  4. only crash when an entity kill me idk, And totem animation is no displaying
  5. Now client and server crash ---- Minecraft Crash Report ---- // Don't do that. Time: 15/8/22 22:49 Description: Ticking entity java.lang.NullPointerException: Cannot invoke "net.minecraftforge.network.simple.SimpleChannel.send(net.minecraftforge.network.PacketDistributor$PacketTarget, Object)" because "com.naim.belloto.networking.ModMessages.INSTANCE" is null at com.naim.belloto.networking.ModMessages.sendToPlayer(ModMessages.java:57) ~[%2380!/:?] {re:classloading} at com.naim.belloto.event.LivingDeathEvent.onDeathEvent(LivingDeathEvent.java:27) ~[%2380!/:?] {re:classloading} at net.minecraftforge.eventbus.ASMEventHandler_4_LivingDeathEvent_onDeathEvent_LivingDeathEvent.invoke(.dynamic) ~[?:?] {} at net.minecraftforge.eventbus.ASMEventHandler.invoke(ASMEventHandler.java:85) ~[eventbus-5.0.7.jar%239!/:?] {} at net.minecraftforge.eventbus.EventBus.post(EventBus.java:302) ~[eventbus-5.0.7.jar%239!/:?] {} at net.minecraftforge.eventbus.EventBus.post(EventBus.java:283) ~[eventbus-5.0.7.jar%239!/:?] {} at net.minecraftforge.common.ForgeHooks.onLivingDeath(ForgeHooks.java:327) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2375%2381!/:?] {re:classloading} at net.minecraft.server.level.ServerPlayer.die(ServerPlayer.java:544) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.world.entity.LivingEntity.hurt(LivingEntity.java:1131) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading} at net.minecraft.world.entity.player.Player.hurt(Player.java:834) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.level.ServerPlayer.hurt(ServerPlayer.java:664) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.world.entity.Mob.doHurtTarget(Mob.java:1326) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.world.entity.monster.Zombie.doHurtTarget(Zombie.java:313) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading} at net.minecraft.world.entity.ai.goal.MeleeAttackGoal.checkAndPerformAttack(MeleeAttackGoal.java:147) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading} at net.minecraft.world.entity.ai.goal.MeleeAttackGoal.tick(MeleeAttackGoal.java:138) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading} at net.minecraft.world.entity.ai.goal.ZombieAttackGoal.tick(ZombieAttackGoal.java:25) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading} at net.minecraft.world.entity.ai.goal.WrappedGoal.tick(WrappedGoal.java:55) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading} at net.minecraft.world.entity.ai.goal.GoalSelector.tickRunningGoals(GoalSelector.java:121) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading} at net.minecraft.world.entity.Mob.serverAiStep(Mob.java:691) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.world.entity.LivingEntity.aiStep(LivingEntity.java:2506) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading} at net.minecraft.world.entity.Mob.aiStep(Mob.java:495) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.world.entity.monster.Monster.aiStep(Monster.java:41) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading} at net.minecraft.world.entity.monster.Zombie.aiStep(Zombie.java:235) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading} at net.minecraft.world.entity.LivingEntity.tick(LivingEntity.java:2253) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading} at net.minecraft.world.entity.Mob.tick(Mob.java:307) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.world.entity.monster.Zombie.tick(Zombie.java:209) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading} at net.minecraft.server.level.ServerLevel.tickNonPassenger(ServerLevel.java:652) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.world.level.Level.guardEntityTick(Level.java:486) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.level.ServerLevel.lambda$tick$3(ServerLevel.java:319) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.world.level.entity.EntityTickList.forEach(EntityTickList.java:54) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading} at net.minecraft.server.level.ServerLevel.tick(ServerLevel.java:299) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:902) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:842) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.client.server.IntegratedServer.tickServer(IntegratedServer.java:84) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:685) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.MinecraftServer.lambda$spin$2(MinecraftServer.java:261) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading,pl:accesstransformer:B} at java.lang.Thread.run(Thread.java:833) [?:?] {} A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Thread: Server thread Stacktrace: at com.naim.belloto.networking.ModMessages.sendToPlayer(ModMessages.java:57) ~[%2380!/:?] {re:classloading} at com.naim.belloto.event.LivingDeathEvent.onDeathEvent(LivingDeathEvent.java:27) ~[%2380!/:?] {re:classloading} at net.minecraftforge.eventbus.ASMEventHandler_4_LivingDeathEvent_onDeathEvent_LivingDeathEvent.invoke(.dynamic) ~[?:?] {} at net.minecraftforge.eventbus.ASMEventHandler.invoke(ASMEventHandler.java:85) ~[eventbus-5.0.7.jar%239!/:?] {} at net.minecraftforge.eventbus.EventBus.post(EventBus.java:302) ~[eventbus-5.0.7.jar%239!/:?] {} at net.minecraftforge.eventbus.EventBus.post(EventBus.java:283) ~[eventbus-5.0.7.jar%239!/:?] {} at net.minecraftforge.common.ForgeHooks.onLivingDeath(ForgeHooks.java:327) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2375%2381!/:?] {re:classloading} at net.minecraft.server.level.ServerPlayer.die(ServerPlayer.java:544) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.world.entity.LivingEntity.hurt(LivingEntity.java:1131) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading} at net.minecraft.world.entity.player.Player.hurt(Player.java:834) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.level.ServerPlayer.hurt(ServerPlayer.java:664) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.world.entity.Mob.doHurtTarget(Mob.java:1326) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.world.entity.monster.Zombie.doHurtTarget(Zombie.java:313) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading} at net.minecraft.world.entity.ai.goal.MeleeAttackGoal.checkAndPerformAttack(MeleeAttackGoal.java:147) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading} at net.minecraft.world.entity.ai.goal.MeleeAttackGoal.tick(MeleeAttackGoal.java:138) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading} at net.minecraft.world.entity.ai.goal.ZombieAttackGoal.tick(ZombieAttackGoal.java:25) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading} at net.minecraft.world.entity.ai.goal.WrappedGoal.tick(WrappedGoal.java:55) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading} at net.minecraft.world.entity.ai.goal.GoalSelector.tickRunningGoals(GoalSelector.java:121) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading} at net.minecraft.world.entity.Mob.serverAiStep(Mob.java:691) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.world.entity.LivingEntity.aiStep(LivingEntity.java:2506) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading} at net.minecraft.world.entity.Mob.aiStep(Mob.java:495) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.world.entity.monster.Monster.aiStep(Monster.java:41) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading} at net.minecraft.world.entity.monster.Zombie.aiStep(Zombie.java:235) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading} at net.minecraft.world.entity.LivingEntity.tick(LivingEntity.java:2253) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading} at net.minecraft.world.entity.Mob.tick(Mob.java:307) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.world.entity.monster.Zombie.tick(Zombie.java:209) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading} at net.minecraft.server.level.ServerLevel.tickNonPassenger(ServerLevel.java:652) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.world.level.Level.guardEntityTick(Level.java:486) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.level.ServerLevel.lambda$tick$3(ServerLevel.java:319) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.world.level.entity.EntityTickList.forEach(EntityTickList.java:54) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading} at net.minecraft.server.level.ServerLevel.tick(ServerLevel.java:299) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading,pl:accesstransformer:B} -- Entity being ticked -- Details: Entity Type: minecraft:zombie (net.minecraft.world.entity.monster.Zombie) Entity ID: 1 Entity Name: Zombie Entity's Exact location: -2.30, 72.00, 24.69 Entity's Block location: World: (-3,72,24), Section: (at 13,8,8 in -1,4,1; chunk contains blocks -16,-64,16 to -1,319,31), Region: (-1,0; contains chunks -32,0 to -1,31, blocks -512,-64,0 to -1,319,511) Entity's Momentum: 0.04, -0.08, 0.04 Entity's Passengers: [] Entity's Vehicle: null Stacktrace: at net.minecraft.world.level.Level.guardEntityTick(Level.java:486) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.level.ServerLevel.lambda$tick$3(ServerLevel.java:319) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.world.level.entity.EntityTickList.forEach(EntityTickList.java:54) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading} at net.minecraft.server.level.ServerLevel.tick(ServerLevel.java:299) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:902) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:842) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.client.server.IntegratedServer.tickServer(IntegratedServer.java:84) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:685) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.MinecraftServer.lambda$spin$2(MinecraftServer.java:261) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading,pl:accesstransformer:B} at java.lang.Thread.run(Thread.java:833) [?:?] {} -- Affected level -- Details: All players: 1 total; [ServerPlayer['Dev'/153, l='ServerLevel[New World]', x=-0.99, y=72.00, z=25.22]] Chunk stats: 3249 Level dimension: minecraft:overworld Level spawn location: World: (0,85,0), Section: (at 0,5,0 in 0,5,0; chunk contains blocks 0,-64,0 to 15,319,15), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,-64,0 to 511,319,511) Level time: 400990 game time, 18228 day time Level name: New World Level game mode: Game mode: creative (ID 1). Hardcore: false. Cheats: true Level weather: Rain time: 1 (now: false), thunder time: 1 (now: false) Known server brands: forge Level was modded: true Level storage version: 0x04ABD - Anvil Stacktrace: at net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:902) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:842) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.client.server.IntegratedServer.tickServer(IntegratedServer.java:84) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:685) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.MinecraftServer.lambda$spin$2(MinecraftServer.java:261) ~[forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.jar%2376!/:?] {re:classloading,pl:accesstransformer:B} at java.lang.Thread.run(Thread.java:833) [?:?] {} -- System Details -- Details: Minecraft Version: 1.18.2 Minecraft Version ID: 1.18.2 Operating System: Windows 10 (amd64) version 10.0 Java Version: 17.0.1, Oracle Corporation Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode, sharing), Oracle Corporation Memory: 1615990256 bytes (1541 MiB) / 4269801472 bytes (4072 MiB) up to 8522825728 bytes (8128 MiB) CPUs: 20 Processor Vendor: GenuineIntel Processor Name: 12th Gen Intel(R) Core(TM) i7-12700K Identifier: Intel64 Family 6 Model 151 Stepping 2 Microarchitecture: unknown Frequency (GHz): 3,61 Number of physical packages: 1 Number of physical CPUs: 12 Number of logical CPUs: 20 Graphics card #0 name: NVIDIA GeForce RTX 3080 Graphics card #0 vendor: NVIDIA (0x10de) Graphics card #0 VRAM (MB): 4095,00 Graphics card #0 deviceId: 0x2216 Graphics card #0 versionInfo: DriverVersion=31.0.15.1659 Memory slot #0 capacity (MB): 8192,00 Memory slot #0 clockSpeed (GHz): 3,20 Memory slot #0 type: DDR4 Memory slot #1 capacity (MB): 8192,00 Memory slot #1 clockSpeed (GHz): 3,20 Memory slot #1 type: DDR4 Memory slot #2 capacity (MB): 8192,00 Memory slot #2 clockSpeed (GHz): 3,20 Memory slot #2 type: DDR4 Memory slot #3 capacity (MB): 8192,00 Memory slot #3 clockSpeed (GHz): 3,20 Memory slot #3 type: DDR4 Virtual memory max (MB): 34557,42 Virtual memory used (MB): 26409,04 Swap memory total (MB): 2048,00 Swap memory used (MB): 68,13 JVM Flags: 1 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump Server Running: true Player Count: 1 / 8; [ServerPlayer['Dev'/153, l='ServerLevel[New World]', x=-0.99, y=72.00, z=25.22]] Data Packs: vanilla (incompatible), mod:forge (incompatible), mod:belloto, mod:geckolib3 (incompatible) World Generation: Stable Type: Integrated Server (map_client.txt) Is Modded: Definitely; Client brand changed to 'forge'; Server brand changed to 'forge' ModLauncher: 9.1.3+9.1.3+main.9b69c82a ModLauncher launch target: forgeclientuserdev ModLauncher naming: mcp ModLauncher services: mixin PLUGINSERVICE eventbus PLUGINSERVICE slf4jfixer PLUGINSERVICE object_holder_definalize PLUGINSERVICE runtime_enum_extender PLUGINSERVICE capability_token_subclass PLUGINSERVICE accesstransformer PLUGINSERVICE runtimedistcleaner PLUGINSERVICE mixin TRANSFORMATIONSERVICE fml TRANSFORMATIONSERVICE FML Language Providers: [email protected] javafml@null Mod List: forge-1.18.2-40.1.0_mapped_official_1.18.2-recomp.|Minecraft |minecraft |1.18.2 |DONE |Manifest: a1:d4:5e:04:4f:d3:d6:e0:7b:37:97:cf:77:b0:de:ad:4a:47:ce:8c:96:49:5f:0a:cf:8c:ae:b2:6d:4b:8a:3f |Forge |forge |40.1.0 |DONE |Manifest: NOSIGNATURE main |Belloto Mod |belloto |0.0NONE |DONE |Manifest: NOSIGNATURE geckolib-forge-1.18-3.0.30_mapped_official_1.18.2.|GeckoLib |geckolib3 |3.0.30 |DONE |Manifest: NOSIGNATURE Crash Report UUID: d4ce6bcd-8ca5-4581-9c57-5cf43c119f98 FML: 40.1 Forge: net.minecraftforge:40.1.0
  6. LivingDeathEvent import com.naim.belloto.Belloto; import com.naim.belloto.Init.ItemInit; import com.naim.belloto.networking.ModMessages; import com.naim.belloto.networking.packet.TotemBellotoClientPacket; import net.minecraft.server.level.ServerPlayer; import net.minecraft.sounds.SoundEvents; import net.minecraft.sounds.SoundSource; import net.minecraft.world.entity.player.Player; import net.minecraft.world.level.Level; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; @Mod.EventBusSubscriber(modid = Belloto.MOD_ID, value = Dist.DEDICATED_SERVER) public class LivingDeathEvent { @SubscribeEvent public static void onDeathEvent(net.minecraftforge.event.entity.living.LivingDeathEvent event) { if (event.getEntityLiving() instanceof Player player) { if (player.getMainHandItem().getItem().equals(ItemInit.TOTEM_BELLOTO.get())) { Level level = player.getLevel(); event.setCanceled(true); player.setHealth(12); level.playSound(null, player.getOnPos(), SoundEvents.TOTEM_USE, SoundSource.PLAYERS, 1F, level.random.nextFloat() *0.1F + 0.9F); if (event.getEntity() instanceof ServerPlayer player1) { ModMessages.sendToPlayer(new TotemBellotoClientPacket(), player1); } } } } }
  7. i cancel livingdeathevent thats work correctly but i think the packet is not sending because client is not rendering the totem animation, i think Simple channel is init, are you referring to this? or something else private void setup (FMLCommonSetupEvent event){ event.enqueueWork(() -> { ModMessages.register(); SpawnPlacements.register(ModEntityTypes.ARDILLA.get(), SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, Animal::checkAnimalSpawnRules); });
  8. Like this? SimpleMessage -> import net.minecraft.network.FriendlyByteBuf; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.level.ServerPlayer; import net.minecraftforge.network.NetworkDirection; import net.minecraftforge.network.NetworkRegistry; import net.minecraftforge.network.PacketDistributor; import net.minecraftforge.network.simple.SimpleChannel; import java.util.function.BiConsumer; public class ModMessages { private static SimpleChannel INSTANCE; private static int packetId = 0; private static int id() { return packetId++; } public static void register() { SimpleChannel net = NetworkRegistry.ChannelBuilder .named(new ResourceLocation(Belloto.MOD_ID, "messages")) .networkProtocolVersion(() -> "1.0") .clientAcceptedVersions(s -> true) .serverAcceptedVersions(s -> true) .simpleChannel(); INSTANCE = net; net.messageBuilder(TotemBellotoPacket.class, id(), NetworkDirection.PLAY_TO_SERVER) .decoder(TotemBellotoPacket::new) .encoder(TotemBellotoPacket::toBytes) .consumer(TotemBellotoPacket::handle) .add(); net.messageBuilder(TotemBellotoClientPacket.class, id(), NetworkDirection.PLAY_TO_CLIENT) .decoder(TotemBellotoClientPacket::new) .encoder(TotemBellotoClientPacket::toBytes) .consumer(TotemBellotoClientPacket::handle) .add(); } public static <MSG> void sendToServer(MSG message) { INSTANCE.sendToServer(message); } public static <MSG> void sendToPlayer(MSG message, ServerPlayer player) { INSTANCE.send(PacketDistributor.PLAYER.with(() -> player), message); } } TotemClientPacket-> package com.naim.belloto.networking.packet; import com.naim.belloto.Init.ItemInit; import com.naim.belloto.networking.handler.ClientPacketHandlerClass; import net.minecraft.client.Minecraft; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; import net.minecraft.sounds.SoundEvents; import net.minecraft.sounds.SoundSource; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.fml.DistExecutor; import net.minecraftforge.network.NetworkEvent; import java.util.function.Supplier; import java.util.logging.Level; public class TotemBellotoClientPacket { public TotemBellotoClientPacket() { } public TotemBellotoClientPacket(FriendlyByteBuf buf) { } public void toBytes(FriendlyByteBuf buf) { } public boolean handle(Supplier<NetworkEvent.Context> ctx) { NetworkEvent.Context context = ctx.get(); context.enqueueWork(() -> { // Client DistExecutor.unsafeCallWhenOn(Dist.CLIENT,() -> () -> ClientPacketHandlerClass.handlePacket(ctx)); }); return true; } } And the handler like u say package com.naim.belloto.networking.handler; import com.naim.belloto.Init.ItemInit; import net.minecraft.client.Minecraft; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraftforge.network.NetworkEvent; import java.util.function.Supplier; public class ClientPacketHandlerClass { public static boolean handlePacket(Supplier<NetworkEvent.Context> ctx) { Player player = Minecraft.getInstance().player; ClientLevel level = Minecraft.getInstance().level; Minecraft.getInstance().gameRenderer.displayItemActivation(new ItemStack(ItemInit.TOTEM_BELLOTO.get())); //level.playSound(null, player.getOnPos(), SoundEvents.TOTEM_USE, SoundSource.PLAYERS, 0.5F, level.random.nextFloat() *0.1F + 0.9F); return true; } } And u said to me i need to cancel LivingDeathEvent via my simpleChannel, but i need to put it in a packet? or what, im lerning about Networking im really confuse. can u give me an example or pseudocode pls
  9. okay i create the package like this public class TotemBellotoClientPacket { public TotemBellotoClientPacket() { } public TotemBellotoClientPacket(FriendlyByteBuf buf) { } public void toBytes(FriendlyByteBuf buf) { } public boolean handle(Supplier<NetworkEvent.Context> supplier) { NetworkEvent.Context context = supplier.get(); context.enqueueWork(() -> { // ClientSide ServerPlayer player = context.getSender(); ServerLevel level = player.getLevel(); Minecraft.getInstance().gameRenderer.displayItemActivation(new ItemStack(ItemInit.TOTEM_BELLOTO.get())); level.playSound(null, player.getOnPos(), SoundEvents.TOTEM_USE, SoundSource.PLAYERS, 0.5F, level.random.nextFloat() *0.1F + 0.9F); }); return true; } } Is it correctly? i need to send it to the client but from where i send it?
  10. i check that, but no idea how i send a packet to server with LiveDeathEvent#setCanceled, i think im really confuse xd.
  11. I fix to prevent death and work correctly but when i use broadcastEntityEvent i cant put my custom totem, so i use this but idk how i send particles and sound public boolean handle(Supplier<NetworkEvent.Context> supplier) { NetworkEvent.Context context = supplier.get(); context.enqueueWork(() -> { // Server ServerPlayer player = context.getSender(); ServerLevel level = player.getLevel(); // level.broadcastEntityEvent(player,(byte) 35); Minecraft.getInstance().gameRenderer.displayItemActivation(new ItemStack(ItemInit.TOTEM_BELLOTO.get())); }); return true; }
  12. Okay and where i check if the player is holding my totem in client or with a packet, or in Item totem? And where re the partícles because i didnt find it.
  13. My character dies and the totem is activated after dying and then the totem is shown with the respawn menu open. i need steve not to die. And i have other problem how i reproduce the sound and particle of default totem of undying?

Important Information

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.