PortalListener.java 文件源码

java
阅读 21 收藏 0 点赞 0 评论 0

项目:CraftoPlugin 作者:
@EventHandler
public void onPlayerPortal(PlayerPortalEvent event) {
    if (!event.getCause().equals(TeleportCause.NETHER_PORTAL)) { return; }

    Location cornerLocation = PortalUtils.findCornerBlock(event.getFrom()).orElse(null);
    if (cornerLocation == null) { debug("Couldnt find cornerLoc for loc: " + Utility.toString(event.getFrom())); return; }

    Portal portal = this.module.storage.getPortal(cornerLocation).orElse(null);
    if (portal == null) { debug("Couldnt find portal for cornerLoc: " + Utility.toString(cornerLocation)); return; }

    CraftoPlayer player = CraftoPlayer.getPlayer(event.getPlayer()).orElse(null);

    if (!event.getPlayer().hasPermission("craftoplugin.portal.always-teleport")) {
        if (player != null && player.getPlaytime().toMinutes() < this.minPlaytime.toMinutes()) {
            debug(event.getPlayer().getName() + " failed to teleport because he doesn't have permission!");
            CraftoMessenger.sendFailure(event.getPlayer(), "Du kannst erst ab " + this.minPlaytime.toMinutes() + " Minuten Spielzeit das Portal nutzen!");
            event.setCancelled(true);
            return;
        }
    }

    event.useTravelAgent(false);
    event.setTo(portal.getDestination());

    debug("Teleported " + event.getPlayer().getName() + " to dest of portal '" + portal.getName() + "'");
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号