commands, camera, messages, overlay, ..
This commit is contained in:
parent
75f91dbf4c
commit
d45cd7ec2c
126 changed files with 854 additions and 628 deletions
|
@ -214,7 +214,7 @@ public class CommandEnvironment {
|
|||
}
|
||||
catch(Throwable t) {
|
||||
list.clear();
|
||||
Log.CONSOLE.error(t, "Konnte Befehl nicht vervollständigen");
|
||||
Log.CONSOLE.error(t, "Konnte Befehl '%s' nicht vervollständigen", cmd);
|
||||
}
|
||||
finally {
|
||||
this.currentExecutor = null;
|
||||
|
@ -250,6 +250,7 @@ public class CommandEnvironment {
|
|||
this.registerExecutable(new CommandOfflinetp());
|
||||
this.registerExecutable(new CommandWarp());
|
||||
this.registerExecutable(new CommandTime());
|
||||
this.registerExecutable(new CommandRemove());
|
||||
|
||||
this.registerExecutable(new CommandHelp(this));
|
||||
}
|
||||
|
|
|
@ -8,7 +8,7 @@ import game.collect.Sets;
|
|||
import game.entity.Entity;
|
||||
import game.entity.types.EntityLiving;
|
||||
import game.init.EntityRegistry;
|
||||
import game.network.NetHandlerPlayServer;
|
||||
import game.network.Player;
|
||||
import game.world.WorldServer;
|
||||
|
||||
public class EntityListParser extends EntityParser {
|
||||
|
@ -36,7 +36,7 @@ public class EntityListParser extends EntityParser {
|
|||
}
|
||||
else if(input.equals("*")) {
|
||||
List<Entity> list = Lists.newArrayList();
|
||||
for(NetHandlerPlayServer plr : env.getServer().getPlayers()) {
|
||||
for(Player plr : env.getServer().getPlayers()) {
|
||||
if(plr.getEntity() != null)
|
||||
list.add(plr.getEntity());
|
||||
}
|
||||
|
|
42
java/src/game/command/PlayerEntityListParser.java
Normal file
42
java/src/game/command/PlayerEntityListParser.java
Normal file
|
@ -0,0 +1,42 @@
|
|||
package game.command;
|
||||
|
||||
import java.util.List;
|
||||
import game.collect.Lists;
|
||||
import game.entity.Entity;
|
||||
import game.entity.npc.EntityNPC;
|
||||
import game.network.Player;
|
||||
|
||||
public class PlayerEntityListParser extends PlayerEntityParser {
|
||||
public PlayerEntityListParser(String name, boolean useSender) {
|
||||
super(name, useSender);
|
||||
}
|
||||
|
||||
public Object parse(CommandEnvironment env, String input) {
|
||||
if(input.equals("*")) {
|
||||
List<Entity> list = Lists.newArrayList();
|
||||
for(Player plr : env.getServer().getPlayers()) {
|
||||
if(plr.getEntity() != null)
|
||||
list.add(plr.getEntity());
|
||||
}
|
||||
if(list.isEmpty())
|
||||
throw new RunException("Keine Spieler gefunden");
|
||||
return list;
|
||||
}
|
||||
return Lists.newArrayList((EntityNPC)super.parse(env, input));
|
||||
}
|
||||
|
||||
public Object getDefault(CommandEnvironment env) {
|
||||
EntityNPC entity = (EntityNPC)super.getDefault(env);
|
||||
return entity == null ? null : Lists.newArrayList(entity);
|
||||
}
|
||||
|
||||
public String[] getCompletions(CommandEnvironment env) {
|
||||
List<String> comp = Lists.newArrayList(env.getServer().getAllUsernames());
|
||||
comp.add("*");
|
||||
return comp.toArray(new String[comp.size()]);
|
||||
}
|
||||
|
||||
public Class<?> getTypeClass() {
|
||||
return List.class;
|
||||
}
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
package game.command;
|
||||
|
||||
import game.entity.npc.EntityNPC;
|
||||
import game.network.NetHandlerPlayServer;
|
||||
import game.network.Player;
|
||||
|
||||
public class PlayerEntityParser extends PlayerParser {
|
||||
public PlayerEntityParser(String name, boolean useSender) {
|
||||
|
@ -9,7 +9,7 @@ public class PlayerEntityParser extends PlayerParser {
|
|||
}
|
||||
|
||||
public Object parse(CommandEnvironment env, String input) {
|
||||
NetHandlerPlayServer net = (NetHandlerPlayServer)super.parse(env, input);
|
||||
Player net = (Player)super.parse(env, input);
|
||||
EntityNPC entity = net.getEntity();
|
||||
if(entity == null)
|
||||
throw new RunException("Spieler-Objekt von '%s' wurde nicht gefunden", input);
|
||||
|
@ -17,7 +17,7 @@ public class PlayerEntityParser extends PlayerParser {
|
|||
}
|
||||
|
||||
public Object getDefault(CommandEnvironment env) {
|
||||
NetHandlerPlayServer net = (NetHandlerPlayServer)super.getDefault(env);
|
||||
Player net = (Player)super.getDefault(env);
|
||||
return net == null ? null : net.getEntity();
|
||||
}
|
||||
|
||||
|
|
35
java/src/game/command/PlayerListParser.java
Normal file
35
java/src/game/command/PlayerListParser.java
Normal file
|
@ -0,0 +1,35 @@
|
|||
package game.command;
|
||||
|
||||
import java.util.List;
|
||||
import game.collect.Lists;
|
||||
import game.network.Player;
|
||||
|
||||
public class PlayerListParser extends PlayerParser {
|
||||
public PlayerListParser(String name, boolean useSender) {
|
||||
super(name, useSender);
|
||||
}
|
||||
|
||||
public Object parse(CommandEnvironment env, String input) {
|
||||
if(input.equals("*")) {
|
||||
if(env.getServer().getPlayers().isEmpty())
|
||||
throw new RunException("Keine Spieler gefunden");
|
||||
return Lists.newArrayList(env.getServer().getPlayers());
|
||||
}
|
||||
return Lists.newArrayList((Player)super.parse(env, input));
|
||||
}
|
||||
|
||||
public Object getDefault(CommandEnvironment env) {
|
||||
Player net = (Player)super.getDefault(env);
|
||||
return net == null ? null : Lists.newArrayList(net);
|
||||
}
|
||||
|
||||
public String[] getCompletions(CommandEnvironment env) {
|
||||
List<String> comp = Lists.newArrayList(env.getServer().getAllUsernames());
|
||||
comp.add("*");
|
||||
return comp.toArray(new String[comp.size()]);
|
||||
}
|
||||
|
||||
public Class<?> getTypeClass() {
|
||||
return List.class;
|
||||
}
|
||||
}
|
|
@ -2,7 +2,7 @@ package game.command;
|
|||
|
||||
import java.util.List;
|
||||
|
||||
import game.network.NetHandlerPlayServer;
|
||||
import game.network.Player;
|
||||
|
||||
public class PlayerParser extends CompletingParser {
|
||||
protected final boolean useSender;
|
||||
|
@ -13,14 +13,14 @@ public class PlayerParser extends CompletingParser {
|
|||
}
|
||||
|
||||
public Object parse(CommandEnvironment env, String input) {
|
||||
NetHandlerPlayServer net = env.getServer().getPlayer(input);
|
||||
Player net = env.getServer().getPlayer(input);
|
||||
if(net == null)
|
||||
throw new RunException("Spieler '%s' wurde nicht gefunden", input);
|
||||
return net;
|
||||
}
|
||||
|
||||
public Object getDefault(CommandEnvironment env) {
|
||||
return this.useSender && env.getExecutor() instanceof NetHandlerPlayServer ? (NetHandlerPlayServer)env.getExecutor() : null;
|
||||
return this.useSender && env.getExecutor() instanceof Player ? (Player)env.getExecutor() : null;
|
||||
}
|
||||
|
||||
public String[] getCompletions(CommandEnvironment env) {
|
||||
|
@ -29,6 +29,6 @@ public class PlayerParser extends CompletingParser {
|
|||
}
|
||||
|
||||
public Class<?> getTypeClass() {
|
||||
return NetHandlerPlayServer.class;
|
||||
return Player.class;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,7 +4,7 @@ import game.command.CommandEnvironment;
|
|||
import game.command.RunException;
|
||||
import game.command.Command;
|
||||
import game.command.Executor;
|
||||
import game.network.NetHandlerPlayServer;
|
||||
import game.network.Player;
|
||||
|
||||
public class CommandAdmin extends Command {
|
||||
public CommandAdmin() {
|
||||
|
@ -13,8 +13,8 @@ public class CommandAdmin extends Command {
|
|||
this.addPlayer("player", false);
|
||||
}
|
||||
|
||||
public void exec(CommandEnvironment env, Executor exec, NetHandlerPlayServer player) {
|
||||
if(!(exec instanceof NetHandlerPlayServer))
|
||||
public void exec(CommandEnvironment env, Executor exec, Player player) {
|
||||
if(!(exec instanceof Player))
|
||||
throw new RunException("Dieser Befehl kann nur von Spielern ausgeführt werden");
|
||||
else if(player == exec)
|
||||
throw new RunException("Du kannst nicht deinen eigenen Admin-Status erneut setzen");
|
||||
|
|
|
@ -8,7 +8,7 @@ import game.command.RunException;
|
|||
import game.command.StringCompleter;
|
||||
import game.entity.Entity;
|
||||
import game.init.UniverseRegistry;
|
||||
import game.network.NetHandlerPlayServer;
|
||||
import game.network.Player;
|
||||
import game.world.Position;
|
||||
|
||||
public class CommandOfflinetp extends Command {
|
||||
|
@ -25,7 +25,7 @@ public class CommandOfflinetp extends Command {
|
|||
}
|
||||
|
||||
public Object exec(CommandEnvironment env, Executor exec, String user, List<Entity> entities) {
|
||||
NetHandlerPlayServer player = env.getServer().getPlayer(user);
|
||||
Player player = env.getServer().getPlayer(user);
|
||||
Position pos = player != null ? player.getEntity().getPos() : env.getServer().getOfflinePosition(user);
|
||||
if(pos == null)
|
||||
throw new RunException("Spieler '%s' konnte nicht gefunden werden", user);
|
||||
|
|
34
java/src/game/command/commands/CommandRemove.java
Normal file
34
java/src/game/command/commands/CommandRemove.java
Normal file
|
@ -0,0 +1,34 @@
|
|||
package game.command.commands;
|
||||
|
||||
import java.util.List;
|
||||
import game.command.CommandEnvironment;
|
||||
import game.command.Command;
|
||||
import game.command.Executor;
|
||||
import game.entity.Entity;
|
||||
|
||||
public class CommandRemove extends Command {
|
||||
public CommandRemove() {
|
||||
super("remove");
|
||||
|
||||
this.addEntityList("entities", true);
|
||||
|
||||
this.addFlag("kill", 'k');
|
||||
}
|
||||
|
||||
public Object exec(CommandEnvironment env, Executor exec, List<Entity> entities, boolean kill) {
|
||||
int done = 0;
|
||||
for(Entity entity : entities) {
|
||||
if(entity.isEntityAlive()) {
|
||||
if(kill || entity.isPlayer())
|
||||
entity.kill();
|
||||
else
|
||||
entity.setDead();
|
||||
exec.logConsole(kill ? "%s getötet" : "%s entfernt", entity.getCommandName());
|
||||
done++;
|
||||
}
|
||||
}
|
||||
if(done > 1)
|
||||
exec.logConsole(kill ? "%d Objekte getötet" : "%d Objekte entfernt", done);
|
||||
return done;
|
||||
}
|
||||
}
|
|
@ -4,7 +4,7 @@ import game.command.CommandEnvironment;
|
|||
import game.command.RunException;
|
||||
import game.command.Command;
|
||||
import game.command.Executor;
|
||||
import game.network.NetHandlerPlayServer;
|
||||
import game.network.Player;
|
||||
|
||||
public class CommandRevoke extends Command {
|
||||
public CommandRevoke() {
|
||||
|
@ -13,8 +13,8 @@ public class CommandRevoke extends Command {
|
|||
this.addPlayer("player", false);
|
||||
}
|
||||
|
||||
public void exec(CommandEnvironment env, Executor exec, NetHandlerPlayServer player) {
|
||||
if(!(exec instanceof NetHandlerPlayServer) || !((NetHandlerPlayServer)exec).isLocal())
|
||||
public void exec(CommandEnvironment env, Executor exec, Player player) {
|
||||
if(!(exec instanceof Player) || !((Player)exec).isLocal())
|
||||
throw new RunException("Dieser Befehl kann nur vom Host-Spieler ausgeführt werden");
|
||||
else if(player == exec)
|
||||
throw new RunException("Du kannst nicht deinen eigenen Admin-Status entfernen");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue