mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2025-12-17 09:25:06 +01:00
implement BattlePass (Except missions) (#1316)
* BattlePass * BattlePass
This commit is contained in:
@@ -29,6 +29,9 @@ public class Account {
|
||||
private List<String> permissions;
|
||||
private Locale locale;
|
||||
|
||||
private int point;
|
||||
private int awardTakenLevel;
|
||||
|
||||
private String banReason;
|
||||
private int banEndTime;
|
||||
private int banStartTime;
|
||||
@@ -208,7 +211,23 @@ public class Account {
|
||||
public boolean removePermission(String permission) {
|
||||
return this.permissions.remove(permission);
|
||||
}
|
||||
|
||||
|
||||
public void setPoint(int point) {
|
||||
this.point = point;
|
||||
}
|
||||
|
||||
public int getPoint() {
|
||||
return point;
|
||||
}
|
||||
|
||||
public void setAwardTakenLevel(int level) {
|
||||
this.awardTakenLevel = level;
|
||||
}
|
||||
|
||||
public int getAwardTakenLevel() {
|
||||
return awardTakenLevel;
|
||||
}
|
||||
|
||||
// TODO make unique
|
||||
public String generateLoginToken() {
|
||||
this.token = Utils.bytesToHex(Crypto.createSessionKey(32));
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
package emu.grasscutter.game.battlepass;
|
||||
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.server.packet.send.PacketBattlePassCurScheduleUpdateNotify;
|
||||
|
||||
public class BattlePassManager {
|
||||
|
||||
private final Player player;
|
||||
private int point;
|
||||
private int awardTakenLevel;
|
||||
|
||||
public BattlePassManager(Player player){
|
||||
this.player = player;
|
||||
point = player.getAccount().getPoint();
|
||||
awardTakenLevel = player.getAccount().getAwardTakenLevel();
|
||||
}
|
||||
|
||||
public void addPoint(int point){
|
||||
this.point += point;
|
||||
player.getAccount().setPoint(point);
|
||||
player.getSession().send(new PacketBattlePassCurScheduleUpdateNotify(player.getSession().getPlayer()));
|
||||
//save the point data
|
||||
player.getAccount().save();
|
||||
}
|
||||
|
||||
public void updateAwardTakenLevel(int level){
|
||||
this.awardTakenLevel = level;
|
||||
player.getAccount().setAwardTakenLevel(awardTakenLevel);
|
||||
player.getSession().send(new PacketBattlePassCurScheduleUpdateNotify(player.getSession().getPlayer()));
|
||||
player.getAccount().save();
|
||||
}
|
||||
|
||||
public int getPoint() {
|
||||
return point;
|
||||
}
|
||||
|
||||
public int getAwardTakenLevel() {
|
||||
return awardTakenLevel;
|
||||
}
|
||||
}
|
||||
@@ -12,6 +12,7 @@ import emu.grasscutter.game.ability.AbilityManager;
|
||||
import emu.grasscutter.game.avatar.Avatar;
|
||||
import emu.grasscutter.game.avatar.AvatarProfileData;
|
||||
import emu.grasscutter.game.avatar.AvatarStorage;
|
||||
import emu.grasscutter.game.battlepass.BattlePassManager;
|
||||
import emu.grasscutter.game.entity.EntityMonster;
|
||||
import emu.grasscutter.game.entity.EntityVehicle;
|
||||
import emu.grasscutter.game.home.GameHome;
|
||||
@@ -169,6 +170,7 @@ public class Player {
|
||||
@Transient private DeforestationManager deforestationManager;
|
||||
@Transient private GameHome home;
|
||||
@Transient private FurnitureManager furnitureManager;
|
||||
@Transient private BattlePassManager battlePassManager;
|
||||
|
||||
private long springLastUsed;
|
||||
private HashMap<String, MapMark> mapMarks;
|
||||
@@ -290,6 +292,10 @@ public class Player {
|
||||
this.account = account;
|
||||
}
|
||||
|
||||
public void setBattlePassManager(Player player){
|
||||
this.battlePassManager = new BattlePassManager(player);
|
||||
}
|
||||
|
||||
public GameSession getSession() {
|
||||
return session;
|
||||
}
|
||||
@@ -1206,6 +1212,10 @@ public class Player {
|
||||
return furnitureManager;
|
||||
}
|
||||
|
||||
public BattlePassManager getBattlePassManager(){
|
||||
return battlePassManager;
|
||||
}
|
||||
|
||||
public AbilityManager getAbilityManager() {
|
||||
return abilityManager;
|
||||
}
|
||||
@@ -1348,6 +1358,7 @@ public class Player {
|
||||
session.send(new PacketPlayerStoreNotify(this));
|
||||
session.send(new PacketAvatarDataNotify(this));
|
||||
session.send(new PacketFinishedParentQuestNotify(this));
|
||||
session.send(new PacketBattlePassAllDataNotify(this));
|
||||
session.send(new PacketQuestListNotify(this));
|
||||
session.send(new PacketCodexDataFullNotify(this));
|
||||
session.send(new PacketAllWidgetDataNotify(this));
|
||||
|
||||
Reference in New Issue
Block a user