updata tp 1
This commit is contained in:
@ -8,6 +8,7 @@ import cn.nukkit.utils.TextFormat;
|
|||||||
import com.alphaae.mcpe.servers.MainPlugin;
|
import com.alphaae.mcpe.servers.MainPlugin;
|
||||||
import com.alphaae.mcpe.servers.StaticData;
|
import com.alphaae.mcpe.servers.StaticData;
|
||||||
import com.alphaae.mcpe.servers.model.RePlayer;
|
import com.alphaae.mcpe.servers.model.RePlayer;
|
||||||
|
import com.alphaae.mcpe.servers.model.UserLocation;
|
||||||
import com.alphaae.mcpe.servers.utils.ChangePlayerCoinUtils;
|
import com.alphaae.mcpe.servers.utils.ChangePlayerCoinUtils;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
@ -34,8 +35,7 @@ public class HiCommand extends Command {
|
|||||||
//测试指令
|
//测试指令
|
||||||
RePlayer rePlayer = StaticData.rePlayerMap.get(uuid);
|
RePlayer rePlayer = StaticData.rePlayerMap.get(uuid);
|
||||||
ChangePlayerCoinUtils.ReduceIcon(rePlayer, 100);
|
ChangePlayerCoinUtils.ReduceIcon(rePlayer, 100);
|
||||||
|
rePlayer.putUserLocation("坐标1", new UserLocation(player.getX(), player.getY(), player.getZ(), player.getLevel().getName()));
|
||||||
player.dropItem(new Item(347));
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@ -8,6 +8,8 @@ import com.alphaae.mcpe.servers.StaticData;
|
|||||||
import com.alphaae.mcpe.servers.model.RePlayer;
|
import com.alphaae.mcpe.servers.model.RePlayer;
|
||||||
import com.alphaae.mcpe.servers.utils.PlayerDataUtils;
|
import com.alphaae.mcpe.servers.utils.PlayerDataUtils;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
public class LoadPlayerDataBlock implements JoinQuitEventBlock {
|
public class LoadPlayerDataBlock implements JoinQuitEventBlock {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -16,18 +18,21 @@ public class LoadPlayerDataBlock implements JoinQuitEventBlock {
|
|||||||
|
|
||||||
//读取数据
|
//读取数据
|
||||||
RePlayer rePlayer = PlayerDataUtils.LoadData(player);
|
RePlayer rePlayer = PlayerDataUtils.LoadData(player);
|
||||||
|
StaticData.rePlayerMap.put(player.getUniqueId(), rePlayer);
|
||||||
|
|
||||||
|
//设置玩家部分属性
|
||||||
String title = rePlayer.getTitle();
|
String title = rePlayer.getTitle();
|
||||||
|
|
||||||
player.setNameTag(TextFormat.colorize("&e[" + title + "] &b" + player.getName() + "&f"));
|
player.setNameTag(TextFormat.colorize("&e[" + title + "] &b" + player.getName() + "&f"));
|
||||||
player.setDisplayName(TextFormat.colorize("&e[" + title + "] &b" + player.getName() + "&f"));
|
player.setDisplayName(TextFormat.colorize("&e[" + title + "] &b" + player.getName() + "&f"));
|
||||||
StaticData.rePlayerMap.put(player.getUniqueId(), rePlayer);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPlayerQuit(PlayerQuitEvent event) {
|
public void onPlayerQuit(PlayerQuitEvent event) {
|
||||||
Player player = event.getPlayer();
|
Player player = event.getPlayer();
|
||||||
StaticData.rePlayerMap.remove(player.getUniqueId());
|
UUID uuid = player.getUniqueId();
|
||||||
|
RePlayer rePlayer = StaticData.rePlayerMap.get(uuid);
|
||||||
|
PlayerDataUtils.SaveData(rePlayer);
|
||||||
|
StaticData.rePlayerMap.remove(uuid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -14,14 +14,18 @@ import com.sun.istack.internal.NotNull;
|
|||||||
|
|
||||||
public class FormWindowMeun extends FormWindowSimple implements FormEvent {
|
public class FormWindowMeun extends FormWindowSimple implements FormEvent {
|
||||||
|
|
||||||
|
private transient Player player;
|
||||||
|
private transient RePlayer rePlayer;
|
||||||
|
|
||||||
public FormWindowMeun(@NotNull Player player) {
|
public FormWindowMeun(@NotNull Player player) {
|
||||||
super("我", "");
|
super("我", "");
|
||||||
RePlayer rePlayer = StaticData.rePlayerMap.get(player.getUniqueId());
|
this.player = player;
|
||||||
createContents(player, rePlayer);
|
this.rePlayer = StaticData.rePlayerMap.get(player.getUniqueId());
|
||||||
createButtons(player, rePlayer);
|
createContents();
|
||||||
|
initButtons();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void createContents(Player player, RePlayer rePlayer) {
|
private void createContents() {
|
||||||
String name = player.getName();
|
String name = player.getName();
|
||||||
String content = TextFormat.colorize("&b" + name + "&f\n" +
|
String content = TextFormat.colorize("&b" + name + "&f\n" +
|
||||||
"---------------------------------\n" +
|
"---------------------------------\n" +
|
||||||
@ -32,7 +36,7 @@ public class FormWindowMeun extends FormWindowSimple implements FormEvent {
|
|||||||
setContent(content);
|
setContent(content);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void createButtons(Player player, RePlayer rePlayer) {
|
private void initButtons() {
|
||||||
addButton(new ElementButton("传送", new ElementButtonImageData(ElementButtonImageData.IMAGE_DATA_TYPE_PATH, "textures/items/ender_pearl.png")));
|
addButton(new ElementButton("传送", new ElementButtonImageData(ElementButtonImageData.IMAGE_DATA_TYPE_PATH, "textures/items/ender_pearl.png")));
|
||||||
addButton(new ElementButton("任务", new ElementButtonImageData(ElementButtonImageData.IMAGE_DATA_TYPE_PATH, "textures/items/book_writable.png")));
|
addButton(new ElementButton("任务", new ElementButtonImageData(ElementButtonImageData.IMAGE_DATA_TYPE_PATH, "textures/items/book_writable.png")));
|
||||||
addButton(new ElementButton("升级", new ElementButtonImageData(ElementButtonImageData.IMAGE_DATA_TYPE_PATH, "textures/items/iron_pickaxe.png")));
|
addButton(new ElementButton("升级", new ElementButtonImageData(ElementButtonImageData.IMAGE_DATA_TYPE_PATH, "textures/items/iron_pickaxe.png")));
|
||||||
|
@ -6,34 +6,52 @@ import cn.nukkit.form.element.ElementButton;
|
|||||||
import cn.nukkit.form.element.ElementButtonImageData;
|
import cn.nukkit.form.element.ElementButtonImageData;
|
||||||
import cn.nukkit.form.response.FormResponseSimple;
|
import cn.nukkit.form.response.FormResponseSimple;
|
||||||
import cn.nukkit.form.window.FormWindowSimple;
|
import cn.nukkit.form.window.FormWindowSimple;
|
||||||
|
import cn.nukkit.level.Level;
|
||||||
import cn.nukkit.level.Location;
|
import cn.nukkit.level.Location;
|
||||||
import cn.nukkit.level.Position;
|
import cn.nukkit.level.Position;
|
||||||
import cn.nukkit.utils.TextFormat;
|
import cn.nukkit.utils.TextFormat;
|
||||||
|
import com.alphaae.mcpe.servers.MainPlugin;
|
||||||
import com.alphaae.mcpe.servers.StaticData;
|
import com.alphaae.mcpe.servers.StaticData;
|
||||||
import com.alphaae.mcpe.servers.event.block.form.FormEvent;
|
import com.alphaae.mcpe.servers.event.block.form.FormEvent;
|
||||||
import com.alphaae.mcpe.servers.model.RePlayer;
|
import com.alphaae.mcpe.servers.model.RePlayer;
|
||||||
|
import com.alphaae.mcpe.servers.model.UserLocation;
|
||||||
import com.sun.istack.internal.NotNull;
|
import com.sun.istack.internal.NotNull;
|
||||||
|
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
public class FormWindowTeleport extends FormWindowSimple implements FormEvent {
|
public class FormWindowTeleport extends FormWindowSimple implements FormEvent {
|
||||||
|
|
||||||
|
private transient Player player;
|
||||||
|
private transient RePlayer rePlayer;
|
||||||
|
|
||||||
public FormWindowTeleport(@NotNull Player player) {
|
public FormWindowTeleport(@NotNull Player player) {
|
||||||
super("传送地点", "");
|
super("传送地点", "");
|
||||||
RePlayer rePlayer = StaticData.rePlayerMap.get(player.getUniqueId());
|
this.player = player;
|
||||||
createContents(player, rePlayer);
|
this.rePlayer = StaticData.rePlayerMap.get(player.getUniqueId());
|
||||||
createButtons(player, rePlayer);
|
createContents();
|
||||||
|
initButtons();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void createContents(Player player, RePlayer rePlayer) {
|
private void createContents() {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void createButtons(Player player, RePlayer rePlayer) {
|
private void initButtons() {
|
||||||
addButton(new ElementButton("返回"));
|
addButton(new ElementButton("返回"));
|
||||||
addButton(new ElementButton("上次死亡地点"));
|
addButton(new ElementButton("上次死亡地点"));
|
||||||
addButton(new ElementButton("主城"));
|
addButton(new ElementButton("主城"));
|
||||||
addButton(new ElementButton(""));
|
Map<String, UserLocation> userLocationMap = rePlayer.getUserLocationMap();
|
||||||
|
Iterator iterator = userLocationMap.entrySet().iterator();
|
||||||
|
while (iterator.hasNext()) {
|
||||||
|
Map.Entry entry = (Map.Entry) iterator.next();
|
||||||
|
String key = (String) entry.getKey();
|
||||||
|
UserLocation value = (UserLocation) entry.getValue();
|
||||||
|
addButton(new ElementButton(key + " ( " + value.getLevelName() + " )"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RespondedEvent(PlayerFormRespondedEvent event) {
|
public void RespondedEvent(PlayerFormRespondedEvent event) {
|
||||||
|
// long begin = System.currentTimeMillis();
|
||||||
String clickedText = ((FormResponseSimple) event.getResponse()).getClickedButton().getText();
|
String clickedText = ((FormResponseSimple) event.getResponse()).getClickedButton().getText();
|
||||||
Player player = event.getPlayer();
|
Player player = event.getPlayer();
|
||||||
if (!event.wasClosed()) {
|
if (!event.wasClosed()) {
|
||||||
@ -41,16 +59,32 @@ public class FormWindowTeleport extends FormWindowSimple implements FormEvent {
|
|||||||
case "返回":
|
case "返回":
|
||||||
FormWindowMeun formWindowMeun = new FormWindowMeun(player);
|
FormWindowMeun formWindowMeun = new FormWindowMeun(player);
|
||||||
player.showFormWindow(formWindowMeun);
|
player.showFormWindow(formWindowMeun);
|
||||||
break;
|
return;
|
||||||
case "上次死亡地点":
|
case "上次死亡地点":
|
||||||
player.sendMessage("" + player.getLevel().getName());
|
player.sendMessage("" + player.getLevel().getName());
|
||||||
break;
|
return;
|
||||||
case "主城":
|
case "主城":
|
||||||
Position spawnLocation = player.getLevel().getSpawnLocation();
|
Position spawnLocation = player.getLevel().getSpawnLocation();
|
||||||
player.teleport(spawnLocation);
|
player.teleport(spawnLocation);
|
||||||
break;
|
return;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Map<String, UserLocation> userLocationMap = rePlayer.getUserLocationMap();
|
||||||
|
Iterator iterator = userLocationMap.entrySet().iterator();
|
||||||
|
while (iterator.hasNext()) {
|
||||||
|
Map.Entry entry = (Map.Entry) iterator.next();
|
||||||
|
String key = (String) entry.getKey();
|
||||||
|
UserLocation value = (UserLocation) entry.getValue();
|
||||||
|
if (clickedText.equals(key + " ( " + value.getLevelName() + " )")) {
|
||||||
|
Level level = MainPlugin.getPlugin().getServer().getLevelByName(value.getLevelName());
|
||||||
|
Position position = new Position(value.getX(), value.getY(), value.getZ(), level);
|
||||||
|
player.teleport(position);
|
||||||
|
// long time = System.currentTimeMillis() - begin;
|
||||||
|
// MainPlugin.getPlugin().getServer().getLogger().info("耗时:" + time + " ms");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
package com.alphaae.mcpe.servers.model;
|
package com.alphaae.mcpe.servers.model;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import com.google.gson.Gson;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
public class RePlayer implements Serializable {
|
public class RePlayer {
|
||||||
private UUID uuid;
|
private UUID uuid;
|
||||||
//称号
|
//称号
|
||||||
private String title;
|
private String title;
|
||||||
@ -66,5 +67,12 @@ public class RePlayer implements Serializable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getJSONData() {
|
||||||
|
return (new Gson()).toJson(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static RePlayer decodeObject(String json) {
|
||||||
|
return (new Gson()).fromJson(json, RePlayer.class);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -2,6 +2,32 @@ package com.alphaae.mcpe.servers.model;
|
|||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
||||||
public class UserLocation implements Serializable {
|
public class UserLocation {
|
||||||
|
private double x;
|
||||||
|
private double y;
|
||||||
|
private double z;
|
||||||
|
private String levelName;
|
||||||
|
|
||||||
|
public UserLocation(double x, double y, double z, String levelName) {
|
||||||
|
this.x = x;
|
||||||
|
this.y = y;
|
||||||
|
this.z = z;
|
||||||
|
this.levelName = levelName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getX() {
|
||||||
|
return x;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getY() {
|
||||||
|
return y;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getZ() {
|
||||||
|
return z;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLevelName() {
|
||||||
|
return levelName;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,7 @@ public class ChangePlayerCoinUtils {
|
|||||||
int userCoin = rePlayer.getCoin();
|
int userCoin = rePlayer.getCoin();
|
||||||
int newCoin = userCoin + count;
|
int newCoin = userCoin + count;
|
||||||
rePlayer.setCoin(newCoin);
|
rePlayer.setCoin(newCoin);
|
||||||
return PlayerDataUtils.ChangeData(rePlayer);
|
return PlayerDataUtils.SaveData(rePlayer);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean ReduceIcon(RePlayer rePlayer, int count) {
|
public static boolean ReduceIcon(RePlayer rePlayer, int count) {
|
||||||
@ -19,7 +19,7 @@ public class ChangePlayerCoinUtils {
|
|||||||
int newCoin = userCoin - count;
|
int newCoin = userCoin - count;
|
||||||
if (newCoin >= 0) {
|
if (newCoin >= 0) {
|
||||||
rePlayer.setCoin(newCoin);
|
rePlayer.setCoin(newCoin);
|
||||||
return PlayerDataUtils.ChangeData(rePlayer);
|
return PlayerDataUtils.SaveData(rePlayer);
|
||||||
}
|
}
|
||||||
Player player = MainPlugin.getPlugin().getServer().getPlayer(rePlayer.getUuid()).get();
|
Player player = MainPlugin.getPlugin().getServer().getPlayer(rePlayer.getUuid()).get();
|
||||||
player.sendMessage(TextFormat.colorize("&4硬币不足"));
|
player.sendMessage(TextFormat.colorize("&4硬币不足"));
|
||||||
@ -34,7 +34,7 @@ public class ChangePlayerCoinUtils {
|
|||||||
if (newCoin1 >= 0) {
|
if (newCoin1 >= 0) {
|
||||||
rePlayer1.setCoin(newCoin1);
|
rePlayer1.setCoin(newCoin1);
|
||||||
rePlayer2.setCoin(newCoin2);
|
rePlayer2.setCoin(newCoin2);
|
||||||
return PlayerDataUtils.ChangeData(rePlayer1) & PlayerDataUtils.ChangeData(rePlayer2);
|
return PlayerDataUtils.SaveData(rePlayer1) & PlayerDataUtils.SaveData(rePlayer2);
|
||||||
}
|
}
|
||||||
Player player = MainPlugin.getPlugin().getServer().getPlayer(rePlayer1.getUuid()).get();
|
Player player = MainPlugin.getPlugin().getServer().getPlayer(rePlayer1.getUuid()).get();
|
||||||
player.sendMessage(TextFormat.colorize("&4硬币不足"));
|
player.sendMessage(TextFormat.colorize("&4硬币不足"));
|
||||||
|
@ -4,8 +4,14 @@ import cn.nukkit.Player;
|
|||||||
import cn.nukkit.item.Item;
|
import cn.nukkit.item.Item;
|
||||||
import com.alphaae.mcpe.servers.MainPlugin;
|
import com.alphaae.mcpe.servers.MainPlugin;
|
||||||
import com.alphaae.mcpe.servers.model.RePlayer;
|
import com.alphaae.mcpe.servers.model.RePlayer;
|
||||||
|
import com.alphaae.mcpe.servers.model.UserLocation;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
|
import java.nio.ByteBuffer;
|
||||||
|
import java.nio.CharBuffer;
|
||||||
|
import java.nio.channels.FileChannel;
|
||||||
|
import java.nio.charset.Charset;
|
||||||
|
import java.nio.charset.CharsetDecoder;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
public class PlayerDataUtils {
|
public class PlayerDataUtils {
|
||||||
@ -23,12 +29,34 @@ public class PlayerDataUtils {
|
|||||||
public static RePlayer LoadData(Player player) {
|
public static RePlayer LoadData(Player player) {
|
||||||
UUID uuid = player.getUniqueId();
|
UUID uuid = player.getUniqueId();
|
||||||
try {
|
try {
|
||||||
|
// long begin = System.currentTimeMillis();
|
||||||
File playerDataFile = new File(PLAYER_DATA_FOLDER, uuid.toString() + FILE_TYPE);
|
File playerDataFile = new File(PLAYER_DATA_FOLDER, uuid.toString() + FILE_TYPE);
|
||||||
if (!playerDataFile.exists()) {
|
if (!playerDataFile.exists()) {
|
||||||
CreateNewPlayerData(player);
|
if (!CreateNewPlayerData(player))
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
ObjectInputStream inputStream = new ObjectInputStream(new FileInputStream(playerDataFile));
|
//NIOs
|
||||||
RePlayer rePlayer = (RePlayer) inputStream.readObject();
|
StringBuilder json = new StringBuilder();
|
||||||
|
Charset charset = Charset.forName("UTF-8");
|
||||||
|
CharsetDecoder decoder = charset.newDecoder();
|
||||||
|
FileInputStream inputStream = new FileInputStream(playerDataFile);
|
||||||
|
FileChannel channel = inputStream.getChannel();
|
||||||
|
ByteBuffer byteBuffer = ByteBuffer.allocate(1024); //初始化缓冲区大小
|
||||||
|
CharBuffer charBuffer = CharBuffer.allocate(1024);
|
||||||
|
channel.read(byteBuffer); //将文件通道里面的字节读到缓冲区中
|
||||||
|
byteBuffer.flip(); //将position置为0,limit放到position位置
|
||||||
|
decoder.decode(byteBuffer, charBuffer, false); //解码
|
||||||
|
charBuffer.flip();
|
||||||
|
while (charBuffer.hasRemaining()) {
|
||||||
|
json.append(charBuffer.get());
|
||||||
|
}
|
||||||
|
channel.close();
|
||||||
|
inputStream.close();
|
||||||
|
|
||||||
|
RePlayer rePlayer = RePlayer.decodeObject(json.toString()); //解码对象
|
||||||
|
MainPlugin.getPlugin().getServer().getLogger().info("" + rePlayer.getJSONData());
|
||||||
|
// long time = System.currentTimeMillis() - begin;
|
||||||
|
// MainPlugin.getPlugin().getServer().getLogger().info("角色数据载入耗时:" + time + " ms");
|
||||||
return rePlayer;
|
return rePlayer;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
@ -36,12 +64,16 @@ public class PlayerDataUtils {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean ChangeData(RePlayer rePlayer) {
|
public static boolean SaveData(RePlayer rePlayer) {
|
||||||
|
|
||||||
File playerDataFile = new File(PLAYER_DATA_FOLDER, rePlayer.getUuid().toString() + FILE_TYPE);
|
File playerDataFile = new File(PLAYER_DATA_FOLDER, rePlayer.getUuid().toString() + FILE_TYPE);
|
||||||
try {
|
try {
|
||||||
ObjectOutputStream outputStream = new ObjectOutputStream(new FileOutputStream(playerDataFile, false));
|
//NIO
|
||||||
outputStream.writeObject(rePlayer);
|
FileOutputStream outputStream = new FileOutputStream(playerDataFile);
|
||||||
|
FileChannel channel = outputStream.getChannel();
|
||||||
|
ByteBuffer buffer = ByteBuffer.wrap(rePlayer.getJSONData().getBytes("UTF-8"));
|
||||||
|
channel.write(buffer);
|
||||||
|
channel.close();
|
||||||
outputStream.close();
|
outputStream.close();
|
||||||
return true;
|
return true;
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
@ -57,12 +89,10 @@ public class PlayerDataUtils {
|
|||||||
player.getInventory().addItem(new Item(347));
|
player.getInventory().addItem(new Item(347));
|
||||||
|
|
||||||
RePlayer rePlayer = new RePlayer(uuid, "新火", 2000);
|
RePlayer rePlayer = new RePlayer(uuid, "新火", 2000);
|
||||||
|
|
||||||
File playerDataFile = new File(PLAYER_DATA_FOLDER, uuid.toString() + FILE_TYPE);
|
File playerDataFile = new File(PLAYER_DATA_FOLDER, uuid.toString() + FILE_TYPE);
|
||||||
playerDataFile.createNewFile();
|
playerDataFile.createNewFile();
|
||||||
ObjectOutputStream outputStream = new ObjectOutputStream(new FileOutputStream(playerDataFile));
|
return SaveData(rePlayer);
|
||||||
outputStream.writeObject(rePlayer);
|
|
||||||
outputStream.close();
|
|
||||||
return true;
|
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user