Skip to content

Commit

Permalink
Allow "on player login", add "on player picks up item"
Browse files Browse the repository at this point in the history
  • Loading branch information
Morphan1 committed Aug 15, 2013
1 parent 7520a90 commit 4beb5f5
Showing 1 changed file with 52 additions and 24 deletions.
Expand Up @@ -19,6 +19,7 @@
import org.bukkit.World;
import org.bukkit.block.Block;
import org.bukkit.block.Sign;
import org.bukkit.entity.Arrow;
import org.bukkit.entity.Entity;
import org.bukkit.entity.ItemFrame;
import org.bukkit.entity.LivingEntity;
Expand Down Expand Up @@ -70,6 +71,7 @@
import org.bukkit.event.player.PlayerLevelChangeEvent;
import org.bukkit.event.player.PlayerLoginEvent;
import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.event.player.PlayerPickupItemEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.event.player.PlayerRespawnEvent;
import org.bukkit.event.server.ServerCommandEvent;
Expand Down Expand Up @@ -1428,6 +1430,55 @@ public void playerItemConsume(PlayerItemConsumeEvent event) {
event.setCancelled(true);
}

@EventHandler
public void playerMoveEvent(PlayerMoveEvent event) {
if (event.getFrom().getBlock().equals(event.getTo().getBlock())) return;

String name = dLocation.getSaved(event.getPlayer().getLocation());

if (name != null) {
Map<String, Object> context = new HashMap<String, Object>();
context.put("notable", new Element(name));

String determination = doEvents(Arrays.asList
("player walks over notable",
"player walks over " + name,
"walked over notable",
"walked over " + name),
null, event.getPlayer(), context);

if (determination.toUpperCase().startsWith("CANCELLED") ||
determination.toUpperCase().startsWith("FROZEN"))
event.setCancelled(true);
}
}

@EventHandler
public void playerPickupItem(PlayerPickupItemEvent event) {
Map<String, Object> context = new HashMap<String, Object>();
context.put("item", new dItem(event.getItem().getItemStack()));
context.put("location", new dLocation(event.getItem().getLocation()));

Entity item = event.getItem();
List<String> events = new ArrayList<String>();

if (item instanceof Arrow) {
events.add("player pickup arrow");
events.add("player take arrow");
events.add("player picks up arrow");
events.add("player takes arrow");
}
events.add("player pickup item");
events.add("player take item");
events.add("player picks up item");
events.add("player takes item");

String determination = doEvents(events, null, event.getPlayer(), context);

if (determination.toUpperCase().startsWith("CANCELLED"))
event.setCancelled(true);
}

@EventHandler
public void joinEvent(PlayerJoinEvent event) {
Map<String, Object> context = new HashMap<String, Object>();
Expand Down Expand Up @@ -1464,36 +1515,13 @@ public void loginEvent(PlayerLoginEvent event) {
context.put("hostname", new Element(event.getHostname()));

String determination = doEvents(Arrays.asList
("player logs in"),
("player logs in", "player login"),
null, event.getPlayer(), context);

// Handle determine kicked
if (determination.toUpperCase().startsWith("KICKED"))
event.disallow(PlayerLoginEvent.Result.KICK_OTHER, determination);
}

@EventHandler
public void playerMoveEvent(PlayerMoveEvent event) {
if (event.getFrom().getBlock().equals(event.getTo().getBlock())) return;

String name = dLocation.getSaved(event.getPlayer().getLocation());

if (name != null) {
Map<String, Object> context = new HashMap<String, Object>();
context.put("notable", new Element(name));

String determination = doEvents(Arrays.asList
("player walks over notable",
"player walks over " + name,
"walked over notable",
"walked over " + name),
null, event.getPlayer(), context);

if (determination.toUpperCase().startsWith("CANCELLED") ||
determination.toUpperCase().startsWith("FROZEN"))
event.setCancelled(true);
}
}

@EventHandler
public void quitEvent(PlayerQuitEvent event) {
Expand Down

0 comments on commit 4beb5f5

Please sign in to comment.