Skip to content

Commit

Permalink
you can respawn on your island now, or whatever
Browse files Browse the repository at this point in the history
also rewrote the player utils class to use the spawn support from teams, its pretty cool
  • Loading branch information
sh0inx committed May 7, 2024
1 parent 38d8617 commit b19c7e5
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ public Configuration() {
public boolean clearEnderChestOnRegen = false;
public boolean allowPvPOnIslands = false;
public boolean islandCreateOnJoin = false;
public boolean spawnOnIsland = false;
public int distance = 151;
public int netherUnlockLevel = 10;
public int endUnlockLevel = 20;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package com.iridium.iridiumskyblock.listeners;

import com.iridium.iridiumskyblock.IridiumSkyblock;
import com.iridium.iridiumskyblock.utils.PlayerUtils;
import lombok.AllArgsConstructor;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerRespawnEvent;

@AllArgsConstructor
public class PlayerRespawnEventListener implements Listener {

@EventHandler(priority = EventPriority.HIGHEST)
public void onPlayerRespawnEvent(PlayerRespawnEvent event) {

if(!IridiumSkyblock.getInstance().getConfiguration().spawnOnIsland) { return; }
if(!event.isBedSpawn() && !event.isAnchorSpawn()) event.setRespawnLocation(PlayerUtils.getSpawn(event.getPlayer()));
}
}
40 changes: 27 additions & 13 deletions src/main/java/com/iridium/iridiumskyblock/utils/PlayerUtils.java
Original file line number Diff line number Diff line change
@@ -1,26 +1,40 @@
package com.iridium.iridiumskyblock.utils;

import com.earth2me.essentials.Essentials;
import com.earth2me.essentials.spawn.EssentialsSpawn;
import com.iridium.iridiumskyblock.IridiumSkyblock;
import com.iridium.iridiumskyblock.database.Island;
import com.iridium.iridiumteams.support.SpawnSupport;

import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.entity.Player;

import java.util.Optional;

public class PlayerUtils {

public static void teleportSpawn(Player player) {
World spawnWorld = Bukkit.getWorld(IridiumSkyblock.getInstance().getConfiguration().spawnWorldName);
if (spawnWorld == null) {
spawnWorld = Bukkit.getWorlds().get(0);
player.teleport(getSpawn(player));
}

public static Location getSpawn(Player player) {

if(IridiumSkyblock.getInstance().getConfiguration().spawnOnIsland) {
Optional<Island> island = IridiumSkyblock.getInstance().getTeamManager().getTeamViaNameOrPlayer(player.getName());
if(island.isPresent()) {
return island.get().getHome();
}
}

EssentialsSpawn essentialsSpawn = (EssentialsSpawn) Bukkit.getPluginManager().getPlugin("EssentialsSpawn");
Essentials essentials = (Essentials) Bukkit.getPluginManager().getPlugin("Essentials");
if (essentialsSpawn != null && essentials != null) {
player.teleport(essentialsSpawn.getSpawn(essentials.getUser(player).getGroup()));
} else {
player.teleport(spawnWorld.getSpawnLocation());
for(SpawnSupport spawnSupport : IridiumSkyblock.getInstance().getSupportManager().getSpawnSupport()) {
return spawnSupport.getSpawn(player);
}

World spawnWorld = Bukkit.getWorld(IridiumSkyblock.getInstance().getConfiguration().spawnWorldName);
if (spawnWorld != null) {
return spawnWorld.getSpawnLocation();
}
}

}
return Bukkit.getWorlds().get(0).getSpawnLocation();
}
}

0 comments on commit b19c7e5

Please sign in to comment.