mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2025-12-16 17:05:20 +01:00
Fix Lua require, Fix monster abilities & Fix ServerLuaCall
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
package emu.grasscutter.command.commands;
|
||||
|
||||
import emu.grasscutter.Grasscutter;
|
||||
import emu.grasscutter.command.*;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Command(
|
||||
label = "debug",
|
||||
usage = "/debug",
|
||||
permission = "grasscutter.command.debug",
|
||||
targetRequirement = Command.TargetRequirement.NONE)
|
||||
public final class DebugCommand implements CommandHandler {
|
||||
@Override
|
||||
public void execute(Player sender, Player targetPlayer, List<String> args) {
|
||||
if (sender == null) return;
|
||||
|
||||
if (args.isEmpty()) {
|
||||
sender.dropMessage("No arguments provided. (check command for help)");
|
||||
return;
|
||||
}
|
||||
|
||||
var subCommand = args.get(0);
|
||||
args.remove(0);
|
||||
switch (subCommand) {
|
||||
default -> sender.dropMessage("No arguments provided. (check command for help)");
|
||||
case "abilities" -> {
|
||||
if (args.isEmpty()) {
|
||||
sender.dropMessage("No arguments provided. (check command for help)");
|
||||
return;
|
||||
}
|
||||
|
||||
var scene = sender.getScene();
|
||||
var entityId = Integer.parseInt(args.get(0));
|
||||
var entity = args.size() > 1 && args.get(1).equals("config") ?
|
||||
scene.getEntityByConfigId(entityId) :
|
||||
scene.getEntityById(entityId);
|
||||
if (entity == null) {
|
||||
sender.dropMessage("Entity not found.");
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
var abilities = entity.getInstancedAbilities();
|
||||
for (var i = 0; i < abilities.size(); i++) {
|
||||
try {
|
||||
var ability = abilities.get(i);
|
||||
Grasscutter.getLogger().debug("Ability #{}: {}; Modifiers: {}",
|
||||
i, ability.toString(), ability.getModifiers().keySet());
|
||||
} catch (Exception exception) {
|
||||
Grasscutter.getLogger().warn("Failed to print ability #{}.", i, exception);
|
||||
}
|
||||
}
|
||||
|
||||
if (abilities.isEmpty()) {
|
||||
Grasscutter.getLogger().debug("No abilities found on {}.", entity.toString());
|
||||
}
|
||||
} catch (Exception exception) {
|
||||
Grasscutter.getLogger().warn("Failed to get abilities.", exception);
|
||||
}
|
||||
|
||||
sender.dropMessage("Check console for abilities.");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user