Jump to content

Recommended Posts

Posted

Hello, I need to spawn the particles from the player, but to see other players and they could spawn the particles. I used to do this: Press "Q" -> sendToAllAround but in this method there is a problem, the players even though I see the particles but when they spanat, they have crashes error to the console(debug). There was another way to do so sendToServer and server side to send the package sendToAllAround, but I simply do not reach the packages.

[spoiler=Events]

@SubscribeEvent
public void onClientTicks(final TickEvent.ClientTickEvent e)
{
if(e.phase == TickEvent.Phase.START)//For example
   {
    NetworkHandler.sendToServer(new PacketParticles());
   }
}

 

 

[spoiler=NetworkHandler]

public class NetworkHandler
{
   public static final SimpleNetworkWrapper NETWORK = NetworkRegistry.INSTANCE.newSimpleChannel("ModChannel");
   private static int dec;

   public static void init()
   {
       NETWORK.registerMessage(PacketParticles.class, PacketParticles.class, dec++, Side.SERVER);
NETWORK.registerMessage(PacketFire.class, PacketFire.class, dec++, Side.CLIENT);
   }

   public static void sendToAll(final IMessage message) {
       NETWORK.sendToAll(message);
   }
   public static void sendTo(final IMessage message, final EntityPlayerMP player) {
       NETWORK.sendTo(message, player);
   }
   public static void sendToAllAround(final LocationDoublePacket message, final World world) {
       sendToAllAround(message, message.getTargetPoint(world));
   }
   public static void sendToAllAround(final IMessage message, final NetworkRegistry.TargetPoint point) {
       NETWORK.sendToAllAround(message, point);
   }
   public static void sendToDimension(final IMessage message, final int dimensionId) {
       NETWORK.sendToDimension(message, dimensionId);
   }
   public static void sendToServer(final IMessage message){
       NETWORK.sendToServer(message);
   }
}

 

 

[spoiler=LocationDoublePacket]

public abstract  class LocationDoublePacket<REQ extends IMessage> extends AbstractPacket<REQ>
{
   protected double x, y, z;
   public LocationDoublePacket(){}
   public LocationDoublePacket(final double x, final double y, final double z)
   {
       this.x = x;
       this.y = y;
       this.z = z;
   }

   @Override
   public void toBytes(final ByteBuf buf)
   {
       buf.writeDouble(x);
       buf.writeDouble(y);
       buf.writeDouble(z);
   }

   @Override
   public void fromBytes(final ByteBuf buf)
   {
       x = buf.readDouble();
       y = buf.readDouble();
       z = buf.readDouble();
   }

   public NetworkRegistry.TargetPoint getTargetPoint(final World world){
       return getTargetPoint(world, 64);
   }
   public NetworkRegistry.TargetPoint getTargetPoint(final World world, double updateDistance) {
       return new NetworkRegistry.TargetPoint(world.provider.getDimension(), x, y, z, updateDistance);
   }
}

 

 

[spoiler=AbstractPacket]

public abstract class AbstractPacket<REQ extends IMessage> implements IMessage, IMessageHandler<REQ, REQ>
{
   @Override
   public REQ onMessage(final REQ message, final MessageContext ctx)
   {
       if(ctx.side == Side.SERVER)
       {
           handleServerSide(message, ctx.getServerHandler().playerEntity);
       }
       else
       {
           handleClientSide(message, FMLClientHandler.instance().getClientPlayerEntity());
       }
       return null;
   }

   public abstract void handleClientSide(final REQ message, final EntityPlayer player);
   public abstract void handleServerSide(final REQ message, final EntityPlayer player);
}

 

 

[spoiler=PacketParticles]

public class PacketParticles extends LocationDoublePacket<PacketParticles>
{
   public PacketParticles()
   {
   }

   @Override
   public void toBytes(final ByteBuf buffer)
   {
   }

   @Override
   public void fromBytes(final ByteBuf buffer)
   {
   }

   @Override
   public void handleClientSide(final PacketParticles message, final EntityPlayer player)
   {
   }

   @Override
   public void handleServerSide(final PacketParticles message, final EntityPlayer player) {
       NetworkHandler.sendToAllAround(new PacketFire(), player.worldObj);
   }
}

 

 

[spoiler=PacketFire]

public class PacketFire extends LocationDoublePacket<PacketFire>
{
   public PacketFire()
   {
   }

   @Override
   public void toBytes(final ByteBuf buffer)
   {
   }

   @Override
   public void fromBytes(final ByteBuf buffer)
   {
   }

   @Override
   public void handleClientSide(final PacketFire message, final EntityPlayer player)
   {
       Vec3d vec = player.getLookVec();
       double x = vec.xCoord / 10, y = vec.yCoord / 10, z = vec.zCoord / 10;
       Random random = new Random();

       for (int i = 0; i < 100; i++)
       {
           final double xCoord = player.posX + x * i + random.nextDouble();
           final double yCoord = player.posY + y * i + random.nextDouble();
           final double zCoord = player.posZ + z * i + random.nextDouble();
           player.worldObj.spawnParticle(EnumParticleTypes.SMOKE_NORMAL, xCoord, yCoord, zCoord, x * 5, y * 5, z * 5);
       }
   }

   @Override
   public void handleServerSide(final PacketFire message, final EntityPlayer player) {

   }
}

 

 

Posted

You mention a crash, so a crash report would help us know where to start.

The debugger is a powerful and necessary tool in any IDE, so learn how to use it. You'll be able to tell us more and get better help here if you investigate your runtime problems in the debugger before posting.

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

    • I am using forge 1.20.1 (version 47.3.0). My pc has an RTX 4080 super and an i9 14900 KF, I am on the latest Nvidia graphics driver, latest windows 10 software, I have java 23, forge 1.12.2 works and so does all vanilla versions but for some reason no version of forge 1.20.1 works and instead the game just crashes with the error code "-1." I have no mods in my mods fodler, I have deleted my options.txt and forge.cfg files in case my settings were causing a crash and have tried removing my forge version from the installations folder and reinstalling but no matter what I still crash with the same code and my log doesn't tell me anything: 18:34:53.924 game 2025-02-06 18:34:53,914 main WARN Advanced terminal features are not available in this environment 18:34:54.023 game [18:34:54] [main/INFO] [cp.mo.mo.Launcher/MODLAUNCHER]: ModLauncher running: args [--username, mrmirchi, --version, 1.20.1-forge-47.3.0, --gameDir, C:\Users\aryam\AppData\Roaming\.minecraft, --assetsDir, C:\Users\aryam\AppData\Roaming\.minecraft\assets, --assetIndex, 5, --uuid, 2db00ea8d678420a8956109a85d90e9d, --accessToken, ????????, --clientId, ZWI3NThkNzMtNmNlZS00MGI5LTgyZTgtYmZkNzcwMTM5MGMx, --xuid, 2535436222989555, --userType, msa, --versionType, release, --quickPlayPath, C:\Users\aryam\AppData\Roaming\.minecraft\quickPlay\java\1738838092785.json, --launchTarget, forgeclient, --fml.forgeVersion, 47.3.0, --fml.mcVersion, 1.20.1, --fml.forgeGroup, net.minecraftforge, --fml.mcpVersion, 20230612.114412] 18:34:54.027 game [18:34:54] [main/INFO] [cp.mo.mo.Launcher/MODLAUNCHER]: ModLauncher 10.0.9+10.0.9+main.dcd20f30 starting: java version 17.0.8 by Microsoft; OS Windows 10 arch amd64 version 10.0 18:34:54.132 game [18:34:54] [main/INFO] [ne.mi.fm.lo.ImmediateWindowHandler/]: Loading ImmediateWindowProvider fmlearlywindow 18:34:54.191 game [18:34:54] [main/INFO] [EARLYDISPLAY/]: Trying GL version 4.6 18:34:54.303 game [18:34:54] [main/INFO] [EARLYDISPLAY/]: Requested GL version 4.6 got version 4.6 18:34:54.367 monitor Process Monitor Process crashed with exit code -1     screenshot of log: https://drive.google.com/file/d/1WdkH88H865XErvmIqAKjlg7yrmj8EYy7/view?usp=sharing
    • I am currently working on a big mod, but I'm having trouble with my tabs, I want to find a way to add tabs inside tabs, like how in mrcrayfishes furniture mod, his furniture tab has multiple other sub tabs to them, so i know it is possible but i just don't know how it is possible, any help would be appreciated, thanks
    • Add the crash-report or latest.log (logs-folder) with sites like https://mclo.gs/ and paste the link to it here  
    • Make a test with adding this mod: https://www.curseforge.com/minecraft/mc-mods/betterrandomsourceconcurrencycrash If you have further issues, create an own thread
    • hi same thing happened to me this is my paste bin please help!  crash report - https://pastes.io/crash-rep
  • Topics

×
×
  • Create New...

Important Information

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