mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2026-02-04 17:22:13 +01:00
Merge remote-tracking branch 'origin/unstable' into unstable
# Conflicts: # src/main/java/emu/grasscutter/game/entity/EntityWeapon.java
This commit is contained in:
@@ -1,5 +1,8 @@
|
||||
package emu.grasscutter.auth;
|
||||
|
||||
import static emu.grasscutter.config.Configuration.ACCOUNT;
|
||||
import static emu.grasscutter.utils.lang.Language.translate;
|
||||
|
||||
import at.favre.lib.crypto.bcrypt.BCrypt;
|
||||
import emu.grasscutter.Grasscutter;
|
||||
import emu.grasscutter.Grasscutter.ServerRunMode;
|
||||
@@ -10,16 +13,12 @@ import emu.grasscutter.server.dispatch.*;
|
||||
import emu.grasscutter.server.http.objects.*;
|
||||
import emu.grasscutter.utils.*;
|
||||
import io.javalin.http.ContentType;
|
||||
|
||||
import javax.crypto.Cipher;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.security.KeyFactory;
|
||||
import java.security.interfaces.RSAPrivateKey;
|
||||
import java.security.spec.PKCS8EncodedKeySpec;
|
||||
import java.util.concurrent.*;
|
||||
|
||||
import static emu.grasscutter.config.Configuration.ACCOUNT;
|
||||
import static emu.grasscutter.utils.lang.Language.translate;
|
||||
import javax.crypto.Cipher;
|
||||
|
||||
/** A class containing default authenticators. */
|
||||
public final class DefaultAuthenticators {
|
||||
|
||||
@@ -4,9 +4,8 @@ import emu.grasscutter.data.excels.ProudSkillData;
|
||||
import emu.grasscutter.game.ability.Ability;
|
||||
import it.unimi.dsi.fastutil.floats.FloatArrayList;
|
||||
import it.unimi.dsi.fastutil.objects.*;
|
||||
import lombok.*;
|
||||
|
||||
import java.util.*;
|
||||
import lombok.*;
|
||||
|
||||
@Getter
|
||||
public class DynamicFloat {
|
||||
|
||||
@@ -17,11 +17,10 @@ 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 lombok.Getter;
|
||||
import org.reflections.Reflections;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.concurrent.*;
|
||||
import lombok.Getter;
|
||||
import org.reflections.Reflections;
|
||||
|
||||
public final class AbilityManager extends BasePlayerManager {
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ public class ActionSetGlobalValueToOverrideMap extends AbilityActionHandler {
|
||||
|
||||
entity.getGlobalAbilityValues().put(globalValueKey, globalValue);
|
||||
|
||||
//TODO: ChangeServerGlobalValueNotify
|
||||
// TODO: ChangeServerGlobalValueNotify
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -463,11 +463,16 @@ public class Avatar {
|
||||
this.getEquips().put(itemEquipType.getValue(), item);
|
||||
|
||||
if (itemEquipType == EquipType.EQUIP_WEAPON && getPlayer().getWorld() != null) {
|
||||
if (!(item.getWeaponEntity() != null && item.getWeaponEntity().getScene() == getPlayer().getScene())) {
|
||||
item.setWeaponEntity(new EntityWeapon(this.getPlayer().getScene(), item.getItemData().getGadgetId()));
|
||||
this.getPlayer().getScene().getWeaponEntities().put(item.getWeaponEntity().getId(), item.getWeaponEntity());
|
||||
if (!(item.getWeaponEntity() != null
|
||||
&& item.getWeaponEntity().getScene() == getPlayer().getScene())) {
|
||||
item.setWeaponEntity(
|
||||
new EntityWeapon(this.getPlayer().getScene(), item.getItemData().getGadgetId()));
|
||||
this.getPlayer()
|
||||
.getScene()
|
||||
.getWeaponEntities()
|
||||
.put(item.getWeaponEntity().getId(), item.getWeaponEntity());
|
||||
}
|
||||
//item.setWeaponEntityId(this.getPlayer().getWorld().getNextEntityId(EntityIdType.WEAPON));
|
||||
// item.setWeaponEntityId(this.getPlayer().getWorld().getNextEntityId(EntityIdType.WEAPON));
|
||||
}
|
||||
|
||||
item.setEquipCharacter(this.getAvatarId());
|
||||
@@ -1262,9 +1267,14 @@ public class Avatar {
|
||||
item.setEquipCharacter(this.getAvatarId());
|
||||
item.setOwner(player);
|
||||
if (item.getItemData().getEquipType() == EquipType.EQUIP_WEAPON) {
|
||||
if (!(item.getWeaponEntity() != null && item.getWeaponEntity().getScene() == player.getScene())) {
|
||||
item.setWeaponEntity(new EntityWeapon(player.getScene(), item.getItemData().getGadgetId()));
|
||||
player.getScene().getWeaponEntities().put(item.getWeaponEntity().getId(), item.getWeaponEntity());
|
||||
if (!(item.getWeaponEntity() != null
|
||||
&& item.getWeaponEntity().getScene() == player.getScene())) {
|
||||
item.setWeaponEntity(
|
||||
new EntityWeapon(player.getScene(), item.getItemData().getGadgetId()));
|
||||
player
|
||||
.getScene()
|
||||
.getWeaponEntities()
|
||||
.put(item.getWeaponEntity().getId(), item.getWeaponEntity());
|
||||
}
|
||||
|
||||
player.sendPacket(new PacketAvatarEquipChangeNotify(this, item));
|
||||
|
||||
@@ -64,7 +64,8 @@ public class EntityAvatar extends GameEntity {
|
||||
var weapon = this.getAvatar().getWeapon();
|
||||
if (weapon != null) {
|
||||
if (!(weapon.getWeaponEntity() != null && weapon.getWeaponEntity().getScene() == scene)) {
|
||||
weapon.setWeaponEntity(new EntityWeapon(this.getPlayer().getScene(), weapon.getItemData().getGadgetId()));
|
||||
weapon.setWeaponEntity(
|
||||
new EntityWeapon(this.getPlayer().getScene(), weapon.getItemData().getGadgetId()));
|
||||
scene.getWeaponEntities().put(weapon.getWeaponEntity().getId(), weapon.getWeaponEntity());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -276,13 +276,14 @@ public class GameItem {
|
||||
}
|
||||
|
||||
public SceneWeaponInfo createSceneWeaponInfo() {
|
||||
var weaponInfo = SceneWeaponInfo.newBuilder()
|
||||
.setEntityId(this.getWeaponEntity() != null ? this.getWeaponEntity().getId() : 0)
|
||||
.setItemId(this.getItemId())
|
||||
.setGuid(this.getGuid())
|
||||
.setLevel(this.getLevel())
|
||||
.setGadgetId(this.getItemData().getGadgetId())
|
||||
.setAbilityInfo(AbilitySyncStateInfo.newBuilder().setIsInited(getAffixes().size() > 0));
|
||||
var weaponInfo =
|
||||
SceneWeaponInfo.newBuilder()
|
||||
.setEntityId(this.getWeaponEntity() != null ? this.getWeaponEntity().getId() : 0)
|
||||
.setItemId(this.getItemId())
|
||||
.setGuid(this.getGuid())
|
||||
.setLevel(this.getLevel())
|
||||
.setGadgetId(this.getItemData().getGadgetId())
|
||||
.setAbilityInfo(AbilitySyncStateInfo.newBuilder().setIsInited(getAffixes().size() > 0));
|
||||
|
||||
if (this.getAffixes() != null && this.getAffixes().size() > 0) {
|
||||
for (int affix : this.getAffixes()) {
|
||||
|
||||
@@ -800,7 +800,9 @@ public final class Scene {
|
||||
|
||||
for (GameEntity entity : this.getEntities().values()) {
|
||||
var spawnEntry = entity.getSpawnEntry();
|
||||
if (spawnEntry != null && !(entity instanceof EntityWeapon) && !visible.contains(spawnEntry)) {
|
||||
if (spawnEntry != null
|
||||
&& !(entity instanceof EntityWeapon)
|
||||
&& !visible.contains(spawnEntry)) {
|
||||
toRemove.add(entity);
|
||||
spawnedEntities.remove(spawnEntry);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user