mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2025-12-16 08:56:04 +01:00
Merge remote-tracking branch 'origin/development' into development
This commit is contained in:
@@ -12,7 +12,7 @@ import java.util.List;
|
||||
|
||||
import static emu.grasscutter.utils.Language.translate;
|
||||
|
||||
@Command(label = "givechar", usage = "givechar <avatarId> [level]", aliases = {"givec"}, permission = "player.givechar", permissionTargeted = "player.givechar.others", description = "commands.giveChar.description")
|
||||
@Command(label = "givechar", usage = "givechar <player> <avatarId> [level]", aliases = {"givec"}, permission = "player.givechar", permissionTargeted = "player.givechar.others", description = "commands.giveChar.description")
|
||||
public final class GiveCharCommand implements CommandHandler {
|
||||
|
||||
@Override
|
||||
@@ -26,7 +26,7 @@ public final class GiveCharCommand implements CommandHandler {
|
||||
level = Integer.parseInt(args.get(1));
|
||||
} catch (NumberFormatException ignored) {
|
||||
// TODO: Parse from avatar name using GM Handbook.
|
||||
CommandHandler.sendMessage(sender, translate(sender, "commands.execution.invalid.avatarLevel"));
|
||||
CommandHandler.sendMessage(sender, translate(sender, "commands.generic.invalid.avatarLevel"));
|
||||
return;
|
||||
} // Cheeky fall-through to parse first argument too
|
||||
case 1:
|
||||
@@ -34,7 +34,7 @@ public final class GiveCharCommand implements CommandHandler {
|
||||
avatarId = Integer.parseInt(args.get(0));
|
||||
} catch (NumberFormatException ignored) {
|
||||
// TODO: Parse from avatar name using GM Handbook.
|
||||
CommandHandler.sendMessage(sender, translate(sender, "commands.execution.invalid.avatarId"));
|
||||
CommandHandler.sendMessage(sender, translate(sender, "commands.generic.invalid.avatarId"));
|
||||
return;
|
||||
}
|
||||
break;
|
||||
@@ -45,13 +45,13 @@ public final class GiveCharCommand implements CommandHandler {
|
||||
|
||||
AvatarData avatarData = GameData.getAvatarDataMap().get(avatarId);
|
||||
if (avatarData == null) {
|
||||
CommandHandler.sendMessage(sender, translate(sender, "commands.execution.invalid.avatarId"));
|
||||
CommandHandler.sendMessage(sender, translate(sender, "commands.generic.invalid.avatarId"));
|
||||
return;
|
||||
}
|
||||
|
||||
// Check level.
|
||||
if (level > 90) {
|
||||
CommandHandler.sendMessage(sender, translate(sender, "commands.execution.invalid.avatarLevel"));
|
||||
CommandHandler.sendMessage(sender, translate(sender, "commands.generic.invalid.avatarLevel"));
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -215,7 +215,7 @@ public final class SetStatsCommand implements CommandHandler {
|
||||
CommandHandler.sendMessage(sender, translate(sender, "commands.setStats.set_self", stat.name, valueStr));
|
||||
} else {
|
||||
String uidStr = targetPlayer.getAccount().getId();
|
||||
CommandHandler.sendMessage(sender, translate(sender, "commands.setStats.set_self", stat.name, uidStr, valueStr));
|
||||
CommandHandler.sendMessage(sender, translate(sender, "commands.setStats.set_for_uid", stat.name, uidStr, valueStr));
|
||||
}
|
||||
} else {
|
||||
CommandHandler.sendMessage(sender, usage);
|
||||
|
||||
@@ -97,7 +97,7 @@ public final class DatabaseHelper {
|
||||
}
|
||||
|
||||
public static Account getAccountByPlayerId(int playerId) {
|
||||
return DatabaseManager.getGameDatastore().find(Account.class).filter(Filters.eq("playerId", playerId)).first();
|
||||
return DatabaseManager.getGameDatastore().find(Account.class).filter(Filters.eq("reservedPlayerId", playerId)).first();
|
||||
}
|
||||
|
||||
public static void deleteAccount(Account target) {
|
||||
|
||||
@@ -303,6 +303,13 @@ public class EnergyManager {
|
||||
}
|
||||
}
|
||||
public void handleMonsterEnergyDrop(EntityMonster monster, float hpBeforeDamage, float hpAfterDamage) {
|
||||
// Make sure this is actually a monster.
|
||||
// Note that some wildlife also has that type, like boars or birds.
|
||||
String type = monster.getMonsterData().getType();
|
||||
if (!type.equals("MONSTER_ORDINARY") && !type.equals("MONSTER_BOSS")) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Calculate the HP tresholds for before and after the damage was taken.
|
||||
float maxHp = monster.getFightProperty(FightProperty.FIGHT_PROP_MAX_HP);
|
||||
float thresholdBefore = hpBeforeDamage / maxHp;
|
||||
|
||||
Reference in New Issue
Block a user