Simply implement achievement system and add achievement command (#2068)

* Implement achievement system

* Update src/main/java/emu/grasscutter/command/commands/AchievementCommand.java

Co-authored-by: Der Chien <b03902015@ntu.edu.tw>

* fix: redundant codes

* fix: redundant codes

* Update language files

---------

Co-authored-by: Der Chien <b03902015@ntu.edu.tw>
This commit is contained in:
hamusuke
2023-02-26 14:14:27 +09:00
committed by GitHub
Unverified
parent 51479e2abd
commit 3ab3d5bc04
35 changed files with 7418 additions and 1 deletions
@@ -0,0 +1,21 @@
package emu.grasscutter.server.packet.send;
import emu.grasscutter.game.achievement.Achievement;
import emu.grasscutter.game.player.Player;
import emu.grasscutter.net.packet.BasePacket;
import emu.grasscutter.net.packet.PacketOpcodes;
import emu.grasscutter.net.proto.AchievementAllDataNotifyOuterClass;
public class PacketAchievementAllDataNotify extends BasePacket {
public PacketAchievementAllDataNotify(Player player) {
super(PacketOpcodes.AchievementAllDataNotify);
var achievements = player.getAchievements();
var notify = AchievementAllDataNotifyOuterClass.AchievementAllDataNotify.newBuilder()
.addAllAchievementList(achievements.getAchievementList().values().stream().map(Achievement::toProto).toList())
.addAllRewardTakenGoalIdList(achievements.getTakenGoalRewardIdList())
.build();
this.setData(notify);
}
}