Skip to content

Commit 6f49293

Browse files
author
Meru | m9eenn
authored
Merge pull request #48 from AfnwTeam/feat/#44
feat: ネザーリスポーン機能の追加
2 parents 60f8737 + 925d64a commit 6f49293

File tree

2 files changed

+39
-0
lines changed

2 files changed

+39
-0
lines changed

src/main/java/net/azisaba/afnw/afnwcore2/AfnwCore2.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import net.azisaba.afnw.afnwcore2.listeners.player.FirstPlayerJoinListener;
2121
import net.azisaba.afnw.afnwcore2.listeners.player.JoinListener;
2222
import net.azisaba.afnw.afnwcore2.listeners.player.QuitListener;
23+
import net.azisaba.afnw.afnwcore2.listeners.player.RespawnNether;
2324
import net.azisaba.afnw.afnwcore2.util.data.PlayerData;
2425
import net.azisaba.afnw.afnwcore2.util.data.PlayerDataSave;
2526
import org.bukkit.Bukkit;
@@ -61,6 +62,7 @@ public void onEnable() {
6162
pluginEvent.registerEvents(new DeathListener(), this);
6263
pluginEvent.registerEvents(new FirstPlayerJoinListener(this, data), this);
6364
pluginEvent.registerEvents(new AFKListener(this), this);
65+
pluginEvent.registerEvents(new RespawnNether(this), this);
6466
/* エンティティリスナー */
6567
pluginEvent.registerEvents(new WitherSpawn(this), this);
6668
getLogger().info("Listener 設定完了");
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package net.azisaba.afnw.afnwcore2.listeners.player;
2+
3+
import org.bukkit.Bukkit;
4+
import org.bukkit.Location;
5+
import org.bukkit.World;
6+
import org.bukkit.World.Environment;
7+
import org.bukkit.configuration.file.FileConfiguration;
8+
import org.bukkit.entity.Player;
9+
import org.bukkit.event.EventHandler;
10+
import org.bukkit.event.Listener;
11+
import org.bukkit.event.player.PlayerRespawnEvent;
12+
import org.bukkit.plugin.java.JavaPlugin;
13+
14+
public record RespawnNether(JavaPlugin plugin) implements Listener {
15+
16+
@EventHandler
17+
public void onRespawn(PlayerRespawnEvent e) {
18+
Player p = e.getPlayer();
19+
if(e.getRespawnLocation().getWorld().getEnvironment() != Environment.NETHER) {
20+
return;
21+
}
22+
23+
Location respawn = p.getBedSpawnLocation();
24+
25+
if(respawn == null) {
26+
FileConfiguration config = plugin.getConfig();
27+
World lobby = Bukkit.getWorld(config.getString("tp.lobby_world_name", "lobby"));
28+
if(lobby == null) {
29+
throw new NullPointerException("Lobby World could not be found");
30+
}
31+
e.setRespawnLocation(lobby.getSpawnLocation());
32+
} else {
33+
e.setRespawnLocation(respawn);
34+
}
35+
}
36+
37+
}

0 commit comments

Comments
 (0)