Идея [Запрос] Постепенное отнимание жизней за поднятие выше X блоков

  • Автор темы Автор темы mcdima
  • Дата начала Дата начала

mcdima

Старожил
Пользователь
Баллы
153
Имя в Minecraft
mcdima
Доброго времени суток. Мне нужен плагин, которые начинает отнимать жизни у игрока, если он находится више чем X блоков.

Но для того чтобы предотвратить это - надо одеть кольчужную броню.

Кто может это сделать? Есть ли уже такой?
 
Сказать может любой, а я прошу сделать.
Хорошо, сейчас
Код:
package Anoxia;

import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.*********ventory.EntityEquipment;
import org.*********ventory.ItemStack;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scheduler.BukkitRunnable;

public class Anoxia extends JavaPlugin{
    private BukkitRunnable runnable;
    private FileConfiguration config;
   
    public void onEnable(){
        saveDefaultConfig();
        runnable = new BukkitRunnable(){
            @Override
            public void run(){
                for(Player onlinePlayer : Bukkit.getOnlinePlayers())
                {
                        if (onlinePlayer.getLocation().getBlockZ() > config.getInt("maxZ")){
                            EntityEquipment armor = onlinePlayer.getEquipment();
                            if ((armor.getBoots() != new ItemStack(Material.CHAINMAIL_BOOTS)) && (armor.getChestplate() != new ItemStack(Material.CHAINMAIL_CHESTPLATE)) && (armor.getLeggings() != new ItemStack(Material.CHAINMAIL_LEGGINGS)) && (armor.getHelmet() != new ItemStack(Material.CHAINMAIL_HELMET))){
                                onlinePlayer.damage(config.getDouble("damage"));
                            }
                        }
                }
            }
        };
        getLogger().info("Anoxia is enabled");
        runnable.runTaskTimer(this, 1L, 5L);
    }
   
    public void onDisable(){
        runnable = null;
        getLogger().info("Anoxia is disabled");
    }
   
}
 
Хорошо, сейчас
Код:
package Anoxia;

import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.*********ventory.EntityEquipment;
import org.*********ventory.ItemStack;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scheduler.BukkitRunnable;

public class Anoxia extends JavaPlugin{
    private BukkitRunnable runnable;
    private FileConfiguration config;
 
    public void onEnable(){
        saveDefaultConfig();
        runnable = new BukkitRunnable(){
            @Override
            public void run(){
                for(Player onlinePlayer : Bukkit.getOnlinePlayers())
                {
                        if (onlinePlayer.getLocation().getBlockZ() > config.getInt("maxZ")){
                            EntityEquipment armor = onlinePlayer.getEquipment();
                            if ((armor.getBoots() != new ItemStack(Material.CHAINMAIL_BOOTS)) && (armor.getChestplate() != new ItemStack(Material.CHAINMAIL_CHESTPLATE)) && (armor.getLeggings() != new ItemStack(Material.CHAINMAIL_LEGGINGS)) && (armor.getHelmet() != new ItemStack(Material.CHAINMAIL_HELMET))){
                                onlinePlayer.damage(config.getDouble("damage"));
                            }
                        }
                }
            }
        };
        getLogger().info("Anoxia is enabled");
        runnable.runTaskTimer(this, 1L, 5L);
    }
 
    public void onDisable(){
        runnable = null;
        getLogger().info("Anoxia is disabled");
    }
 
}
Большое спасибо!
Но есть все же ошибка:
Код:
2013-10-27 13:38:38 [SEVERE] Could not load 'plugins\Anoxia.jar' in folder 'plugins'
org.bukkit.plugin.InvalidDescriptionException: Invalid plugin.yml
    at org.bukkit.plugin.java.JavaPluginLoader.getPluginDescription(JavaPluginLoader.java:247)
    at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:132)
    at org.bukkit.craftbukkit.v1_6_R2.CraftServer.loadPlugins(CraftServer.java:243)
    at net.minecraft.server.v1_6_R2.DedicatedServer.init(DedicatedServer.java:117)
    at net.minecraft.server.v1_6_R2.MinecraftServer.run(MinecraftServer.java:397)
    at net.minecraft.server.v1_6_R2.ThreadServerApplication.run(SourceFile:582)
Caused by: java.io.FileNotFoundException: Jar does not contain plugin.yml
    ... 6 more

Скорей всего бо нету файлы настроек, так?
 
Большое спасибо!
Но есть все же ошибка:
Код:
2013-10-27 13:38:38 [SEVERE] Could not load 'plugins\Anoxia.jar' in folder 'plugins'
org.bukkit.plugin.InvalidDescriptionException: Invalid plugin.yml
    at org.bukkit.plugin.java.JavaPluginLoader.getPluginDescription(JavaPluginLoader.java:247)
    at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:132)
    at org.bukkit.craftbukkit.v1_6_R2.CraftServer.loadPlugins(CraftServer.java:243)
    at net.minecraft.server.v1_6_R2.DedicatedServer.init(DedicatedServer.java:117)
    at net.minecraft.server.v1_6_R2.MinecraftServer.run(MinecraftServer.java:397)
    at net.minecraft.server.v1_6_R2.ThreadServerApplication.run(SourceFile:582)
Caused by: java.io.FileNotFoundException: Jar does not contain plugin.yml
    ... 6 more

Скорей всего бо нету файлы настроек, так?
plugin.yml отсутствует.
YAML:
name: Anoxia
main: Anoxia.Anoxia
version: 1.0
 
А исправить ошибки не мог бы? :)
А то все собираюсь сесть за стол с учебником Java, но не как время из за C, C++ нету...
Bukkit API срет на какой то метод, точно сказать не могу, на какой именно, но, вроде бы из-за получения значения высоты из конфига. На какой высоте игроки должны получать урон?
 
Bukkit API срет на какой то метод, точно сказать не могу, на какой именно, но, вроде бы из-за получения значения высоты из конфига. На какой высоте игроки должны получать урон?
Для теста можно взять 110
 
После входа игрока, каждую секунду постит такую ошибку:

Код:
2013-10-27 15:36:33 [WARNING] [Anoxia] Task #2 for Anoxia v1.0 generated an exception
java.lang.NullPointerException
    at Anoxia.Anoxia$1.run(Anoxia.java:24)
    at org.bukkit.craftbukkit.v1_6_R2.scheduler.CraftTask.run(CraftTask.java:58)
    at org.bukkit.craftbukkit.v1_6_R2.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:345)
    at net.minecraft.server.v1_6_R2.MinecraftServer.t(MinecraftServer.java:518)
    at net.minecraft.server.v1_6_R2.DedicatedServer.t(DedicatedServer.java:239)
    at net.minecraft.server.v1_6_R2.MinecraftServer.s(MinecraftServer.java:481)
    at net.minecraft.server.v1_6_R2.MinecraftServer.run(MinecraftServer.java:413)
    at net.minecraft.server.v1_6_R2.ThreadServerApplication.run(SourceFile:582)
 
После входа игрока, каждую секунду постит такую ошибку:

Код:
2013-10-27 15:36:33 [WARNING] [Anoxia] Task #2 for Anoxia v1.0 generated an exception
java.lang.NullPointerException
    at Anoxia.Anoxia$1.run(Anoxia.java:24)
    at org.bukkit.craftbukkit.v1_6_R2.scheduler.CraftTask.run(CraftTask.java:58)
    at org.bukkit.craftbukkit.v1_6_R2.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:345)
    at net.minecraft.server.v1_6_R2.MinecraftServer.t(MinecraftServer.java:518)
    at net.minecraft.server.v1_6_R2.DedicatedServer.t(DedicatedServer.java:239)
    at net.minecraft.server.v1_6_R2.MinecraftServer.s(MinecraftServer.java:481)
    at net.minecraft.server.v1_6_R2.MinecraftServer.run(MinecraftServer.java:413)
    at net.minecraft.server.v1_6_R2.ThreadServerApplication.run(SourceFile:582)
Перекачай.
 
Назад
Верх