类org.bukkit.event.player.PlayerRespawnEvent源码实例Demo

下面列出了怎么用org.bukkit.event.player.PlayerRespawnEvent的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: TAB   文件: NameTagX.java
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void a(PlayerRespawnEvent e) {
	ITabPlayer p = Shared.getPlayer(e.getPlayer().getUniqueId());
	if (p == null) return;
	if (!p.disabledNametag) Shared.featureCpu.runMeasuredTask("processing PlayerRespawnEvent", CPUFeature.NAMETAGX_EVENT_RESPAWN, new Runnable() {
		public void run() {
			for (ArmorStand as : p.getArmorStands()) {
				as.updateLocation(e.getRespawnLocation());
				List<ITabPlayer> nearbyPlayers = as.getNearbyPlayers();
				synchronized (nearbyPlayers){
					for (ITabPlayer nearby : nearbyPlayers) {
						nearby.sendPacket(as.getTeleportPacket(nearby));
					}
				}
			}
		}
	});
}
 
源代码2 项目: MineTinker   文件: Soulbound.java
/**
 * Effect if a player respawns
 */
@EventHandler
public void effect(PlayerRespawnEvent event) {
	Player player = event.getPlayer();

	if (!player.hasPermission("minetinker.modifiers.soulbound.use")) {
		return;
	}

	if (!storedItemStacks.containsKey(player.getUniqueId())) {
		return;
	}

	ArrayList<ItemStack> stored = storedItemStacks.get(player.getUniqueId());

	for (ItemStack is : stored) {
		if (player.getInventory().addItem(is).size() != 0) { //adds items to (full) inventory
			player.getWorld().dropItem(player.getLocation(), is);
		} // no else as it gets added in if
		ChatWriter.logModifier(player, event, this, is);
	}

	storedItemStacks.remove(player.getUniqueId());
}
 
源代码3 项目: EnchantmentsEnhance   文件: PlayerDeathListener.java
/**
 * Returns enhanced item to the player when respawn.
 *
 * @param e
 */
@EventHandler(priority = EventPriority.MONITOR)
public void onPlayerRespawn(PlayerRespawnEvent e) {
    Player p = e.getPlayer();

    File playerFile = new File(m.getDataFolder() + "/death/" + p.getName() + ".yml");
    FileConfiguration pFile = YamlConfiguration.loadConfiguration(
            playerFile);
    if (playerFile.exists()) {
        ItemStack[] content = ((List<?>) pFile.get("Items"))
                .toArray(new ItemStack[0]);
        p.getInventory().addItem(content);

        if (playerFile.delete()) {
            // Delete a file.
        }
    }
}
 
源代码4 项目: Civs   文件: DeathListener.java
@EventHandler
public void onPlayerRespawn(PlayerRespawnEvent event) {
    final Player player = event.getPlayer();
    final Civilian civilian = CivilianManager.getInstance().getCivilian(player.getUniqueId());
    Location respawnLocation = civilian.getRespawnPoint();
    if (respawnLocation == null) {
        return;
    }

    if (ConfigManager.getInstance().getUseStarterBook()) {
        Bukkit.getScheduler().scheduleSyncDelayedTask(Civs.getInstance(), new Runnable() {
            @Override
            public void run() {
                player.getInventory().addItem(Util.createStarterBook(civilian.getLocale()));
            }
        }, 5L);
    }
    event.setRespawnLocation(respawnLocation);
    civilian.setRespawnPoint(null);
    CivilianManager.getInstance().saveCivilian(civilian);
}
 
源代码5 项目: Skript   文件: ExprLevel.java
@Override
@Nullable
public Class<?>[] acceptChange(final ChangeMode mode) {
	if (mode == ChangeMode.REMOVE_ALL)
		return null;
	if (ScriptLoader.isCurrentEvent(PlayerRespawnEvent.class) && !ScriptLoader.hasDelayBefore.isTrue()) {
		Skript.error("Cannot change a player's level in a respawn event. Add a delay of 1 tick or change the 'new level' in a death event.");
		return null;
	}
	if (ScriptLoader.isCurrentEvent(PlayerDeathEvent.class) && getTime() == 0 && getExpr().isDefault() && !ScriptLoader.hasDelayBefore.isTrue()) {
		Skript.warning("Changing the player's level in a death event will change the player's level before he dies. " +
				"Use either 'past level of player' or 'new level of player' to clearly state whether to change the level before or after he dies.");
	}
	if (getTime() == -1 && !ScriptLoader.isCurrentEvent(PlayerDeathEvent.class))
		return null;
	return new Class[] {Number.class};
}
 
源代码6 项目: AnnihilationPro   文件: GameListeners.java
@EventHandler(priority=EventPriority.HIGHEST,ignoreCancelled = true)
public void respawnHandler(PlayerRespawnEvent event)
{
	final Player player = event.getPlayer();
	final AnniPlayer p = AnniPlayer.getPlayer(player.getUniqueId());
	if(p != null)
	{
		if(Game.isGameRunning())
		{
			if(p.getTeam() != null && !p.getTeam().isTeamDead())
			{
				event.setRespawnLocation(p.getTeam().getRandomSpawn());
				p.getKit().onPlayerSpawn(player);
				return;
			}
		}
		if(Game.LobbyMap != null && Game.LobbyMap.getSpawn() != null)
			event.setRespawnLocation(Game.LobbyMap.getSpawn());  //Set people to respawn in the lobby
	}
}
 
源代码7 项目: BedwarsRel   文件: PlayerListener.java
@EventHandler(priority = EventPriority.HIGHEST)
public void onPlayerRespawn(PlayerRespawnEvent pre) {
  Player p = pre.getPlayer();
  Game game = BedwarsRel.getInstance().getGameManager().getGameOfPlayer(p);

  if (game == null) {
    return;
  }

  if (game.getState() == GameState.RUNNING) {
    game.getCycle().onPlayerRespawn(pre, p);
    return;
  }

  if (game.getState() == GameState.WAITING) {
    pre.setRespawnLocation(game.getLobby());
  }
}
 
源代码8 项目: BetonQuest   文件: QuestItemHandler.java
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onRespawn(final PlayerRespawnEvent event) {
    if (Config.getString("config.remove_items_after_respawn").equals("false"))
        return;
    // some plugins block item dropping after death and add those
    // items after respawning, so the player doesn't loose his
    // inventory after death; this aims to force removing quest
    // items, as they have been added to the backpack already
    if (event.getPlayer().getGameMode() == GameMode.CREATIVE)
        return;
    final Inventory inv = event.getPlayer().getInventory();
    for (int i = 0; i < inv.getSize(); i++) {
        if (Utils.isQuestItem(inv.getItem(i))) {
            inv.setItem(i, null);
        }
    }
}
 
源代码9 项目: BetonQuest   文件: RespawnObjective.java
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onRespawn(PlayerRespawnEvent event) {
    String playerID = PlayerConverter.getID(event.getPlayer());
    if (containsPlayer(playerID) && checkConditions(playerID)) {

        if (location != null) {
            try {
                event.setRespawnLocation(location.getLocation(playerID));
            } catch (QuestRuntimeException e) {
                LogUtils.getLogger().log(Level.WARNING, "Error while handling '" + instruction.getID() + "' objective: \" + e.getMessage()");
                LogUtils.logThrowable(e);
            }
        }
        completeObjective(playerID);
    }
}
 
源代码10 项目: civcraft   文件: ArenaListener.java
@EventHandler(priority = EventPriority.HIGHEST)
public void onPlayerRespawn(PlayerRespawnEvent event) {
	Resident resident = CivGlobal.getResident(event.getPlayer());
	
	if (!resident.isInsideArena()) {
		return;
	}
	
	Arena arena = resident.getCurrentArena();
	if (arena == null) {
		return;
	}
	
	Location loc = arena.getRespawnLocation(resident);
	if (loc != null) {
		CivMessage.send(resident, CivColor.LightGray+"Respawned in arena.");
		World world = Bukkit.getWorld(arena.getInstanceName());
		loc.setWorld(world);
		
		resident.setLastKilledTime(new Date());
		event.setRespawnLocation(loc);
	}
}
 
源代码11 项目: askyblock   文件: PlayerEvents.java
/**
 * Places player back on their island if the setting is true
 * @param e - event
 */
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onPlayerRespawn(final PlayerRespawnEvent e) {
    if (DEBUG) {
        plugin.getLogger().info(e.getEventName());
    }
    if (!Settings.respawnOnIsland) {
        return;
    }
    if (respawn.contains(e.getPlayer().getUniqueId())) {
        respawn.remove(e.getPlayer().getUniqueId());
        Location respawnLocation = plugin.getGrid().getSafeHomeLocation(e.getPlayer().getUniqueId(), 1);
        if (respawnLocation != null) {
            //plugin.getLogger().info("DEBUG: Setting respawn location to " + respawnLocation);
            e.setRespawnLocation(respawnLocation);
            // Get island
            Island island = plugin.getGrid().getIslandAt(respawnLocation);
            if (island != null) {
                // Run perms etc.
                processPerms(e.getPlayer(), island);
            }
        }
    }
}
 
源代码12 项目: AuthMeReloaded   文件: PlayerListenerTest.java
@Test
public void shouldIgnorePlayerRespawn() {
    // given
    Player player = mock(Player.class);
    Location respawnLocation = mock(Location.class);
    PlayerRespawnEvent event = spy(new PlayerRespawnEvent(player, respawnLocation, false));
    given(settings.getProperty(RestrictionSettings.NO_TELEPORT)).willReturn(false);
    given(listenerService.shouldCancelEvent(event)).willReturn(false);

    // when
    listener.onPlayerRespawn(event);

    // then
    verifyNoInteractions(spawnLoader);
    verify(event, never()).setRespawnLocation(any());
}
 
源代码13 项目: AuthMeReloaded   文件: PlayerListenerTest.java
@Test
public void shouldHandlePlayerRespawn() {
    // given
    Player player = mock(Player.class);
    Location originalLocation = mock(Location.class);
    Location newLocation = mock(Location.class);
    World world = mock(World.class);
    given(newLocation.getWorld()).willReturn(world);
    PlayerRespawnEvent event = spy(new PlayerRespawnEvent(player, originalLocation, false));
    given(settings.getProperty(RestrictionSettings.NO_TELEPORT)).willReturn(false);
    given(listenerService.shouldCancelEvent(event)).willReturn(true);
    given(spawnLoader.getSpawnLocation(player)).willReturn(newLocation);

    // when
    listener.onPlayerRespawn(event);

    // then
    verify(spawnLoader).getSpawnLocation(player);
    verify(event).setRespawnLocation(newLocation);
}
 
源代码14 项目: AuthMeReloaded   文件: PlayerListenerTest.java
@Test
public void shouldIgnorePlayerRespawnUnloadedWorld() {
    // given
    Player player = mock(Player.class);
    Location originalLocation = mock(Location.class);
    Location newLocation = mock(Location.class);
    given(newLocation.getWorld()).willReturn(null);
    PlayerRespawnEvent event = spy(new PlayerRespawnEvent(player, originalLocation, false));
    given(settings.getProperty(RestrictionSettings.NO_TELEPORT)).willReturn(false);
    given(listenerService.shouldCancelEvent(event)).willReturn(true);
    given(spawnLoader.getSpawnLocation(player)).willReturn(newLocation);

    // when
    listener.onPlayerRespawn(event);

    // then
    verify(spawnLoader).getSpawnLocation(player);
    verify(event, never()).setRespawnLocation(any());
}
 
源代码15 项目: AuthMeReloaded   文件: PlayerListenerTest.java
@Test
public void shouldHandlePlayerRespawnNoChanges() {
    // given
    Player player = mock(Player.class);
    Location originalLocation = mock(Location.class);
    PlayerRespawnEvent event = spy(new PlayerRespawnEvent(player, originalLocation, false));
    given(settings.getProperty(RestrictionSettings.NO_TELEPORT)).willReturn(false);
    given(listenerService.shouldCancelEvent(event)).willReturn(true);
    given(spawnLoader.getSpawnLocation(player)).willReturn(null);

    // when
    listener.onPlayerRespawn(event);

    // then
    verify(spawnLoader).getSpawnLocation(player);
    verify(event, never()).setRespawnLocation(any());
}
 
源代码16 项目: GriefDefender   文件: PlayerEventHandler.java
@EventHandler(priority = EventPriority.LOWEST)
public void onPlayerRespawn(PlayerRespawnEvent event) {
    Player player = event.getPlayer();
    if (!GriefDefenderPlugin.getInstance().claimsEnabledForWorld(player.getWorld().getUID())) {
        return;
    }

    final GDPlayerData playerData = GriefDefenderPlugin.getInstance().dataStore.getOrCreatePlayerData(player.getWorld(), player.getUniqueId());
    playerData.lastPvpTimestamp = null;
}
 
源代码17 项目: TAB   文件: BossBar_legacy.java
@EventHandler
public void a(PlayerRespawnEvent e) {
	try {
		long time = System.nanoTime();
		ITabPlayer p = Shared.getPlayer(e.getPlayer().getUniqueId());
		if (p != null) mainFeature.detectBossBarsAndSend(p);
		Shared.featureCpu.addTime(CPUFeature.BOSSBAR_LEGACY, System.nanoTime()-time);
	} catch (Throwable t) {
		Shared.errorManager.printError("An error occurred when processing PlayerRespawnEvent", t);
	}
}
 
源代码18 项目: UhcCore   文件: PlayerDeathListener.java
@EventHandler(priority = EventPriority.HIGHEST)
public void onPlayerRespawn(PlayerRespawnEvent event){
	PlayersManager pm = GameManager.getGameManager().getPlayersManager();
	UhcPlayer uhcPlayer = pm.getUhcPlayer(event.getPlayer());

	if(uhcPlayer.getState().equals(PlayerState.DEAD)){
		Bukkit.getScheduler().runTaskLater(UhcCore.getPlugin(), () -> pm.setPlayerSpectateAtLobby(uhcPlayer), 1);
	}
}
 
源代码19 项目: Skript   文件: ExprRespawnLocation.java
@Override
public boolean init(Expression<?>[] exprs, int matchedPattern, Kleenean isDelayed, ParseResult parseResult) {
	if (!ScriptLoader.isCurrentEvent(PlayerRespawnEvent.class)) {
		Skript.error("The expression 'respawn location' may only be used in the respawn event", ErrorQuality.SEMANTIC_ERROR);
		return false;
	}
	return true;
}
 
源代码20 项目: Skript   文件: EffTeleport.java
@Override
protected void execute(final Event e) {
	Location to = location.getSingle(e);
	if (to == null)
		return;
	if (Math.abs(to.getX() - to.getBlockX() - 0.5) < Skript.EPSILON && Math.abs(to.getZ() - to.getBlockZ() - 0.5) < Skript.EPSILON) {
		final Block on = to.getBlock().getRelative(BlockFace.DOWN);
		if (on.getType() != Material.AIR) {
			to = to.clone();
			// TODO 1.13 block height stuff
			//to.setY(on.getY() + Utils.getBlockHeight(on.getTypeId(), on.getData()));
		}
	}
	for (final Entity entity : entities.getArray(e)) {
		final Location loc;
		if (ignoreDirection(to.getYaw(), to.getPitch())) {
			loc = to.clone();
			loc.setPitch(entity.getLocation().getPitch());
			loc.setYaw(entity.getLocation().getYaw());
		} else {
			loc = to;
		}
		loc.getChunk().load();
		if (e instanceof PlayerRespawnEvent && entity.equals(((PlayerRespawnEvent) e).getPlayer()) && !Delay.isDelayed(e)) {
			((PlayerRespawnEvent) e).setRespawnLocation(loc);
		} else {
			entity.teleport(loc);
		}
	}
}
 
源代码21 项目: AACAdditionPro   文件: DataUpdaterEvents.java
@EventHandler(priority = EventPriority.MONITOR)
public void onRespawn(final PlayerRespawnEvent event)
{
    final User user = UserManager.getUser(event.getPlayer().getUniqueId());

    if (user != null) {
        user.getTimestampMap().nullifyTimeStamp(TimestampKey.INVENTORY_OPENED);
        user.getTimestampMap().updateTimeStamps(TimestampKey.LAST_RESPAWN, TimestampKey.LAST_TELEPORT);
    }
}
 
源代码22 项目: WildernessTp   文件: PlayRespawnEvent.java
@EventHandler
public void on(PlayerRespawnEvent e) {
    if (e.isBedSpawn() || e.getPlayer().getBedLocation() != null) {
        return;
    }

    if (e.getPlayer().hasPermission("wild.wildtp.respawn.except")) {
        return;
    }

    e.setRespawnLocation(loc.getRandomLoc(loc.getWorldInformation(e.getPlayer().getLocation()), e.getPlayer()));
}
 
@EventHandler(ignoreCancelled = true)
public void onPlayerRespawnEvent(PlayerRespawnEvent event)
{
	Player player = event.getPlayer();
	
	ApplicableRegionSet regions = this.plugin.getWorldGuardCommunicator().getRegionContainer().createQuery().getApplicableRegions(player.getLocation());
	
	Object respawnLocation = WorldGuardUtils.queryValueUnchecked(player, player.getWorld(), regions.getRegions(), Flags.RESPAWN_LOCATION);
	if (respawnLocation != null)
	{
		event.setRespawnLocation(WorldEditUtils.toLocation(respawnLocation));
	}
}
 
源代码24 项目: AnnihilationPro   文件: Bar.java
@EventHandler(priority = EventPriority.MONITOR)
public void onPlayerTeleport(final PlayerRespawnEvent event)
{
    if(event.getPlayer() != null && event.getRespawnLocation() != null)
    {
       // final AnniPlayer p = AnniPlayer.getPlayer(event.getPlayer().getUniqueId());
       // if(p != null)
       // {
            //					if(permanentBar)
            //						BarAPI.sendPermDragon(event.getPlayer());
            //					else
            handleTeleport(event.getPlayer(), event.getRespawnLocation().clone());
       // }
    }
}
 
源代码25 项目: AnimatedFrames   文件: PlayerListener.java
@EventHandler
public void on(final PlayerRespawnEvent event) {
	Bukkit.getScheduler().runTaskLaterAsynchronously(plugin, new Runnable() {
		@Override
		public void run() {
			for (AnimatedFrame frame : plugin.frameManager.getFramesInWorld(event.getPlayer().getWorld().getName())) {
				frame.addViewer(event.getPlayer());
			}
		}
	}, 20);
}
 
源代码26 项目: SonarPet   文件: PetOwnerListener.java
@EventHandler
public void onPlayerRespawn(PlayerRespawnEvent event) {
    final Player p = event.getPlayer();
    new BukkitRunnable() {

        @Override
        public void run() {
            EchoPet.getManager().loadPets(p, true, false, true);
        }

    }.runTaskLater(EchoPet.getPlugin(), 20L);
}
 
源代码27 项目: uSkyBlock   文件: PlayerEvents.java
@EventHandler(priority = EventPriority.HIGHEST)
public void onPlayerRespawn(PlayerRespawnEvent event) {
    if (Settings.extras_sendToSpawn) {
        return;
    }
    if (plugin.getWorldManager().isSkyWorld(event.getPlayer().getWorld())) {
        event.setRespawnLocation(plugin.getWorldManager().getWorld().getSpawnLocation());
    }
}
 
源代码28 项目: civcraft   文件: PlayerListener.java
@EventHandler(priority = EventPriority.HIGHEST)
public void onPlayerRespawn(PlayerRespawnEvent event) {
	
	Player player = event.getPlayer();
	Resident resident = CivGlobal.getResident(player);
	if (resident == null || !resident.hasTown()) {
		return;
	}
	
	if (War.isWarTime() && !resident.isInsideArena()) {
		if (resident.getTown().getCiv().getDiplomacyManager().isAtWar()) {
			//TownHall townhall = resident.getTown().getTownHall();
			Capitol capitol = resident.getCiv().getCapitolStructure();
			if (capitol != null) {
				BlockCoord respawn = capitol.getRandomRespawnPoint();
				if (respawn != null) {
					//PlayerReviveTask reviveTask = new PlayerReviveTask(player, townhall.getRespawnTime(), townhall, event.getRespawnLocation());
					resident.setLastKilledTime(new Date());
					event.setRespawnLocation(respawn.getCenteredLocation());
					CivMessage.send(player, CivColor.LightGray+"You've respawned in the War Room since it's WarTime and you're at war.");
					
					//TaskMaster.asyncTask("", reviveTask, 0);
				}
			}
		}
	}
	
}
 
源代码29 项目: Slimefun4   文件: TestSoulboundListener.java
@ParameterizedTest
@ValueSource(booleans = { true, false })
public void testItemRecover(boolean soulbound) {
    PlayerMock player = server.addPlayer();
    ItemStack item = new CustomItem(Material.DIAMOND_SWORD, "&4Cool Sword");
    SlimefunUtils.setSoulbound(item, soulbound);
    player.getInventory().setItem(6, item);
    player.setHealth(0);
    player.respawn();

    server.getPluginManager().assertEventFired(PlayerRespawnEvent.class, event -> {
        return player.getInventory().getItem(6).isSimilar(item) == soulbound;
    });
}
 
源代码30 项目: askyblock   文件: PlayerEvents.java
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onVistorSpawn(final PlayerRespawnEvent e) {
    if (DEBUG) {
        plugin.getLogger().info(e.getEventName());
    }
    // This will override any global settings
    if (Settings.allowVisitorKeepInvOnDeath) {
        InventorySave.getInstance().loadPlayerInventory(e.getPlayer());
        InventorySave.getInstance().clearSavedInventory(e.getPlayer());
    }
}
 
 类所在包
 同包方法