下面列出了org.bukkit.event.entity.EntityPortalEvent#getTo ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@EventHandler(priority = EventPriority.NORMAL)
public void onEntityPortalTeleport(EntityPortalEvent event) {
if (!(event.getEntity() instanceof Item))
return;
ConsoleLogger.debug("[ENTITYPORTALEVENT] A '" + event.getEntity().getName() + "' is going through a portal!");
String worldFrom = event.getFrom().getWorld().getName();
// For some reason, event.getTo().getWorld().getName() is sometimes null
if (event.getTo() == null || event.getTo().getWorld() == null) { // Not gonna bother checking name; its already a WTF that this is needed
ConsoleLogger.debug("[ENTITYPORTALEVENT] event.getTo().getWorld().getName() would throw a NPE! Exiting method!");
return;
}
String worldTo = event.getTo().getWorld().getName();
Group from = groupManager.getGroupFromWorld(worldFrom);
Group to = groupManager.getGroupFromWorld(worldTo);
// If the groups are different, cancel the event
if (!from.equals(to)) {
ConsoleLogger.debug("[ENTITYPORTALEVENT] Group '" + from.getName() + "' and group '" + to.getName() + "' are different! Canceling event!");
event.setCancelled(true);
}
}
@EventHandler(priority = EventPriority.NORMAL)
public void onEntityPortalTeleport(EntityPortalEvent event) {
if (!(event.getEntity() instanceof Item))
return;
ConsoleLogger.debug("[ENTITYPORTALEVENT] A '" + event.getEntity().getName() + "' is going through a portal!");
String worldFrom = event.getFrom().getWorld().getName();
// For some reason, event.getTo().getWorld().getName() is sometimes null
if (event.getTo() == null || event.getTo().getWorld() == null) { // Not gonna bother checking name; its already a WTF that this is needed
ConsoleLogger.debug("[ENTITYPORTALEVENT] event.getTo().getWorld().getName() would throw a NPE! Exiting method!");
return;
}
String worldTo = event.getTo().getWorld().getName();
Group from = groupManager.getGroupFromWorld(worldFrom);
Group to = groupManager.getGroupFromWorld(worldTo);
// If the groups are different, cancel the event
if (!from.equals(to)) {
ConsoleLogger.debug("[ENTITYPORTALEVENT] Group '" + from.getName() + "' and group '" + to.getName() + "' are different! Canceling event!");
event.setCancelled(true);
}
}
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
public void on(EntityPortalEvent event) {
if (isEnabled()) return;
if (event.getTo() == null) return;
if (event.getTo().getWorld().getEnvironment() == World.Environment.THE_END) {
event.setCancelled(true);
}
}
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
public void on(EntityPortalEvent event) {
if (isEnabled()) return;
if (event.getTo() == null) return;
if (event.getTo().getWorld().getEnvironment() == World.Environment.NETHER) {
event.setCancelled(true);
}
}