Tyzun
Старожил
- Баллы
- 153
- Имя в Minecraft
- _Tyzun_
Сделал вот плагин, который должен сохранять инвентарь и опыт игрока, если тот имеет право, или сохранять все это если тот был убит игроком с другим правом. Но не работает. Выводов в консоль нет(кроме того, что плагин включился). Вот код:
Код:
package ua.tyzun.noloseitems;
import org.bukkit.Bukkit;
import java.util.List;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.scheduler.BukkitScheduler;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.*********ventory.ItemStack;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.java.JavaPlugin;
public class NoLoseItems extends JavaPlugin implements Listener {
@Override
public void OnEnable(){
getServer().getPluginManager().registerEvents(this, this);
}
@EventHandler(priority=EventPriority.HIGHEST)
public void onPlayerDeath(PlayerDeathEvent event)
{
final Player player = event.getEntity();
Player killer = event.getEntity().getKiller();
if((killer.hasPermission("nli.killer" && !killer.hasPermission("nli.killexempt") && player.hasPermission("nli.loseexempt")) || player.hasPermission("nli.exp")){
event.setKeepLevel(true);
event.setDroppedExp(0);
}
ItemStack is;
if((killer.hasPermission("nli.killer") && !killer.hasPermission("nli.killexempt") && player.hasPermission("nli.loseexempt")) || player.hasPermission("nli.inv")){
final ItemStack[] inventory = player.getInventory().getContents();
for (int i = 0; i < inventory.length; i++) {
is = inventory[i];
event.getDrops().remove(is);
}
Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable()
{
public void run()
{
player.getInventory().setContents(inventory);
}
});
}
if((killer.hasPermission("nli.killer") && !killer.hasPermission("nli.killexempt") && player.hasPermission("nli.loseexempt")) || player.hasPermission("nli.armor")){
final ItemStack[] armor = player.getInventory().getArmorContents();
Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable()
{
public void run()
{
player.getInventory().setArmorContents(armor);
}
});
ItemStack[] arrayOfItemStack1;
ItemStack localItemStack1 = (arrayOfItemStack1 = armor).length; for (is = 0; is < localItemStack1; is++) { ItemStack is = arrayOfItemStack1[is];
event.getDrops().remove(is);
}
}
if(player.hasPermission("nli.loseexempt") && !player.hasPermission("nli.donate")){
player.sendMessage("Вы были убиты донат игроком, поэтому ваш инвентарь был сохранен.");
}
if(player.hasPermission("nli.exp")){
player.sendMessage("Ваш опыт сохранен");
}
if(player.hasPermission("nli.inv")){
player.sendMessage("Ваш инвентарь сохранен");
}
if(player.hasPermission("nli.armor")){
player.sendMessage("Ваша бронь сохранена");
}
else {
}
}
}