Skip to content

Commit

Permalink
Begin work on sql
Browse files Browse the repository at this point in the history
  • Loading branch information
cjburkey01 committed Aug 4, 2017
1 parent a0b1de9 commit 88101f5
Show file tree
Hide file tree
Showing 7 changed files with 69 additions and 29 deletions.
17 changes: 8 additions & 9 deletions src/main/java/com/cjburkey/claimchunk/chunk/ChunkHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,15 @@
import org.bukkit.World;
import org.bukkit.entity.Player;
import com.cjburkey.claimchunk.ClaimChunk;
import com.cjburkey.claimchunk.data.DataChunk;
import com.cjburkey.claimchunk.data.DataStorage;
import com.cjburkey.claimchunk.data.JsonDataStorage;

public final class ChunkHandler {

private final Map<ChunkPos, UUID> claimed = new ConcurrentHashMap<>();
private final DataStorage<DataChunk> data;
private final JsonDataStorage<DataChunk> data;

public ChunkHandler(File saveFile) {
data = new DataStorage<>(DataChunk[].class, saveFile);
data = new JsonDataStorage<>(DataChunk[].class, saveFile);
}

/**
Expand Down Expand Up @@ -108,17 +107,17 @@ public boolean hasChunk(UUID uniqueId) {
}

public void writeToDisk() throws IOException {
data.emptyObjects();
data.clearData();
for (Entry<ChunkPos, UUID> entry : claimed.entrySet()) {
data.addObject(new DataChunk(entry.getKey(), entry.getValue()));
data.addData(new DataChunk(entry.getKey(), entry.getValue()));
}
data.write();
data.saveData();
}

public void readFromDisk() throws IOException {
data.read();
data.reloadData();
claimed.clear();
for (DataChunk c : data.getObjects()) {
for (DataChunk c : data.getData()) {
claimed.put(c.chunk, c.player);
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.cjburkey.claimchunk.data;
package com.cjburkey.claimchunk.chunk;

import java.util.UUID;
import com.cjburkey.claimchunk.chunk.ChunkPos;

public class DataChunk {

Expand Down
13 changes: 13 additions & 0 deletions src/main/java/com/cjburkey/claimchunk/data/IDataStorage.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.cjburkey.claimchunk.data;

import java.util.List;

public interface IDataStorage<T> {

List<T> getData();
void addData(T data);
void saveData() throws Exception;
void reloadData() throws Exception;
void clearData();

}
Original file line number Diff line number Diff line change
Expand Up @@ -11,19 +11,19 @@
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

public class DataStorage<T> {
public class JsonDataStorage<T> implements IDataStorage<T> {

private final List<T> data = new ArrayList<>();
private final Class<T[]> referenceClass;
private File file;

public DataStorage(Class<T[]> referenceClass, File file) {
public JsonDataStorage(Class<T[]> referenceClass, File file) {
this.file = file;
this.referenceClass = referenceClass;
data.clear();
}

public void write() throws IOException {
public void saveData() throws IOException {
if (file == null) {
return;
}
Expand All @@ -47,7 +47,7 @@ public void write() throws IOException {
}
}

public void read() throws IOException {
public void reloadData() throws IOException {
if (file == null || !file.exists()) {
return;
}
Expand All @@ -73,15 +73,15 @@ public void read() throws IOException {
}
}

public void addObject(T obj) {
data.add(obj);
public void addData(T toAdd) {
data.add(toAdd);
}

public void emptyObjects() {
public void clearData() {
data.clear();
}

public List<T> getObjects() {
public List<T> getData() {
return new ArrayList<>(data);
}

Expand Down
30 changes: 30 additions & 0 deletions src/main/java/com/cjburkey/claimchunk/data/SqlDataStorage.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package com.cjburkey.claimchunk.data;

import java.util.ArrayList;
import java.util.List;

public class SqlDataStorage<T> implements IDataStorage<T> {

private final List<T> storage = new ArrayList<>();

public void saveData() {

}

public void reloadData() {

}

public void addData(T data) {
storage.add(data);
}

public void clearData() {
storage.clear();
}

public List<T> getData() {
return new ArrayList<>(storage);
}

}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.cjburkey.claimchunk.data;
package com.cjburkey.claimchunk.player;

import java.util.ArrayList;
import java.util.List;
Expand Down
17 changes: 8 additions & 9 deletions src/main/java/com/cjburkey/claimchunk/player/PlayerHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,15 @@
import java.util.UUID;
import java.util.concurrent.ConcurrentLinkedQueue;
import org.bukkit.entity.Player;
import com.cjburkey.claimchunk.data.DataPlayer;
import com.cjburkey.claimchunk.data.DataStorage;
import com.cjburkey.claimchunk.data.JsonDataStorage;

public class PlayerHandler {

private final Queue<DataPlayer> playerData = new ConcurrentLinkedQueue<>();
private final DataStorage<DataPlayer> data;
private final JsonDataStorage<DataPlayer> data;

public PlayerHandler(File file) {
data = new DataStorage<>(DataPlayer[].class, file);
data = new JsonDataStorage<>(DataPlayer[].class, file);
}

/**
Expand Down Expand Up @@ -127,17 +126,17 @@ public void addOldPlayerData(UUID id, String name) {
}

public void writeToDisk() throws IOException {
data.emptyObjects();
data.clearData();
for (DataPlayer a : playerData) {
data.addObject(a.clone());
data.addData(a.clone());
}
data.write();
data.saveData();
}

public void readFromDisk() throws IOException {
data.read();
data.reloadData();
playerData.clear();
for (DataPlayer ply : data.getObjects()) {
for (DataPlayer ply : data.getData()) {
playerData.add(ply.clone());
}
}
Expand Down

0 comments on commit 88101f5

Please sign in to comment.