mirror of
https://github.com/array-in-a-matrix/brainwine.git
synced 2025-04-02 11:11:58 -04:00
Implemented respawning
This commit is contained in:
parent
d1e00bded3
commit
ff4e5611a7
3 changed files with 31 additions and 0 deletions
|
@ -56,6 +56,7 @@ import brainwine.gameserver.server.requests.BlocksIgnoreRequest;
|
|||
import brainwine.gameserver.server.requests.BlocksRequest;
|
||||
import brainwine.gameserver.util.MapHelper;
|
||||
import brainwine.gameserver.util.MathUtils;
|
||||
import brainwine.gameserver.util.Vector2i;
|
||||
import brainwine.gameserver.zone.Chunk;
|
||||
import brainwine.gameserver.zone.MetaBlock;
|
||||
import brainwine.gameserver.zone.Zone;
|
||||
|
@ -109,6 +110,7 @@ public class Player extends Entity implements CommandExecutor {
|
|||
private String clientVersion;
|
||||
private Placement lastPlacement;
|
||||
private Item heldItem = Item.AIR;
|
||||
private Vector2i spawnPoint = new Vector2i(0, 0);
|
||||
private int teleportX;
|
||||
private int teleportY;
|
||||
private long lastHeartbeat;
|
||||
|
@ -201,6 +203,8 @@ public class Player extends Entity implements CommandExecutor {
|
|||
y = spawn.getY();
|
||||
}
|
||||
|
||||
spawnPoint.setX((int)x);
|
||||
spawnPoint.setY((int)y);
|
||||
sendMessage(new ConfigurationMessage(id, getClientConfig(), GameConfiguration.getClientConfig(this), zone.getClientConfig(this)));
|
||||
sendMessage(new ZoneStatusMessage(zone.getStatusConfig()));
|
||||
sendMessage(new ZoneStatusMessage(zone.getStatusConfig()));
|
||||
|
@ -365,6 +369,15 @@ public class Player extends Entity implements CommandExecutor {
|
|||
sendMessage(new PlayerPositionMessage((int)x, (int)y + 1));
|
||||
}
|
||||
|
||||
public void respawn() {
|
||||
int x = spawnPoint.getX();
|
||||
int y = spawnPoint.getY();
|
||||
sendMessage(new PlayerPositionMessage(x, y));
|
||||
sendMessage(new HealthMessage(health));
|
||||
sendMessageToPeers(new EntityStatusMessage(this, EntityStatus.REVIVED));
|
||||
zone.sendMessage(new EffectMessage(x, y, "spawn", 20));
|
||||
}
|
||||
|
||||
/**
|
||||
* Teleports the player to the specified position.
|
||||
*
|
||||
|
|
|
@ -50,6 +50,7 @@ import brainwine.gameserver.server.requests.HeartbeatRequest;
|
|||
import brainwine.gameserver.server.requests.InventoryMoveRequest;
|
||||
import brainwine.gameserver.server.requests.InventoryUseRequest;
|
||||
import brainwine.gameserver.server.requests.MoveRequest;
|
||||
import brainwine.gameserver.server.requests.RespawnRequest;
|
||||
import brainwine.gameserver.server.requests.StatusRequest;
|
||||
import brainwine.gameserver.server.requests.TransactionRequest;
|
||||
import brainwine.gameserver.server.requests.ZoneChangeRequest;
|
||||
|
@ -90,6 +91,7 @@ public class NetworkRegistry {
|
|||
registerRequest(23, ZoneSearchRequest.class);
|
||||
registerRequest(24, ZoneChangeRequest.class);
|
||||
registerRequest(25, BlocksIgnoreRequest.class);
|
||||
registerRequest(26, RespawnRequest.class);
|
||||
registerRequest(41, TransactionRequest.class);
|
||||
registerRequest(45, DialogRequest.class);
|
||||
registerRequest(47, ConsoleRequest.class);
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
package brainwine.gameserver.server.requests;
|
||||
|
||||
import org.msgpack.type.Value;
|
||||
|
||||
import brainwine.gameserver.entity.player.Player;
|
||||
import brainwine.gameserver.server.PlayerRequest;
|
||||
|
||||
public class RespawnRequest extends PlayerRequest {
|
||||
|
||||
public Value status;
|
||||
|
||||
@Override
|
||||
public void process(Player player) {
|
||||
player.respawn();
|
||||
}
|
||||
}
|
Loading…
Add table
Reference in a new issue