fix spawn joining players
This commit is contained in:
@@ -7,6 +7,7 @@ package mc.core.player;
|
|||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import mc.core.Config;
|
import mc.core.Config;
|
||||||
|
import mc.core.Location;
|
||||||
import mc.core.network.BroadcastNetChannel;
|
import mc.core.network.BroadcastNetChannel;
|
||||||
import mc.core.network.NetChannel;
|
import mc.core.network.NetChannel;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -30,10 +31,12 @@ public class InMemoryPlayerManager implements PlayerManager, Runnable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Player createPlayer(String name) {
|
public Player createPlayer(String name, Location defaultLocation, Look defaultLook) {
|
||||||
SimplePlayer player = new SimplePlayer();
|
SimplePlayer player = new SimplePlayer();
|
||||||
player.setId(rand.nextInt(10000));
|
player.setId(rand.nextInt(10000));
|
||||||
player.setName(name);
|
player.setName(name);
|
||||||
|
player.setLocation(defaultLocation);
|
||||||
|
player.setLook(defaultLook);
|
||||||
|
|
||||||
synchronized (lock) {
|
synchronized (lock) {
|
||||||
players.add(player);
|
players.add(player);
|
||||||
|
|||||||
@@ -4,13 +4,14 @@
|
|||||||
*/
|
*/
|
||||||
package mc.core.player;
|
package mc.core.player;
|
||||||
|
|
||||||
|
import mc.core.Location;
|
||||||
import mc.core.network.NetChannel;
|
import mc.core.network.NetChannel;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
public interface PlayerManager {
|
public interface PlayerManager {
|
||||||
Player createPlayer(String name);
|
Player createPlayer(String name, Location defaultLocation, Look defaultLook);
|
||||||
void joinServer(Player player);
|
void joinServer(Player player);
|
||||||
void leftServer(Player player);
|
void leftServer(Player player);
|
||||||
Optional<Player> getPlayer(String name);
|
Optional<Player> getPlayer(String name);
|
||||||
|
|||||||
@@ -101,9 +101,11 @@ public class PacketHandler extends SimpleChannelInboundHandler<CSPacket> {
|
|||||||
channel.writeAndFlush(new KickPacket(event.getDenyReason()))
|
channel.writeAndFlush(new KickPacket(event.getDenyReason()))
|
||||||
.addListener(ChannelFutureListener.CLOSE);
|
.addListener(ChannelFutureListener.CLOSE);
|
||||||
} else {
|
} else {
|
||||||
Player player = playerManager.createPlayer(packet.getPlayerName());
|
Player player = playerManager.getPlayer(packet.getPlayerName())
|
||||||
player.setLocation(world.getSpawn());
|
.orElseGet(() -> playerManager.createPlayer(
|
||||||
player.setLook(new Look(0f, 0f));
|
packet.getPlayerName(),
|
||||||
|
world.getSpawn(),
|
||||||
|
new Look(0f, 0f)));
|
||||||
|
|
||||||
// Response login
|
// Response login
|
||||||
packet.setPlayerId(player.getId());
|
packet.setPlayerId(player.getId());
|
||||||
|
|||||||
Reference in New Issue
Block a user