mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2026-03-27 01:53:16 +01:00
Update gc to 3.3 (#1981)
* replace the deprecated api * update proto * delete music game * fixed codes * fix costume switch * fix mail bug * Bump version number. * Re-add max boss chest number Co-authored-by: GanyusLeftHorn <1244229+GanyusLeftHorn@users.noreply.github.com>
This commit is contained in:
@@ -6,7 +6,7 @@ import emu.grasscutter.utils.Position;
|
||||
import emu.grasscutter.utils.Utils;
|
||||
|
||||
public final class GameConstants {
|
||||
public static String VERSION = "3.2.0";
|
||||
public static String VERSION = "3.3.0";
|
||||
|
||||
public static final int DEFAULT_TEAMS = 4;
|
||||
public static final int MAX_TEAMS = 10;
|
||||
|
||||
@@ -82,7 +82,7 @@ public class ItemData extends GameResource {
|
||||
private List<Integer> furnType;
|
||||
private List<Integer> furnitureGadgetID;
|
||||
|
||||
@SerializedName(value="roomSceneId", alternate={"BMEPAMCNABE", "DANFGGLKLNO", "JFDLJGDFIGL", "OHIANNAEEAK"})
|
||||
@SerializedName(value="roomSceneId", alternate={"BMEPAMCNABE", "DANFGGLKLNO", "JFDLJGDFIGL", "OHIANNAEEAK", "MFGACDIOHGF"})
|
||||
private int roomSceneId;
|
||||
|
||||
// Custom
|
||||
|
||||
@@ -349,6 +349,7 @@ public final class DatabaseHelper {
|
||||
public static void savePlayerActivityData(PlayerActivityData playerActivityData) {
|
||||
DatabaseManager.getGameDatastore().save(playerActivityData);
|
||||
}
|
||||
|
||||
public static MusicGameBeatmap getMusicGameBeatmap(long musicShareId) {
|
||||
return DatabaseManager.getGameDatastore().find(MusicGameBeatmap.class)
|
||||
.filter(Filters.eq("musicShareId", musicShareId))
|
||||
|
||||
@@ -133,7 +133,7 @@ public final class AbilityManager extends BasePlayerManager {
|
||||
|
||||
// Destroying rocks
|
||||
if (target instanceof EntityGadget targetGadget && targetGadget.getContent() instanceof GadgetGatherObject gatherObject) {
|
||||
if (data.getAction() == ModifierAction.REMOVED) {
|
||||
if (data.getAction() == ModifierAction.MODIFIER_ACTION_REMOVED) {
|
||||
gatherObject.dropItems(this.getPlayer());
|
||||
return;
|
||||
}
|
||||
@@ -151,7 +151,7 @@ public final class AbilityManager extends BasePlayerManager {
|
||||
}
|
||||
|
||||
// This is not how it works but we will keep it for now since healing abilities dont work properly anyways
|
||||
if (data.getAction() == ModifierAction.ADDED && data.getParentAbilityName() != null) {
|
||||
if (data.getAction() == ModifierAction.MODIFIER_ACTION_ADDED && data.getParentAbilityName() != null) {
|
||||
// Handle add modifier here
|
||||
String modifierString = data.getParentAbilityName().getStr();
|
||||
AbilityModifierEntry modifier = GameData.getAbilityModifiers().get(modifierString);
|
||||
@@ -164,7 +164,7 @@ public final class AbilityManager extends BasePlayerManager {
|
||||
|
||||
// Add to meta modifier list
|
||||
target.getMetaModifiers().put(head.getInstancedModifierId(), modifierString);
|
||||
} else if (data.getAction() == ModifierAction.REMOVED) {
|
||||
} else if (data.getAction() == ModifierAction.MODIFIER_ACTION_REMOVED) {
|
||||
// Handle remove modifier
|
||||
String modifierString = target.getMetaModifiers().get(head.getInstancedModifierId());
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ import emu.grasscutter.game.activity.GameActivity;
|
||||
import emu.grasscutter.game.activity.PlayerActivityData;
|
||||
import emu.grasscutter.game.props.ActivityType;
|
||||
import emu.grasscutter.net.proto.ActivityInfoOuterClass;
|
||||
import emu.grasscutter.net.proto.MusicBriefInfoOuterClass;
|
||||
import emu.grasscutter.net.proto.UgcMusicBriefInfoOuterClass;
|
||||
import emu.grasscutter.net.proto.MusicGameActivityDetailInfoOuterClass;
|
||||
import emu.grasscutter.utils.JsonUtils;
|
||||
|
||||
@@ -29,15 +29,15 @@ public class MusicGameActivityHandler extends ActivityHandler {
|
||||
.putAllMusicGameRecordMap(
|
||||
musicGamePlayerData.getMusicGameRecord().values().stream()
|
||||
.collect(Collectors.toMap(MusicGamePlayerData.MusicGameRecord::getMusicId, MusicGamePlayerData.MusicGameRecord::toProto)))
|
||||
.addAllPersonCustomBeatmap(musicGamePlayerData.getPersonalCustomBeatmapRecord().values().stream()
|
||||
.map(MusicGamePlayerData.CustomBeatmapRecord::toPersonalBriefProto)
|
||||
.map(MusicBriefInfoOuterClass.MusicBriefInfo.Builder::build)
|
||||
.toList())
|
||||
|
||||
.addAllOthersCustomBeatmap(musicGamePlayerData.getOthersCustomBeatmapRecord().values().stream()
|
||||
.map(MusicGamePlayerData.CustomBeatmapRecord::toOthersBriefProto)
|
||||
.map(MusicBriefInfoOuterClass.MusicBriefInfo.Builder::build)
|
||||
.toList())
|
||||
// .addAllPersonCustomBeatmap(musicGamePlayerData.getPersonalCustomBeatmapRecord().values().stream()
|
||||
// .map(MusicGamePlayerData.CustomBeatmapRecord::toPersonalBriefProto)
|
||||
// .map(UgcMusicBriefInfoOuterClass.UgcMusicBriefInfo.Builder::build)
|
||||
// .toList())
|
||||
//
|
||||
// .addAllOthersCustomBeatmap(musicGamePlayerData.getOthersCustomBeatmapRecord().values().stream()
|
||||
// .map(MusicGamePlayerData.CustomBeatmapRecord::toOthersBriefProto)
|
||||
// .map(UgcMusicBriefInfoOuterClass.UgcMusicBriefInfo.Builder::build)
|
||||
// .toList())
|
||||
.build());
|
||||
}
|
||||
|
||||
|
||||
@@ -3,10 +3,10 @@ package emu.grasscutter.game.activity.musicgame;
|
||||
import dev.morphia.annotations.Entity;
|
||||
import dev.morphia.annotations.Id;
|
||||
import emu.grasscutter.database.DatabaseHelper;
|
||||
import emu.grasscutter.net.proto.MusicBeatmapListOuterClass;
|
||||
import emu.grasscutter.net.proto.MusicBeatmapNoteOuterClass;
|
||||
import emu.grasscutter.net.proto.MusicBeatmapOuterClass;
|
||||
import emu.grasscutter.net.proto.MusicBriefInfoOuterClass;
|
||||
import emu.grasscutter.net.proto.UgcMusicRecordOuterClass;
|
||||
import emu.grasscutter.net.proto.UgcMusicNoteOuterClass;
|
||||
import emu.grasscutter.net.proto.UgcMusicTrackOuterClass;
|
||||
import emu.grasscutter.net.proto.UgcMusicBriefInfoOuterClass;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
@@ -43,40 +43,39 @@ public class MusicGameBeatmap {
|
||||
DatabaseHelper.saveMusicGameBeatmap(this);
|
||||
}
|
||||
|
||||
public static List<List<BeatmapNote>> parse(List<MusicBeatmapListOuterClass.MusicBeatmapList> beatmapItemListList) {
|
||||
public static List<List<BeatmapNote>> parse(List<UgcMusicTrackOuterClass.UgcMusicTrack> beatmapItemListList) {
|
||||
return beatmapItemListList.stream()
|
||||
.map(item -> item.getBeatmapNoteListList().stream()
|
||||
.map(item -> item.getMusicNoteListList().stream()
|
||||
.map(BeatmapNote::parse)
|
||||
.toList())
|
||||
.toList();
|
||||
}
|
||||
|
||||
public MusicBeatmapOuterClass.MusicBeatmap toProto(){
|
||||
return MusicBeatmapOuterClass.MusicBeatmap.newBuilder()
|
||||
public UgcMusicRecordOuterClass.UgcMusicRecord toProto(){
|
||||
return UgcMusicRecordOuterClass.UgcMusicRecord.newBuilder()
|
||||
.setMusicId(musicId)
|
||||
.addAllBeatmapItemList(beatmap.stream()
|
||||
.addAllMusicTrackList(beatmap.stream()
|
||||
.map(this::musicBeatmapListToProto)
|
||||
.toList())
|
||||
.build();
|
||||
}
|
||||
|
||||
public MusicBriefInfoOuterClass.MusicBriefInfo.Builder toBriefProto(){
|
||||
public UgcMusicBriefInfoOuterClass.UgcMusicBriefInfo.Builder toBriefProto(){
|
||||
var player = DatabaseHelper.getPlayerByUid(authorUid);
|
||||
|
||||
return MusicBriefInfoOuterClass.MusicBriefInfo.newBuilder()
|
||||
return UgcMusicBriefInfoOuterClass.UgcMusicBriefInfo.newBuilder()
|
||||
.setMusicId(musicId)
|
||||
.setMusicNoteCount(musicNoteCount)
|
||||
.setMusicShareId(musicShareId)
|
||||
// .setMusicNoteCount(musicNoteCount)
|
||||
.setUgcGuid(musicShareId)
|
||||
.setMaxScore(maxScore)
|
||||
.setShareTime(createTime)
|
||||
.setAuthorNickname(player.getNickname())
|
||||
.setVersion(1)
|
||||
;
|
||||
// .setShareTime(createTime)
|
||||
.setCreatorNickname(player.getNickname())
|
||||
.setVersion(1);
|
||||
}
|
||||
|
||||
private MusicBeatmapListOuterClass.MusicBeatmapList musicBeatmapListToProto(List<BeatmapNote> beatmapNoteList){
|
||||
return MusicBeatmapListOuterClass.MusicBeatmapList.newBuilder()
|
||||
.addAllBeatmapNoteList(beatmapNoteList.stream()
|
||||
private UgcMusicTrackOuterClass.UgcMusicTrack musicBeatmapListToProto(List<BeatmapNote> beatmapNoteList){
|
||||
return UgcMusicTrackOuterClass.UgcMusicTrack.newBuilder()
|
||||
.addAllMusicNoteList(beatmapNoteList.stream()
|
||||
.map(BeatmapNote::toProto)
|
||||
.toList())
|
||||
.build();
|
||||
@@ -90,15 +89,15 @@ public class MusicGameBeatmap {
|
||||
int startTime;
|
||||
int endTime;
|
||||
|
||||
public static BeatmapNote parse(MusicBeatmapNoteOuterClass.MusicBeatmapNote note){
|
||||
public static BeatmapNote parse(UgcMusicNoteOuterClass.UgcMusicNote note){
|
||||
return BeatmapNote.of()
|
||||
.startTime(note.getStartTime())
|
||||
.endTime(note.getEndTime())
|
||||
.build();
|
||||
}
|
||||
|
||||
public MusicBeatmapNoteOuterClass.MusicBeatmapNote toProto(){
|
||||
return MusicBeatmapNoteOuterClass.MusicBeatmapNote.newBuilder()
|
||||
public UgcMusicNoteOuterClass.UgcMusicNote toProto(){
|
||||
return UgcMusicNoteOuterClass.UgcMusicNote.newBuilder()
|
||||
.setStartTime(startTime)
|
||||
.setEndTime(endTime)
|
||||
.build();
|
||||
|
||||
@@ -2,7 +2,7 @@ package emu.grasscutter.game.activity.musicgame;
|
||||
|
||||
import emu.grasscutter.data.GameData;
|
||||
import emu.grasscutter.data.excels.MusicGameBasicData;
|
||||
import emu.grasscutter.net.proto.MusicBriefInfoOuterClass;
|
||||
import emu.grasscutter.net.proto.UgcMusicBriefInfoOuterClass;
|
||||
import emu.grasscutter.net.proto.MusicGameRecordOuterClass;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.Builder;
|
||||
@@ -61,25 +61,25 @@ public class MusicGamePlayerData {
|
||||
int score;
|
||||
boolean settle;
|
||||
|
||||
public MusicBriefInfoOuterClass.MusicBriefInfo.Builder toPersonalBriefProto() {
|
||||
public UgcMusicBriefInfoOuterClass.UgcMusicBriefInfo.Builder toPersonalBriefProto() {
|
||||
var musicGameBeatmap = MusicGameBeatmap.getByShareId(musicShareId);
|
||||
|
||||
return MusicBriefInfoOuterClass.MusicBriefInfo.newBuilder()
|
||||
.setCanShare(true)
|
||||
.setCreateTime(musicGameBeatmap.getCreateTime())
|
||||
return UgcMusicBriefInfoOuterClass.UgcMusicBriefInfo.newBuilder()
|
||||
// .setCanShare(true)
|
||||
// .setCreateTime(musicGameBeatmap.getCreateTime())
|
||||
.setMusicId(musicGameBeatmap.getMusicId())
|
||||
.setMaxScore(musicGameBeatmap.getMaxScore())
|
||||
.setPosition(musicGameBeatmap.getSavePosition())
|
||||
.setMusicNoteCount(musicGameBeatmap.getMusicNoteCount())
|
||||
.setMusicShareId(musicShareId);
|
||||
// .setPosition(musicGameBeatmap.getSavePosition())
|
||||
// .setMusicNoteCount(musicGameBeatmap.getMusicNoteCount())
|
||||
.setUgcGuid(musicShareId);
|
||||
}
|
||||
|
||||
public MusicBriefInfoOuterClass.MusicBriefInfo.Builder toOthersBriefProto() {
|
||||
public UgcMusicBriefInfoOuterClass.UgcMusicBriefInfo.Builder toOthersBriefProto() {
|
||||
var musicGameBeatmap = MusicGameBeatmap.getByShareId(musicShareId);
|
||||
|
||||
return musicGameBeatmap.toBriefProto()
|
||||
.setScore(score)
|
||||
.setSettle(settle)
|
||||
// .setScore(score)
|
||||
// .setSettle(settle)
|
||||
;
|
||||
}
|
||||
|
||||
|
||||
@@ -367,7 +367,7 @@ public class BattlePassManager extends BasePlayerDataManager {
|
||||
.setEndTime(2059483200)
|
||||
.setIsViewed(this.isViewed())
|
||||
.setUnlockStatus(this.isPaid() ? BattlePassUnlockStatus.BATTLE_PASS_UNLOCK_STATUS_PAID : BattlePassUnlockStatus.BATTLE_PASS_UNLOCK_STATUS_FREE)
|
||||
.setUnk2700ODHAAHEPFAG(2) // Not bought on Playstation.
|
||||
.setPaidPlatformFlags(2) // Not bought on Playstation.
|
||||
.setCurCyclePoints(this.getCyclePoints())
|
||||
.setCurCycle(BattlePassCycle.newBuilder()
|
||||
.setBeginTime(0)
|
||||
|
||||
@@ -54,12 +54,14 @@ public class EntityAvatar extends GameEntity {
|
||||
super(scene);
|
||||
this.avatar = avatar;
|
||||
this.avatar.setCurrentEnergy();
|
||||
if (scene != null)
|
||||
if (getScene() != null)
|
||||
{
|
||||
this.id = getScene().getWorld().getNextEntityId(EntityIdType.AVATAR);
|
||||
|
||||
GameItem weapon = this.getAvatar().getWeapon();
|
||||
if (weapon != null) {
|
||||
weapon.setWeaponEntityId(getScene().getWorld().getNextEntityId(EntityIdType.WEAPON));
|
||||
GameItem weapon = getAvatar().getWeapon();
|
||||
if (weapon != null) {
|
||||
weapon.setWeaponEntityId(getScene().getWorld().getNextEntityId(EntityIdType.WEAPON));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -13,19 +13,19 @@ import emu.grasscutter.net.proto.ProfilePictureOuterClass.ProfilePicture;
|
||||
@Entity(value = "friendships", useDiscriminator = false)
|
||||
public class Friendship {
|
||||
@Id private ObjectId id;
|
||||
|
||||
|
||||
@Transient private Player owner;
|
||||
|
||||
|
||||
@Indexed private int ownerId;
|
||||
@Indexed private int friendId;
|
||||
private boolean isFriend;
|
||||
private int askerId;
|
||||
|
||||
|
||||
private PlayerProfile profile;
|
||||
|
||||
|
||||
@Deprecated // Morphia use only
|
||||
public Friendship() { }
|
||||
|
||||
|
||||
public Friendship(Player owner, Player friend, Player asker) {
|
||||
this.setOwner(owner);
|
||||
this.ownerId = owner.getUid();
|
||||
@@ -69,12 +69,12 @@ public class Friendship {
|
||||
public PlayerProfile getFriendProfile() {
|
||||
return profile;
|
||||
}
|
||||
|
||||
|
||||
public void setFriendProfile(Player character) {
|
||||
if (character == null || this.friendId != character.getUid()) return;
|
||||
this.profile = character.getProfile();
|
||||
}
|
||||
|
||||
|
||||
public boolean isOnline() {
|
||||
return getFriendProfile().getPlayer() != null;
|
||||
}
|
||||
@@ -86,7 +86,7 @@ public class Friendship {
|
||||
public void delete() {
|
||||
DatabaseHelper.deleteFriendship(this);
|
||||
}
|
||||
|
||||
|
||||
public FriendBrief toProto() {
|
||||
FriendBrief proto = FriendBrief.newBuilder()
|
||||
.setUid(getFriendProfile().getUid())
|
||||
@@ -95,7 +95,7 @@ public class Friendship {
|
||||
.setProfilePicture(ProfilePicture.newBuilder().setAvatarId(getFriendProfile().getAvatarId()))
|
||||
.setWorldLevel(getFriendProfile().getWorldLevel())
|
||||
.setSignature(getFriendProfile().getSignature())
|
||||
.setOnlineState(getFriendProfile().isOnline() ? FriendOnlineState.FRIEND_ONLINE_STATE_ONLINE : FriendOnlineState.FRIEND_ONLINE_STATE_FREIEND_DISCONNECT)
|
||||
.setOnlineState(getFriendProfile().isOnline() ? FriendOnlineState.FRIEND_ONLINE_STATE_ONLINE : FriendOnlineState.FRIEND_ONLINE_STATE_DISCONNECT)
|
||||
.setIsMpModeAvailable(true)
|
||||
.setLastActiveTime(getFriendProfile().getLastActiveTime())
|
||||
.setNameCardId(getFriendProfile().getNameCard())
|
||||
|
||||
@@ -82,7 +82,7 @@ public class GameHome {
|
||||
player.getSession().send(new PacketHomeComfortInfoNotify(player));
|
||||
player.getSession().send(new PacketFurnitureCurModuleArrangeCountNotify());
|
||||
player.getSession().send(new PacketHomeMarkPointNotify(player));
|
||||
player.getSession().send(new PacketUnlockedHomeBgmNotify(player));
|
||||
player.getSession().send(new PacketHomeAllUnlockedBgmIdListNotify(player));
|
||||
}
|
||||
|
||||
public Player getPlayer() {
|
||||
@@ -99,8 +99,8 @@ public class GameHome {
|
||||
if (!getUnlockedHomeBgmList().add(homeBgmId)) return false;
|
||||
|
||||
var player = this.getPlayer();
|
||||
player.sendPacket(new PacketUnlockHomeBgmNotify(homeBgmId));
|
||||
player.sendPacket(new PacketUnlockedHomeBgmNotify(player));
|
||||
player.sendPacket(new PacketHomeNewUnlockedBgmIdListNotify(homeBgmId));
|
||||
player.sendPacket(new PacketHomeAllUnlockedBgmIdListNotify(player));
|
||||
save();
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -56,7 +56,7 @@ public class HomeSceneItem {
|
||||
this.bornPos = new Position(arrangementInfo.getBornPos());
|
||||
this.bornRot = new Position(arrangementInfo.getBornRot());
|
||||
this.djinnPos = new Position(arrangementInfo.getDjinnPos());
|
||||
this.homeBgmId = arrangementInfo.getUnk2700BJHAMKKECEI();
|
||||
this.homeBgmId = arrangementInfo.getBgmId();
|
||||
this.mainHouse = HomeFurnitureItem.parseFrom(arrangementInfo.getMainHouse());
|
||||
this.tmpVersion = arrangementInfo.getTmpVersion();
|
||||
}
|
||||
@@ -84,7 +84,7 @@ public class HomeSceneItem {
|
||||
.setDjinnPos(djinnPos.toProto())
|
||||
.setIsSetBornPos(true)
|
||||
.setSceneId(sceneId)
|
||||
.setUnk2700BJHAMKKECEI(homeBgmId)
|
||||
.setBgmId(homeBgmId)
|
||||
.setTmpVersion(tmpVersion);
|
||||
|
||||
if (mainHouse != null) {
|
||||
|
||||
@@ -22,18 +22,18 @@ import emu.grasscutter.net.proto.MotionStateOuterClass.MotionState;
|
||||
import emu.grasscutter.net.proto.PlayerDieTypeOuterClass.PlayerDieType;
|
||||
import emu.grasscutter.net.proto.RetcodeOuterClass.Retcode;
|
||||
import emu.grasscutter.server.event.player.PlayerTeamDeathEvent;
|
||||
import emu.grasscutter.server.packet.send.PacketAddCustomTeamRsp;
|
||||
import emu.grasscutter.server.packet.send.PacketAddBackupAvatarTeamRsp;
|
||||
import emu.grasscutter.server.packet.send.PacketAvatarDieAnimationEndRsp;
|
||||
import emu.grasscutter.server.packet.send.PacketAvatarFightPropUpdateNotify;
|
||||
import emu.grasscutter.server.packet.send.PacketAvatarLifeStateChangeNotify;
|
||||
import emu.grasscutter.server.packet.send.PacketAvatarTeamAllDataNotify;
|
||||
import emu.grasscutter.server.packet.send.PacketAvatarTeamUpdateNotify;
|
||||
import emu.grasscutter.server.packet.send.PacketChangeAvatarRsp;
|
||||
import emu.grasscutter.server.packet.send.PacketChangeMpTeamAvatarRsp;
|
||||
import emu.grasscutter.server.packet.send.PacketChangeTeamNameRsp;
|
||||
import emu.grasscutter.server.packet.send.PacketChooseCurAvatarTeamRsp;
|
||||
import emu.grasscutter.server.packet.send.PacketCustomTeamListNotify;
|
||||
import emu.grasscutter.server.packet.send.PacketDelBackupAvatarTeamRsp;
|
||||
import emu.grasscutter.server.packet.send.PacketPlayerEnterSceneNotify;
|
||||
import emu.grasscutter.server.packet.send.PacketRemoveCustomTeamRsp;
|
||||
import emu.grasscutter.server.packet.send.PacketSceneTeamUpdateNotify;
|
||||
import emu.grasscutter.server.packet.send.PacketSetUpAvatarTeamRsp;
|
||||
import emu.grasscutter.server.packet.send.PacketWorldPlayerDieNotify;
|
||||
@@ -660,7 +660,7 @@ public class TeamManager extends BasePlayerDataManager {
|
||||
public synchronized void addNewCustomTeam() {
|
||||
// Sanity check - max number of teams.
|
||||
if (this.teams.size() == GameConstants.MAX_TEAMS) {
|
||||
player.sendPacket(new PacketAddCustomTeamRsp(Retcode.RET_FAIL));
|
||||
player.sendPacket(new PacketAddBackupAvatarTeamRsp(Retcode.RET_FAIL));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -677,21 +677,21 @@ public class TeamManager extends BasePlayerDataManager {
|
||||
this.teams.put(id, new TeamInfo());
|
||||
|
||||
// Send packets.
|
||||
player.sendPacket(new PacketCustomTeamListNotify(player));
|
||||
player.sendPacket(new PacketAddCustomTeamRsp());
|
||||
player.sendPacket(new PacketAvatarTeamAllDataNotify(player));
|
||||
player.sendPacket(new PacketAddBackupAvatarTeamRsp());
|
||||
}
|
||||
|
||||
public synchronized void removeCustomTeam(int id) {
|
||||
// Check if the target id exists.
|
||||
if (!this.teams.containsKey(id)) {
|
||||
player.sendPacket(new PacketRemoveCustomTeamRsp(Retcode.RET_FAIL, id));
|
||||
player.sendPacket(new PacketDelBackupAvatarTeamRsp(Retcode.RET_FAIL, id));
|
||||
}
|
||||
|
||||
// Remove team.
|
||||
this.teams.remove(id);
|
||||
|
||||
// Send packets.
|
||||
player.sendPacket(new PacketCustomTeamListNotify(player));
|
||||
player.sendPacket(new PacketRemoveCustomTeamRsp(id));
|
||||
player.sendPacket(new PacketAvatarTeamAllDataNotify(player));
|
||||
player.sendPacket(new PacketDelBackupAvatarTeamRsp(id));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,7 +37,6 @@ import javax.script.Bindings;
|
||||
import javax.script.CompiledScript;
|
||||
import javax.script.ScriptException;
|
||||
|
||||
import static emu.grasscutter.config.Configuration.SCRIPT;
|
||||
|
||||
@Entity(value = "quests", useDiscriminator = false)
|
||||
public class GameMainQuest {
|
||||
@@ -356,7 +355,7 @@ public class GameMainQuest {
|
||||
.setIsFinished(isFinished());
|
||||
|
||||
proto.setParentQuestState(getState().getValue())
|
||||
.setCutsceneEncryptionKey(QuestManager.getQuestKey(parentQuestId));
|
||||
.setVideoKey(QuestManager.getQuestKey(parentQuestId));
|
||||
for (GameQuest quest : this.getChildQuests().values()) {
|
||||
if (quest.getState() != QuestState.QUEST_STATE_UNSTARTED) {
|
||||
ChildQuest childQuest = ChildQuest.newBuilder()
|
||||
|
||||
@@ -4,7 +4,6 @@ import emu.grasscutter.game.CoopRequest;
|
||||
import emu.grasscutter.game.props.EnterReason;
|
||||
import emu.grasscutter.game.world.World;
|
||||
import emu.grasscutter.net.proto.EnterTypeOuterClass.EnterType;
|
||||
import emu.grasscutter.net.proto.PlayerApplyEnterMpReasonOuterClass.PlayerApplyEnterMpReason;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.game.player.Player.SceneLoadState;
|
||||
import emu.grasscutter.net.proto.PlayerApplyEnterMpResultNotifyOuterClass;
|
||||
|
||||
@@ -122,7 +122,7 @@ public class WorldDataSystem extends BaseGameSystem {
|
||||
var bossChest = group.searchBossChestInGroup();
|
||||
if (bossChest.isPresent()) {
|
||||
builder.setResin(bossChest.get().resin);
|
||||
builder.setBossChestNum(bossChest.get().take_num);
|
||||
builder.setMaxBossChestNum(bossChest.get().take_num);
|
||||
}
|
||||
}
|
||||
return builder.build();
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -3,9 +3,10 @@ package emu.grasscutter.server.http.dispatch;
|
||||
import com.google.protobuf.ByteString;
|
||||
import emu.grasscutter.Grasscutter;
|
||||
import emu.grasscutter.Grasscutter.ServerRunMode;
|
||||
import emu.grasscutter.net.proto.QueryRegionListHttpRspOuterClass.QueryRegionListHttpRsp;
|
||||
import emu.grasscutter.net.proto.QueryCurrRegionHttpRspOuterClass.QueryCurrRegionHttpRsp;
|
||||
import emu.grasscutter.net.proto.RegionInfoOuterClass.RegionInfo;
|
||||
import emu.grasscutter.net.proto.RegionSimpleInfoOuterClass.RegionSimpleInfo;
|
||||
import emu.grasscutter.net.proto.RegionInfoOuterClass.RegionInfo;
|
||||
import emu.grasscutter.server.event.dispatch.QueryAllRegionsEvent;
|
||||
import emu.grasscutter.server.event.dispatch.QueryCurrentRegionEvent;
|
||||
import emu.grasscutter.server.http.Router;
|
||||
@@ -23,7 +24,6 @@ import java.security.Signature;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import static emu.grasscutter.config.Configuration.*;
|
||||
import static emu.grasscutter.net.proto.QueryRegionListHttpRspOuterClass.QueryRegionListHttpRsp;
|
||||
|
||||
/**
|
||||
* Handles requests related to region queries.
|
||||
|
||||
@@ -5,8 +5,8 @@ import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.packet.PacketHandler;
|
||||
import emu.grasscutter.server.game.GameSession;
|
||||
|
||||
@Opcodes(PacketOpcodes.AddCustomTeamReq)
|
||||
public class HandlerAddCustomTeamReq extends PacketHandler {
|
||||
@Opcodes(PacketOpcodes.AddBackupAvatarTeamReq)
|
||||
public class HandlerAddBackupAvatarTeamReq extends PacketHandler {
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
session.getPlayer().getTeamManager().addNewCustomTeam();
|
||||
@@ -1,26 +0,0 @@
|
||||
package emu.grasscutter.server.packet.recv;
|
||||
|
||||
import emu.grasscutter.net.packet.Opcodes;
|
||||
import emu.grasscutter.net.packet.PacketHandler;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.Unk2700BEDLIGJANCJClientReq;
|
||||
import emu.grasscutter.server.game.GameSession;
|
||||
import emu.grasscutter.server.packet.send.PacketChangeHomeBgmNotify;
|
||||
import emu.grasscutter.server.packet.send.PacketChangeHomeBgmRsp;
|
||||
|
||||
@Opcodes(PacketOpcodes.Unk2700_BEDLIGJANCJ_ClientReq)
|
||||
public class HandlerChangeHomeBgmReq extends PacketHandler {
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
var req = Unk2700BEDLIGJANCJClientReq.Unk2700_BEDLIGJANCJ_ClientReq.parseFrom(payload);
|
||||
|
||||
int homeBgmId = req.getUnk2700BJHAMKKECEI();
|
||||
var home = session.getPlayer().getHome();
|
||||
|
||||
home.getHomeSceneItem(session.getPlayer().getSceneId()).setHomeBgmId(homeBgmId);
|
||||
home.save();
|
||||
|
||||
session.send(new PacketChangeHomeBgmNotify(homeBgmId));
|
||||
session.send(new PacketChangeHomeBgmRsp());
|
||||
}
|
||||
}
|
||||
@@ -2,15 +2,15 @@ package emu.grasscutter.server.packet.recv;
|
||||
|
||||
import emu.grasscutter.net.packet.Opcodes;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.RemoveCustomTeamReqOuterClass.RemoveCustomTeamReq;
|
||||
import emu.grasscutter.net.proto.DelBackupAvatarTeamReqOuterClass.DelBackupAvatarTeamReq;
|
||||
import emu.grasscutter.net.packet.PacketHandler;
|
||||
import emu.grasscutter.server.game.GameSession;
|
||||
|
||||
@Opcodes(PacketOpcodes.RemoveCustomTeamReq)
|
||||
public class HandlerRemoveCustomTeamReq extends PacketHandler {
|
||||
@Opcodes(PacketOpcodes.DelBackupAvatarTeamReq)
|
||||
public class HandlerDelBackupAvatarTeamReq extends PacketHandler {
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
RemoveCustomTeamReq req = RemoveCustomTeamReq.parseFrom(payload);
|
||||
session.getPlayer().getTeamManager().removeCustomTeam(req.getId());
|
||||
DelBackupAvatarTeamReq req = DelBackupAvatarTeamReq.parseFrom(payload);
|
||||
session.getPlayer().getTeamManager().removeCustomTeam(req.getBackupAvatarTeamId());
|
||||
}
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
package emu.grasscutter.server.packet.recv;
|
||||
|
||||
import emu.grasscutter.net.packet.Opcodes;
|
||||
import emu.grasscutter.net.packet.PacketHandler;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.FireWorkReqOuterClass;
|
||||
import emu.grasscutter.server.game.GameSession;
|
||||
import emu.grasscutter.server.packet.send.PacketFireworkNotify;
|
||||
import emu.grasscutter.server.packet.send.PacketFireworkRsp;
|
||||
|
||||
@Opcodes(PacketOpcodes.FireworkReq)
|
||||
public class HandlerFireWorkReq extends PacketHandler {
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
|
||||
var req
|
||||
= FireWorkReqOuterClass.FireWorkReq.parseFrom(payload);
|
||||
session.send(new PacketFireworkNotify(req.getFireWorkData()));
|
||||
session.send(new PacketFireworkRsp());
|
||||
}
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
package emu.grasscutter.server.packet.recv;
|
||||
|
||||
import emu.grasscutter.net.packet.Opcodes;
|
||||
import emu.grasscutter.net.packet.PacketHandler;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.FireworkSetReqOuterClass;
|
||||
import emu.grasscutter.server.game.GameSession;
|
||||
import emu.grasscutter.server.packet.send.PacketFireworkSetNotify;
|
||||
import emu.grasscutter.server.packet.send.PacketFireworkSetRsp;
|
||||
|
||||
@Opcodes(PacketOpcodes.FireworkSetReq)
|
||||
public class HandlerFireworkSetReq extends PacketHandler {
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
|
||||
var req
|
||||
= FireworkSetReqOuterClass.FireworkSetReq.parseFrom(payload);
|
||||
|
||||
|
||||
session.send(new PacketFireworkSetNotify(req.getData()));
|
||||
session.send(new PacketFireworkSetRsp());
|
||||
}
|
||||
}
|
||||
@@ -16,6 +16,6 @@ public class HandlerGetAllMailReq extends PacketHandler {
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
GetAllMailReqOuterClass.GetAllMailReq req = GetAllMailReqOuterClass.GetAllMailReq.parseFrom(payload);
|
||||
session.send(new PacketGetAllMailRsp(session.getPlayer(), req.getUnk2700OPEHLDAGICF()));
|
||||
session.send(new PacketGetAllMailRsp(session.getPlayer(), req.getIsCollected()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,7 +106,7 @@ public class HandlerGetPlayerTokenReq extends PacketHandler {
|
||||
Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");
|
||||
cipher.init(Cipher.DECRYPT_MODE, Crypto.CUR_SIGNING_KEY);
|
||||
|
||||
var client_seed_encrypted = Utils.base64Decode(req.getClientSeed());
|
||||
var client_seed_encrypted = Utils.base64Decode(req.getClientRandKey());
|
||||
var client_seed = ByteBuffer.wrap(cipher.doFinal(client_seed_encrypted))
|
||||
.getLong();
|
||||
|
||||
@@ -124,7 +124,7 @@ public class HandlerGetPlayerTokenReq extends PacketHandler {
|
||||
session.send(new PacketGetPlayerTokenRsp(session, Utils.base64Encode(seed_encrypted), Utils.base64Encode(privateSignature.sign())));
|
||||
} catch (Exception ignore) {
|
||||
// Only UA Patch users will have exception
|
||||
byte[] clientBytes = Utils.base64Decode(req.getClientSeed());
|
||||
byte[] clientBytes = Utils.base64Decode(req.getClientRandKey());
|
||||
byte[] seed = ByteHelper.longToBytes(Crypto.ENCRYPT_SEED);
|
||||
Crypto.xor(clientBytes, seed);
|
||||
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
package emu.grasscutter.server.packet.recv;
|
||||
|
||||
import emu.grasscutter.net.packet.Opcodes;
|
||||
import emu.grasscutter.net.packet.PacketHandler;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.HomeChangeBgmReqOuterClass;
|
||||
import emu.grasscutter.server.game.GameSession;
|
||||
import emu.grasscutter.server.packet.send.PacketHomeChangeBgmNotify;
|
||||
import emu.grasscutter.server.packet.send.PacketHomeChangeBgmRsp;
|
||||
|
||||
@Opcodes(PacketOpcodes.HomeChangeBgmReq)
|
||||
public class HandlerHomeChangeBgmReq extends PacketHandler {
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
var req = HomeChangeBgmReqOuterClass.HomeChangeBgmReq.parseFrom(payload);
|
||||
|
||||
int homeBgmId = req.getBgmId();
|
||||
var home = session.getPlayer().getHome();
|
||||
|
||||
home.getHomeSceneItem(session.getPlayer().getSceneId()).setHomeBgmId(homeBgmId);
|
||||
home.save();
|
||||
|
||||
session.send(new PacketHomeChangeBgmNotify(homeBgmId));
|
||||
session.send(new PacketHomeChangeBgmRsp());
|
||||
}
|
||||
}
|
||||
@@ -9,12 +9,12 @@ import emu.grasscutter.server.packet.send.*;
|
||||
|
||||
@Opcodes(PacketOpcodes.HomeChangeEditModeReq)
|
||||
public class HandlerHomeChangeEditModeReq extends PacketHandler {
|
||||
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
var req = HomeChangeEditModeReqOuterClass.HomeChangeEditModeReq.parseFrom(payload);
|
||||
|
||||
session.send(new PacketHomeUnknown1Notify(req.getIsEnterEditMode()));
|
||||
session.send(new PacketHomePreChangeEditModeNotify(req.getIsEnterEditMode()));
|
||||
session.send(new PacketHomeBasicInfoNotify(session.getPlayer(), req.getIsEnterEditMode()));
|
||||
session.send(new PacketHomeComfortInfoNotify(session.getPlayer()));
|
||||
|
||||
|
||||
@@ -4,17 +4,17 @@ import emu.grasscutter.net.packet.Opcodes;
|
||||
import emu.grasscutter.net.packet.PacketHandler;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.server.game.GameSession;
|
||||
import emu.grasscutter.server.packet.send.PacketHomeUnknown2Rsp;
|
||||
import emu.grasscutter.server.packet.send.PacketHomeEnterEditModeFinishRsp;
|
||||
|
||||
@Opcodes(PacketOpcodes.Unk2700_ACILPONNGGK_ClientReq)
|
||||
public class HandlerHomeUnknown2Req extends PacketHandler {
|
||||
@Opcodes(PacketOpcodes.HomeEnterEditModeFinishReq)
|
||||
public class HandlerHomeEnterEditModeFinishReq extends PacketHandler {
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
/*
|
||||
* This packet is about the edit mode
|
||||
*/
|
||||
session.send(new PacketHomeUnknown2Rsp());
|
||||
session.send(new PacketHomeEnterEditModeFinishRsp());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package emu.grasscutter.server.packet.recv;
|
||||
|
||||
import emu.grasscutter.net.packet.Opcodes;
|
||||
import emu.grasscutter.net.packet.PacketHandler;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.LaunchFireworksReqOuterClass;
|
||||
import emu.grasscutter.server.game.GameSession;
|
||||
import emu.grasscutter.server.packet.send.PacketFireworksLaunchDataNotify;
|
||||
import emu.grasscutter.server.packet.send.PacketLaunchFireworksRsp;
|
||||
|
||||
@Opcodes(PacketOpcodes.LaunchFireworksReq)
|
||||
public class HandlerLaunchFireworksReq extends PacketHandler {
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
|
||||
var req
|
||||
= LaunchFireworksReqOuterClass.LaunchFireworksReq.parseFrom(payload);
|
||||
|
||||
|
||||
session.send(new PacketFireworksLaunchDataNotify(req.getSchemeData()));
|
||||
session.send(new PacketLaunchFireworksRsp());
|
||||
}
|
||||
}
|
||||
@@ -1,66 +1,66 @@
|
||||
package emu.grasscutter.server.packet.recv;
|
||||
|
||||
import emu.grasscutter.database.DatabaseHelper;
|
||||
import emu.grasscutter.game.activity.musicgame.MusicGameActivityHandler;
|
||||
import emu.grasscutter.game.activity.musicgame.MusicGameBeatmap;
|
||||
import emu.grasscutter.game.activity.musicgame.MusicGamePlayerData;
|
||||
import emu.grasscutter.game.props.ActivityType;
|
||||
import emu.grasscutter.net.packet.Opcodes;
|
||||
import emu.grasscutter.net.packet.PacketHandler;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.MusicGameCreateBeatmapReqOuterClass;
|
||||
import emu.grasscutter.server.game.GameSession;
|
||||
import emu.grasscutter.server.packet.send.PacketActivityInfoNotify;
|
||||
import emu.grasscutter.server.packet.send.PacketMusicGameCreateBeatmapRsp;
|
||||
import emu.grasscutter.utils.Utils;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
@Opcodes(PacketOpcodes.MusicGameCreateBeatmapReq)
|
||||
public class HandlerMusicGameCreateBeatmapReq extends PacketHandler {
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
var req = MusicGameCreateBeatmapReqOuterClass.MusicGameCreateBeatmapReq.parseFrom(payload);
|
||||
|
||||
var musicGameBeatmap = MusicGameBeatmap.of()
|
||||
.musicId(req.getMusicBriefInfo().getMusicId())
|
||||
.musicNoteCount(req.getMusicBriefInfo().getMusicNoteCount())
|
||||
.savePosition(req.getMusicBriefInfo().getPosition())
|
||||
.maxScore(req.getMusicBriefInfo().getMaxScore())
|
||||
.authorUid(session.getPlayer().getUid())
|
||||
.beatmap(MusicGameBeatmap.parse(req.getMusicRecord().getBeatmapItemListList()))
|
||||
.createTime(Utils.getCurrentSeconds())
|
||||
.build();
|
||||
|
||||
musicGameBeatmap.save();
|
||||
|
||||
var playerData = session.getPlayer().getActivityManager().getPlayerActivityDataByActivityType(ActivityType.NEW_ACTIVITY_MUSIC_GAME);
|
||||
if(playerData.isEmpty()){
|
||||
return;
|
||||
}
|
||||
|
||||
var handler = (MusicGameActivityHandler) playerData.get().getActivityHandler();
|
||||
var musicGamePlayerData = handler.getMusicGamePlayerData(playerData.get());
|
||||
|
||||
var oldBeatmap = musicGamePlayerData.getPersonalCustomBeatmapRecord().values().stream()
|
||||
.map(MusicGamePlayerData.CustomBeatmapRecord::getMusicShareId)
|
||||
.map(DatabaseHelper::getMusicGameBeatmap)
|
||||
.filter(Objects::nonNull)
|
||||
.filter(item -> item.getAuthorUid() == session.getPlayer().getUid())
|
||||
.filter(item -> item.getMusicId() == req.getMusicBriefInfo().getMusicId())
|
||||
.filter(item -> item.getSavePosition() == req.getMusicBriefInfo().getPosition())
|
||||
.findFirst();
|
||||
|
||||
// delete old beatmap for player
|
||||
// the old beatmap is still in database so that others can still play.
|
||||
oldBeatmap.ifPresent(i -> handler.removePersonalBeatmap(playerData.get(), i));
|
||||
|
||||
// link this beatmap to player's personal data
|
||||
handler.addPersonalBeatmap(playerData.get(), musicGameBeatmap);
|
||||
|
||||
session.send(new PacketActivityInfoNotify(handler.toProto(playerData.get())));
|
||||
session.send(new PacketMusicGameCreateBeatmapRsp(musicGameBeatmap.getMusicShareId(), req.getUnknownEnum1()));
|
||||
}
|
||||
|
||||
}
|
||||
//package emu.grasscutter.server.packet.recv;
|
||||
//
|
||||
//import emu.grasscutter.database.DatabaseHelper;
|
||||
//import emu.grasscutter.game.activity.musicgame.MusicGameActivityHandler;
|
||||
//import emu.grasscutter.game.activity.musicgame.MusicGameBeatmap;
|
||||
//import emu.grasscutter.game.activity.musicgame.MusicGamePlayerData;
|
||||
//import emu.grasscutter.game.props.ActivityType;
|
||||
//import emu.grasscutter.net.packet.Opcodes;
|
||||
//import emu.grasscutter.net.packet.PacketHandler;
|
||||
//import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
//import emu.grasscutter.net.proto.MusicGameCreateBeatmapReqOuterClass;
|
||||
//import emu.grasscutter.server.game.GameSession;
|
||||
//import emu.grasscutter.server.packet.send.PacketActivityInfoNotify;
|
||||
//import emu.grasscutter.server.packet.send.PacketMusicGameCreateBeatmapRsp;
|
||||
//import emu.grasscutter.utils.Utils;
|
||||
//
|
||||
//import java.util.Objects;
|
||||
//
|
||||
//@Opcodes(PacketOpcodes.MusicGameCreateBeatmapReq)
|
||||
//public class HandlerMusicGameCreateBeatmapReq extends PacketHandler {
|
||||
//
|
||||
// @Override
|
||||
// public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
// var req = MusicGameCreateBeatmapReqOuterClass.MusicGameCreateBeatmapReq.parseFrom(payload);
|
||||
//
|
||||
// var musicGameBeatmap = MusicGameBeatmap.of()
|
||||
// .musicId(req.getMusicBriefInfo().getMusicId())
|
||||
// .musicNoteCount(req.getMusicBriefInfo().getMusicNoteCount())
|
||||
// .savePosition(req.getMusicBriefInfo().getPosition())
|
||||
// .maxScore(req.getMusicBriefInfo().getMaxScore())
|
||||
// .authorUid(session.getPlayer().getUid())
|
||||
// .beatmap(MusicGameBeatmap.parse(req.getMusicRecord().getBeatmapItemListList()))
|
||||
// .createTime(Utils.getCurrentSeconds())
|
||||
// .build();
|
||||
//
|
||||
// musicGameBeatmap.save();
|
||||
//
|
||||
// var playerData = session.getPlayer().getActivityManager().getPlayerActivityDataByActivityType(ActivityType.NEW_ACTIVITY_MUSIC_GAME);
|
||||
// if(playerData.isEmpty()){
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
// var handler = (MusicGameActivityHandler) playerData.get().getActivityHandler();
|
||||
// var musicGamePlayerData = handler.getMusicGamePlayerData(playerData.get());
|
||||
//
|
||||
// var oldBeatmap = musicGamePlayerData.getPersonalCustomBeatmapRecord().values().stream()
|
||||
// .map(MusicGamePlayerData.CustomBeatmapRecord::getMusicShareId)
|
||||
// .map(DatabaseHelper::getMusicGameBeatmap)
|
||||
// .filter(Objects::nonNull)
|
||||
// .filter(item -> item.getAuthorUid() == session.getPlayer().getUid())
|
||||
// .filter(item -> item.getMusicId() == req.getMusicBriefInfo().getMusicId())
|
||||
// .filter(item -> item.getSavePosition() == req.getMusicBriefInfo().getPosition())
|
||||
// .findFirst();
|
||||
//
|
||||
// // delete old beatmap for player
|
||||
// // the old beatmap is still in database so that others can still play.
|
||||
// oldBeatmap.ifPresent(i -> handler.removePersonalBeatmap(playerData.get(), i));
|
||||
//
|
||||
// // link this beatmap to player's personal data
|
||||
// handler.addPersonalBeatmap(playerData.get(), musicGameBeatmap);
|
||||
//
|
||||
// session.send(new PacketActivityInfoNotify(handler.toProto(playerData.get())));
|
||||
// session.send(new PacketMusicGameCreateBeatmapRsp(musicGameBeatmap.getMusicShareId(), req.getUnknownEnum1()));
|
||||
// }
|
||||
//
|
||||
//}
|
||||
|
||||
@@ -1,31 +1,31 @@
|
||||
package emu.grasscutter.server.packet.recv;
|
||||
|
||||
import emu.grasscutter.game.activity.musicgame.MusicGameBeatmap;
|
||||
import emu.grasscutter.net.packet.Opcodes;
|
||||
import emu.grasscutter.net.packet.PacketHandler;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.MusicGameGetBeatmapReqOuterClass;
|
||||
import emu.grasscutter.server.game.GameSession;
|
||||
import emu.grasscutter.server.packet.send.PacketMusicGameGetBeatmapRsp;
|
||||
|
||||
@Opcodes(PacketOpcodes.MusicGameGetBeatmapReq)
|
||||
public class HandlerMusicGameGetBeatmapReq extends PacketHandler {
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
var req = MusicGameGetBeatmapReqOuterClass.MusicGameGetBeatmapReq.parseFrom(payload);
|
||||
|
||||
var musicGameBeatmap = MusicGameBeatmap.getByShareId(req.getMusicShareId());
|
||||
|
||||
if(musicGameBeatmap == null){
|
||||
return;
|
||||
}
|
||||
|
||||
session.send(new PacketMusicGameGetBeatmapRsp(
|
||||
musicGameBeatmap.toBriefProto().build(),
|
||||
musicGameBeatmap.toProto(),
|
||||
req
|
||||
));
|
||||
}
|
||||
|
||||
}
|
||||
//package emu.grasscutter.server.packet.recv;
|
||||
//
|
||||
//import emu.grasscutter.game.activity.musicgame.MusicGameBeatmap;
|
||||
//import emu.grasscutter.net.packet.Opcodes;
|
||||
//import emu.grasscutter.net.packet.PacketHandler;
|
||||
//import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
//import emu.grasscutter.net.proto.MusicGameGetBeatmapReqOuterClass;
|
||||
//import emu.grasscutter.server.game.GameSession;
|
||||
//import emu.grasscutter.server.packet.send.PacketMusicGameGetBeatmapRsp;
|
||||
//
|
||||
//@Opcodes(PacketOpcodes.MusicGameGetBeatmapReq)
|
||||
//public class HandlerMusicGameGetBeatmapReq extends PacketHandler {
|
||||
//
|
||||
// @Override
|
||||
// public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
// var req = MusicGameGetBeatmapReqOuterClass.MusicGameGetBeatmapReq.parseFrom(payload);
|
||||
//
|
||||
// var musicGameBeatmap = MusicGameBeatmap.getByShareId(req.getMusicShareId());
|
||||
//
|
||||
// if(musicGameBeatmap == null){
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
// session.send(new PacketMusicGameGetBeatmapRsp(
|
||||
// musicGameBeatmap.toBriefProto().build(),
|
||||
// musicGameBeatmap.toProto(),
|
||||
// req
|
||||
// ));
|
||||
// }
|
||||
//
|
||||
//}
|
||||
|
||||
@@ -1,28 +1,28 @@
|
||||
package emu.grasscutter.server.packet.recv;
|
||||
|
||||
import emu.grasscutter.game.activity.musicgame.MusicGameBeatmap;
|
||||
import emu.grasscutter.net.packet.Opcodes;
|
||||
import emu.grasscutter.net.packet.PacketHandler;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.MusicGameSearchBeatmapReqOuterClass;
|
||||
import emu.grasscutter.server.game.GameSession;
|
||||
import emu.grasscutter.server.packet.send.PacketMusicGameSearchBeatmapRsp;
|
||||
|
||||
@Opcodes(PacketOpcodes.MusicGameSearchBeatmapReq)
|
||||
public class HandlerMusicGameSearchBeatmapReq extends PacketHandler {
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
var req = MusicGameSearchBeatmapReqOuterClass.MusicGameSearchBeatmapReq.parseFrom(payload);
|
||||
|
||||
var musicGameBeatmap = MusicGameBeatmap.getByShareId(req.getMusicShareId());
|
||||
|
||||
if(musicGameBeatmap == null){
|
||||
session.send(new PacketMusicGameSearchBeatmapRsp(11153, req.getUnknownEnum1()));
|
||||
return;
|
||||
}
|
||||
|
||||
session.send(new PacketMusicGameSearchBeatmapRsp(musicGameBeatmap.toBriefProto().build(), req.getUnknownEnum1()));
|
||||
}
|
||||
|
||||
}
|
||||
//package emu.grasscutter.server.packet.recv;
|
||||
//
|
||||
//import emu.grasscutter.game.activity.musicgame.MusicGameBeatmap;
|
||||
//import emu.grasscutter.net.packet.Opcodes;
|
||||
//import emu.grasscutter.net.packet.PacketHandler;
|
||||
//import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
//import emu.grasscutter.net.proto.MusicGameSearchBeatmapReqOuterClass;
|
||||
//import emu.grasscutter.server.game.GameSession;
|
||||
//import emu.grasscutter.server.packet.send.PacketMusicGameSearchBeatmapRsp;
|
||||
//
|
||||
//@Opcodes(PacketOpcodes.MusicGameSearchBeatmapReq)
|
||||
//public class HandlerMusicGameSearchBeatmapReq extends PacketHandler {
|
||||
//
|
||||
// @Override
|
||||
// public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
// var req = MusicGameSearchBeatmapReqOuterClass.MusicGameSearchBeatmapReq.parseFrom(payload);
|
||||
//
|
||||
// var musicGameBeatmap = MusicGameBeatmap.getByShareId(req.getMusicShareId());
|
||||
//
|
||||
// if(musicGameBeatmap == null){
|
||||
// session.send(new PacketMusicGameSearchBeatmapRsp(11153, req.getUnknownEnum1()));
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
// session.send(new PacketMusicGameSearchBeatmapRsp(musicGameBeatmap.toBriefProto().build(), req.getUnknownEnum1()));
|
||||
// }
|
||||
//
|
||||
//}
|
||||
|
||||
@@ -27,12 +27,7 @@ public class HandlerMusicGameSettleReq extends PacketHandler {
|
||||
boolean isNewRecord = false;
|
||||
// check if custom beatmap
|
||||
|
||||
// TODO: PROTO IS OBFUSCATED, NEED TO GET PROPER VALUES.
|
||||
// Discovered: 23/08/2022.
|
||||
// Probably was an issue in 2.8 but was discovered in 3.0 port.
|
||||
// - Benj
|
||||
|
||||
/*if (req.getMusicShareId() == 0) {
|
||||
if (req.getUgcGuid() == 0) {
|
||||
session.getPlayer().getActivityManager().triggerWatcher(
|
||||
WatcherTriggerType.TRIGGER_FLEUR_FAIR_MUSIC_GAME_REACH_SCORE,
|
||||
String.valueOf(req.getMusicBasicId()),
|
||||
@@ -51,14 +46,14 @@ public class HandlerMusicGameSettleReq extends PacketHandler {
|
||||
}else {
|
||||
handler.setMusicGameCustomBeatmapRecord(playerData.get(),
|
||||
MusicGamePlayerData.CustomBeatmapRecord.of()
|
||||
.musicShareId(req.getMusicShareId())
|
||||
.musicShareId(req.getUgcGuid())
|
||||
.score(req.getMaxCombo())
|
||||
.settle(req.getSuccess())
|
||||
// .settle(req.getSuccess())
|
||||
.build());
|
||||
}
|
||||
|
||||
|
||||
session.send(new PacketMusicGameSettleRsp(req.getMusicBasicId(), req.getMusicShareId(), isNewRecord));*/
|
||||
session.send(new PacketMusicGameSettleRsp(req.getMusicBasicId(), req.getUgcGuid(), isNewRecord));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ public class HandlerMusicGameStartReq extends PacketHandler {
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
var req = MusicGameStartReqOuterClass.MusicGameStartReq.parseFrom(payload);
|
||||
|
||||
session.send(new PacketMusicGameStartRsp(req.getMusicBasicId(), req.getMusicShareId()));
|
||||
session.send(new PacketMusicGameStartRsp(req.getMusicBasicId(), req.getUgcGuid()));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
package emu.grasscutter.server.packet.recv;
|
||||
|
||||
import emu.grasscutter.net.packet.Opcodes;
|
||||
import emu.grasscutter.net.packet.PacketHandler;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.MusicGameStartToPlayOthersBeatmapReqOuterClass;
|
||||
import emu.grasscutter.server.game.GameSession;
|
||||
import emu.grasscutter.server.packet.send.PacketMusicGameStartToPlayOthersBeatmapRsp;
|
||||
|
||||
@Opcodes(PacketOpcodes.MusicGameStartToPlayOthersBeatmapReq)
|
||||
public class HandlerMusicGameStartToPlayOthersBeatmapReq extends PacketHandler {
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
var req = MusicGameStartToPlayOthersBeatmapReqOuterClass.MusicGameStartToPlayOthersBeatmapReq.parseFrom(payload);
|
||||
|
||||
session.send(new PacketMusicGameStartToPlayOthersBeatmapRsp(req.getUnknownEnum1()));
|
||||
}
|
||||
|
||||
}
|
||||
//package emu.grasscutter.server.packet.recv;
|
||||
//
|
||||
//import emu.grasscutter.net.packet.Opcodes;
|
||||
//import emu.grasscutter.net.packet.PacketHandler;
|
||||
//import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
//import emu.grasscutter.net.proto.MusicGameStartToPlayOthersBeatmapReqOuterClass;
|
||||
//import emu.grasscutter.server.game.GameSession;
|
||||
//import emu.grasscutter.server.packet.send.PacketMusicGameStartToPlayOthersBeatmapRsp;
|
||||
//
|
||||
//@Opcodes(PacketOpcodes.MusicGameStartToPlayOthersBeatmapReq)
|
||||
//public class HandlerMusicGameStartToPlayOthersBeatmapReq extends PacketHandler {
|
||||
//
|
||||
// @Override
|
||||
// public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
// var req = MusicGameStartToPlayOthersBeatmapReqOuterClass.MusicGameStartToPlayOthersBeatmapReq.parseFrom(payload);
|
||||
//
|
||||
// session.send(new PacketMusicGameStartToPlayOthersBeatmapRsp(req.getUnknownEnum1()));
|
||||
// }
|
||||
//
|
||||
//}
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
package emu.grasscutter.server.packet.recv;
|
||||
|
||||
import emu.grasscutter.net.packet.Opcodes;
|
||||
import emu.grasscutter.net.packet.PacketHandler;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.ReformFireworksReqOuterClass;
|
||||
import emu.grasscutter.server.game.GameSession;
|
||||
import emu.grasscutter.server.packet.send.PacketFireworksReformDataNotify;
|
||||
import emu.grasscutter.server.packet.send.PacketReformFireworksRsp;
|
||||
|
||||
@Opcodes(PacketOpcodes.ReformFireworksReq)
|
||||
public class HandlerReformFireworksReq extends PacketHandler {
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
|
||||
var req
|
||||
= ReformFireworksReqOuterClass.ReformFireworksReq.parseFrom(payload);
|
||||
session.send(new PacketFireworksReformDataNotify(req.getFireworksReformData()));
|
||||
session.send(new PacketReformFireworksRsp());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.RetcodeOuterClass.Retcode;
|
||||
import emu.grasscutter.net.proto.AddBackupAvatarTeamRspOuterClass.AddBackupAvatarTeamRsp;
|
||||
|
||||
public class PacketAddBackupAvatarTeamRsp extends BasePacket {
|
||||
public PacketAddBackupAvatarTeamRsp(Retcode retcode) {
|
||||
super(PacketOpcodes.AddBackupAvatarTeamRsp);
|
||||
|
||||
AddBackupAvatarTeamRsp proto = AddBackupAvatarTeamRsp.newBuilder()
|
||||
.setRetcode(retcode.getNumber())
|
||||
.build();
|
||||
|
||||
this.setData(proto);
|
||||
}
|
||||
|
||||
public PacketAddBackupAvatarTeamRsp() {
|
||||
this(Retcode.RET_SUCC);
|
||||
}
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.RetcodeOuterClass.Retcode;
|
||||
import emu.grasscutter.net.proto.AddCustomTeamRspOuterClass.AddCustomTeamRsp;
|
||||
|
||||
public class PacketAddCustomTeamRsp extends BasePacket {
|
||||
public PacketAddCustomTeamRsp(Retcode retcode) {
|
||||
super(PacketOpcodes.AddCustomTeamRsp);
|
||||
|
||||
AddCustomTeamRsp proto = AddCustomTeamRsp.newBuilder()
|
||||
.setRetcode(retcode.getNumber())
|
||||
.build();
|
||||
|
||||
this.setData(proto);
|
||||
}
|
||||
|
||||
public PacketAddCustomTeamRsp() {
|
||||
this(Retcode.RET_SUCC);
|
||||
}
|
||||
}
|
||||
@@ -23,7 +23,7 @@ public class PacketAllWidgetDataNotify extends BasePacket {
|
||||
LunchBoxDataOuterClass.LunchBoxData.newBuilder().build()
|
||||
)
|
||||
// Maybe it's a little difficult, or it makes you upset :(
|
||||
.addAllOneofGatherPointDetectorDataList(List.of())
|
||||
.addAllOneoffGatherPointDetectorDataList(List.of())
|
||||
// So, goodbye, and hopefully sometime in the future o(* ̄▽ ̄*)ブ
|
||||
.addAllCoolDownGroupDataList(List.of())
|
||||
// I'll see your PR with a title that says (・∀・(・∀・(・∀・*)
|
||||
|
||||
@@ -13,7 +13,7 @@ public class PacketAvatarDataNotify extends BasePacket {
|
||||
|
||||
AvatarDataNotify.Builder proto = AvatarDataNotify.newBuilder()
|
||||
.setCurAvatarTeamId(player.getTeamManager().getCurrentTeamId())
|
||||
//.setChooseAvatarGuid(player.getTeamManager().getCurrentCharacterGuid())
|
||||
.setChooseAvatarGuid(player.getTeamManager().getCurrentCharacterGuid())
|
||||
.addAllOwnedFlycloakList(player.getFlyCloakList())
|
||||
.addAllOwnedCostumeList(player.getCostumeList());
|
||||
|
||||
@@ -22,7 +22,7 @@ public class PacketAvatarDataNotify extends BasePacket {
|
||||
player.getTeamManager().getTeams().forEach((id, teamInfo) -> {
|
||||
proto.putAvatarTeamMap(id, teamInfo.toProto(player));
|
||||
if (id > 4) { // Add the id list for custom teams.
|
||||
proto.addCustomTeamIds(id);
|
||||
proto.addBackupAvatarTeamOrderList(id);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -3,18 +3,18 @@ package emu.grasscutter.server.packet.send;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.CustomTeamListNotifyOuterClass.CustomTeamListNotify;
|
||||
import emu.grasscutter.net.proto.AvatarTeamAllDataNotifyOuterClass.AvatarTeamAllDataNotify;
|
||||
|
||||
public class PacketCustomTeamListNotify extends BasePacket {
|
||||
public PacketCustomTeamListNotify(Player player) {
|
||||
super(PacketOpcodes.CustomTeamListNotify);
|
||||
public class PacketAvatarTeamAllDataNotify extends BasePacket {
|
||||
public PacketAvatarTeamAllDataNotify(Player player) {
|
||||
super(PacketOpcodes.AvatarTeamAllDataNotify);
|
||||
|
||||
CustomTeamListNotify.Builder proto = CustomTeamListNotify.newBuilder();
|
||||
AvatarTeamAllDataNotify.Builder proto = AvatarTeamAllDataNotify.newBuilder();
|
||||
|
||||
// Add the id list for custom teams.
|
||||
for (int id : player.getTeamManager().getTeams().keySet()) {
|
||||
if (id > 4) {
|
||||
proto.addCustomTeamIds(id);
|
||||
proto.addBackupAvatarTeamOrderList(id);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.Unk2700FJEHHCPCBLGServerNotify;
|
||||
|
||||
public class PacketChangeHomeBgmNotify extends BasePacket {
|
||||
public PacketChangeHomeBgmNotify(int homeBgmId) {
|
||||
super(PacketOpcodes.Unk2700_FJEHHCPCBLG_ServerNotify);
|
||||
|
||||
var notify = Unk2700FJEHHCPCBLGServerNotify.Unk2700_FJEHHCPCBLG_ServerNotify.newBuilder()
|
||||
.setUnk2700BJHAMKKECEI(homeBgmId)
|
||||
.build();
|
||||
|
||||
this.setData(notify);
|
||||
}
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.Unk2700OGHMHELMBNNServerRsp;
|
||||
|
||||
public class PacketChangeHomeBgmRsp extends BasePacket {
|
||||
public PacketChangeHomeBgmRsp() {
|
||||
super(PacketOpcodes.Unk2700_OGHMHELMBNN_ServerRsp);
|
||||
|
||||
var rsp = Unk2700OGHMHELMBNNServerRsp.Unk2700_OGHMHELMBNN_ServerRsp.newBuilder()
|
||||
.setRetcode(0)
|
||||
.build();
|
||||
|
||||
this.setData(rsp);
|
||||
}
|
||||
}
|
||||
@@ -14,7 +14,7 @@ public class PacketCompoundDataNotify extends BasePacket {
|
||||
super(PacketOpcodes.CompoundDataNotify);
|
||||
var proto= CompoundDataNotify.newBuilder()
|
||||
.addAllUnlockCompoundList(unlockedCompounds)
|
||||
.addAllCompoundQueDataList(compoundQueueData)
|
||||
.addAllCompoundQueueDataList(compoundQueueData)
|
||||
.build();
|
||||
this.setData(proto);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.RetcodeOuterClass.Retcode;
|
||||
import emu.grasscutter.net.proto.DelBackupAvatarTeamRspOuterClass.DelBackupAvatarTeamRsp;
|
||||
|
||||
public class PacketDelBackupAvatarTeamRsp extends BasePacket {
|
||||
public PacketDelBackupAvatarTeamRsp(Retcode retcode, int id) {
|
||||
super(PacketOpcodes.DelBackupAvatarTeamRsp);
|
||||
|
||||
DelBackupAvatarTeamRsp proto = DelBackupAvatarTeamRsp.newBuilder()
|
||||
.setRetcode(retcode.getNumber())
|
||||
.setBackupAvatarTeamId(id)
|
||||
.build();
|
||||
|
||||
this.setData(proto);
|
||||
}
|
||||
|
||||
public PacketDelBackupAvatarTeamRsp(int id) {
|
||||
this(Retcode.RET_SUCC, id);
|
||||
}
|
||||
}
|
||||
@@ -12,27 +12,27 @@ import emu.grasscutter.net.proto.PropChangeReasonOuterClass.PropChangeReason;
|
||||
import java.util.List;
|
||||
|
||||
public class PacketEntityFightPropChangeReasonNotify extends BasePacket {
|
||||
|
||||
|
||||
public PacketEntityFightPropChangeReasonNotify(GameEntity entity, FightProperty prop, Float value, List<Integer> param, PropChangeReason reason, ChangeHpReason changeHpReason) {
|
||||
super(PacketOpcodes.EntityFightPropChangeReasonNotify);
|
||||
|
||||
|
||||
EntityFightPropChangeReasonNotify.Builder proto = EntityFightPropChangeReasonNotify.newBuilder()
|
||||
.setEntityId(entity.getId())
|
||||
.setPropType(prop.getId())
|
||||
.setPropDelta(value)
|
||||
.setReason(reason)
|
||||
.setChangeHpReason(changeHpReason);
|
||||
|
||||
|
||||
for(int p : param){
|
||||
proto.addParamList(p);
|
||||
}
|
||||
|
||||
|
||||
this.setData(proto);
|
||||
}
|
||||
|
||||
|
||||
public PacketEntityFightPropChangeReasonNotify(GameEntity entity, FightProperty prop, Float value, PropChangeReason reason, ChangeHpReason changeHpReason) {
|
||||
super(PacketOpcodes.EntityFightPropChangeReasonNotify);
|
||||
|
||||
|
||||
EntityFightPropChangeReasonNotify proto = EntityFightPropChangeReasonNotify.newBuilder()
|
||||
.setEntityId(entity.getId())
|
||||
.setPropType(prop.getId())
|
||||
@@ -40,33 +40,33 @@ public class PacketEntityFightPropChangeReasonNotify extends BasePacket {
|
||||
.setReason(reason)
|
||||
.setChangeHpReason(changeHpReason)
|
||||
.build();
|
||||
|
||||
|
||||
this.setData(proto);
|
||||
}
|
||||
|
||||
|
||||
public PacketEntityFightPropChangeReasonNotify(GameEntity entity, FightProperty prop, Float value, PropChangeReason reason) {
|
||||
super(PacketOpcodes.EntityFightPropChangeReasonNotify);
|
||||
|
||||
|
||||
EntityFightPropChangeReasonNotify proto = EntityFightPropChangeReasonNotify.newBuilder()
|
||||
.setEntityId(entity.getId())
|
||||
.setPropType(prop.getId())
|
||||
.setPropDelta(value)
|
||||
.setReason(reason)
|
||||
.build();
|
||||
|
||||
|
||||
this.setData(proto);
|
||||
}
|
||||
|
||||
public PacketEntityFightPropChangeReasonNotify(GameEntity entity, FightProperty prop, Float value, ChangeEnergyReason reason) {
|
||||
super(PacketOpcodes.EntityFightPropChangeReasonNotify);
|
||||
|
||||
|
||||
EntityFightPropChangeReasonNotify proto = EntityFightPropChangeReasonNotify.newBuilder()
|
||||
.setEntityId(entity.getId())
|
||||
.setPropType(prop.getId())
|
||||
.setPropDelta(value)
|
||||
.setChangeEnergyReson(reason)
|
||||
.setChangeEnergyReason(reason)
|
||||
.build();
|
||||
|
||||
|
||||
this.setData(proto);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.FireWorkNotifyOuterClass;
|
||||
import emu.grasscutter.net.proto.FireWorkDataOuterClass;
|
||||
|
||||
public class PacketFireworkNotify extends BasePacket {
|
||||
|
||||
public PacketFireworkNotify(FireWorkDataOuterClass.FireWorkData pinfo) {
|
||||
super(PacketOpcodes.FireworkNotify);
|
||||
|
||||
var proto
|
||||
= FireWorkNotifyOuterClass.FireWorkNotify.newBuilder();
|
||||
|
||||
proto.addFireWorkData(pinfo);
|
||||
|
||||
setData(proto.build());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
|
||||
public class PacketFireworkRsp extends BasePacket {
|
||||
|
||||
public PacketFireworkRsp() {
|
||||
super(PacketOpcodes.FireworkRsp);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.FireworkSetNotifyOuterClass;
|
||||
import emu.grasscutter.net.proto.FireworkSetDataOuterClass;
|
||||
|
||||
public class PacketFireworkSetNotify extends BasePacket {
|
||||
|
||||
public PacketFireworkSetNotify(FireworkSetDataOuterClass.FireworkSetData notify) {
|
||||
super(PacketOpcodes.FireworkSetNotify);
|
||||
|
||||
var proto
|
||||
= FireworkSetNotifyOuterClass.FireworkSetNotify.newBuilder();
|
||||
|
||||
proto.setCode(1).addData(notify);
|
||||
|
||||
setData(proto.build());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.FireworksLaunchDataNotifyOuterClass;
|
||||
import emu.grasscutter.net.proto.FireworksLaunchSchemeDataOuterClass;
|
||||
|
||||
public class PacketFireworksLaunchDataNotify extends BasePacket {
|
||||
|
||||
public PacketFireworksLaunchDataNotify(FireworksLaunchSchemeDataOuterClass.FireworksLaunchSchemeData notify) {
|
||||
super(PacketOpcodes.FireworksLaunchDataNotify);
|
||||
|
||||
var proto
|
||||
= FireworksLaunchDataNotifyOuterClass.FireworksLaunchDataNotify.newBuilder();
|
||||
|
||||
proto.setLastUseSchemeId(1).addSchemeDataList(notify);
|
||||
|
||||
setData(proto.build());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.FireworksReformDataNotifyOuterClass;
|
||||
import emu.grasscutter.net.proto.FireworksReformDataOuterClass;
|
||||
|
||||
public class PacketFireworksReformDataNotify extends BasePacket {
|
||||
|
||||
public PacketFireworksReformDataNotify(FireworksReformDataOuterClass.FireworksReformData fireworksReformData) {
|
||||
super(PacketOpcodes.FireworksReformDataNotify);
|
||||
|
||||
var proto
|
||||
= FireworksReformDataNotifyOuterClass.FireworksReformDataNotify.newBuilder();
|
||||
|
||||
proto.addFireworksReformDataList(fireworksReformData);
|
||||
|
||||
setData(proto.build());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -18,14 +18,14 @@ public class PacketForgeQueueManipulateRsp extends BasePacket {
|
||||
ForgeQueueManipulateRsp.Builder builder = ForgeQueueManipulateRsp.newBuilder()
|
||||
.setRetcode(retcode.getNumber())
|
||||
.setManipulateType(type);
|
||||
|
||||
|
||||
for (GameItem item : output) {
|
||||
ItemParam toAdd = ItemParam.newBuilder()
|
||||
.setItemId(item.getItemId())
|
||||
.setCount(item.getCount())
|
||||
.build();
|
||||
|
||||
builder.addOutputItemList(toAdd);
|
||||
builder.addExtraOutputItemList(toAdd);
|
||||
}
|
||||
|
||||
for (GameItem item : refund) {
|
||||
@@ -41,4 +41,4 @@ public class PacketForgeQueueManipulateRsp extends BasePacket {
|
||||
|
||||
this.setData(builder.build());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,9 +24,9 @@ public class PacketGetAllMailRsp extends BasePacket {
|
||||
GetAllMailRsp.Builder proto = GetAllMailRsp.newBuilder();
|
||||
|
||||
if (isGiftMail) {
|
||||
proto.setUnk2700OPEHLDAGICF(true);
|
||||
proto.setIsCollected(true);
|
||||
} else {
|
||||
proto.setUnk2700OPEHLDAGICF(false);
|
||||
proto.setIsCollected(false);
|
||||
|
||||
if (player.getAllMail().size() != 0) { // Make sure the player has mail
|
||||
List<MailData> mailDataList = new ArrayList<MailData>();
|
||||
@@ -61,7 +61,7 @@ public class PacketGetAllMailRsp extends BasePacket {
|
||||
mailData.setImportance(message.importance);
|
||||
mailData.setIsRead(message.isRead);
|
||||
mailData.setIsAttachmentGot(message.isAttachmentGot);
|
||||
mailData.setUnk2700NDPPGJKJOMHValue(1);
|
||||
mailData.setCollectStateValue(1);
|
||||
|
||||
mailDataList.add(mailData.build());
|
||||
}
|
||||
@@ -70,7 +70,7 @@ public class PacketGetAllMailRsp extends BasePacket {
|
||||
}
|
||||
|
||||
proto.addAllMailList(mailDataList);
|
||||
proto.setIsTruncated(mailDataList.size() <= 1000 ? false : true); // When enabled this will send a notification to the user telling them their inbox is full and they should delete old messages when opening the mailbox.
|
||||
proto.setIsTruncated(mailDataList.size() > 1000); // When enabled this will send a notification to the user telling them their inbox is full and they should delete old messages when opening the mailbox.
|
||||
}
|
||||
}
|
||||
this.setData(proto.build());
|
||||
|
||||
@@ -14,7 +14,7 @@ public class PacketGetCompoundDataRsp extends BasePacket {
|
||||
super(PacketOpcodes.GetCompoundDataRsp);
|
||||
var proto = GetCompoundDataRsp.newBuilder()
|
||||
.addAllUnlockCompoundList(unlockedCompounds)
|
||||
.addAllCompoundQueDataList(compoundQueueData)
|
||||
.addAllCompoundQueueDataList(compoundQueueData)
|
||||
.setRetcode(Retcode.RET_SUCC_VALUE)
|
||||
.build();
|
||||
setData(proto);
|
||||
|
||||
@@ -70,8 +70,8 @@ public class PacketGetPlayerTokenRsp extends BasePacket {
|
||||
.setClientVersionRandomKey("c25-314dd05b0b5f")
|
||||
.setRegPlatform(3)
|
||||
.setClientIpStr(session.getAddress().getAddress().getHostAddress())
|
||||
.setEncryptedSeed(encryptedSeed)
|
||||
.setSeedSignature(encryptedSeedSign)
|
||||
.setServerRandKey(encryptedSeed)
|
||||
.setSign(encryptedSeedSign)
|
||||
.build();
|
||||
|
||||
this.setData(p.toByteArray());
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.HomeAllUnlockedBgmIdListNotifyOuterClass;
|
||||
|
||||
public class PacketHomeAllUnlockedBgmIdListNotify extends BasePacket {
|
||||
public PacketHomeAllUnlockedBgmIdListNotify(Player player) {
|
||||
super(PacketOpcodes.HomeAllUnlockedBgmIdListNotify);
|
||||
|
||||
if (player.getRealmList() == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
var unlocked = player.getHome().getUnlockedHomeBgmList();
|
||||
|
||||
var notify = HomeAllUnlockedBgmIdListNotifyOuterClass.HomeAllUnlockedBgmIdListNotify.newBuilder()
|
||||
.addAllAllUnlockedBgmIdList(unlocked)
|
||||
.build();
|
||||
|
||||
this.setData(notify);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.HomeChangeBgmNotifyOuterClass;
|
||||
|
||||
public class PacketHomeChangeBgmNotify extends BasePacket {
|
||||
public PacketHomeChangeBgmNotify(int homeBgmId) {
|
||||
super(PacketOpcodes.HomeChangeBgmNotify);
|
||||
|
||||
var notify = HomeChangeBgmNotifyOuterClass.HomeChangeBgmNotify.newBuilder()
|
||||
.setBgmId(homeBgmId)
|
||||
.build();
|
||||
|
||||
this.setData(notify);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.HomeChangeBgmRspOuterClass;
|
||||
|
||||
public class PacketHomeChangeBgmRsp extends BasePacket {
|
||||
public PacketHomeChangeBgmRsp() {
|
||||
super(PacketOpcodes.HomeChangeBgmRsp);
|
||||
|
||||
var rsp = HomeChangeBgmRspOuterClass.HomeChangeBgmRsp.newBuilder()
|
||||
.setRetcode(0)
|
||||
.build();
|
||||
|
||||
this.setData(rsp);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
|
||||
public class PacketHomeEnterEditModeFinishRsp extends BasePacket {
|
||||
|
||||
public PacketHomeEnterEditModeFinishRsp() {
|
||||
super(PacketOpcodes.HomeEnterEditModeFinishRsp);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.HomeNewUnlockedBgmIdListNotifyOuterClass;
|
||||
|
||||
public class PacketHomeNewUnlockedBgmIdListNotify extends BasePacket {
|
||||
public PacketHomeNewUnlockedBgmIdListNotify(int homeBgmId) {
|
||||
super(PacketOpcodes.HomeNewUnlockedBgmIdListNotify);
|
||||
|
||||
var notify = HomeNewUnlockedBgmIdListNotifyOuterClass.HomeNewUnlockedBgmIdListNotify.newBuilder()
|
||||
.addNewUnlockedBgmIdList(homeBgmId)
|
||||
.build();
|
||||
|
||||
this.setData(notify);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.HomePreChangeEditModeNotifyOuterClass;
|
||||
|
||||
public class PacketHomePreChangeEditModeNotify extends BasePacket {
|
||||
|
||||
public PacketHomePreChangeEditModeNotify(boolean isEnterEditMode) {
|
||||
super(PacketOpcodes.HomePreChangeEditModeNotify);
|
||||
|
||||
var proto = HomePreChangeEditModeNotifyOuterClass.HomePreChangeEditModeNotify.newBuilder();
|
||||
|
||||
proto.setIsEnterEditMode(isEnterEditMode);
|
||||
|
||||
this.setData(proto);
|
||||
}
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.HomeUnknown1NotifyOuterClass;
|
||||
|
||||
public class PacketHomeUnknown1Notify extends BasePacket {
|
||||
|
||||
public PacketHomeUnknown1Notify(boolean isEnterEditMode) {
|
||||
super(PacketOpcodes.Unk2700_JDMPECKFGIG_ServerNotify);
|
||||
|
||||
var proto = HomeUnknown1NotifyOuterClass.HomeUnknown1Notify.newBuilder();
|
||||
|
||||
proto.setIsEnterEditMode(isEnterEditMode);
|
||||
|
||||
this.setData(proto);
|
||||
}
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
|
||||
public class PacketHomeUnknown2Rsp extends BasePacket {
|
||||
|
||||
public PacketHomeUnknown2Rsp() {
|
||||
super(PacketOpcodes.Unk2700_KIIOGMKFNNP_ServerRsp);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -3,10 +3,10 @@ package emu.grasscutter.server.packet.send;
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
|
||||
public class PacketFireworkSetRsp extends BasePacket {
|
||||
public class PacketLaunchFireworksRsp extends BasePacket {
|
||||
|
||||
public PacketFireworkSetRsp() {
|
||||
super(PacketOpcodes.FireworkSetRsp);
|
||||
public PacketLaunchFireworksRsp() {
|
||||
super(PacketOpcodes.LaunchFireworksRsp);
|
||||
|
||||
}
|
||||
|
||||
@@ -6,7 +6,12 @@ import emu.grasscutter.game.mail.Mail;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.*;
|
||||
import emu.grasscutter.net.proto.MailChangeNotifyOuterClass.MailChangeNotify;
|
||||
import emu.grasscutter.net.proto.MailTextContentOuterClass.MailTextContent;
|
||||
import emu.grasscutter.net.proto.MailItemOuterClass.MailItem;
|
||||
import emu.grasscutter.net.proto.MailDataOuterClass.MailData;
|
||||
|
||||
import emu.grasscutter.net.proto.EquipParamOuterClass.EquipParam;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -24,20 +29,20 @@ public class PacketMailChangeNotify extends BasePacket {
|
||||
public PacketMailChangeNotify(Player player, List<Mail> mailList, List<Integer> delMailIdList) {
|
||||
super(PacketOpcodes.MailChangeNotify);
|
||||
|
||||
MailChangeNotifyOuterClass.MailChangeNotify.Builder proto = MailChangeNotifyOuterClass.MailChangeNotify.newBuilder();
|
||||
var proto = MailChangeNotify.newBuilder();
|
||||
|
||||
if (mailList != null) {
|
||||
for (Mail message : mailList) {
|
||||
MailTextContentOuterClass.MailTextContent.Builder mailTextContent = MailTextContentOuterClass.MailTextContent.newBuilder();
|
||||
var mailTextContent = MailTextContent.newBuilder();
|
||||
mailTextContent.setTitle(message.mailContent.title);
|
||||
mailTextContent.setContent(message.mailContent.content);
|
||||
mailTextContent.setSender(message.mailContent.sender);
|
||||
|
||||
List<MailItemOuterClass.MailItem> mailItems = new ArrayList<MailItemOuterClass.MailItem>();
|
||||
List<MailItem> mailItems = new ArrayList<>();
|
||||
|
||||
for (Mail.MailItem item : message.itemList) {
|
||||
MailItemOuterClass.MailItem.Builder mailItem = MailItemOuterClass.MailItem.newBuilder();
|
||||
EquipParamOuterClass.EquipParam.Builder itemParam = EquipParamOuterClass.EquipParam.newBuilder();
|
||||
var mailItem = MailItem.newBuilder();
|
||||
var itemParam = EquipParam.newBuilder();
|
||||
itemParam.setItemId(item.itemId);
|
||||
itemParam.setItemNum(item.itemCount);
|
||||
mailItem.setEquipParam(itemParam.build());
|
||||
@@ -45,7 +50,7 @@ public class PacketMailChangeNotify extends BasePacket {
|
||||
mailItems.add(mailItem.build());
|
||||
}
|
||||
|
||||
MailDataOuterClass.MailData.Builder mailData = MailDataOuterClass.MailData.newBuilder();
|
||||
var mailData = MailData.newBuilder();
|
||||
mailData.setMailId(player.getMailId(message));
|
||||
mailData.setMailTextContent(mailTextContent.build());
|
||||
mailData.addAllItemList(mailItems);
|
||||
@@ -54,7 +59,7 @@ public class PacketMailChangeNotify extends BasePacket {
|
||||
mailData.setImportance(message.importance);
|
||||
mailData.setIsRead(message.isRead);
|
||||
mailData.setIsAttachmentGot(message.isAttachmentGot);
|
||||
mailData.setUnk2700NDPPGJKJOMHValue(message.stateValue);
|
||||
mailData.setCollectStateValue(message.stateValue);
|
||||
|
||||
proto.addMailList(mailData.build());
|
||||
}
|
||||
|
||||
@@ -3,7 +3,8 @@ package emu.grasscutter.server.packet.send;
|
||||
import emu.grasscutter.game.managers.mapmark.MapMark;
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.*;
|
||||
import emu.grasscutter.net.proto.MarkMapRspOuterClass.MarkMapRsp;
|
||||
import emu.grasscutter.net.proto.MapMarkPointOuterClass.MapMarkPoint;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
@@ -12,12 +13,12 @@ public class PacketMarkMapRsp extends BasePacket {
|
||||
public PacketMarkMapRsp(Map<String, MapMark> mapMarks) {
|
||||
super(PacketOpcodes.MarkMapRsp);
|
||||
|
||||
MarkMapRspOuterClass.MarkMapRsp.Builder proto = MarkMapRspOuterClass.MarkMapRsp.newBuilder();
|
||||
var proto = MarkMapRsp.newBuilder();
|
||||
proto.setRetcode(0);
|
||||
|
||||
if (mapMarks != null) {
|
||||
for (MapMark mapMark: mapMarks.values()) {
|
||||
MapMarkPointOuterClass.MapMarkPoint.Builder markPoint = MapMarkPointOuterClass.MapMarkPoint.newBuilder();
|
||||
var markPoint = MapMarkPoint.newBuilder();
|
||||
markPoint.setSceneId(mapMark.getSceneId());
|
||||
markPoint.setName(mapMark.getName());
|
||||
markPoint.setPos(mapMark.getPosition().toProto());
|
||||
@@ -29,8 +30,6 @@ public class PacketMarkMapRsp extends BasePacket {
|
||||
proto.addMarkList(markPoint.build());
|
||||
}
|
||||
}
|
||||
|
||||
MarkMapRspOuterClass.MarkMapRsp data = proto.build();
|
||||
this.setData(data);
|
||||
this.setData(proto.build());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,25 +1,22 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.*;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class PacketMarkNewNotify extends BasePacket {
|
||||
|
||||
public PacketMarkNewNotify(Player player, int markNewType, ArrayList<Integer> idList) {
|
||||
super(PacketOpcodes.MarkNewNotify);
|
||||
|
||||
MarkNewNotifyOuterClass.MarkNewNotify.Builder proto = MarkNewNotifyOuterClass.MarkNewNotify.newBuilder();
|
||||
proto.setMarkNewType(markNewType);
|
||||
for (Integer id: idList) {
|
||||
proto.addIdList(id);
|
||||
}
|
||||
|
||||
MarkNewNotifyOuterClass.MarkNewNotify data = proto.build();
|
||||
this.setData(data);
|
||||
}
|
||||
}
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.MarkNewNotifyOuterClass.MarkNewNotify;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class PacketMarkNewNotify extends BasePacket {
|
||||
|
||||
public PacketMarkNewNotify(Player player, int markNewType, ArrayList<Integer> idList) {
|
||||
super(PacketOpcodes.MarkNewNotify);
|
||||
|
||||
var proto = MarkNewNotify.newBuilder();
|
||||
proto.setMarkNewType(markNewType);
|
||||
proto.addAllIdList(idList);
|
||||
|
||||
this.setData(proto.build());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.MusicGameCreateBeatmapRspOuterClass;
|
||||
import emu.grasscutter.net.proto.MusicGameUnknown1EnumOuterClass;
|
||||
|
||||
public class PacketMusicGameCreateBeatmapRsp extends BasePacket {
|
||||
|
||||
public PacketMusicGameCreateBeatmapRsp(long musicShareId, MusicGameUnknown1EnumOuterClass.MusicGameUnknown1Enum unknownEnum1) {
|
||||
super(PacketOpcodes.MusicGameCreateBeatmapRsp);
|
||||
|
||||
var proto = MusicGameCreateBeatmapRspOuterClass.MusicGameCreateBeatmapRsp.newBuilder();
|
||||
|
||||
proto.setMusicShareId(musicShareId)
|
||||
.setUnknownEnum1(unknownEnum1);
|
||||
|
||||
this.setData(proto);
|
||||
}
|
||||
}
|
||||
//package emu.grasscutter.server.packet.send;
|
||||
//
|
||||
//import emu.grasscutter.net.packet.BasePacket;
|
||||
//import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
//import emu.grasscutter.net.proto.MusicGameCreateBeatmapRspOuterClass;
|
||||
//import emu.grasscutter.net.proto.MusicGameUnknown1EnumOuterClass;
|
||||
//
|
||||
//public class PacketMusicGameCreateBeatmapRsp extends BasePacket {
|
||||
//
|
||||
// public PacketMusicGameCreateBeatmapRsp(long musicShareId, MusicGameUnknown1EnumOuterClass.MusicGameUnknown1Enum unknownEnum1) {
|
||||
// super(PacketOpcodes.MusicGameCreateBeatmapRsp);
|
||||
//
|
||||
// var proto = MusicGameCreateBeatmapRspOuterClass.MusicGameCreateBeatmapRsp.newBuilder();
|
||||
//
|
||||
// proto.setMusicShareId(musicShareId)
|
||||
// .setUnknownEnum1(unknownEnum1);
|
||||
//
|
||||
// this.setData(proto);
|
||||
// }
|
||||
//}
|
||||
|
||||
@@ -1,27 +1,27 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.MusicBeatmapOuterClass;
|
||||
import emu.grasscutter.net.proto.MusicBriefInfoOuterClass;
|
||||
import emu.grasscutter.net.proto.MusicGameGetBeatmapReqOuterClass;
|
||||
import emu.grasscutter.net.proto.MusicGameGetBeatmapRspOuterClass;
|
||||
|
||||
public class PacketMusicGameGetBeatmapRsp extends BasePacket {
|
||||
|
||||
public PacketMusicGameGetBeatmapRsp(MusicBriefInfoOuterClass.MusicBriefInfo briefInfo, MusicBeatmapOuterClass.MusicBeatmap musicRecord, MusicGameGetBeatmapReqOuterClass.MusicGameGetBeatmapReq req) {
|
||||
super(PacketOpcodes.MusicGameGetBeatmapRsp);
|
||||
|
||||
var proto = MusicGameGetBeatmapRspOuterClass.MusicGameGetBeatmapRsp.newBuilder();
|
||||
|
||||
proto.setMusicBriefInfo(briefInfo)
|
||||
.setMusicShareId(briefInfo.getMusicShareId())
|
||||
.setMusicRecord(musicRecord)
|
||||
.setUnknownEnum1(req.getUnknownEnum1())
|
||||
.setReqType(req.getReqType())
|
||||
;
|
||||
|
||||
|
||||
this.setData(proto);
|
||||
}
|
||||
}
|
||||
//package emu.grasscutter.server.packet.send;
|
||||
//
|
||||
//import emu.grasscutter.net.packet.BasePacket;
|
||||
//import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
//import emu.grasscutter.net.proto.MusicBeatmapOuterClass;
|
||||
//import emu.grasscutter.net.proto.MusicBriefInfoOuterClass;
|
||||
//import emu.grasscutter.net.proto.MusicGameGetBeatmapReqOuterClass;
|
||||
//import emu.grasscutter.net.proto.MusicGameGetBeatmapRspOuterClass;
|
||||
//
|
||||
//public class PacketMusicGameGetBeatmapRsp extends BasePacket {
|
||||
//
|
||||
// public PacketMusicGameGetBeatmapRsp(MusicBriefInfoOuterClass.MusicBriefInfo briefInfo, MusicBeatmapOuterClass.MusicBeatmap musicRecord, MusicGameGetBeatmapReqOuterClass.MusicGameGetBeatmapReq req) {
|
||||
// super(PacketOpcodes.MusicGameGetBeatmapRsp);
|
||||
//
|
||||
// var proto = MusicGameGetBeatmapRspOuterClass.MusicGameGetBeatmapRsp.newBuilder();
|
||||
//
|
||||
// proto.setMusicBriefInfo(briefInfo)
|
||||
// .setMusicShareId(briefInfo.getMusicShareId())
|
||||
// .setMusicRecord(musicRecord)
|
||||
// .setUnknownEnum1(req.getUnknownEnum1())
|
||||
// .setReqType(req.getReqType())
|
||||
// ;
|
||||
//
|
||||
//
|
||||
// this.setData(proto);
|
||||
// }
|
||||
//}
|
||||
|
||||
@@ -1,34 +1,34 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.MusicBriefInfoOuterClass;
|
||||
import emu.grasscutter.net.proto.MusicGameSearchBeatmapRspOuterClass;
|
||||
import emu.grasscutter.net.proto.MusicGameUnknown1EnumOuterClass;
|
||||
|
||||
public class PacketMusicGameSearchBeatmapRsp extends BasePacket {
|
||||
|
||||
public PacketMusicGameSearchBeatmapRsp(int ret, MusicGameUnknown1EnumOuterClass.MusicGameUnknown1Enum unknownEnum1) {
|
||||
super(PacketOpcodes.MusicGameSearchBeatmapRsp);
|
||||
|
||||
var proto = MusicGameSearchBeatmapRspOuterClass.MusicGameSearchBeatmapRsp.newBuilder();
|
||||
|
||||
proto.setRetcode(ret)
|
||||
.setUnknownEnum1(unknownEnum1);
|
||||
|
||||
this.setData(proto);
|
||||
}
|
||||
|
||||
public PacketMusicGameSearchBeatmapRsp(MusicBriefInfoOuterClass.MusicBriefInfo briefInfo, MusicGameUnknown1EnumOuterClass.MusicGameUnknown1Enum unknownEnum1) {
|
||||
super(PacketOpcodes.MusicGameSearchBeatmapRsp);
|
||||
|
||||
var proto = MusicGameSearchBeatmapRspOuterClass.MusicGameSearchBeatmapRsp.newBuilder();
|
||||
|
||||
proto.setMusicBriefInfo(briefInfo)
|
||||
.setUnknownEnum1(unknownEnum1);
|
||||
|
||||
this.setData(proto);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
//package emu.grasscutter.server.packet.send;
|
||||
//
|
||||
//import emu.grasscutter.net.packet.BasePacket;
|
||||
//import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
//import emu.grasscutter.net.proto.MusicBriefInfoOuterClass;
|
||||
//import emu.grasscutter.net.proto.MusicGameSearchBeatmapRspOuterClass;
|
||||
//import emu.grasscutter.net.proto.MusicGameUnknown1EnumOuterClass;
|
||||
//
|
||||
//public class PacketMusicGameSearchBeatmapRsp extends BasePacket {
|
||||
//
|
||||
// public PacketMusicGameSearchBeatmapRsp(int ret, MusicGameUnknown1EnumOuterClass.MusicGameUnknown1Enum unknownEnum1) {
|
||||
// super(PacketOpcodes.MusicGameSearchBeatmapRsp);
|
||||
//
|
||||
// var proto = MusicGameSearchBeatmapRspOuterClass.MusicGameSearchBeatmapRsp.newBuilder();
|
||||
//
|
||||
// proto.setRetcode(ret)
|
||||
// .setUnknownEnum1(unknownEnum1);
|
||||
//
|
||||
// this.setData(proto);
|
||||
// }
|
||||
//
|
||||
// public PacketMusicGameSearchBeatmapRsp(MusicBriefInfoOuterClass.MusicBriefInfo briefInfo, MusicGameUnknown1EnumOuterClass.MusicGameUnknown1Enum unknownEnum1) {
|
||||
// super(PacketOpcodes.MusicGameSearchBeatmapRsp);
|
||||
//
|
||||
// var proto = MusicGameSearchBeatmapRspOuterClass.MusicGameSearchBeatmapRsp.newBuilder();
|
||||
//
|
||||
// proto.setMusicBriefInfo(briefInfo)
|
||||
// .setUnknownEnum1(unknownEnum1);
|
||||
//
|
||||
// this.setData(proto);
|
||||
// }
|
||||
//
|
||||
//
|
||||
//}
|
||||
|
||||
@@ -12,7 +12,7 @@ public class PacketMusicGameSettleRsp extends BasePacket {
|
||||
var proto = MusicGameSettleRspOuterClass.MusicGameSettleRsp.newBuilder();
|
||||
|
||||
proto.setMusicBasicId(musicBasicId)
|
||||
.setMusicShareId(musicShareId)
|
||||
.setUgcGuid(musicShareId)
|
||||
.setIsNewRecord(isNewRecord);
|
||||
|
||||
this.setData(proto);
|
||||
|
||||
@@ -12,7 +12,7 @@ public class PacketMusicGameStartRsp extends BasePacket {
|
||||
var proto = MusicGameStartRspOuterClass.MusicGameStartRsp.newBuilder();
|
||||
|
||||
proto.setMusicBasicId(musicBasicId)
|
||||
.setMusicShareId(musicShareId);
|
||||
.setUgcGuid(musicShareId);
|
||||
|
||||
this.setData(proto);
|
||||
}
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.MusicGameStartToPlayOthersBeatmapRspOuterClass;
|
||||
import emu.grasscutter.net.proto.MusicGameUnknown1EnumOuterClass;
|
||||
|
||||
public class PacketMusicGameStartToPlayOthersBeatmapRsp extends BasePacket {
|
||||
|
||||
public PacketMusicGameStartToPlayOthersBeatmapRsp(MusicGameUnknown1EnumOuterClass.MusicGameUnknown1Enum unknownEnum1) {
|
||||
super(PacketOpcodes.MusicGameStartToPlayOthersBeatmapRsp);
|
||||
|
||||
var proto = MusicGameStartToPlayOthersBeatmapRspOuterClass.MusicGameStartToPlayOthersBeatmapRsp.newBuilder();
|
||||
|
||||
proto.setUnknownEnum1(unknownEnum1);
|
||||
|
||||
this.setData(proto);
|
||||
}
|
||||
}
|
||||
//package emu.grasscutter.server.packet.send;
|
||||
//
|
||||
//import emu.grasscutter.net.packet.BasePacket;
|
||||
//import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
//import emu.grasscutter.net.proto.MusicGameStartToPlayOthersBeatmapRspOuterClass;
|
||||
//import emu.grasscutter.net.proto.MusicGameUnknown1EnumOuterClass;
|
||||
//
|
||||
//public class PacketMusicGameStartToPlayOthersBeatmapRsp extends BasePacket {
|
||||
//
|
||||
// public PacketMusicGameStartToPlayOthersBeatmapRsp(MusicGameUnknown1EnumOuterClass.MusicGameUnknown1Enum unknownEnum1) {
|
||||
// super(PacketOpcodes.MusicGameStartToPlayOthersBeatmapRsp);
|
||||
//
|
||||
// var proto = MusicGameStartToPlayOthersBeatmapRspOuterClass.MusicGameStartToPlayOthersBeatmapRsp.newBuilder();
|
||||
//
|
||||
// proto.setUnknownEnum1(unknownEnum1);
|
||||
//
|
||||
// this.setData(proto);
|
||||
// }
|
||||
//}
|
||||
|
||||
@@ -3,12 +3,11 @@ package emu.grasscutter.server.packet.send;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.PlayerApplyEnterMpReasonOuterClass.PlayerApplyEnterMpReason;
|
||||
import emu.grasscutter.net.proto.PlayerApplyEnterMpResultNotifyOuterClass;
|
||||
import emu.grasscutter.net.proto.PlayerApplyEnterMpResultNotifyOuterClass.PlayerApplyEnterMpResultNotify;
|
||||
|
||||
public class PacketPlayerApplyEnterMpResultNotify extends BasePacket {
|
||||
|
||||
|
||||
public PacketPlayerApplyEnterMpResultNotify(Player target, boolean isAgreed, PlayerApplyEnterMpResultNotifyOuterClass.PlayerApplyEnterMpResultNotify.Reason reason) {
|
||||
super(PacketOpcodes.PlayerApplyEnterMpResultNotify);
|
||||
|
||||
@@ -18,10 +17,10 @@ public class PacketPlayerApplyEnterMpResultNotify extends BasePacket {
|
||||
.setIsAgreed(isAgreed)
|
||||
.setReason(reason)
|
||||
.build();
|
||||
|
||||
|
||||
this.setData(proto);
|
||||
}
|
||||
|
||||
|
||||
public PacketPlayerApplyEnterMpResultNotify(int targetId, String targetName, boolean isAgreed, PlayerApplyEnterMpResultNotify.Reason reason) {
|
||||
super(PacketOpcodes.PlayerApplyEnterMpResultNotify);
|
||||
|
||||
@@ -31,7 +30,7 @@ public class PacketPlayerApplyEnterMpResultNotify extends BasePacket {
|
||||
.setIsAgreed(isAgreed)
|
||||
.setReason(reason)
|
||||
.build();
|
||||
|
||||
|
||||
this.setData(proto);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,58 +5,57 @@ import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.ChatInfoOuterClass.ChatInfo;
|
||||
import emu.grasscutter.net.proto.PlayerChatNotifyOuterClass.PlayerChatNotify;
|
||||
import emu.grasscutter.net.proto.SystemHintOuterClass.SystemHint;
|
||||
|
||||
public class PacketPlayerChatNotify extends BasePacket {
|
||||
|
||||
|
||||
public PacketPlayerChatNotify(Player sender, int channelId, String message) {
|
||||
super(PacketOpcodes.PlayerChatNotify);
|
||||
|
||||
|
||||
ChatInfo info = ChatInfo.newBuilder()
|
||||
.setTime((int) (System.currentTimeMillis() / 1000))
|
||||
.setUid(sender.getUid())
|
||||
.setText(message)
|
||||
.build();
|
||||
|
||||
|
||||
PlayerChatNotify proto = PlayerChatNotify.newBuilder()
|
||||
.setChannelId(channelId)
|
||||
.setChatInfo(info)
|
||||
.build();
|
||||
|
||||
|
||||
this.setData(proto);
|
||||
}
|
||||
|
||||
|
||||
public PacketPlayerChatNotify(Player sender, int channelId, int emote) {
|
||||
super(PacketOpcodes.PlayerChatNotify);
|
||||
|
||||
|
||||
ChatInfo info = ChatInfo.newBuilder()
|
||||
.setTime((int) (System.currentTimeMillis() / 1000))
|
||||
.setUid(sender.getUid())
|
||||
.setIcon(emote)
|
||||
.build();
|
||||
|
||||
|
||||
PlayerChatNotify proto = PlayerChatNotify.newBuilder()
|
||||
.setChannelId(channelId)
|
||||
.setChatInfo(info)
|
||||
.build();
|
||||
|
||||
|
||||
this.setData(proto);
|
||||
}
|
||||
|
||||
|
||||
public PacketPlayerChatNotify(Player sender, int channelId, ChatInfo.SystemHint systemHint) {
|
||||
super(PacketOpcodes.PlayerChatNotify);
|
||||
|
||||
|
||||
ChatInfo info = ChatInfo.newBuilder()
|
||||
.setTime((int) (System.currentTimeMillis() / 1000))
|
||||
.setUid(sender.getUid())
|
||||
.setSystemHint(systemHint)
|
||||
.build();
|
||||
|
||||
|
||||
PlayerChatNotify proto = PlayerChatNotify.newBuilder()
|
||||
.setChannelId(channelId)
|
||||
.setChatInfo(info)
|
||||
.build();
|
||||
|
||||
|
||||
this.setData(proto);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ public class PacketPlayerCompoundMaterialRsp extends BasePacket {
|
||||
public PacketPlayerCompoundMaterialRsp(CompoundQueueData compoundQueueData) {
|
||||
super(PacketOpcodes.PlayerCompoundMaterialRsp);
|
||||
PlayerCompoundMaterialRsp proto = PlayerCompoundMaterialRsp.newBuilder()
|
||||
.setCompoundQueData(compoundQueueData)
|
||||
.setCompoundQueueData(compoundQueueData)
|
||||
.setRetcode(Retcode.RET_SUCC_VALUE)
|
||||
.build();
|
||||
setData(proto);
|
||||
|
||||
@@ -28,7 +28,7 @@ public class PacketPlayerCookRsp extends BasePacket {
|
||||
.setRecipeData(
|
||||
CookRecipeData.newBuilder()
|
||||
.setRecipeId(recipeId)
|
||||
.setProficiency(proficiency)
|
||||
.setProficiency(proficiency)
|
||||
)
|
||||
.setQteQuality(quality)
|
||||
.setCookCount(count);
|
||||
|
||||
@@ -17,7 +17,7 @@ public class PacketQueryCodexMonsterBeKilledNumRsp extends BasePacket {
|
||||
if (player.getCodex().getUnlockedAnimal().containsKey(animal)) {
|
||||
proto.addCodexIdList(animal)
|
||||
.addBeKilledNumList(player.getCodex().getUnlockedAnimal().get(animal))
|
||||
.addUnk2700MKOBMGGPNMI(0);
|
||||
.addBeCapturedNumList(0);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.ReformFireworksRspOuterClass;
|
||||
|
||||
public class PacketReformFireworksRsp extends BasePacket {
|
||||
public PacketReformFireworksRsp() {
|
||||
super(PacketOpcodes.ReformFireworksRsp);
|
||||
var proto = ReformFireworksRspOuterClass.ReformFireworksRsp.newBuilder()
|
||||
.build();
|
||||
this.setData(proto);
|
||||
}
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.RetcodeOuterClass.Retcode;
|
||||
import emu.grasscutter.net.proto.RemoveCustomTeamRspOuterClass.RemoveCustomTeamRsp;
|
||||
|
||||
public class PacketRemoveCustomTeamRsp extends BasePacket {
|
||||
public PacketRemoveCustomTeamRsp(Retcode retcode, int id) {
|
||||
super(PacketOpcodes.RemoveCustomTeamRsp);
|
||||
|
||||
RemoveCustomTeamRsp proto = RemoveCustomTeamRsp.newBuilder()
|
||||
.setRetcode(retcode.getNumber())
|
||||
.setId(id)
|
||||
.build();
|
||||
|
||||
this.setData(proto);
|
||||
}
|
||||
|
||||
public PacketRemoveCustomTeamRsp(int id) {
|
||||
this(Retcode.RET_SUCC, id);
|
||||
}
|
||||
}
|
||||
@@ -2,8 +2,6 @@ package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.AchievementInfoOuterClass;
|
||||
import emu.grasscutter.net.proto.AchievementInfoOuterClass.AchievementInfo;
|
||||
import emu.grasscutter.net.proto.TakeAchievementRewardReqOuterClass.TakeAchievementRewardReq;
|
||||
import emu.grasscutter.server.game.GameSession;
|
||||
|
||||
@@ -20,4 +18,4 @@ public class PacketTakeAchievementRewardReq extends BasePacket {
|
||||
this.setData(proto);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ public class PacketTowerCurLevelRecordChangeNotify extends BasePacket {
|
||||
// TODO team info
|
||||
.build())
|
||||
.build();
|
||||
|
||||
|
||||
this.setData(proto);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@ public class PacketTowerLevelStarCondNotify extends BasePacket {
|
||||
.build()
|
||||
)
|
||||
.build();
|
||||
|
||||
|
||||
this.setData(proto);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.Unk2700MEBFPBDNPGOServerNotify;
|
||||
|
||||
public class PacketUnlockHomeBgmNotify extends BasePacket {
|
||||
public PacketUnlockHomeBgmNotify(int homeBgmId) {
|
||||
super(PacketOpcodes.Unk2700_MEBFPBDNPGO_ServerNotify);
|
||||
|
||||
var notify = Unk2700MEBFPBDNPGOServerNotify.Unk2700_MEBFPBDNPGO_ServerNotify.newBuilder()
|
||||
.addUnk2700ELJPLMIHNIP(homeBgmId)
|
||||
.build();
|
||||
|
||||
this.setData(notify);
|
||||
}
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.Unk2700LOHBMOKOPLHServerNotify;
|
||||
|
||||
public class PacketUnlockedHomeBgmNotify extends BasePacket {
|
||||
public PacketUnlockedHomeBgmNotify(Player player) {
|
||||
super(PacketOpcodes.Unk2700_LOHBMOKOPLH_ServerNotify);
|
||||
|
||||
if (player.getRealmList() == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
var unlocked = player.getHome().getUnlockedHomeBgmList();
|
||||
|
||||
var notify = Unk2700LOHBMOKOPLHServerNotify.Unk2700_LOHBMOKOPLH_ServerNotify.newBuilder()
|
||||
.addAllUnk2700KMEKMNONMGE(unlocked)
|
||||
.build();
|
||||
|
||||
this.setData(notify);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user