Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите Изменить цвет блока (шерсти\флага)

norvele

Ньюби
Баллы
1
Имя в Minecraft
norvele
Bukkit 1.8-R0.1-SNAPSHOT

Block flagBlock = flagLocation.getBlock();
flagBlock.setType(Material.STANDING_BANNER);
flagBlock.getState().setData(<что и как сюда писать?>);

Туда надо запихать MaterialData, но как в эту материалдату запихать цвет?

MaterialData material = (MaterialData) new Banner(); // и не понятно что дальше
 
В 1.8 весь метод deprecated, но пока работает, потом перестанет. Для блока (Material.WOOL) работает, для флага (Material.STANDING_BANNER) не работает. Для флага будет так:

Block block = flagLocation.getBlock();
block.setType(Material.STANDING_BANNER);
CraftBanner banner = new CraftBanner(block);
banner.setBaseColor(DyeColor.BLUE);
banner.update(true);

вроде работает. Спасибо )
 
Последнее редактирование:
И боже, зачем вы используете NMS?
А у меня чего-то не получилось по другому:

Block block = flagLocation.getBlock();
block.setType(Material.STANDING_BANNER);
Banner banner = (Banner) block;
banner.setBaseColor(DyeColor.BLUE);

Выдает: "org.bukkit.craftbukkit.v1_8_R1.block.CraftBlock cannot be cast to org.bukkit.block.Banner"
 
А у меня чего-то не получилось по другому:

Block block = flagLocation.getBlock();
block.setType(Material.STANDING_BANNER);
Banner banner = (Banner) block;
banner.setBaseColor(DyeColor.BLUE);

Выдает: "org.bukkit.craftbukkit.v1_8_R1.block.CraftBlock cannot be cast to org.bukkit.block.Banner"
Потому что block.getState()
 
Потому что block.getState()
Да, спохватился, до вашего сообщения попробовал "Banner banner = (Banner) block.getState();"
но результат тот же к сожалению..только вместо org.bukkit.craftbukkit.v1_8_R1.block.CraftBlock пишет org.bukkit.craftbukkit.v1_8_R1.block.CraftBlockState
 
Да, спохватился, до вашего сообщения попробовал "Banner banner = (Banner) block.getState();"
но результат тот же к сожалению..только вместо org.bukkit.craftbukkit.v1_8_R1.block.CraftBlock пишет org.bukkit.craftbukkit.v1_8_R1.block.CraftBlockState
Очень странно, потому что Banner - это BlockState.
 
Да, спохватился, до вашего сообщения попробовал "Banner banner = (Banner) block.getState();"
но результат тот же к сожалению..только вместо org.bukkit.craftbukkit.v1_8_R1.block.CraftBlock пишет org.bukkit.craftbukkit.v1_8_R1.block.CraftBlockState
Уберите уже CraftBukkit из зависимостей, он вам нужен?
 

Поделиться этой страницей

Назад
Верх