- Баллы
- 98
- Имя в Minecraft
- Planet0111
Помогите сделать что бы после проверки блока, после нажатия(использования) он удалялся
Дроп мобов
Java:
public class PlayerListener
implements Listener
{
public Main main;
public PlayerListener(Main main)
{
this.main = main;
main.getServer().getPluginManager().registerEvents(this, main);
}
@EventHandler
public void onInteract(PlayerInteractEvent e)
{
Player player = e.getPlayer();
ItemStack item = e.getItem();
if ((player == null) || (item == null)) {
return;
}
Material material = item.getType();
boolean blocked = check(item);
if (blocked)
{
item = new ItemStack(material);
if ((Config.ItemName != null) && (!Config.ItemName.equals("")))
{
ItemMeta meta = item.getItemMeta();
meta.setDisplayName(Config.ItemName);
item.setItemMeta(meta);
}
player.setItemInHand(item);
player.sendMessage(this.main.msgprefix + Config.Message);
e.setCancelled(true);
}
}
@EventHandler
public void onItemPickup(PlayerPickupItemEvent e)
{
Player player = e.getPlayer();
ItemStack item = e.getItem().getItemStack();
if ((player == null) || (item == null)) {
return;
}
boolean blocked = check(item);
if (blocked) {
e.setCancelled(true);
}
}
@EventHandler
public void onInventoryClick(InventoryClickEvent e)
{
Player player = (Player)e.getWhoClicked();
ItemStack item = e.getCurrentItem();
if ((player == null) || (item == null)) {
return;
}
Material material = item.getType();
boolean blocked = check(item);
if (blocked)
{
item = new ItemStack(material);
if ((Config.ItemName != null) && (!Config.ItemName.equals("")))
{
ItemMeta meta = item.getItemMeta();
meta.setDisplayName(Config.ItemName);
item.setItemMeta(meta);
}
player.setItemInHand(item);
player.sendMessage(this.main.msgprefix + Config.Message);
e.setCancelled(true);
}
}
public boolean check(ItemStack item)
{
boolean blocked = false;
for (Iterator i$ = item.getEnchantments().values().iterator(); i$.hasNext();)
{
int i = ((Integer)i$.next()).intValue();
if (i > Config.MaxLevel)
{
blocked = true;
break;
}
}
return blocked;
}
}
Дроп мобов
Java:
package emobs;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.regex.Pattern;
import org.bukkit.Material;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDeathEvent;
import org.*********ventory.ItemStack;
public class DeathListener
implements Listener
{
EasyMobs plugin;
public DeathListener(EasyMobs instance)
{
this.plugin = instance;
}
List<String> dropEntity = new ArrayList(Arrays.asList(new String[] { "ZOMBIE", "SKELETON", "PLAYER", "CREEPER" }));
@EventHandler
public void onDeathEvent(EntityDeathEvent event)
{
EntityType deadEntity = event.getEntityType();
String deadEntityName = deadEntity.toString();
if ((EasyMobs.configC.getBoolean("DISABLE_DEFAULTS")) && (!deadEntityName.equals("PLAYER"))) {
event.getDrops().clear();
}
if (event.getEntity().getKiller() != null)
{
Player killer = event.getEntity().getKiller();
if (killer.isOnline())
{
if (EasyMobs.configC.contains("EXP_" + deadEntityName)) {
event.setDroppedExp((int)EasyMobs.configC.getDouble("EXP_" + deadEntityName));
}
if (EasyMobs.configC.contains("DROP_" + deadEntityName))
{
List<String> dropList = new ArrayList();
dropList = EasyMobs.configC.getList("DROP_" + deadEntityName);
for (String i : dropList)
{
String[] segmente = i.split(Pattern.quote(", "));
ItemStack dropActual = dropItem(segmente);
if (dropActual != null) {
event.getDrops().add(dropActual);
}
}
}
if (this.dropEntity.contains(deadEntityName))
{
ItemStack dropSkullStack = dropSkull(deadEntityName);
if (dropSkullStack != null) {
event.getDrops().add(dropSkullStack);
}
}
}
}
}
public ItemStack dropItem(String[] segmente)
{
if (segmente.length == 4)
{
Material dropMaterial = Material.getMaterial(segmente[0]);
int dropMaximal = Integer.parseInt(segmente[1]);
double dropChance = Double.parseDouble(segmente[2]);
byte dropData = Byte.parseByte(segmente[3]);
int dropAmount = 0;
for (int d = 0; d < dropMaximal; d++)
{
double calc = Math.pow(dropChance / 100.0D, 1.0D / dropMaximal);
if (Math.random() <= calc) {
dropAmount++;
}
}
if (dropAmount > 0)
{
ItemStack dropActual = new ItemStack(dropMaterial, dropAmount, dropData);
return dropActual;
}
}
else if (segmente.length == 3)
{
Material dropMaterial = Material.getMaterial(segmente[0]);
int dropMaximal = Integer.parseInt(segmente[1]);
double dropChance = Double.parseDouble(segmente[2]);
int dropAmount = 0;
for (int d = 0; d < dropMaximal; d++)
{
double calc = Math.pow(dropChance / 100.0D, 1.0D / dropMaximal);
if (Math.random() <= calc) {
dropAmount++;
}
}
if (dropAmount > 0)
{
ItemStack dropActual = new ItemStack(dropMaterial, dropAmount);
return dropActual;
}
}
return null;
}
public ItemStack dropSkull(String deadEntityName)
{
byte skull = 1;
double skDropChance = 0.0D;
String str;
switch ((str = deadEntityName).hashCode())
{
case -1932423455:
if (str.equals("PLAYER")) {}
break;
case -1643025882:
if (str.equals("ZOMBIE")) {
break;
}
break;
case -1484593075:
if (str.equals("SKELETON")) {}
break;
case 1746652494:
if (!str.equals("CREEPER"))
{
break label162;
skull = 2;
skDropChance = EasyMobs.configC.getDouble("SKULL_DROP_ZOMBIE");
break label164;
skull = 0;
skDropChance = EasyMobs.configC.getDouble("SKULL_DROP_SKELETON");
break label164;
}
else
{
skull = 4;
skDropChance = EasyMobs.configC.getDouble("SKULL_DROP_CREEPER");
break label164;
skull = 3;
skDropChance = EasyMobs.configC.getDouble("SKULL_DROP_PLAYER");
}
break;
}
label162:
return null;
label164:
if (Math.random() * 100.0D <= skDropChance)
{
ItemStack head = new ItemStack(Material.SKULL_ITEM, 1, skull);
return head;
}
return null;
}
}
[/B]
Последнее редактирование: