Removed legacy IO code
This commit is contained in:
@@ -9,18 +9,18 @@ import arc.scene.ui.layout.*;
|
||||
import arc.struct.*;
|
||||
import arc.util.*;
|
||||
import arc.util.Log.*;
|
||||
import arc.util.io.*;
|
||||
import mindustry.ai.*;
|
||||
import mindustry.async.*;
|
||||
import mindustry.audio.LoopControl;
|
||||
import mindustry.audio.*;
|
||||
import mindustry.core.*;
|
||||
import mindustry.entities.*;
|
||||
import mindustry.game.*;
|
||||
import mindustry.game.EventType.*;
|
||||
import mindustry.gen.*;
|
||||
import mindustry.input.*;
|
||||
import mindustry.maps.*;
|
||||
import mindustry.io.*;
|
||||
import mindustry.maps.Map;
|
||||
import mindustry.maps.*;
|
||||
import mindustry.mod.*;
|
||||
import mindustry.net.Net;
|
||||
import mindustry.net.*;
|
||||
@@ -29,7 +29,7 @@ import java.io.*;
|
||||
import java.nio.charset.*;
|
||||
import java.util.*;
|
||||
|
||||
import static arc.Core.settings;
|
||||
import static arc.Core.*;
|
||||
|
||||
public class Vars implements Loadable{
|
||||
/** Whether to load locales.*/
|
||||
@@ -82,7 +82,7 @@ public class Vars implements Loadable{
|
||||
public static final float buildingRange = 220f;
|
||||
/** duration of one turn in ticks */
|
||||
public static final float turnDuration = 5 * Time.toMinutes;
|
||||
/** min armor fraction damage */
|
||||
/** min armor fraction damage; e.g. 0.05 = at least 5% damage */
|
||||
public static final float minArmorDamage = 0.05f;
|
||||
/** for map generator dialog */
|
||||
public static boolean updateEditorOnChange = false;
|
||||
@@ -201,9 +201,7 @@ public class Vars implements Loadable{
|
||||
}
|
||||
|
||||
public static void init(){
|
||||
Serialization.init();
|
||||
Groups.init();
|
||||
DefaultSerializers.typeMappings.put("mindustry.type.ContentType", "mindustry.ctype.ContentType");
|
||||
|
||||
if(loadLocales){
|
||||
//load locales
|
||||
@@ -223,7 +221,7 @@ public class Vars implements Loadable{
|
||||
|
||||
Version.init();
|
||||
|
||||
dataDirectory = Core.settings.getDataDirectory();
|
||||
dataDirectory = settings.getDataDirectory();
|
||||
screenshotDirectory = dataDirectory.child("screenshots/");
|
||||
customMapDirectory = dataDirectory.child("maps/");
|
||||
mapPreviewDirectory = dataDirectory.child("previews/");
|
||||
@@ -293,7 +291,7 @@ public class Vars implements Loadable{
|
||||
public static void loadFileLogger(){
|
||||
if(loadedFileLogger) return;
|
||||
|
||||
Core.settings.setAppName(appName);
|
||||
settings.setAppName(appName);
|
||||
|
||||
Writer writer = settings.getDataDirectory().child("last_log.txt").writer(false);
|
||||
LogHandler log = Log.getLogger();
|
||||
@@ -313,15 +311,16 @@ public class Vars implements Loadable{
|
||||
}
|
||||
|
||||
public static void loadSettings(){
|
||||
Core.settings.setAppName(appName);
|
||||
settings.setJson(JsonIO.json());
|
||||
settings.setAppName(appName);
|
||||
|
||||
if(steam || (Version.modifier != null && Version.modifier.contains("steam"))){
|
||||
Core.settings.setDataDirectory(Core.files.local("saves/"));
|
||||
settings.setDataDirectory(Core.files.local("saves/"));
|
||||
}
|
||||
|
||||
Core.settings.defaults("locale", "default", "blocksync", true);
|
||||
Core.keybinds.setDefaults(Binding.values());
|
||||
Core.settings.load();
|
||||
settings.defaults("locale", "default", "blocksync", true);
|
||||
keybinds.setDefaults(Binding.values());
|
||||
settings.load();
|
||||
|
||||
Scl.setProduct(settings.getInt("uiscale", 100) / 100f);
|
||||
|
||||
@@ -344,7 +343,7 @@ public class Vars implements Loadable{
|
||||
|
||||
Fi handle = Core.files.internal("bundles/bundle");
|
||||
Locale locale;
|
||||
String loc = Core.settings.getString("locale");
|
||||
String loc = settings.getString("locale");
|
||||
if(loc.equals("default")){
|
||||
locale = Locale.getDefault();
|
||||
}else{
|
||||
|
||||
@@ -14,7 +14,7 @@ abstract class ShieldComp implements Healthc, Posc{
|
||||
|
||||
/** Absorbs health damage. */
|
||||
float shield;
|
||||
/** Absorbs percentage of damage, up to 90% */
|
||||
/** Absorbs percentage of damage. */
|
||||
float armor;
|
||||
/** Shield opacity. */
|
||||
transient float shieldAlpha = 0f;
|
||||
|
||||
@@ -22,20 +22,6 @@ public class GlobalData{
|
||||
private ObjectIntMap<Item> items = new ObjectIntMap<>();
|
||||
private boolean modified;
|
||||
|
||||
public GlobalData(){
|
||||
Core.settings.setSerializer(ContentType.class, (stream, t) -> stream.writeInt(t.ordinal()), stream -> ContentType.values()[stream.readInt()]);
|
||||
Core.settings.setSerializer(Item.class, (stream, t) -> stream.writeUTF(t.name), stream -> content.getByName(ContentType.item, stream.readUTF()));
|
||||
|
||||
Core.settings.setSerializer(ItemStack.class, (stream, t) -> {
|
||||
stream.writeUTF(t.item.name);
|
||||
stream.writeInt(t.amount);
|
||||
}, stream -> {
|
||||
String name = stream.readUTF();
|
||||
int amount = stream.readInt();
|
||||
return new ItemStack(content.getByName(ContentType.item, name), amount);
|
||||
});
|
||||
}
|
||||
|
||||
public void exportData(Fi file) throws IOException{
|
||||
Array<Fi> files = new Array<>();
|
||||
files.add(Core.settings.getSettingsFile());
|
||||
@@ -176,7 +162,7 @@ public class GlobalData{
|
||||
@SuppressWarnings("unchecked")
|
||||
public void load(){
|
||||
items.clear();
|
||||
unlocked = Core.settings.getObject("unlocks", ObjectMap.class, ObjectMap::new);
|
||||
unlocked = Core.settings.getJson("unlocks", ObjectMap.class, ObjectMap::new);
|
||||
for(Item item : Vars.content.items()){
|
||||
items.put(item, Core.settings.getInt("item-" + item.name, 0));
|
||||
}
|
||||
@@ -188,7 +174,7 @@ public class GlobalData{
|
||||
}
|
||||
|
||||
public void save(){
|
||||
Core.settings.putObject("unlocks", unlocked);
|
||||
Core.settings.putJson("unlocks", unlocked);
|
||||
for(Item item : Vars.content.items()){
|
||||
Core.settings.put("item-" + item.name, items.get(item, 0));
|
||||
}
|
||||
|
||||
36
core/src/mindustry/io/legacy/LegacyIO.java
Normal file
36
core/src/mindustry/io/legacy/LegacyIO.java
Normal file
@@ -0,0 +1,36 @@
|
||||
package mindustry.io.legacy;
|
||||
|
||||
import arc.*;
|
||||
import arc.struct.*;
|
||||
import mindustry.ui.dialogs.JoinDialog.*;
|
||||
|
||||
import java.io.*;
|
||||
|
||||
public class LegacyIO{
|
||||
|
||||
public static Array<Server> readServers(){
|
||||
Array<Server> arr = new Array<>();
|
||||
|
||||
try{
|
||||
byte[] bytes = Core.settings.getBytes("server-list");
|
||||
DataInputStream stream = new DataInputStream(new ByteArrayInputStream(bytes));
|
||||
|
||||
int length = stream.readInt();
|
||||
if(length > 0){
|
||||
//name of type, irrelevant
|
||||
stream.readUTF();
|
||||
|
||||
for(int i = 0; i < length; i++){
|
||||
Server server = new Server();
|
||||
server.ip = stream.readUTF();
|
||||
server.port = stream.readInt();
|
||||
arr.add(server);
|
||||
}
|
||||
}
|
||||
}catch(Exception e){
|
||||
e.printStackTrace();
|
||||
}
|
||||
return arr;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -354,7 +354,7 @@ public class Maps{
|
||||
}
|
||||
|
||||
StringWriter buffer = new StringWriter();
|
||||
json.setWriter(buffer);
|
||||
json.setWriter(new JsonWriter(buffer));
|
||||
|
||||
json.writeArrayStart();
|
||||
for(int i = 0; i < groups.size; i++){
|
||||
|
||||
@@ -8,11 +8,12 @@ import arc.util.*;
|
||||
import arc.util.pooling.Pool.*;
|
||||
import arc.util.pooling.*;
|
||||
import mindustry.*;
|
||||
import mindustry.annotations.Annotations.*;
|
||||
import mindustry.gen.*;
|
||||
import mindustry.type.*;
|
||||
import mindustry.world.*;
|
||||
|
||||
import java.io.*;
|
||||
|
||||
import static mindustry.Vars.*;
|
||||
import static mindustry.game.EventType.*;
|
||||
|
||||
@@ -428,18 +429,119 @@ public class Administration{
|
||||
}
|
||||
|
||||
public void save(){
|
||||
Core.settings.putObject("player-info", playerInfo);
|
||||
Core.settings.putObject("banned-ips", bannedIPs);
|
||||
Core.settings.putObject("whitelisted", whitelist);
|
||||
Core.settings.putObject("subnet-bans", subnetBans);
|
||||
Core.settings.putJson("player-data", playerInfo);
|
||||
Core.settings.putJson("ip-bans", String.class, bannedIPs);
|
||||
Core.settings.putJson("whitelist", String.class, whitelist);
|
||||
Core.settings.putJson("banned-subnets", String.class, subnetBans);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
private void load(){
|
||||
playerInfo = Core.settings.getObject("player-info", ObjectMap.class, ObjectMap::new);
|
||||
bannedIPs = Core.settings.getObject("banned-ips", Array.class, Array::new);
|
||||
whitelist = Core.settings.getObject("whitelisted", Array.class, Array::new);
|
||||
subnetBans = Core.settings.getObject("subnet-bans", Array.class, Array::new);
|
||||
if(!loadLegacy()){
|
||||
//load default data
|
||||
playerInfo = Core.settings.getJson("player-data", ObjectMap.class, ObjectMap::new);
|
||||
bannedIPs = Core.settings.getJson("ip-bans", Array.class, Array::new);
|
||||
whitelist = Core.settings.getJson("whitelist", Array.class, Array::new);
|
||||
subnetBans = Core.settings.getJson("banned-subnets", Array.class, Array::new);
|
||||
}else{
|
||||
//save over loaded legacy data
|
||||
save();
|
||||
Log.info("Loaded legacy (5.0) server data.");
|
||||
}
|
||||
}
|
||||
|
||||
private boolean loadLegacy(){
|
||||
try{
|
||||
byte[] info = Core.settings.getBytes("player-info");
|
||||
byte[] ips = Core.settings.getBytes("banned-ips");
|
||||
byte[] whitelist = Core.settings.getBytes("whitelisted");
|
||||
byte[] subnet = Core.settings.getBytes("subnet-bans");
|
||||
|
||||
if(info != null){
|
||||
DataInputStream d = new DataInputStream(new ByteArrayInputStream(info));
|
||||
int size = d.readInt();
|
||||
if(size != 0){
|
||||
d.readUTF();
|
||||
d.readUTF();
|
||||
|
||||
for(int i = 0; i < size; i++){
|
||||
String mapKey = d.readUTF();
|
||||
|
||||
PlayerInfo data = new PlayerInfo();
|
||||
|
||||
data.id = d.readUTF();
|
||||
data.lastName = d.readUTF();
|
||||
data.lastIP = d.readUTF();
|
||||
int ipsize = d.readInt();
|
||||
if(ipsize != 0){
|
||||
d.readUTF();
|
||||
for(int j = 0; j < ipsize; j++){
|
||||
data.ips.add(d.readUTF());
|
||||
}
|
||||
}
|
||||
|
||||
int namesize = d.readInt();
|
||||
if(namesize != 0){
|
||||
d.readUTF();
|
||||
for(int j = 0; j < ipsize; j++){
|
||||
data.names.add(d.readUTF());
|
||||
}
|
||||
}
|
||||
//ips, names...
|
||||
data.adminUsid = d.readUTF();
|
||||
data.timesKicked = d.readInt();
|
||||
data.timesJoined = d.readInt();
|
||||
data.banned = d.readBoolean();
|
||||
data.admin = d.readBoolean();
|
||||
data.lastKicked = d.readLong();
|
||||
|
||||
playerInfo.put(mapKey, data);
|
||||
}
|
||||
}
|
||||
Core.settings.remove("player-info");
|
||||
}
|
||||
|
||||
if(ips != null){
|
||||
DataInputStream d = new DataInputStream(new ByteArrayInputStream(ips));
|
||||
int size = d.readInt();
|
||||
if(size != 0){
|
||||
d.readUTF();
|
||||
for(int i = 0; i < size; i++){
|
||||
bannedIPs.add(d.readUTF());
|
||||
}
|
||||
}
|
||||
Core.settings.remove("banned-ips");
|
||||
}
|
||||
|
||||
if(whitelist != null){
|
||||
DataInputStream d = new DataInputStream(new ByteArrayInputStream(whitelist));
|
||||
int size = d.readInt();
|
||||
if(size != 0){
|
||||
d.readUTF();
|
||||
for(int i = 0; i < size; i++){
|
||||
this.whitelist.add(d.readUTF());
|
||||
}
|
||||
}
|
||||
Core.settings.remove("whitelisted");
|
||||
}
|
||||
|
||||
if(subnet != null){
|
||||
DataInputStream d = new DataInputStream(new ByteArrayInputStream(subnet));
|
||||
int size = d.readInt();
|
||||
if(size != 0){
|
||||
d.readUTF();
|
||||
for(int i = 0; i < size; i++){
|
||||
subnetBans.add(d.readUTF());
|
||||
}
|
||||
}
|
||||
Core.settings.remove("subnet-bans");
|
||||
}
|
||||
|
||||
return info != null || ips != null || whitelist != null || subnet != null;
|
||||
}catch(Throwable e){
|
||||
e.printStackTrace();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/** Server configuration definition. Each config value can be a string, boolean or number. */
|
||||
@@ -526,7 +628,6 @@ public class Administration{
|
||||
}
|
||||
}
|
||||
|
||||
@Serialize
|
||||
public static class PlayerInfo{
|
||||
public String id;
|
||||
public String lastName = "<unknown>", lastIP = "<unknown>";
|
||||
|
||||
@@ -134,7 +134,6 @@ public class SectorPreset extends UnlockableContent{
|
||||
|
||||
stacks.sort();
|
||||
launchCost = stacks;
|
||||
Core.settings.putObject(name + "-starting-items", startingItems);
|
||||
data.modified();
|
||||
}
|
||||
|
||||
@@ -154,12 +153,6 @@ public class SectorPreset extends UnlockableContent{
|
||||
for(ItemStack stack : startingItems){
|
||||
defaultStartingItems.add(new ItemStack(stack.item, stack.amount));
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
Array<ItemStack> arr = Core.settings.getObject(name + "-starting-items", Array.class, () -> null);
|
||||
if(arr != null){
|
||||
startingItems = arr;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -9,10 +9,10 @@ import arc.struct.*;
|
||||
import arc.util.*;
|
||||
import arc.util.serialization.*;
|
||||
import mindustry.*;
|
||||
import mindustry.annotations.Annotations.*;
|
||||
import mindustry.core.*;
|
||||
import mindustry.gen.*;
|
||||
import mindustry.graphics.*;
|
||||
import mindustry.io.legacy.*;
|
||||
import mindustry.net.*;
|
||||
import mindustry.net.Packets.*;
|
||||
import mindustry.ui.*;
|
||||
@@ -420,7 +420,13 @@ public class JoinDialog extends FloatingDialog{
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
private void loadServers(){
|
||||
servers = Core.settings.getObject("server-list", Array.class, Array::new);
|
||||
servers = Core.settings.getJson("servers", Array.class, Array::new);
|
||||
|
||||
//load imported legacy data
|
||||
if(Core.settings.has("server-list")){
|
||||
servers = LegacyIO.readServers();
|
||||
Core.settings.remove("server-list");
|
||||
}
|
||||
|
||||
//get servers
|
||||
Core.net.httpGet(becontrol.active() ? serverJsonBeURL : serverJsonURL, result -> {
|
||||
@@ -438,10 +444,9 @@ public class JoinDialog extends FloatingDialog{
|
||||
}
|
||||
|
||||
private void saveServers(){
|
||||
Core.settings.putObject("server-list", servers);
|
||||
Core.settings.putJson("servers", Server.class, servers);
|
||||
}
|
||||
|
||||
@Serialize
|
||||
public static class Server{
|
||||
public String ip;
|
||||
public int port;
|
||||
|
||||
Reference in New Issue
Block a user