-2
Q
重命名放置的容器
A
回答
1
它沒有API,但它可能與NMS。我前段時間製作了這個方法,它可以讓你命名任何tile實體。
你給它一個正常的bukkit塊和將應用於該塊的名稱。名稱可以有§着色字符。
使用此代碼,如果您想避免NMS和CB導入,則可以使用反射製作版本。
import net.minecraft.server.v1_8_R1.INamableTileEntity;
import net.minecraft.server.v1_8_R1.TileEntity;
import net.minecraft.server.v1_8_R1.TileEntityBrewingStand;
import net.minecraft.server.v1_8_R1.TileEntityChest;
import net.minecraft.server.v1_8_R1.TileEntityCommand;
import net.minecraft.server.v1_8_R1.TileEntityDispenser;
import net.minecraft.server.v1_8_R1.TileEntityEnchantTable;
import net.minecraft.server.v1_8_R1.TileEntityFurnace;
import net.minecraft.server.v1_8_R1.TileEntityHopper;
import org.bukkit.block.Block;
import org.bukkit.craftbukkit.v1_8_R1.CraftWorld;
public static void setName(String name, Block block) {
final CraftWorld world = (CraftWorld) block.getWorld();
final TileEntity nmsTileEntity = world.getTileEntityAt(block.getX(), block.getY(), block.getZ());
if (nmsTileEntity instanceof INamableTileEntity) {
if (nmsTileEntity instanceof TileEntityChest) {
((TileEntityChest) nmsTileEntity).a(name);
} else if (nmsTileEntity instanceof TileEntityFurnace) {
((TileEntityFurnace) nmsTileEntity).a(name);
} else if (nmsTileEntity instanceof TileEntityDispenser) {
((TileEntityDispenser) nmsTileEntity).a(name);
} else if (nmsTileEntity instanceof TileEntityHopper) {
((TileEntityHopper) nmsTileEntity).a(name);
} else if (nmsTileEntity instanceof TileEntityBrewingStand) {
((TileEntityBrewingStand) nmsTileEntity).a(name);
} else if (nmsTileEntity instanceof TileEntityEnchantTable) {
((TileEntityEnchantTable) nmsTileEntity).a(name);
} else if (nmsTileEntity instanceof TileEntityCommand) {
((TileEntityCommand) nmsTileEntity).getCommandBlock().setName(name);
}
nmsTileEntity.update();
}
}
相關問題
- 1. 重命名Rackspace文件夾/容器
- 2. 重命名URL內容
- 3. 將容器放置在容器外部
- 4. 如何在Windows Azure中重命名容器名稱?
- 5. 命名的列重命名
- 6. 何處放置容器?
- 7. 命名容器沒有在擴展器中「設置」
- 8. 重命名WAMP服務器
- 9. 重命名Yeoman生成器
- 10. 重命名控制器
- 11. 重命名以及爲LaTeX重置章
- 12. 從MediaStore重命名播放列表
- 13. ASP.Net - 命名容器和的ClientIDMode =「靜態」
- 14. ASP.NET GridView的自定義命名容器?
- 15. 根據內容重命名文件
- 16. 使用tcl interp別名重命名內置命令的tcl
- 17. 何處放置IoC容器配置?
- 18. 在命名函數上放置斷點
- 19. 用css放置命名空間
- 20. 如何在播放推送器時重命名Laravel事件?
- 21. 重命名提取文件的位置
- 22. 重命名c#中的設置
- 23. 配置Hibernate使用重命名的persistence.xml
- 24. 重命名TeamCity服務器主機名
- 25. 重命名命名空間
- 26. 重命名/重構視圖控制器
- 27. 如何複製和重命名Docker容器?
- 28. Git衝突(重命名/重命名)
- 29. 如何重置Susy容器?
- 30. 放置容器外的頁腳div
我發現這不是在1.7的工作,似乎1.7沒有「INAMBLETileEntity」 – 1461748123 2015-02-25 09:56:22