add exp command, fix game over screen
This commit is contained in:
parent
8f1fda3f3d
commit
cdf8db1b50
4 changed files with 57 additions and 8 deletions
|
@ -261,5 +261,6 @@ public class CommandEnvironment {
|
|||
this.registerExecutable(new CommandItem());
|
||||
this.registerExecutable(new CommandRunat());
|
||||
this.registerExecutable(new CommandRunas());
|
||||
this.registerExecutable(new CommandExp());
|
||||
}
|
||||
}
|
||||
|
|
44
server/src/main/java/server/command/commands/CommandExp.java
Normal file
44
server/src/main/java/server/command/commands/CommandExp.java
Normal file
|
@ -0,0 +1,44 @@
|
|||
package server.command.commands;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import common.entity.npc.EntityNPC;
|
||||
import server.command.Command;
|
||||
import server.command.CommandEnvironment;
|
||||
import server.command.Executor;
|
||||
import server.command.UserPolicy;
|
||||
|
||||
public class CommandExp extends Command {
|
||||
public CommandExp() {
|
||||
super("exp");
|
||||
|
||||
this.setParamsOptional();
|
||||
this.addInt("points", 1, Integer.MAX_VALUE);
|
||||
this.addFlag("reset", 'r');
|
||||
this.setParamsRequired();
|
||||
this.addPlayerEntityList("players", 'p', true, UserPolicy.NON_ADMINS_OR_SELF);
|
||||
}
|
||||
|
||||
public void exec(CommandEnvironment env, Executor exec, Integer points, boolean reset, List<EntityNPC> players) {
|
||||
for(EntityNPC player : players) {
|
||||
if(points == null && !reset) {
|
||||
exec.log("Erfahrung von %s: Level %d, %d/%d (%d Punkte)", player.getCommandName(), player.experienceLevel, (int)((float)player.xpBarCap() * player.experience), player.xpBarCap(), player.experienceTotal);
|
||||
}
|
||||
else if(reset) {
|
||||
player.setExperience(points == null ? 0 : points);
|
||||
exec.log("Erfahrung von %s " + (points == null ? "zurückgesetzt" : "auf %d Punkte gesetzt (Level %d)"), player.getCommandName(), player.experienceTotal, player.experienceLevel);
|
||||
}
|
||||
else {
|
||||
int level = player.experienceLevel;
|
||||
player.addExperience(points);
|
||||
exec.log("%d Erfahrungspunkte an %s gegeben" + (player.experienceLevel != level ? ", ist jetzt Level %d" : ""), points, player.getCommandName(), player.experienceLevel);
|
||||
}
|
||||
}
|
||||
if(players.size() > 1) {
|
||||
if(reset)
|
||||
exec.log("Erfahrung von %d Spielern " + (points == null ? "zurückgesetzt" : "auf %d Punkte gesetzt"), players.size(), points);
|
||||
else if(points != null)
|
||||
exec.log("%d Erfahrungspunkte an %d Spieler gegeben", points * players.size(), players.size());
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue