/** * This player enters the specified bed and is marked as sleeping. * * @param block the bed */ public void enterBed(GlowBlock block) { checkNotNull(block, "Bed block cannot be null"); Preconditions.checkState(bed == null, "Player already in bed"); GlowBlock head = BlockBed.getHead(block); GlowBlock foot = BlockBed.getFoot(block); if (EventFactory.getInstance() .callEvent(new PlayerBedEnterEvent(this, head)).isCancelled()) { return; } // Occupy the bed BlockBed.setOccupied(head, foot, true); bed = head; sleeping = true; setRawLocation(head.getLocation(), false); getSession().send(new UseBedMessage(SELF_ID, head.getX(), head.getY(), head.getZ())); UseBedMessage msg = new UseBedMessage(getEntityId(), head.getX(), head.getY(), head.getZ()); world.getRawPlayers().stream().filter(p -> p != this && p.canSeeEntity(this)) .forEach(p -> p.getSession().send(msg)); }
@EventHandler public void onSleep(PlayerBedEnterEvent bee) { Player p = bee.getPlayer(); Game g = BedwarsRel.getInstance().getGameManager().getGameOfPlayer(p); if (g == null) { return; } if (g.getState() == GameState.STOPPED) { return; } bee.setCancelled(true); }
/** * We listen to this event to prevent player from flying by sending bed leaving packets. * * @param event * the event */ @EventHandler( priority = EventPriority.MONITOR) public void onPlayerBedEnter(final PlayerBedEnterEvent event) { DataManager.getGenericInstance(event.getPlayer(), CombinedData.class).wasInBed = true; }
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) public void onPlayerSleep(PlayerBedEnterEvent event) { Location b = event.getBed().getLocation(); if (plugin.getUtils().inTARDISWorld(b) && b.getWorld().getEnvironment().equals(Environment.THE_END)) { event.setCancelled(true); } } }
public BukkitMCPlayerBedEvent(PlayerBedEnterEvent event) { super(event); this.event = event; this.block = new BukkitMCBlock(event.getBed()); }
@EventHandler public void onSleep(PlayerBedEnterEvent bee) { Player p = bee.getPlayer(); Game g = BedwarsRel.getInstance().getGameManager().getGameOfPlayer(p); if (g == null) { return; } if (g.getState() == GameState.STOPPED) { return; } bee.setCancelled(true); }
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) public void onPlayerBedEnter(PlayerBedEnterEvent event) { Player player = event.getPlayer(); NormalAchievements category = NormalAchievements.BEDS; if (!shouldIncreaseBeTakenIntoAccount(player, category) || isInCooldownPeriod(player, false, category)) { return; } updateStatisticAndAwardAchievementsIfAvailable(player, category, 1); } }