Merge remote-tracking branch 'origin/development' into development

This commit is contained in:
KingRainbow44 2022-05-28 18:52:56 -04:00
commit 0c6e63d889
No known key found for this signature in database
GPG Key ID: FC2CB64B00D257BE
9 changed files with 45 additions and 13 deletions

View File

@ -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;
}

View File

@ -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);

View File

@ -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) {

View File

@ -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;

View File

@ -156,5 +156,30 @@
"dropId": 22003100,
"dropList": [
]
},
{
"dropId": 22001000,
"dropList": [
]
},
{
"dropId": 22000100,
"dropList": [
]
},
{
"dropId": 22003000,
"dropList": [
]
},
{
"dropId": 22001100,
"dropList": [
]
},
{
"dropId": 22000000,
"dropList": [
]
}
]

View File

@ -159,7 +159,7 @@
"description": "Gives the player a specified artifact"
},
"giveChar": {
"usage": "Usage: givechar <player> <itemID|itemName> [level]",
"usage": "Usage: givechar <player> <avatarId> [level]",
"given": "Given %s with level %s to %s.",
"invalid_avatar_id": "Invalid avatar ID.",
"invalid_avatar_level": "Invalid avatar level.",

View File

@ -146,7 +146,7 @@
"success": "Dano %s dla %s."
},
"giveChar": {
"usage": "Użycie: givechar <gracz> <id przedmiotu | nazwa przedmiotu> [ilość]",
"usage": "Użycie: givechar <gracz> <avatarId> [ilość]",
"given": "Dano %s z poziomem %s dla %s.",
"invalid_avatar_id": "Błędne ID postaci.",
"invalid_avatar_level": "Błędny poziom postaci.",

View File

@ -104,7 +104,7 @@
"modify": "修改用户账号",
"invalid": "无效的UID。",
"exists": "账号已存在。",
"create": "已创建账号UID 为 %s。",
"create": "已创建 UID 为 %s 的账号。",
"delete": "账号已删除。",
"no_account": "账号不存在。",
"command_usage": "用法account <create|delete> <用户名> [UID]",
@ -163,7 +163,7 @@
"description": "给予指定圣遗物"
},
"giveChar": {
"usage": "用法givechar <玩家> <角色ID|角色名> [等级]",
"usage": "用法givechar <玩家> <角色ID> [等级]",
"given": "已将角色 %s [等级 %s] 给与 %s。",
"invalid_avatar_id": "无效的角色ID。",
"invalid_avatar_level": "无效的角色等级。",
@ -251,7 +251,7 @@
},
"sendMail": {
"usage": "用法sendmail <用户ID|all|help> [模板ID]",
"user_not_exist": "用户 %s 不存在。",
"user_not_exist": "用户 '%s' 不存在。",
"start_composition": "开始撰写邮件。\n请使用 '/sendmail <标题>' 继续。\n你可以随时使用 '/sendmail stop' 停止。",
"templates": "邮件模板尚未实装...",
"invalid_arguments": "无效的参数。",

View File

@ -159,7 +159,7 @@
"description": "給予指定聖遺物。"
},
"giveChar": {
"usage": "用法givechar <player> <itemId|itemName> [level]",
"usage": "用法givechar <player> <avatarId> [level]",
"given": "已將 %s 等級 %s 給予 %s。",
"invalid_avatar_id": "無效的角色ID。",
"invalid_avatar_level": "無效的角色等級。.",