gpt4 book ai didi

java - 对世界中的方 block 重复效果

转载 作者:行者123 更新时间:2023-11-30 02:41:29 25 4
gpt4 key购买 nike

我想要完成的是,当服务器启动/重新加载时,插件将检测世界上所有的骷髅,然后对它们设置一个循环且不会结束的效果。

我当前的代码:

@EventHandler
public void onChunkLoad(ChunkLoadEvent event){
Chunk chunk = event.getChunk();
if(event.getWorld().getName().equals("world")){
for (int x = 0; x < 16; x++){
for (int y = 0; y < 256; y++){
for(int z = 0; z <16; z++){
Block block = chunk.getBlock(x, y, z);
if(block.getType() == Material.SKULL){
event.getWorld().playEffect(block.getLocation(), Effect.MOBSPAWNER_FLAMES, 0);

最佳答案

为每个加载的 block 循环 65536 个 block 会给服务器的处理器带来很大的压力。

您应该尝试Chunk#getTileEntities()并查看图 block 实体是否为instanceof org.bukkit.block.Skull

此外,您仅在加载 block 时生成粒子一次。使效果重复的最佳方法是将加载到 ArrayList 中的头骨存储起来,并使用 BukkitRunnable 不断循环所有头骨并创建粒子效果。

您可以阅读有关如何使用 BukkitRunnable here 的信息。

关于java - 对世界中的方 block 重复效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41550264/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com