mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2025-12-13 15:34:40 +01:00
Fix Lua require, Fix monster abilities & Fix ServerLuaCall
This commit is contained in:
@@ -19,11 +19,12 @@ import emu.grasscutter.net.proto.AbilityScalarTypeOuterClass.AbilityScalarType;
|
||||
import emu.grasscutter.net.proto.AbilityScalarValueEntryOuterClass.AbilityScalarValueEntry;
|
||||
import emu.grasscutter.net.proto.ModifierActionOuterClass.ModifierAction;
|
||||
import io.netty.util.concurrent.FastThreadLocalThread;
|
||||
import java.util.HashMap;
|
||||
import java.util.concurrent.*;
|
||||
import lombok.Getter;
|
||||
import org.reflections.Reflections;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.concurrent.*;
|
||||
|
||||
public final class AbilityManager extends BasePlayerManager {
|
||||
private static final HashMap<AbilityModifierAction.Type, AbilityActionHandler> actionHandlers =
|
||||
new HashMap<>();
|
||||
@@ -179,7 +180,12 @@ public final class AbilityManager extends BasePlayerManager {
|
||||
.handleModifierDurabilityChange(invoke);
|
||||
case ABILITY_INVOKE_ARGUMENT_META_ADD_NEW_ABILITY -> this.handleAddNewAbility(invoke);
|
||||
case ABILITY_INVOKE_ARGUMENT_META_SET_KILLED_SETATE -> this.handleKillState(invoke);
|
||||
default -> {}
|
||||
default -> {
|
||||
if (DebugConstants.LOG_MISSING_ABILITIES) {
|
||||
Grasscutter.getLogger().trace("Missing invoke handler for ability {}.",
|
||||
invoke.getArgumentType().name());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -520,27 +526,28 @@ public final class AbilityManager extends BasePlayerManager {
|
||||
var entity = this.player.getScene().getEntityById(invoke.getEntityId());
|
||||
|
||||
if (entity == null) {
|
||||
Grasscutter.getLogger().trace("Entity not found: {}", invoke.getEntityId());
|
||||
if (DebugConstants.LOG_ABILITIES)
|
||||
Grasscutter.getLogger().debug("Entity not found: {}", invoke.getEntityId());
|
||||
return;
|
||||
}
|
||||
|
||||
var addAbility = AbilityMetaAddAbility.parseFrom(invoke.getAbilityData());
|
||||
|
||||
var abilityName = Ability.getAbilityName(addAbility.getAbility().getAbilityName());
|
||||
|
||||
var ability = GameData.getAbilityData(abilityName);
|
||||
if (ability == null) {
|
||||
Grasscutter.getLogger().trace("Ability not found: {}", abilityName);
|
||||
if (DebugConstants.LOG_MISSING_ABILITIES)
|
||||
Grasscutter.getLogger().debug("Ability not found: {}", abilityName);
|
||||
return;
|
||||
}
|
||||
|
||||
entity.getInstancedAbilities().add(new Ability(ability, entity, player));
|
||||
|
||||
Grasscutter.getLogger()
|
||||
.trace(
|
||||
"Ability added to entity {} at index {}",
|
||||
entity.getId(),
|
||||
entity.getInstancedAbilities().size());
|
||||
if (DebugConstants.LOG_ABILITIES) {
|
||||
Grasscutter.getLogger()
|
||||
.debug(
|
||||
"Ability added to entity {} at index {}.",
|
||||
entity.getId(),
|
||||
entity.getInstancedAbilities().size());
|
||||
}
|
||||
}
|
||||
|
||||
private void handleKillState(AbilityInvokeEntry invoke) throws InvalidProtocolBufferException {
|
||||
@@ -568,7 +575,7 @@ public final class AbilityManager extends BasePlayerManager {
|
||||
}
|
||||
|
||||
public void addAbilityToEntity(GameEntity entity, AbilityData abilityData) {
|
||||
Ability ability = new Ability(abilityData, entity, this.player);
|
||||
var ability = new Ability(abilityData, entity, this.player);
|
||||
entity.getInstancedAbilities().add(ability); // This are in order
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user