mirror of
https://github.com/CarmJos/cn2b2t-project.git
synced 2024-09-19 22:05:45 +00:00
重生随机地图
This commit is contained in:
parent
118973921a
commit
045114f809
@ -1,6 +1,8 @@
|
|||||||
package org.cn2b2t.common.listeners;
|
package org.cn2b2t.common.listeners;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.World;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
@ -8,38 +10,49 @@ import org.bukkit.event.player.PlayerChangedWorldEvent;
|
|||||||
import org.bukkit.event.player.PlayerRespawnEvent;
|
import org.bukkit.event.player.PlayerRespawnEvent;
|
||||||
import org.cn2b2t.common.functions.ProfileData;
|
import org.cn2b2t.common.functions.ProfileData;
|
||||||
|
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
public class RespawnListener implements Listener {
|
public class RespawnListener implements Listener {
|
||||||
|
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void onDeath(PlayerRespawnEvent e) {
|
public void onDeath(PlayerRespawnEvent e) {
|
||||||
Player p = e.getPlayer();
|
Player p = e.getPlayer();
|
||||||
p.setMaxHealth(20);
|
p.setMaxHealth(20);
|
||||||
p.setHealth(20);
|
p.setHealth(20);
|
||||||
p.setFoodLevel(30);
|
p.setFoodLevel(30);
|
||||||
|
|
||||||
if (ProfileData.getProfileData(p).isBedThere()) {
|
if (ProfileData.getProfileData(p).isBedThere()) {
|
||||||
p.teleport(ProfileData.getProfileData(p).bedLocation);
|
p.teleport(ProfileData.getProfileData(p).bedLocation);
|
||||||
} else {
|
} else {
|
||||||
p.sendMessage("§7由于您之前的床已被破坏或遮挡,无法将您传送到您的床边。");
|
p.sendMessage("§7由于您之前的床已被破坏或遮挡,无法将您传送到您的床边。");
|
||||||
p.teleport(Bukkit.getWorld("world").getSpawnLocation());
|
p.teleport(randomLocation(Bukkit.getWorld("world")));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void onDeath(PlayerChangedWorldEvent e) {
|
public void onDeath(PlayerChangedWorldEvent e) {
|
||||||
Player p = e.getPlayer();
|
Player p = e.getPlayer();
|
||||||
if (e.getFrom().getName().equalsIgnoreCase("world_the_end")) {
|
if (e.getFrom().getName().equalsIgnoreCase("world_the_end")) {
|
||||||
if (ProfileData.getProfileData(p).isBedThere()) {
|
if (ProfileData.getProfileData(p).isBedThere()) {
|
||||||
p.teleport(ProfileData.getProfileData(p).bedLocation);
|
p.teleport(ProfileData.getProfileData(p).bedLocation);
|
||||||
} else {
|
} else {
|
||||||
p.sendMessage("§7由于您之前的床已被破坏或遮挡,无法将您传送到您的床边。");
|
p.sendMessage("§7由于您之前的床已被破坏或遮挡,无法将您传送到您的床边。");
|
||||||
p.teleport(Bukkit.getWorld("world").getSpawnLocation());
|
p.teleport(Bukkit.getWorld("world").getSpawnLocation());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Location randomLocation(World w) {
|
||||||
|
Random r = new Random();
|
||||||
|
|
||||||
|
int x = -3000 + r.nextInt(6001);
|
||||||
|
int z = -3000 + r.nextInt(6001);
|
||||||
|
int y = w.getHighestBlockYAt(x, z);
|
||||||
|
|
||||||
|
return new Location(w, x, y, z);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user