Added new load/save method (SerializedStorageMedium), not intended for official use, just development as it's not perfect

Also defaulted the save/load method to this one.
This commit is contained in:
xEnt22 2012-01-05 21:25:57 +10:30
parent 7f0d0c4ca4
commit fa43f61cd3
6 changed files with 314 additions and 14 deletions

View File

@ -10,7 +10,7 @@
<entry key="lsport">34526</entry>
<entry key="queryip">localhost</entry>
<entry key="queryport">8186</entry>
<entry key="storage-medium">org.moparscape.msc.ls.persistence.impl.DummyStorageMedium</entry>
<entry key="storage-medium">org.moparscape.msc.ls.persistence.impl.SerializedStorageMedium</entry>
<entry key="auth-class">org.moparscape.msc.ls.auth.impl.DummyAuth</entry>
<entry key="auth-meta-data">http://localhost/auth.php</entry>
</properties>

View File

@ -1,7 +1,14 @@
package org.moparscape.msc.ls.model;
public class BankItem extends Item {
public BankItem(int id, int amount) {
import java.io.Serializable;
public class BankItem extends Item implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
public BankItem(int id, int amount) {
super(id, amount);
}
}

View File

@ -1,14 +1,21 @@
package org.moparscape.msc.ls.model;
public class InvItem extends Item {
private boolean wielded;
import java.io.Serializable;
public InvItem(int id, int amount, boolean wielded) {
super(id, amount);
this.wielded = wielded;
}
public class InvItem extends Item implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private boolean wielded;
public boolean isWielded() {
return wielded;
}
public InvItem(int id, int amount, boolean wielded) {
super(id, amount);
this.wielded = wielded;
}
public boolean isWielded() {
return wielded;
}
}

View File

@ -1,6 +1,8 @@
package org.moparscape.msc.ls.model;
public class Item {
import java.io.Serializable;
public class Item implements Serializable {
private int amount;
private int id;

View File

@ -1,5 +1,6 @@
package org.moparscape.msc.ls.model;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@ -7,7 +8,12 @@ import java.util.List;
import org.moparscape.msc.ls.Server;
import org.moparscape.msc.ls.util.DataConversions;
public class PlayerSave {
public class PlayerSave implements Serializable {
/**
*
*/
private static final long serialVersionUID = 2613872958788286998L;
public static PlayerSave loadPlayer(long user) {
return Server.storage.loadPlayer(user);

View File

@ -0,0 +1,278 @@
package org.moparscape.msc.ls.persistence.impl;
import java.io.File;
/**
* @author xEnt
*/
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.Arrays;
import java.util.List;
import org.moparscape.msc.ls.model.PlayerSave;
import org.moparscape.msc.ls.persistence.StorageMedium;
import org.moparscape.msc.ls.util.Config;
import org.moparscape.msc.ls.util.DataConversions;
public class SerializedStorageMedium implements StorageMedium {
ObjectOutputStream oos;
@Override
public boolean savePlayer(PlayerSave s) {
try {
File f = new File(s.getUsername());
if(!f.exists())
f.createNewFile();
oos = new ObjectOutputStream(new FileOutputStream(f));
oos.writeObject(s);
} catch(Exception e) {
e.printStackTrace();
}
finally {
try {
if (oos != null) {
oos.flush();
oos.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
return false;
}
@Override
public void shutdown() {
// TODO Auto-generated method stub
}
@Override
public void logTrade(long from, long to, int item, long amount, int x,
int y, int type, long date) {
// TODO Auto-generated method stub
}
@Override
public void logReport(long user, long reported, byte reason, int x, int y,
String status) {
// TODO Auto-generated method stub
}
@Override
public void resetOnlineFlag(int world) {
// TODO Auto-generated method stub
}
@Override
public void logKill(long user, long killed, byte type) {
// TODO Auto-generated method stub
}
@Override
public void addFriend(long user, long friend) {
// TODO Auto-generated method stub
}
@Override
public boolean addFriend_isOnline0(long user, long friend) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean addFriend_isOnline1(long friend, long user) {
// TODO Auto-generated method stub
return false;
}
@Override
public void removeFriend(long user, long friend) {
// TODO Auto-generated method stub
}
@Override
public boolean removeFriend_isOnline(long user) {
// TODO Auto-generated method stub
return false;
}
@Override
public void addIgnore(long user, long friend) {
// TODO Auto-generated method stub
}
@Override
public void removeIgnore(long user, long friend) {
// TODO Auto-generated method stub
}
@Override
public List<Long> getFriendsOnline(long user) {
// TODO Auto-generated method stub
return null;
}
@Override
public void chatBlock(int on, long user) {
// TODO Auto-generated method stub
}
@Override
public void privateBlock(int on, long user) {
// TODO Auto-generated method stub
}
@Override
public List<Long> getPrivateBlockFriendsOnline(long user) {
// TODO Auto-generated method stub
return null;
}
@Override
public void tradeBlock(int on, long user) {
// TODO Auto-generated method stub
}
@Override
public void duelBlock(int on, long user) {
// TODO Auto-generated method stub
}
@Override
public boolean playerExists(long user) {
// TODO Auto-generated method stub
return true;
}
@Override
public boolean isBanned(long user) {
// TODO Auto-generated method stub
return false;
}
@Override
public int getGroupID(long user) {
// TODO Auto-generated method stub
return 11;
}
private long ownerId = 0;
@Override
public long getOwner(long user) {
return ownerId++;
}
@Override
public void setOnlineFlag(int id, long user) {
// TODO Auto-generated method stub
}
@Override
public boolean ban(boolean setBanned, long user) {
// TODO Auto-generated method stub
return false;
}
@Override
public void logBan(long user, long modhash) {
// TODO Auto-generated method stub
}
@Override
public void setGameSettings(int idx, boolean on, long user) {
// TODO Auto-generated method stub
}
@Override
public PlayerSave loadPlayer(long user) {
PlayerSave ps = getPlayerData(user);
if (ps == null) // new char
{
PlayerSave save = new PlayerSave(user);
save.setLocation(213, 452);
save.setAppearance((byte) 2, (byte) 8, (byte) 14, (byte) 0, (byte) 1,
(byte) 2, true, 0l);
int[] exp = new int[Config.statArray.length];
Arrays.fill(exp, 0);
int[] stats = exp.clone();
exp[3] = 1154;
save.setExp(exp);
stats[3] = 10;
save.setCurStats(stats);
return save;
} else {
return ps;
}
}
@Override
public void logLogin(long user, String ip) {
// TODO Auto-generated method stub
}
@Override
public void logIn(String ip, long user) {
// TODO Auto-generated method stub
}
@Override
public String getPass(long user) {
return "";
}
public PlayerSave getPlayerData(long user) {
File userr = new File(DataConversions.hashToUsername(user));
if (!userr.exists() )
{
return null;
}
try {
FileInputStream fis = new FileInputStream(userr);
ObjectInputStream ois = new ObjectInputStream(fis);
PlayerSave ps = (PlayerSave)ois.readObject();
return ps;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}