mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2025-12-23 04:15:49 +01:00
Refactoring (#1660)
* Refactor a couple of iterators * Use side-effect instead of second iterator * Make World::onTick return shouldDelete instead of success * Replace Shop iterator with side effects * Scene * Clean up Expeditions * Refactor Expeditions * Clean up Expeditions, Player * Limit Expeditions by AR * Lombokify props Co-authored-by: AnimeGitB <AnimeGitB@bigblueball.in>
This commit is contained in:
@@ -33,7 +33,7 @@ public class PacketAllWidgetDataNotify extends BasePacket {
|
||||
// Good luck, my boy.
|
||||
.addAllNormalCoolDownDataList(List.of());
|
||||
|
||||
if (player.getWidgetId() == null) {
|
||||
if (player.getWidgetId() == 0) { // TODO: check this logic later, it was null-checking an int before which made it dead code
|
||||
proto.addAllSlotList(List.of());
|
||||
} else {
|
||||
proto.addSlotList(
|
||||
|
||||
@@ -1,33 +1,27 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.Grasscutter;
|
||||
import emu.grasscutter.game.expedition.ExpeditionInfo;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.AvatarExpeditionAllDataRspOuterClass.AvatarExpeditionAllDataRsp;
|
||||
import emu.grasscutter.net.proto.AvatarExpeditionInfoOuterClass.AvatarExpeditionInfo;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class PacketAvatarExpeditionAllDataRsp extends BasePacket {
|
||||
public PacketAvatarExpeditionAllDataRsp(Player player) {
|
||||
public PacketAvatarExpeditionAllDataRsp(Map<Long, ExpeditionInfo> expeditionInfo, int expeditionCountLimit) {
|
||||
super(PacketOpcodes.AvatarExpeditionAllDataRsp);
|
||||
|
||||
List<Integer> openExpeditionList = new ArrayList<>(List.of(306,305,304,303,302,301,206,105,204,104,203,103,202,101,102,201,106,205));
|
||||
Map<Long, AvatarExpeditionInfo> avatarExpeditionInfoList = new HashMap<Long, AvatarExpeditionInfo>();
|
||||
|
||||
var expeditionInfo = player.getExpeditionInfo();
|
||||
for (Long key : player.getExpeditionInfo().keySet()) {
|
||||
ExpeditionInfo e = expeditionInfo.get(key);
|
||||
avatarExpeditionInfoList.put(key, AvatarExpeditionInfo.newBuilder().setStateValue(e.getState()).setExpId(e.getExpId()).setHourTime(e.getHourTime()).setStartTime(e.getStartTime()).build());
|
||||
};
|
||||
|
||||
AvatarExpeditionAllDataRsp.Builder proto = AvatarExpeditionAllDataRsp.newBuilder()
|
||||
.addAllOpenExpeditionList(openExpeditionList)
|
||||
.setExpeditionCountLimit(5)
|
||||
.putAllExpeditionInfoMap(avatarExpeditionInfoList);
|
||||
|
||||
this.setData(proto.build());
|
||||
this.setData(AvatarExpeditionAllDataRsp.newBuilder()
|
||||
.addAllOpenExpeditionList(openExpeditionList)
|
||||
.setExpeditionCountLimit(expeditionCountLimit)
|
||||
.putAllExpeditionInfoMap(
|
||||
expeditionInfo.entrySet().stream()
|
||||
.collect(Collectors.toMap(
|
||||
e -> e.getKey(),
|
||||
e -> e.getValue().toProto())))
|
||||
.build());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,22 +1,18 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import emu.grasscutter.game.expedition.ExpeditionInfo;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.AvatarExpeditionCallBackRspOuterClass.AvatarExpeditionCallBackRsp;
|
||||
import emu.grasscutter.net.proto.AvatarExpeditionInfoOuterClass.AvatarExpeditionInfo;
|
||||
|
||||
public class PacketAvatarExpeditionCallBackRsp extends BasePacket {
|
||||
public PacketAvatarExpeditionCallBackRsp(Player player) {
|
||||
public PacketAvatarExpeditionCallBackRsp(Map<Long, ExpeditionInfo> expeditionInfo) {
|
||||
super(PacketOpcodes.AvatarExpeditionCallBackRsp);
|
||||
|
||||
AvatarExpeditionCallBackRsp.Builder proto = AvatarExpeditionCallBackRsp.newBuilder();
|
||||
var expeditionInfo = player.getExpeditionInfo();
|
||||
for (Long key : player.getExpeditionInfo().keySet()) {
|
||||
ExpeditionInfo e = expeditionInfo.get(key);
|
||||
proto.putExpeditionInfoMap(key, AvatarExpeditionInfo.newBuilder().setStateValue(e.getState()).setExpId(e.getExpId()).setHourTime(e.getHourTime()).setStartTime(e.getStartTime()).build());
|
||||
};
|
||||
expeditionInfo.forEach((key, e) -> proto.putExpeditionInfoMap(key, e.toProto()));
|
||||
|
||||
this.setData(proto.build());
|
||||
}
|
||||
|
||||
@@ -1,29 +1,24 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.game.expedition.ExpeditionInfo;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.AvatarExpeditionDataNotifyOuterClass.AvatarExpeditionDataNotify;
|
||||
import emu.grasscutter.net.proto.AvatarExpeditionInfoOuterClass.AvatarExpeditionInfo;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class PacketAvatarExpeditionDataNotify extends BasePacket {
|
||||
public PacketAvatarExpeditionDataNotify(Player player) {
|
||||
public PacketAvatarExpeditionDataNotify(Map<Long, ExpeditionInfo> expeditionInfo) {
|
||||
super(PacketOpcodes.AvatarExpeditionDataNotify);
|
||||
|
||||
Map<Long, AvatarExpeditionInfo> avatarExpeditionInfoList = new HashMap<Long, AvatarExpeditionInfo>();
|
||||
|
||||
var expeditionInfo = player.getExpeditionInfo();
|
||||
for (Long key : player.getExpeditionInfo().keySet()) {
|
||||
ExpeditionInfo e = expeditionInfo.get(key);
|
||||
avatarExpeditionInfoList.put(key, AvatarExpeditionInfo.newBuilder().setStateValue(e.getState()).setExpId(e.getExpId()).setHourTime(e.getHourTime()).setStartTime(e.getStartTime()).build());
|
||||
};
|
||||
|
||||
AvatarExpeditionDataNotify.Builder proto = AvatarExpeditionDataNotify.newBuilder()
|
||||
.putAllExpeditionInfoMap(avatarExpeditionInfoList);
|
||||
|
||||
this.setData(proto.build());
|
||||
this.setData(AvatarExpeditionDataNotify.newBuilder()
|
||||
.putAllExpeditionInfoMap(
|
||||
expeditionInfo.entrySet().stream()
|
||||
.collect(Collectors.toMap(
|
||||
e -> e.getKey(),
|
||||
e -> e.getValue().toProto())))
|
||||
.build()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,28 +2,20 @@ package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.game.expedition.ExpeditionInfo;
|
||||
import emu.grasscutter.game.inventory.GameItem;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.AvatarExpeditionGetRewardRspOuterClass.AvatarExpeditionGetRewardRsp;
|
||||
import emu.grasscutter.net.proto.AvatarExpeditionInfoOuterClass.AvatarExpeditionInfo;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Map;
|
||||
|
||||
public class PacketAvatarExpeditionGetRewardRsp extends BasePacket {
|
||||
public PacketAvatarExpeditionGetRewardRsp(Player player, Collection<GameItem> items) {
|
||||
public PacketAvatarExpeditionGetRewardRsp(Map<Long, ExpeditionInfo> expeditionInfo, Collection<GameItem> items) {
|
||||
super(PacketOpcodes.AvatarExpeditionGetRewardRsp);
|
||||
|
||||
AvatarExpeditionGetRewardRsp.Builder proto = AvatarExpeditionGetRewardRsp.newBuilder();
|
||||
var expeditionInfo = player.getExpeditionInfo();
|
||||
for (Long key : player.getExpeditionInfo().keySet()) {
|
||||
ExpeditionInfo e = expeditionInfo.get(key);
|
||||
proto.putExpeditionInfoMap(key, AvatarExpeditionInfo.newBuilder().setStateValue(e.getState()).setExpId(e.getExpId()).setHourTime(e.getHourTime()).setStartTime(e.getStartTime()).build());
|
||||
};
|
||||
|
||||
for (GameItem item : items) {
|
||||
proto.addItemList(item.toItemParam());
|
||||
}
|
||||
expeditionInfo.forEach((key, e) -> proto.putExpeditionInfoMap(key, e.toProto()));
|
||||
items.forEach(item -> proto.addItemList(item.toItemParam()));
|
||||
|
||||
this.setData(proto.build());
|
||||
}
|
||||
|
||||
@@ -1,22 +1,18 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import emu.grasscutter.game.expedition.ExpeditionInfo;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.AvatarExpeditionInfoOuterClass.AvatarExpeditionInfo;
|
||||
import emu.grasscutter.net.proto.AvatarExpeditionStartRspOuterClass.AvatarExpeditionStartRsp;
|
||||
|
||||
public class PacketAvatarExpeditionStartRsp extends BasePacket {
|
||||
public PacketAvatarExpeditionStartRsp(Player player) {
|
||||
public PacketAvatarExpeditionStartRsp(Map<Long, ExpeditionInfo> expeditionInfo) {
|
||||
super(PacketOpcodes.AvatarExpeditionStartRsp);
|
||||
|
||||
AvatarExpeditionStartRsp.Builder proto = AvatarExpeditionStartRsp.newBuilder();
|
||||
var expeditionInfo = player.getExpeditionInfo();
|
||||
for (Long key : player.getExpeditionInfo().keySet()) {
|
||||
ExpeditionInfo e = expeditionInfo.get(key);
|
||||
proto.putExpeditionInfoMap(key, AvatarExpeditionInfo.newBuilder().setStateValue(e.getState()).setExpId(e.getExpId()).setHourTime(e.getHourTime()).setStartTime(e.getStartTime()).build());
|
||||
};
|
||||
expeditionInfo.forEach((key, e) -> proto.putExpeditionInfoMap(key, e.toProto()));
|
||||
|
||||
this.setData(proto.build());
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ public class PacketGetWidgetSlotRsp extends BasePacket {
|
||||
GetWidgetSlotRspOuterClass.GetWidgetSlotRsp.Builder proto =
|
||||
GetWidgetSlotRspOuterClass.GetWidgetSlotRsp.newBuilder();
|
||||
|
||||
if (player.getWidgetId() == null) {
|
||||
if (player.getWidgetId() == 0) { // TODO: check this logic later, it was null-checking an int before which made it dead code
|
||||
proto.addAllSlotList(List.of());
|
||||
} else {
|
||||
proto.addSlotList(
|
||||
|
||||
Reference in New Issue
Block a user