Помогите Помогите обновить код на последнюю версию

hgtrrrrrr551

Ньюби
Пользователь
Баллы
1
Показывает ошибку на Material.WOOL и setData

Код:
  public DyeColor spinColors(boolean samecolor) {
    DyeColor tempcolor = this.allowedcolors.get(this.rand.nextInt(this.allowedcolors.size()));
    for (Location loc : this.signblocks) {
      Block signblock = loc.getBlock();
      signblock.setType(Material.WOOL);
      signblock.setData(tempcolor.getWoolData());
 
Можешь изменить этот момент с setData по тому шаблону? Я не совсем понимаю как работает тот код, и как его адаптировать под этот случай
 
Можешь изменить этот момент с setData по тому шаблону? Я не совсем понимаю как работает тот код, и как его адаптировать под этот случай
+- так
Код:
public DyeColor spinColors(boolean samecolor) {
    DyeColor color = this.allowedcolors.get(this.rand.nextInt(this.allowedcolors.size()));
    for (Location loc : this.signblocks) {
        Block block = loc.getBlock();
        block.setType(Material.WHITE_WOOL);
        if (!(block.getState().getData() instanceof Colorable))
            continue;
        Colorable colorable = (Colorable) block.getState().getData();
        colorable.setColor(color);
        block.getState().update();
    }
    return color;
}
 
Можешь еще с одним кусочком помочь? Тут тоже setData

Код:
  public void replaceFloor() {
    for (Location loc : this.whiteblocks) {
      Block carpetblock = loc.getBlock();
      carpetblock.setType(Material.WHITE_CARPET);
      carpetblock.setData(this.floorColor.getWoolData());
      Block iceblock = carpetblock.getRelative(BlockFace.DOWN);
      iceblock.setType(Material.ICE);
    }
    for (CSMat mat : this.colormats) {
      for (Location loc : mat.getBlocks()) {
        Block carpetblock = loc.getBlock();
        carpetblock.setType(Material.WHITE_CARPET);
        carpetblock.setData(mat.color.getWoolData());
        Block iceblock = carpetblock.getRelative(BlockFace.DOWN);
        iceblock.setType(Material.ICE);
      }
    }
  }
 
У блоков больше нет даты с int, используй setType а setData убери.
Пример.
block.setType(Material.matchMaterial("RED_WOOL"));
block.setType(Material.matchMaterial("RED_CARPET"));
 
Мне так сделать?

Код:
    }
    for (CSMat mat : this.colormats) {
      for (Location loc : mat.getBlocks()) {
        Block carpetblock = loc.getBlock();
        /*carpetblock.setType(Material.WHITE_CARPET);
        /*carpetblock.setData(mat.color.getWoolData());*/
        carpetblock.setType(Material.matchMaterial("WHITE_CARPET"));
        Block iceblock = carpetblock.getRelative(BlockFace.DOWN);
        iceblock.setType(Material.ICE);
      }
    }
  }
 
Как то так, где color это ссылка на имя цвета. Тебе придется все переписать под имена вместо номеров.
Код:
    public void replaceFloor() {
        for (Location loc : this.whiteblocks) {
          Block carpetblock = loc.getBlock();
          carpetblock.setType(Material.WHITE_CARPET);
          carpetblock.setData(Material.matchMaterial(color+"_WOOL"));
          Block iceblock = carpetblock.getRelative(BlockFace.DOWN);
          iceblock.setType(Material.ICE);
        }
        for (CSMat mat : this.colormats) {
          for (Location loc : mat.getBlocks()) {
            Block carpetblock = loc.getBlock();
            carpetblock.setType(Material.matchMaterial(color+"_CARPET"));
            carpetblock.setData(mat.color.getWoolData());
            Block iceblock = carpetblock.getRelative(BlockFace.DOWN);
            iceblock.setType(Material.ICE);
          }
        }
      }
 
А лучше кидай весь плагин каким он был в оригинале. Желательно сразу исходники.
 
Когда начинается перебор цветов, все цветные платформы белого цвета

и еще бывает что пишет вот это:
[Server thread/WARN]: [ColorShuffle] Task #591 for ColorShuffle v1.5 generated an exception
java.lang.IllegalArgumentException: Experience progress must be between 0.0 and 1.0 (-Infinity)
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:191) ~[spigot-1.16.4.jar:git-Spigot-37d799b-3eb7236]
at org.bukkit.craftbukkit.v1_16_R3.entity.CraftPlayer.setExp(CraftPlayer.java:980) ~[spigot-1.16.4.jar:git-Spigot-37d799b-3eb7236]
at com.tux2mc.colorshuffle.CSArena.setTimeLeft(CSArena.java:607) ~[?:?]
at com.tux2mc.colorshuffle.CSTimer.run(CSTimer.java:88) ~[?:?]
at org.bukkit.craftbukkit.v1_16_R3.scheduler.CraftTask.run(CraftTask.java:81) ~[spigot-1.16.4.jar:git-Spigot-37d799b-3eb7236]
at org.bukkit.craftbukkit.v1_16_R3.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:400) ~[spigot-1.16.4.jar:git-Spigot-37d799b-3eb7236]
at net.minecraft.server.v1_16_R3.MinecraftServer.b(MinecraftServer.java:1059) ~[spigot-1.16.4.jar:git-Spigot-37d799b-3eb7236]
at net.minecraft.server.v1_16_R3.DedicatedServer.b(DedicatedServer.java:355) ~[spigot-1.16.4.jar:git-Spigot-37d799b-3eb7236]
at net.minecraft.server.v1_16_R3.MinecraftServer.a(MinecraftServer.java:1007) ~[spigot-1.16.4.jar:git-Spigot-37d799b-3eb7236]
at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:846) ~[spigot-1.16.4.jar:git-Spigot-37d799b-3eb7236]
at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$0(MinecraftServer.java:164) ~[spigot-1.16.4.jar:git-Spigot-37d799b-3eb7236]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_281]
>
 
Последнее редактирование:
Когда начинается перебор цветов, все цветные платформы белого цвета
Показывай свой текущий код.

и еще бывает что пишет вот это:
[Server thread/WARN]: [ColorShuffle] Task #591 for ColorShuffle v1.5 generated an exception
java.lang.IllegalArgumentException: Experience progress must be between 0.0 and 1.0 (-Infinity)
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:191) ~[spigot-1.16.4.jar:git-Spigot-37d799b-3eb7236]
at org.bukkit.craftbukkit.v1_16_R3.entity.CraftPlayer.setExp(CraftPlayer.java:980) ~[spigot-1.16.4.jar:git-Spigot-37d799b-3eb7236]
at com.tux2mc.colorshuffle.CSArena.setTimeLeft(CSArena.java:607) ~[?:?]
at com.tux2mc.colorshuffle.CSTimer.run(CSTimer.java:88) ~[?:?]
at org.bukkit.craftbukkit.v1_16_R3.scheduler.CraftTask.run(CraftTask.java:81) ~[spigot-1.16.4.jar:git-Spigot-37d799b-3eb7236]
at org.bukkit.craftbukkit.v1_16_R3.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:400) ~[spigot-1.16.4.jar:git-Spigot-37d799b-3eb7236]
at net.minecraft.server.v1_16_R3.MinecraftServer.b(MinecraftServer.java:1059) ~[spigot-1.16.4.jar:git-Spigot-37d799b-3eb7236]
at net.minecraft.server.v1_16_R3.DedicatedServer.b(DedicatedServer.java:355) ~[spigot-1.16.4.jar:git-Spigot-37d799b-3eb7236]
at net.minecraft.server.v1_16_R3.MinecraftServer.a(MinecraftServer.java:1007) ~[spigot-1.16.4.jar:git-Spigot-37d799b-3eb7236]
at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:846) ~[spigot-1.16.4.jar:git-Spigot-37d799b-3eb7236]
at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$0(MinecraftServer.java:164) ~[spigot-1.16.4.jar:git-Spigot-37d799b-3eb7236]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_281]
>
По поводу ошибки - в методе CSArena.setTimeLeft() игроку меняется значение опыта. Это значение должно быть дробным числом от 0 до 1, но по какой-то причине устанавливается -∞.
 
Назад
Верх