Skip to content
MJP
/ NMS 進階粒子效果

NMS · NMS 世界

NMS 進階粒子效果

透過 ClientboundLevelParticlesPacket 實現進階 NMS 粒子效果:客戶端專屬、大量粒子、自定義參數。

NMS已發布v1.0.0nms-particle-effect更新於 2026年4月30日

觸發關鍵字

粒子效果particle effectLevelParticlesNMS 粒子custom particle客戶端粒子per-player particle

NMS Particle Effect

目的

透過 ClientboundLevelParticlesPacket 直接發送 NMS 粒子封包,實現 Bukkit World.spawnParticle() 無法達到的效果:客戶端專屬粒子、超大量粒子、精確速度/偏移控制。


平台需求

  • Paper 1.21.11 / 26.2(兩版皆經編譯驗證;版本差異以行尾 // @1.21.11: 標註)
  • Paperweight userdev 2.0.0-beta.24+
  • Mojang 官方名稱(Minecraft 26.1 起不再混淆)
  • Java 21(1.21.11)/25(26.2)

產生的代碼

ParticleEffect.java

// 發送客戶端專屬粒子
ParticleEffect.send(player, ParticleTypes.FLAME, loc, 10, 0.1, 0.3, 0.1, 0.05f, false);

// Builder 模式廣播
new ParticleBuilder()
    .particle(ParticleTypes.ENCHANT)
    .at(center).count(50).receivers(world.getPlayers())
    .spawn();

ParticleShapes.java(預設形狀)

ParticleShapes.circle(player, center, 2.0, 36, ParticleTypes.ENCHANT);
ParticleShapes.helix(player, base, 0.5, 3.0, 3, 16, ParticleTypes.SOUL);

執行緒安全

  • ParticleEffect.send() 可在任意執行緒呼叫
  • Location 若依賴世界狀態,封包建構須在主執行緒完成