Skip to content

Commit

Permalink
commit
Browse files Browse the repository at this point in the history
  • Loading branch information
Bruce0203 committed Sep 24, 2021
1 parent db0114e commit 0c00230
Show file tree
Hide file tree
Showing 25 changed files with 161 additions and 150 deletions.
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ sourceCompatibility = 1.8
targetCompatibility = 1.8

group 'kr.jongwonlee.fmg'
version '1.5.4'
version '1.5.5'

compileJava.options.encoding 'UTF-8'

Expand Down
Binary file modified jar/FreedyMinigameMaker2.jar
Binary file not shown.
37 changes: 19 additions & 18 deletions src/main/java/kr/jongwonlee/fmg/FMGListener.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package kr.jongwonlee.fmg;

import com.eatthepath.uuid.FastUUID;
import kr.jongwonlee.fmg.conf.GameDataStore;
import kr.jongwonlee.fmg.game.GameData;
import kr.jongwonlee.fmg.game.GameStore;
import kr.jongwonlee.fmg.game.MiniGame;
Expand Down Expand Up @@ -40,7 +41,7 @@ public void onJoin(PlayerJoinEvent event) {
Player player = event.getPlayer();
if (!player.isOnline()) return;
MiniGame game = GameStore.getGame(player);
GameData playerData = game.getPlayerData(player.getUniqueId());
GameData playerData = GameDataStore.getPlayerData(player.getUniqueId());
playerData.setData("joinMessage", event.getJoinMessage());
game.run(EventBundle.JOIN, player);
String joinMessage = playerData.getData("joinMessage");
Expand All @@ -53,7 +54,7 @@ public void onQuit(PlayerQuitEvent event) {
Player player = event.getPlayer();
if (!player.isOnline()) return;
MiniGame game = GameStore.getGame(player);
GameData playerData = game.getPlayerData(player.getUniqueId());
GameData playerData = GameDataStore.getPlayerData(player.getUniqueId());
playerData.setData("leftMessage", event.getQuitMessage());
game.run(EventBundle.LEFT, player);
String joinMessage = playerData.getData("leftMessage");
Expand All @@ -66,7 +67,7 @@ public void onMove(PlayerMoveEvent event) {
Player player = event.getPlayer();
if (!player.isOnline()) return;
MiniGame game = GameStore.getGame(player);
GameData playerData = game.getPlayerData(player.getUniqueId());
GameData playerData = GameDataStore.getPlayerData(player.getUniqueId());
playerData.setLocation("moveFrom", event.getFrom().clone());
playerData.setLocation("moveTo", event.getTo().clone());
String result = game.run(EventBundle.MOVE, player);
Expand All @@ -78,7 +79,7 @@ public void onInteract(PlayerInteractEvent event) {
Player player = event.getPlayer();
if (!player.isOnline()) return;
MiniGame game = GameStore.getGame(player);
GameData playerData = game.getPlayerData(player.getUniqueId());
GameData playerData = GameDataStore.getPlayerData(player.getUniqueId());
playerData.setData("interactAction", event.getAction().name());
EquipmentSlot hand = event.getHand();
playerData.setData("interactHand", hand == null ? "null" : hand.name());
Expand All @@ -96,7 +97,7 @@ public void onChat(AsyncPlayerChatEvent event) {
Player player = event.getPlayer();
if (!player.isOnline()) return;
MiniGame game = GameStore.getGame(player);
GameData playerData = game.getPlayerData(player.getUniqueId());
GameData playerData = GameDataStore.getPlayerData(player.getUniqueId());
playerData.setData("chat", event.getMessage());
String result = GameStore.getGame(player).run(EventBundle.CHAT, player);
if (result.equals("false")) event.setCancelled(true);
Expand All @@ -108,7 +109,7 @@ public void onTeleport(PlayerTeleportEvent event) {
Player player = event.getPlayer();
if (!player.isOnline()) return;
MiniGame game = GameStore.getGame(player);
GameData playerData = game.getPlayerData(player.getUniqueId());
GameData playerData = GameDataStore.getPlayerData(player.getUniqueId());
playerData.setLocation("teleportFrom", event.getFrom());
playerData.setLocation("teleportTo", event.getTo());
String result = GameStore.getGame(player).run(EventBundle.TELEPORT, player);
Expand All @@ -120,7 +121,7 @@ public void onCommand(PlayerCommandPreprocessEvent event) {
Player player = event.getPlayer();
if (!player.isOnline()) return;
MiniGame game = GameStore.getGame(player);
GameData playerData = game.getPlayerData(player.getUniqueId());
GameData playerData = GameDataStore.getPlayerData(player.getUniqueId());
playerData.setData("command", event.getMessage());
String result = GameStore.getGame(player).run(EventBundle.COMMAND, player);
if (result.equals("false")) event.setCancelled(true);
Expand All @@ -133,7 +134,7 @@ public void onInventoryClick(InventoryClickEvent event) {
Player player = ((Player) humanEntity);
if (!player.isOnline()) return;
MiniGame game = GameStore.getGame(player);
GameData playerData = game.getPlayerData(player.getUniqueId());
GameData playerData = GameDataStore.getPlayerData(player.getUniqueId());
playerData.setInventory("inventoryClicked", event.getClickedInventory());
playerData.setData("inventoryHotBar", String.valueOf(event.getHotbarButton()));
playerData.setItemStack("inventoryCursor", event.getCursor());
Expand All @@ -154,7 +155,7 @@ public void onInventoryDrag(InventoryDragEvent event) {
Player player = ((Player) humanEntity);
if (!player.isOnline()) return;
MiniGame game = GameStore.getGame(player);
GameData playerData = game.getPlayerData(player.getUniqueId());
GameData playerData = GameDataStore.getPlayerData(player.getUniqueId());
playerData.setInventory("inventoryDrag", event.getInventory());
playerData.setList("inventorySlots", event.getInventorySlots().stream().map(String::valueOf).collect(Collectors.toList()));
playerData.setList("inventoryRawSlots", event.getRawSlots().stream().map(String::valueOf).collect(Collectors.toList()));
Expand All @@ -174,7 +175,7 @@ public void onInventoryClose(InventoryCloseEvent event) {
Player player = ((Player) humanEntity);
if (!player.isOnline()) return;
MiniGame game = GameStore.getGame(player);
GameData playerData = game.getPlayerData(player.getUniqueId());
GameData playerData = GameDataStore.getPlayerData(player.getUniqueId());
playerData.setInventory("inventoryClosed", event.getInventory());
GameStore.getGame(player).run(EventBundle.INVENTORY_CLOSE, player);
}
Expand All @@ -186,7 +187,7 @@ public void onDamage(EntityDamageEvent event) {
Player player = ((Player) entity);
if (!player.isOnline()) return;
MiniGame game = GameStore.getGame(player);
GameData playerData = game.getPlayerData(player.getUniqueId());
GameData playerData = GameDataStore.getPlayerData(player.getUniqueId());
playerData.setData("damage", String.valueOf(event.getDamage()));
playerData.setData("damageCause", event.getCause().name());
playerData.setData("damageFinal", String.valueOf(event.getFinalDamage()));
Expand All @@ -199,7 +200,7 @@ public void onDropItem(PlayerDropItemEvent event) {
Player player = event.getPlayer();
if (!player.isOnline()) return;
MiniGame game = GameStore.getGame(player);
GameData playerData = game.getPlayerData(player.getUniqueId());
GameData playerData = GameDataStore.getPlayerData(player.getUniqueId());
playerData.setItemStack("dropItem", event.getItemDrop().getItemStack());
String result = GameStore.getGame(player).run(EventBundle.DROP_ITEM, player);
if (result.equals("false")) event.setCancelled(true);
Expand All @@ -221,7 +222,7 @@ else if (attacker instanceof Projectile) {
if (player != null) {
if (!player.isOnline()) return;
MiniGame game = GameStore.getGame(player);
GameData playerData = game.getPlayerData(player.getUniqueId());
GameData playerData = GameDataStore.getPlayerData(player.getUniqueId());
playerData.setData("damage", String.valueOf(event.getDamage()));
playerData.setData("damageCause", event.getCause().name());
playerData.setData("damageFinal", String.valueOf(event.getFinalDamage()));
Expand All @@ -234,7 +235,7 @@ else if (attacker instanceof Projectile) {
Player victimPlayer = (Player) entity;
if (!victimPlayer.isOnline()) return;
MiniGame game = GameStore.getGame(victimPlayer);
GameData playerData = game.getPlayerData(victimPlayer.getUniqueId());
GameData playerData = GameDataStore.getPlayerData(victimPlayer.getUniqueId());
playerData.setData("damage", String.valueOf(event.getDamage()));
playerData.setData("damageCause", event.getCause().name());
playerData.setData("damageFinal", String.valueOf(event.getFinalDamage()));
Expand All @@ -249,7 +250,7 @@ public void onSwapHand(PlayerSwapHandItemsEvent event) {
Player player = event.getPlayer();
if (!player.isOnline()) return;
MiniGame game = GameStore.getGame(player);
GameData playerData = game.getPlayerData(player.getUniqueId());
GameData playerData = GameDataStore.getPlayerData(player.getUniqueId());
playerData.setItemStack("mainHandItem", event.getMainHandItem());
playerData.setItemStack("offHandItem", event.getOffHandItem());
String result = GameStore.getGame(player).run(EventBundle.SWAP_HAND, player);
Expand All @@ -261,7 +262,7 @@ public void onBreakBlock(BlockBreakEvent event) {
Player player = event.getPlayer();
if (!player.isOnline()) return;
MiniGame game = GameStore.getGame(player);
GameData playerData = game.getPlayerData(player.getUniqueId());
GameData playerData = GameDataStore.getPlayerData(player.getUniqueId());
playerData.setBlock("blockBreak", event.getBlock().getState());
String result = GameStore.getGame(player).run(EventBundle.BLOCK_BREAK, player);
if (result.equals("false")) event.setCancelled(true);
Expand All @@ -272,7 +273,7 @@ public void onPlaceBlock(BlockPlaceEvent event) {
Player player = event.getPlayer();
if (!player.isOnline()) return;
MiniGame game = GameStore.getGame(player);
GameData playerData = game.getPlayerData(player.getUniqueId());
GameData playerData = GameDataStore.getPlayerData(player.getUniqueId());
playerData.setBlock("blockPlace", event.getBlock().getState());
String result = GameStore.getGame(player).run(EventBundle.BLOCK_PLACE, player);
if (result.equals("false")) event.setCancelled(true);
Expand All @@ -283,7 +284,7 @@ public void onRespawn(PlayerRespawnEvent event) {
Player player = event.getPlayer();
if (!player.isOnline()) return;
MiniGame game = GameStore.getGame(player);
GameData playerData = game.getPlayerData(player.getUniqueId());
GameData playerData = GameDataStore.getPlayerData(player.getUniqueId());
playerData.setLocation("respawnLocation", event.getRespawnLocation());
GameStore.getGame(player).run(EventBundle.PLAYER_RESPAWN, player);
Location respawnLocation = playerData.getLocation("respawnLocation");
Expand Down
1 change: 1 addition & 0 deletions src/main/java/kr/jongwonlee/fmg/FMGPlugin.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import kr.jongwonlee.fmg.proc.EventBundle;
import kr.jongwonlee.fmg.util.GameAlert;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.HandlerList;
import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin;
Expand Down
12 changes: 12 additions & 0 deletions src/main/java/kr/jongwonlee/fmg/conf/GameDataStore.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,13 @@
import kr.jongwonlee.fmg.util.YamlStore;

import java.util.HashMap;
import java.util.Map;
import java.util.UUID;

public class GameDataStore extends GameData {

private static GameDataStore instance;
private static Map<UUID, GameData> playersData;
private static final YamlStore dataStore = new YamlStore("data.yml");
private static final YamlStore itemStackStore = new YamlStore("items.yml");
private static final YamlStore locationStore = new YamlStore("locations.yml");
Expand All @@ -22,6 +25,15 @@ public GameDataStore() {
itemStackStore.getItemStackMap(""),
inventoryStore.getInventoryMap(""),
listStore.getListMap(""));
playersData = new HashMap<>();
}

public static Map<UUID, GameData> getPlayersData() {
return playersData;
}

public static GameData getPlayerData(UUID uuid) {
return playersData.getOrDefault(uuid, null);
}

public static GameDataStore getInst() {
Expand Down
38 changes: 15 additions & 23 deletions src/main/java/kr/jongwonlee/fmg/game/MiniGame.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package kr.jongwonlee.fmg.game;

import kr.jongwonlee.fmg.conf.GameDataStore;
import kr.jongwonlee.fmg.proc.EventBundle;
import kr.jongwonlee.fmg.proc.FileParser;
import kr.jongwonlee.fmg.proc.ProcBundle;
Expand All @@ -8,22 +9,19 @@
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
import java.util.*;

public class MiniGame {

private final String name;
private Map<String, ProcBundle> bundleMap;
private final Map<UUID, GameData> playersData;
private final List<UUID> players;
private final GameData gameData;

public MiniGame(String name) {
this.name = name;
bundleMap = FileParser.parseBundles(name);
playersData = new HashMap<>();
players = new ArrayList<>();
gameData = new GameData();
}

Expand Down Expand Up @@ -55,6 +53,10 @@ public String run(EventBundle name, Player player, Entity entity) {
else return "";
}

public List<UUID> getPlayers() {
return players;
}

public ProcBundle getProcBundle(String name) {
return bundleMap.getOrDefault(name, null);
}
Expand All @@ -63,39 +65,29 @@ public String getName() {
return name;
}

public Map<UUID, GameData> getPlayersData() {
return playersData;
}

public GameData getGameData() {
return gameData;
}

public GameData getPlayerData(UUID uuid) {
return playersData.getOrDefault(uuid, gameData);
}

public void join(UUID playerUuid) {
Player player = toPlayer(playerUuid);
GameStore.getGame(player).quit(playerUuid);
String result = run(EventBundle.PRE_GAME_JOIN, player);
if (result.equals("false")) return;
if (playersData.containsKey(playerUuid)) return;
playersData.put(playerUuid, new GameData());
if (players.contains(playerUuid)) return;
players.add(playerUuid);
GameStore.setGame(player, this);
run(EventBundle.GAME_JOIN, player);
}

public void quit(UUID playerUuid) {
if (!playersData.containsKey(playerUuid)) return;
if (!players.contains(playerUuid)) return;
Player player = toPlayer(playerUuid);
getPlayerData(playerUuid).cancelTaskAll();
run(EventBundle.PRE_GAME_LEFT, player);
playersData.get(playerUuid).cancelTaskAll();
playersData.remove(playerUuid);
players.remove(playerUuid);
GameStore.removeGame(player);
run(EventBundle.GAME_LEFT, player);
if (playersData.size() == 0) disable();
if (players.size() == 0) disable();
GameStore.getHubGame().join(playerUuid);
}

Expand All @@ -111,8 +103,8 @@ public void disable() {
String result = run(EventBundle.PRE_GAME_STOP);
if (result.equals("false")) return;
gameData.cancelTaskAll();
new ArrayList<>(playersData.keySet()).forEach(this::quit);
playersData.clear();
new ArrayList<>(players).forEach(this::quit);
players.clear();
gameData.clear();
run(EventBundle.GAME_STOP);
}
Expand Down
6 changes: 3 additions & 3 deletions src/main/java/kr/jongwonlee/fmg/proc/data/control/Target.java
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ public String run(MiniGame miniGame, ProcUnit procUnit) {
List<String> list = null;
if (process.getType() == ProcType.EXECUTE_GAME) list = miniGame.getGameData().getList(name);
else if (process.getType() == ProcType.EXECUTE_ONLINE) list = GameDataStore.getInst().getList(name);
else if (originPlayer != null) list = miniGame.getPlayerData(originPlayer.getUniqueId()).getList(name);
else if (originPlayer != null) list = GameDataStore.getPlayerData(originPlayer.getUniqueId()).getList(name);
Process proc2 = processList.get(2);
String value2 = proc2.run(miniGame, procUnit);
Process lastProc = frontBrace.getLastProc();
Expand All @@ -76,7 +76,7 @@ else if (proc2.getType() == ProcType.EXECUTE_ONLINE) {
}
}
else if (originPlayer != null) {
GameData playerData = miniGame.getPlayerData(originPlayer.getUniqueId());
GameData playerData = GameDataStore.getPlayerData(originPlayer.getUniqueId());
if (list != null) {
for (String e : new ArrayList<>(list)) {
playerData.setData(value2, e);
Expand All @@ -91,7 +91,7 @@ else if (originPlayer != null) {
List<String> list = null;
if (process.getType() == ProcType.EXECUTE_GAME) list = miniGame.getGameData().getList(name);
else if (process.getType() == ProcType.EXECUTE_ONLINE) list = GameDataStore.getInst().getList(name);
else if (originPlayer != null) list = miniGame.getPlayerData(originPlayer.getUniqueId()).getList(name);
else if (originPlayer != null) list = GameDataStore.getPlayerData(originPlayer.getUniqueId()).getList(name);
Process lastProc = frontBrace.getLastProc();
if (list != null) new ArrayList<>(list).forEach(element -> {
try {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ public String run(MiniGame miniGame, ProcUnit procUnit) {
Bukkit.getScheduler().cancelTask(taskId);
miniGame.getGameData().removeTaskId(taskId);
GameDataStore.getInst().removeTaskId(taskId);
miniGame.getPlayerData(procUnit.target.player.getUniqueId()).removeTaskId(taskId);
GameDataStore.getPlayerData(procUnit.target.player.getUniqueId()).removeTaskId(taskId);
} catch (Exception ignored) { }
return "";
}
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/kr/jongwonlee/fmg/proc/data/etc/Data.java
Original file line number Diff line number Diff line change
Expand Up @@ -46,12 +46,12 @@ public String run(MiniGame miniGame, ProcUnit procUnit) {
String value = processList.get(2).run(miniGame, procUnit);
if (isGame) miniGame.getGameData().setData(name, value);
else if (isOnline) GameDataStore.getInst().setData(name, value);
else if (procUnit.target.player != null) miniGame.getPlayerData(procUnit.target.player.getUniqueId()).setData(name, value);
else if (procUnit.target.player != null) GameDataStore.getPlayerData(procUnit.target.player.getUniqueId()).setData(name, value);
return value + frontBrace.getLastProc().run(miniGame, procUnit);
} else {
if (isGame) return miniGame.getGameData().getData(name) + frontBrace.getLastProc().run(miniGame, procUnit);
else if (isOnline) return GameDataStore.getInst().getData(name) + frontBrace.getLastProc().run(miniGame, procUnit);
else if (procUnit.target.player != null) return miniGame.getPlayerData(procUnit.target.player.getUniqueId()).getData(name) + frontBrace.getLastProc().run(miniGame, procUnit);
else if (procUnit.target.player != null) return GameDataStore.getPlayerData(procUnit.target.player.getUniqueId()).getData(name) + frontBrace.getLastProc().run(miniGame, procUnit);
}
return frontBrace.getLastProc().run(miniGame, procUnit);
} catch (Exception e) {
Expand Down
Loading

0 comments on commit 0c00230

Please sign in to comment.