Funnel all gson calls into helper functions

Add deprecated getGsonFactory for plugin compat until 3.0
This commit is contained in:
AnimeGitB
2022-08-09 21:44:44 +09:30
committed by Luke H-W
parent 76fcbb477b
commit c6323e9759
21 changed files with 194 additions and 220 deletions

View File

@@ -1,7 +1,6 @@
package emu.grasscutter.game.activity;
import com.esotericsoftware.reflectasm.ConstructorAccess;
import com.google.gson.reflect.TypeToken;
import emu.grasscutter.Grasscutter;
import emu.grasscutter.data.DataLoader;
import emu.grasscutter.data.GameData;
@@ -14,9 +13,6 @@ import emu.grasscutter.server.packet.send.PacketActivityScheduleInfoNotify;
import lombok.Getter;
import org.reflections.Reflections;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
@@ -45,13 +41,8 @@ public class ActivityManager extends BasePlayerManager {
activityWatcherTypeMap.put(typeName.value(), ConstructorAccess.get(item));
});
try (Reader reader = DataLoader.loadReader("ActivityConfig.json")) {
List<ActivityConfigItem> activities = Grasscutter.getGsonFactory().fromJson(
reader,
TypeToken.getParameterized(List.class, ActivityConfigItem.class).getType());
activities.forEach(item -> {
try {
DataLoader.loadList("ActivityConfig.json", ActivityConfigItem.class).forEach(item -> {
var activityData = GameData.getActivityDataMap().get(item.getActivityId());
if (activityData == null) {
Grasscutter.getLogger().warn("activity {} not exist.", item.getActivityId());

View File

@@ -13,6 +13,7 @@ import emu.grasscutter.game.player.Player;
import emu.grasscutter.game.props.ActionReason;
import emu.grasscutter.net.proto.ActivityWatcherInfoOuterClass;
import emu.grasscutter.server.packet.send.PacketActivityUpdateWatcherNotify;
import emu.grasscutter.utils.Utils;
import lombok.AccessLevel;
import lombok.Builder;
import lombok.Data;
@@ -68,7 +69,7 @@ public class PlayerActivityData {
}
public void setDetail(Object detail){
this.detail = Grasscutter.getGsonFactory().toJson(detail);
this.detail = Utils.jsonEncode(detail);
}
public void takeWatcherReward(int watcherId) {

View File

@@ -8,6 +8,7 @@ import emu.grasscutter.game.props.ActivityType;
import emu.grasscutter.net.proto.ActivityInfoOuterClass;
import emu.grasscutter.net.proto.MusicBriefInfoOuterClass;
import emu.grasscutter.net.proto.MusicGameActivityDetailInfoOuterClass;
import emu.grasscutter.utils.Utils;
import java.util.stream.Collectors;
@@ -47,8 +48,7 @@ public class MusicGameActivityHandler extends ActivityHandler {
playerActivityData.save();
}
return Grasscutter.getGsonFactory().fromJson(playerActivityData.getDetail(),
MusicGamePlayerData.class);
return Utils.jsonDecode(playerActivityData.getDetail(), MusicGamePlayerData.class);
}
public boolean setMusicGameRecord(PlayerActivityData playerActivityData, MusicGamePlayerData.MusicGameRecord newRecord) {