added blacklist on-drop event

This commit is contained in:
Redecouverte 2011-02-22 02:48:57 +01:00
parent dcd3cb80b8
commit e15b01bac5
2 changed files with 31 additions and 0 deletions

View File

@ -19,6 +19,8 @@
package com.sk89q.worldguard.bukkit;
import com.sk89q.worldguard.blacklist.events.ItemDropBlacklistEvent;
import org.bukkit.entity.ItemDrop;
import org.bukkit.*;
import org.bukkit.block.Block;
import org.bukkit.entity.Player;
@ -93,6 +95,12 @@ public void onPlayerQuit(PlayerEvent event) {
*/
@Override
public void onPlayerItem(PlayerItemEvent event) {
if(event.isCancelled())
{
return;
}
Player player = event.getPlayer();
Block block = event.getBlockClicked();
ItemStack item = event.getItem();
@ -158,4 +166,26 @@ public void onPlayerLogin(PlayerLoginEvent event) {
}
}
}
/**
* Called when a player attempts to drop an item
*
* @param event Relevant event details
*/
@Override
public void onPlayerDropItem(PlayerDropItemEvent event) {
if (event.isCancelled()) {
return;
}
if (plugin.blacklist != null) {
ItemDrop id = event.getItemDrop();
if (!plugin.blacklist.check(new ItemDropBlacklistEvent(plugin.wrapPlayer(event.getPlayer()), toVector(id.getLocation()),
id.getItemStack().getTypeId()), false, false)) {
event.setCancelled(true);
return;
}
}
}
}

View File

@ -203,6 +203,7 @@ private void registerEvents() {
registerEvent(Event.Type.ENTITY_EXPLODE, entityListener, Priority.High);
registerEvent(Event.Type.PLAYER_ITEM, playerListener, Priority.High);
registerEvent(Event.Type.PLAYER_DROP_ITEM, playerListener, Priority.High);
registerEvent(Event.Type.PLAYER_JOIN, playerListener, Priority.Normal);
registerEvent(Event.Type.PLAYER_LOGIN, playerListener, Priority.Normal);
registerEvent(Event.Type.PLAYER_QUIT, playerListener, Priority.Normal);