Move chat storage
From "rooms" to "storage/rooms"
This commit is contained in:
parent
69cb2ef9af
commit
9e4125dd4e
2 changed files with 18 additions and 16 deletions
|
@ -19,7 +19,6 @@ import org.bukkit.plugin.Plugin;
|
|||
import java.io.IOException;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
public class ChatManager {
|
||||
private final Plugin plugin;
|
||||
|
@ -75,7 +74,7 @@ public class ChatManager {
|
|||
if (id.equals(defaultRoom)) {
|
||||
chatRoom = new ChatRoom(defaultRoom, null, null);
|
||||
} else {
|
||||
chatRoom = ChatRoomLoader.load(plugin, id);
|
||||
chatRoom = ChatRoomLoader.load(id);
|
||||
}
|
||||
roomIdMap.put(id, chatRoom);
|
||||
}
|
||||
|
@ -172,17 +171,17 @@ public class ChatManager {
|
|||
throw new ChatRoomExistsException();
|
||||
|
||||
ChatRoom chatRoom = new ChatRoom(id, password, owner);
|
||||
ChatRoomLoader.save(plugin, chatRoom);
|
||||
ChatRoomLoader.save(chatRoom);
|
||||
return chatRoom;
|
||||
}
|
||||
|
||||
void saveChatRoom(ChatRoom chatRoom) throws IOException {
|
||||
ChatRoomLoader.save(plugin, chatRoom);
|
||||
ChatRoomLoader.save(chatRoom);
|
||||
}
|
||||
|
||||
public void deleteChatRoom(ChatRoom chatRoom) {
|
||||
roomIdMap.remove(chatRoom.id);
|
||||
ChatRoomLoader.getFile(plugin, chatRoom.id).delete();
|
||||
ChatRoomLoader.getFile(chatRoom.id).delete();
|
||||
chatRoom.players.forEach(player -> setPlayerChatRoom(getById(defaultRoom), player));
|
||||
}
|
||||
|
||||
|
|
|
@ -13,23 +13,25 @@ import org.bukkit.plugin.Plugin;
|
|||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.UUID;
|
||||
|
||||
public class ChatRoomLoader {
|
||||
private static File chatRoomsDir;
|
||||
|
||||
static void init(Plugin plugin) {
|
||||
chatRoomsDir = new File(plugin.getDataFolder(), "storage/rooms");
|
||||
chatRoomsDir.mkdirs();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the file of persistent storage of a chat room
|
||||
* @return the file or null if ID is invalid
|
||||
*/
|
||||
static File getFile(Plugin plugin, String id) {
|
||||
Path chatRoomsPath = Paths.get(plugin.getDataFolder().getPath(), "rooms");
|
||||
chatRoomsPath.toFile().mkdirs();
|
||||
|
||||
static File getFile(String id) {
|
||||
if (validateId(id) != 0)
|
||||
throw new RuntimeException("Invalid id: " + id);
|
||||
|
||||
return Paths.get(chatRoomsPath.toFile().getPath(), id + ".yml").toFile();
|
||||
return new File(chatRoomsDir, id + ".yml");
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -62,8 +64,8 @@ public class ChatRoomLoader {
|
|||
* @param id the id of the chat room
|
||||
* @return the chat room or null if no such chat room
|
||||
*/
|
||||
static ChatRoom load(Plugin plugin, String id) {
|
||||
File chatRoomFile = getFile(plugin, id);
|
||||
static ChatRoom load(String id) {
|
||||
File chatRoomFile = getFile(id);
|
||||
if (!chatRoomFile.exists()) return null;
|
||||
|
||||
YamlConfiguration configuration = YamlConfiguration.loadConfiguration(chatRoomFile);
|
||||
|
@ -89,14 +91,15 @@ public class ChatRoomLoader {
|
|||
*
|
||||
* @throws IOException if saving failed
|
||||
*/
|
||||
static void save(Plugin plugin, ChatRoom chatRoom) throws IOException {
|
||||
static void save(ChatRoom chatRoom) throws IOException {
|
||||
YamlConfiguration configuration = new YamlConfiguration();
|
||||
configuration.set("password", chatRoom.password);
|
||||
configuration.set("color", chatRoom.color.getName());
|
||||
// TODO consider just making this str to make it easier
|
||||
configuration.set("owner.msb", chatRoom.owner.getUniqueId().getMostSignificantBits());
|
||||
configuration.set("owner.lsb", chatRoom.owner.getUniqueId().getLeastSignificantBits());
|
||||
|
||||
File chatRoomFile = getFile(plugin, chatRoom.id);
|
||||
File chatRoomFile = getFile(chatRoom.id);
|
||||
configuration.save(chatRoomFile);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue