- Баллы
- 103
Всем привет. Решил написать небольшой плагин, использующий API плагина iDisguise. Вот код :
При запуске этого плагина выводит такую вот ошибку:
Подскажите, пожалуйста, что я делаю не так?
Код:
package description.disguiseadd;
import org.bukkit.ChatColor;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.entity.Projectile;
import org.bukkit.entity.ThrownPotion;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.block.BlockPlaceEvent;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.event.entity.PotionSplashEvent;
import org.bukkit.plugin.java.JavaPlugin;
import de.robingrether.idisguise.api.DisguiseAPI;
public class DisguiseExPlugin extends JavaPlugin implements Listener {
private DisguiseAPI api;
public void onEnable() {
api = getServer().getServicesManager().getRegistration(DisguiseAPI.class).getProvider();
getServer().getPluginManager().registerEvents(this, this);
}
@EventHandler(priority = EventPriority.NORMAL)
public void onEntityDamage(EntityDamageEvent e) {
if(e.isCancelled()) return;
if (e.getEntity() instanceof Player){
if (e instanceof EntityDamageByEntityEvent) {
Player damager = null;
boolean cancel = false;
EntityDamageByEntityEvent edbye = (EntityDamageByEntityEvent) e;
if (edbye.getDamager() instanceof Projectile){
Projectile projectile = (Projectile) edbye.getDamager();
if (projectile.getShooter() instanceof Player) {
damager = (Player) projectile.getShooter();
cancel = true;
}
} else if (edbye.getDamager() instanceof Player) {
damager = (Player) edbye.getDamager();
cancel = true;
}
if (cancel && api.isDisguised(damager) && !damager.hasPermission("disguiseex.ignore")) {
damager.sendMessage(ChatColor.RED+"Вы не можете бить игрока будучи замаскированным!");
e.setCancelled(true);
}
}
}
}
@EventHandler(priority = EventPriority.NORMAL)
public void PotionHit(PotionSplashEvent event) {
if (event.isCancelled()) return;
ThrownPotion potion = event.getPotion();
if (potion.getShooter() instanceof Player) {
Player damager = (Player) potion.getShooter();
for(LivingEntity entity : event.getAffectedEntities()) {
if (entity instanceof Player) {
if (!((Player) entity).equals(damager)) {
if (api.isDisguised(damager) && !damager.hasPermission("disguiseex.ignore")) {
damager.sendMessage(ChatColor.RED+"Вы не можете наносить урон игроку будучи замаскированным!");
event.setCancelled(true);
}
}
}
}
}
}
@EventHandler(priority = EventPriority.NORMAL)
public void onBlockPlace (BlockPlaceEvent e) {
if (e.isCancelled()) return;
Player player = e.getPlayer();
if (api.isDisguised(player) && !player.hasPermission("disguiseex.ignore")) {
player.sendMessage(ChatColor.RED+"Вы не можете строить будучи замаскированным!");
e.setCancelled(true);
}
}
@EventHandler(priority = EventPriority.NORMAL)
public void onBlockBreak (BlockBreakEvent e) {
if (e.isCancelled()) return;
Player player = e.getPlayer();
if (api.isDisguised(player) && !player.hasPermission("disguiseex.ignore")) {
player.sendMessage(ChatColor.RED+"Вы не можете ломать блоки будучи замаскированным!");
e.setCancelled(true);
}
}
}
Код:
2014-09-26 17:05:49 [SEVERE] Error occurred while enabling DisguiseExtention v1.0 (Is it up to date?)
java.lang.NullPointerException
at description.disguiseadd.DisguiseExPlugin.onEnable(DisguiseExPlugin.java:24)
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:217)
at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:467)
at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:383)
at org.bukkit.craftbukkit.v1_6_R3.CraftServer.loadPlugin(CraftServer.java:279)
at org.bukkit.craftbukkit.v1_6_R3.CraftServer.enablePlugins(CraftServer.java:261)
at net.minecraft.server.MinecraftServer.func_71243_i(MinecraftServer.java:522)
at net.minecraft.server.MinecraftServer.func_71222_d(MinecraftServer.java:486)
at net.minecraft.server.MinecraftServer.func_71247_a(MinecraftServer.java:429)
at net.minecraft.server.dedicated.DedicatedServer.func_71197_b(DedicatedServer.java:225)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:637)
at net.minecraft.server.ThreadMinecraftServer.run(SourceFile:583)