commands, camera, messages, overlay, ..

This commit is contained in:
Sen 2025-03-26 12:22:32 +01:00
parent 75f91dbf4c
commit d45cd7ec2c
126 changed files with 854 additions and 628 deletions

View file

@ -5,11 +5,11 @@ import game.packet.RPacketDisconnect;
import game.packet.RPacketEnableCompression;
import game.packet.RPacketLoginSuccess;
public class NetHandlerLoginClient extends NetHandler {
public class ClientLoginHandler extends NetHandler {
private final Game gm;
private final NetConnection networkManager;
public NetHandlerLoginClient(NetConnection conn, Game gmIn) {
public ClientLoginHandler(NetConnection conn, Game gmIn) {
this.networkManager = conn;
this.gm = gmIn;
}
@ -27,7 +27,7 @@ public class NetHandlerLoginClient extends NetHandler {
public void handleLoginSuccess(RPacketLoginSuccess packetIn)
{
this.networkManager.setConnectionState(PacketRegistry.PLAY);
this.networkManager.setNetHandler(new NetHandlerPlayClient(this.gm, this.networkManager));
this.networkManager.setNetHandler(new ClientPlayer(this.gm, this.networkManager));
}
public final void handleEnableCompression(RPacketEnableCompression packetIn)

View file

@ -112,7 +112,7 @@ import game.world.Explosion;
import game.world.Weather;
import game.world.WorldClient;
public class NetHandlerPlayClient extends NetHandler
public class ClientPlayer extends NetHandler
{
/**
* The NetworkManager instance used to communicate with the server (used only by handlePlayerPosLook to update
@ -146,7 +146,7 @@ public class NetHandlerPlayClient extends NetHandler
*/
private final Random avRandomizer = new Random();
public NetHandlerPlayClient(Game gmIn, NetConnection p_i46300_3_)
public ClientPlayer(Game gmIn, NetConnection p_i46300_3_)
{
this.gameController = gmIn;
this.netManager = p_i46300_3_;
@ -766,17 +766,20 @@ public class NetHandlerPlayClient extends NetHandler
// if(this.gameController.chatVisibility == EnumChatVisibility.FULL ||
// (this.gameController.chatVisibility == EnumChatVisibility.SYSTEM && packetIn.isSystem()))
// {
// switch(packetIn.getType()) {
// case CONSOLE:
// SKC.console(packetIn.getMessage());
// break;
// case FEED:
Log.CONSOLE.user(packetIn.getMessage());
// break;
// case HOTBAR:
// SKC.overlay(packetIn.getMessage());
// break;
// }
switch(packetIn.getType()) {
case CONSOLE:
this.gameController.logConsole(packetIn.getMessage());
break;
case CHAT:
this.gameController.logChat(packetIn.getMessage());
break;
case FEED:
this.gameController.logFeed(packetIn.getMessage());
break;
case HOTBAR:
this.gameController.logHotbar(packetIn.getMessage());
break;
}
// }
}

View file

@ -2,7 +2,7 @@ package game.network;
import game.packet.HPacketHandshake;
public abstract class NetHandlerHandshakeServer extends NetHandler
public abstract class HandshakeHandler extends NetHandler
{
public abstract void processHandshake(HPacketHandshake packetIn);

View file

@ -3,12 +3,12 @@ package game.network;
import game.Server;
import game.packet.HPacketHandshake;
public class NetHandlerHandshakeMemory extends NetHandlerHandshakeServer
public class HandshakeHandlerMemory extends HandshakeHandler
{
private final Server gmServer;
private final NetConnection networkManager;
public NetHandlerHandshakeMemory(Server gmServerIn, NetConnection networkManagerIn)
public HandshakeHandlerMemory(Server gmServerIn, NetConnection networkManagerIn)
{
this.gmServer = gmServerIn;
this.networkManager = networkManagerIn;
@ -17,6 +17,6 @@ public class NetHandlerHandshakeMemory extends NetHandlerHandshakeServer
public void processHandshake(HPacketHandshake packetIn)
{
this.networkManager.setConnectionState(PacketRegistry.LOGIN);
this.networkManager.setNetHandler(new NetHandlerLoginServer(this.gmServer, this.networkManager));
this.networkManager.setNetHandler(new LoginHandler(this.gmServer, this.networkManager));
}
}

View file

@ -5,12 +5,12 @@ import game.init.Config;
import game.packet.HPacketHandshake;
import game.packet.RPacketDisconnect;
public class NetHandlerHandshakeTCP extends NetHandlerHandshakeServer
public class HandshakeHandlerTCP extends HandshakeHandler
{
private final Server server;
private final NetConnection networkManager;
public NetHandlerHandshakeTCP(Server serverIn, NetConnection netManager)
public HandshakeHandlerTCP(Server serverIn, NetConnection netManager)
{
this.server = serverIn;
this.networkManager = netManager;
@ -35,7 +35,7 @@ public class NetHandlerHandshakeTCP extends NetHandlerHandshakeServer
}
else
{
this.networkManager.setNetHandler(new NetHandlerLoginServer(this.server, this.networkManager));
this.networkManager.setNetHandler(new LoginHandler(this.server, this.networkManager));
}
}
}

View file

@ -9,7 +9,7 @@ import game.packet.LPacketPasswordResponse;
import game.packet.RPacketDisconnect;
import game.rng.Random;
public class NetHandlerLoginServer extends NetHandler
public class LoginHandler extends NetHandler
{
private static enum LoginState {
PASSWORD, READY_TO_ACCEPT, ACCEPTED;
@ -23,7 +23,7 @@ public class NetHandlerLoginServer extends NetHandler
private String loginUser;
private String loginPass;
public NetHandlerLoginServer(Server server, NetConnection netManager)
public LoginHandler(Server server, NetConnection netManager)
{
this.netManager = netManager;
this.server = server;
@ -121,19 +121,19 @@ public class NetHandlerLoginServer extends NetHandler
if(this.netManager.isLocalChannel()) {
this.loginPass = "";
// this.loginUser = Config.localUser;
if(this.loginUser.length() > NetHandlerPlayServer.MAX_USER_LENGTH || (!this.loginUser.isEmpty() && !NetHandlerPlayServer.isValidUser(this.loginUser))) {
if(this.loginUser.length() > Player.MAX_USER_LENGTH || (!this.loginUser.isEmpty() && !Player.isValidUser(this.loginUser))) {
Random rand = new Random();
do {
this.loginUser = NameRegistry.FANTASY.generate(rand, rand.range(2, 4)).toLowerCase();
}
while(this.loginUser.length() > NetHandlerPlayServer.MAX_USER_LENGTH || !NetHandlerPlayServer.isValidUser(this.loginUser)); // || this.server.getPlayer(this.loginUser) != null);
while(this.loginUser.length() > Player.MAX_USER_LENGTH || !Player.isValidUser(this.loginUser)); // || this.server.getPlayer(this.loginUser) != null);
// this.server.setVar("local_user", this.loginUser);
}
this.server.setLocalUser(this.loginUser);
}
else {
this.loginPass = packetIn.getPassword();
if(this.loginUser.isEmpty() || !NetHandlerPlayServer.isValidUser(this.loginUser))
if(this.loginUser.isEmpty() || !Player.isValidUser(this.loginUser))
throw new IllegalStateException("Ungültiger Nutzername!");
// if(!this.checkConnect(packetIn.getAccess()))
// return;

View file

@ -94,6 +94,7 @@ import game.packet.SPacketDisconnect;
import game.packet.SPacketKeepAlive;
import game.packet.SPacketMapChunkBulk;
import game.packet.SPacketMessage;
import game.packet.SPacketMessage.Type;
import game.packet.SPacketPlayerPosLook;
import game.packet.SPacketSetExperience;
import game.packet.SPacketSkin;
@ -125,7 +126,7 @@ import game.world.WorldServer;
import io.netty.util.concurrent.Future;
import io.netty.util.concurrent.GenericFutureListener;
public class NetHandlerPlayServer extends NetHandler implements ICrafting, Executor
public class Player extends NetHandler implements ICrafting, Executor
{
private static enum EditAction {
SELECT("Auswahlmodus"), COPYPASTE("Kopiermodus"), TRANSFORM("Drehmodus");
@ -226,7 +227,7 @@ public class NetHandlerPlayServer extends NetHandler implements ICrafting, Execu
return VALID_NICK.valid(user);
}
public NetHandlerPlayServer(Server server, NetConnection connection, String user)
public Player(Server server, NetConnection connection, String user)
{
this.user = user;
this.server = server;
@ -543,12 +544,36 @@ public class NetHandlerPlayServer extends NetHandler implements ICrafting, Execu
}
}
public void addConsole(String msg) {
this.sendPacket(new SPacketMessage(msg, Type.CONSOLE));
}
public void addConsole(String format, Object... args) {
this.sendPacket(new SPacketMessage(String.format(format, args), Type.CONSOLE));
}
public void addChat(String msg) {
this.sendPacket(new SPacketMessage(msg, Type.CHAT));
}
public void addChat(String format, Object... args) {
this.sendPacket(new SPacketMessage(String.format(format, args), Type.CHAT));
}
public void addFeed(String msg) {
this.sendPacket(new SPacketMessage(msg));
this.sendPacket(new SPacketMessage(msg, Type.FEED));
}
public void addFeed(String format, Object... args) {
this.sendPacket(new SPacketMessage(String.format(format, args)));
this.sendPacket(new SPacketMessage(String.format(format, args), Type.FEED));
}
public void addHotbar(String msg) {
this.sendPacket(new SPacketMessage(msg, Type.HOTBAR));
}
public void addHotbar(String format, Object... args) {
this.sendPacket(new SPacketMessage(String.format(format, args), Type.HOTBAR));
}
public void sendPickupMessage(Entity entity, int amount) {
@ -695,7 +720,7 @@ public class NetHandlerPlayServer extends NetHandler implements ICrafting, Execu
if (ilockablecontainer.isLocked() && !this.entity.canOpen(ilockablecontainer.getLockCode())) // && !this.isSpectator())
{
this.addFeed(TextColor.RED + "%s ist verschlossen!", chestInventory.getCommandName());
this.addHotbar(TextColor.RED + "%s ist verschlossen!", chestInventory.getCommandName());
this.sendPacket(new S29PacketSoundEffect(SoundEvent.DOOR, this.entity.posX, this.entity.posY, this.entity.posZ, 1.0F));
return;
}
@ -1266,14 +1291,14 @@ public class NetHandlerPlayServer extends NetHandler implements ICrafting, Execu
BlockPos point = pos == null ? this.entity.getPosition() : pos;
String msg = this.selectPoint(point, false);
if(msg != null)
this.addFeed(TextColor.DRED + msg);
this.addHotbar(TextColor.DRED + msg);
}
private void selectPos2(BlockPos pos) {
BlockPos point = pos == null ? this.entity.getPosition() : pos;
String msg = this.selectPoint(point, true);
if(msg != null)
this.addFeed(TextColor.MIDNIGHT + msg);
this.addHotbar(TextColor.MIDNIGHT + msg);
}
private String selectPoint(BlockPos position, boolean second) {
@ -1315,7 +1340,7 @@ public class NetHandlerPlayServer extends NetHandler implements ICrafting, Execu
}
if(this.edit == EditAction.TRANSFORM && (this.rotation != 0 || this.flipX || this.flipZ))
msg += "; " + this.getRotationInfo();
this.addFeed(TextColor.YELLOW + msg);
this.addHotbar(TextColor.YELLOW + msg);
}
private int getSelectionArea() {
@ -1364,7 +1389,7 @@ public class NetHandlerPlayServer extends NetHandler implements ICrafting, Execu
to = to.add(tf.getBlockX(), tf.getBlockY(), tf.getBlockZ());
}
placer.commit();
this.addFeed(TextColor.YELLOW + "Zwischenablage wurde bei %d, %d, %d eingefügt", to.getX(), to.getY(), to.getZ());
this.addHotbar(TextColor.YELLOW + "Zwischenablage wurde bei %d, %d, %d eingefügt", to.getX(), to.getY(), to.getZ());
return true;
}
@ -1437,7 +1462,7 @@ public class NetHandlerPlayServer extends NetHandler implements ICrafting, Execu
this.flipX = this.flipZ = false;
BlockPos pos = this.entity.getPosition();
this.selOffset = new Vec3i(mx - pos.getX(), my - pos.getY(), mz - pos.getZ());
this.addFeed(TextColor.YELLOW + "Auswahl wurde in die Zwischenablage kopiert");
this.addHotbar(TextColor.YELLOW + "Auswahl wurde in die Zwischenablage kopiert");
return true;
}
@ -1466,7 +1491,7 @@ public class NetHandlerPlayServer extends NetHandler implements ICrafting, Execu
else
return;
String info = this.getRotationInfo();
this.addFeed(TextColor.YELLOW + (info.isEmpty() ? "Keine Drehung" : info));
this.addHotbar(TextColor.YELLOW + (info.isEmpty() ? "Keine Drehung" : info));
}
private void rotateClipboard() {
@ -1474,7 +1499,7 @@ public class NetHandlerPlayServer extends NetHandler implements ICrafting, Execu
return;
this.rotation = (this.rotation + 90) % 360;
String info = this.getRotationInfo();
this.addFeed(TextColor.YELLOW + (info.isEmpty() ? "Keine Drehung" : info));
this.addHotbar(TextColor.YELLOW + (info.isEmpty() ? "Keine Drehung" : info));
}
@ -1517,7 +1542,7 @@ public class NetHandlerPlayServer extends NetHandler implements ICrafting, Execu
{
public void operationComplete(Future <? super Void > p_operationComplete_1_) throws Exception
{
NetHandlerPlayServer.this.connection.closeChannel("Getrennt");
Player.this.connection.closeChannel("Getrennt");
}
});
this.connection.disableAutoRead();
@ -1525,7 +1550,7 @@ public class NetHandlerPlayServer extends NetHandler implements ICrafting, Execu
{
public void run()
{
NetHandlerPlayServer.this.connection.checkDisconnected();
Player.this.connection.checkDisconnected();
}
}));
}
@ -1534,13 +1559,13 @@ public class NetHandlerPlayServer extends NetHandler implements ICrafting, Execu
{
Log.JNI.info(this.user + " wurde getrennt: " + TextColor.stripCodes(reason));
if(!this.local)
this.server.sendPacket(new SPacketMessage(String.format("%s hat das Spiel verlassen", this.user)));
this.server.sendPacket(new SPacketMessage(String.format("%s hat das Spiel verlassen", this.user), Type.FEED));
this.server.removePlayer(this);
}
public void onConnect() {
if(!this.local)
this.server.sendPacket(new SPacketMessage(String.format("%s hat das Spiel betreten", this.user)));
this.server.sendPacket(new SPacketMessage(String.format("%s hat das Spiel betreten", this.user), Type.FEED));
}
public void sendPacket(final Packet packet)
@ -1625,13 +1650,13 @@ public class NetHandlerPlayServer extends NetHandler implements ICrafting, Execu
int space = line.indexOf(' ');
// if(space < 0)
// return false;
NetHandlerPlayServer target = this.server.getPlayer(space < 0 ? line.substring(1) : line.substring(1, space));
Player target = this.server.getPlayer(space < 0 ? line.substring(1) : line.substring(1, space));
if(target == null)
return false;
target.addFeed(this.entity.getColoredName(TextColor.LGRAY) + " -> " + target.entity.getColoredName(TextColor.LGRAY) + " " +
target.addChat(this.entity.getColoredName(TextColor.LGRAY) + " -> " + target.entity.getColoredName(TextColor.LGRAY) + " " +
line);
if(target != this)
this.addFeed(target.entity.getColoredName(TextColor.LGRAY) + " -> " + this.entity.getColoredName(TextColor.LGRAY) + " " +
this.addChat(target.entity.getColoredName(TextColor.LGRAY) + " -> " + this.entity.getColoredName(TextColor.LGRAY) + " " +
line);
return true;
}
@ -1653,9 +1678,9 @@ public class NetHandlerPlayServer extends NetHandler implements ICrafting, Execu
if(!cvar.def.equals(v)) {
comp += TextColor.GRAY + " (" + TextColor.BROWN + cvar.def + TextColor.GRAY + ")";
}
this.addFeed(comp);
this.addConsole(comp);
}
this.addFeed(TextColor.GREEN + "SVARs insgesamt registriert: %d", Config.VARS.size());
this.addConsole(TextColor.GREEN + "SVARs insgesamt registriert: %d", Config.VARS.size());
return true;
}
line = line.trim();
@ -1675,7 +1700,7 @@ public class NetHandlerPlayServer extends NetHandler implements ICrafting, Execu
comp += ((cfg.type == ValueType.BOOLEAN ? (v.equals("true") ? TextColor.GREEN : TextColor.RED) : TextColor.BLUE)) + v;
if(!cfg.def.equals(v))
comp += TextColor.GRAY + " (" + TextColor.BROWN + cfg.def + TextColor.GRAY + ")";
this.addFeed(comp);
this.addConsole(comp);
// break;
// default:
}
@ -1693,7 +1718,7 @@ public class NetHandlerPlayServer extends NetHandler implements ICrafting, Execu
// else
if(cv.type == ValueType.BOOLEAN && !"true".equals(value) && !"false".equals(value)) {
if(!value.equalsIgnoreCase("true") && !value.equalsIgnoreCase("false")) {
this.addFeed(TextColor.DRED + "'%s' ist nicht 'true' oder 'false'", value);
this.addConsole(TextColor.DRED + "'%s' ist nicht 'true' oder 'false'", value);
return true;
}
value = value.toLowerCase();
@ -1703,7 +1728,7 @@ public class NetHandlerPlayServer extends NetHandler implements ICrafting, Execu
Integer.parseInt(value);
}
catch(NumberFormatException e) {
this.addFeed(TextColor.DRED + "'%s' ist keine gültige Zahl", value);
this.addConsole(TextColor.DRED + "'%s' ist keine gültige Zahl", value);
return true;
}
}
@ -1712,12 +1737,12 @@ public class NetHandlerPlayServer extends NetHandler implements ICrafting, Execu
Float.parseFloat(value);
}
catch(NumberFormatException e) {
this.addFeed(TextColor.DRED + "'%s' ist keine gültige Zahl", value);
this.addConsole(TextColor.DRED + "'%s' ist keine gültige Zahl", value);
return true;
}
}
Config.set(args[0], value, this.server);
this.addFeed(TextColor.YELLOW + "%s" + TextColor.GRAY + " -> " + ((cv.type == ValueType.BOOLEAN ? (cv.getValue().equals("true") ? TextColor.GREEN : TextColor.RED) : (cv.type == ValueType.STRING ? TextColor.NEON : TextColor.BLUE))) + "%s", args[0], cv.type == ValueType.STRING ? ("'" + cv.getValue() + "'") : cv.getValue());
this.addConsole(TextColor.YELLOW + "%s" + TextColor.GRAY + " -> " + ((cv.type == ValueType.BOOLEAN ? (cv.getValue().equals("true") ? TextColor.GREEN : TextColor.RED) : (cv.type == ValueType.STRING ? TextColor.NEON : TextColor.BLUE))) + "%s", args[0], cv.type == ValueType.STRING ? ("'" + cv.getValue() + "'") : cv.getValue());
}
return true;
}
@ -1887,7 +1912,7 @@ public class NetHandlerPlayServer extends NetHandler implements ICrafting, Execu
if(this.isAdmin())
this.server.getScriptEnvironment().execute(command, this);
else
this.addFeed(TextColor.DRED + "Nur Admins können Befehle ausführen");
this.addConsole(TextColor.DRED + "Nur Admins können Befehle ausführen");
}
private List<String> completeCommand(String command) {
@ -1896,7 +1921,7 @@ public class NetHandlerPlayServer extends NetHandler implements ICrafting, Execu
}
public void logConsole(String msg) {
this.addFeed(msg);
this.addConsole(msg);
}
public String getExecId() {
@ -1929,7 +1954,7 @@ public class NetHandlerPlayServer extends NetHandler implements ICrafting, Execu
case CHAT:
if(!this.sendPlayer(msg))
this.server.sendPacket(new SPacketMessage(String.format("%s %s", this.entity.getColoredName(TextColor.LGRAY), msg)));
this.server.sendPacket(new SPacketMessage(String.format("%s %s", this.entity.getColoredName(TextColor.LGRAY), msg), Type.CHAT));
break;
case DISPLAY:

View file

@ -25,7 +25,7 @@ import game.world.WorldClient;
public class PlayerController
{
private final Game gm;
private final NetHandlerPlayClient netClientHandler;
private final ClientPlayer netClientHandler;
private BlockPos currentBlock = new BlockPos(-1, -1, -1);
private ItemStack currentItemHittingBlock;
private float curBlockDamageMP;
@ -36,7 +36,7 @@ public class PlayerController
private int currentPlayerItem;
private boolean interacting;
public PlayerController(Game gmIn, NetHandlerPlayClient netHandler)
public PlayerController(Game gmIn, ClientPlayer netHandler)
{
this.gm = gmIn;
this.netClientHandler = netHandler;