[SPIGOT-6684] Add PlayerPostRespawnEvent Created: 01/Aug/21 Updated: 02/Aug/21 Resolved: 01/Aug/21 |
|
Status: | Resolved |
Project: | Spigot |
Component/s: | None |
Affects Version/s: | None |
Fix Version/s: | None |
Type: | New Feature | Priority: | Minor |
Reporter: | Joel Paulien | Assignee: | Unassigned |
Resolution: | Won't Fix | Votes: | 0 |
Labels: | Craftbukkit, bukkit, event |
Version: | This server is running CraftBukkit version git-Bukkit-97f629b (MC: 1.17.1) (Implementing API version 1.17.1-R0.1-SNAPSHOT) |
Guidelines Read: | Yes |
Description |
Add an event that is fired after the player has respawned. Without this event, some of the logic in the PlayerRespawnEvent, such as giving the player some inventory items, has to be done through a task set to run at least one tick later. |
Comments |
Comment by Joel Paulien [ 02/Aug/21 ] |
Can I get some sort of response here? |
Comment by Joel Paulien [ 02/Aug/21 ] |
Alright, you do seem to have a reason for saying that. The following is a test that I did to see what works and what doesn't without having some of the code run later:
@EventHandler (priority = EventPriority.HIGHEST) public void onPlayerRespawn(PlayerRespawnEvent event) { final Player player = event.getPlayer(); Inventory inventory = player.getInventory(); ItemStack[] invStack = new ItemStack[35]; for (int i = 0; i < invStack.length; i++) { invStack[i] = new ItemStack(Material.GOLDEN_APPLE, 5); } inventory.setContents(invStack); inventory.addItem(new ItemStack(Material.NETHERITE_SWORD, 2)); Bukkit.getScheduler().scheduleSyncDelayedTask(this, () -> { player.setHealth(10); player.setFoodLevel(5); player.giveExpLevels(5000000); }, 1); } The PlayerPostRespawnEvent wouldn't need the code to be run later. I don't know if you want to relocate the PlayerRespawnEvent call or not. I just figured I'd let you know what I did. |
Comment by md_5 [ 01/Aug/21 ] |
No, this is a terrible idea, otherwise every event would have a post event. If 'some logic' cannot be done in the existing event, then that is a bug in the event. |