diff --git a/foofledrive.iml b/foofledrive.iml deleted file mode 100644 index 2304e1f..0000000 --- a/foofledrive.iml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - SPIGOT - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/main/java/ga/ganma/ender/Listener/GetEvent.java b/src/main/java/ga/ganma/ender/Listener/GetEvent.java index 0fbe8e7..4cd4fe5 100644 --- a/src/main/java/ga/ganma/ender/Listener/GetEvent.java +++ b/src/main/java/ga/ganma/ender/Listener/GetEvent.java @@ -3,9 +3,8 @@ import ga.ganma.ender.Endercloud; import ga.ganma.ender.Filerelation; import ga.ganma.ender.inventoryRelation.InventoryAPI; -import ga.ganma.ender.plan; +import ga.ganma.ender.Plan; import ga.ganma.ender.playerdata.Playerdata; -import jdk.internal.ref.Cleaner; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -14,7 +13,6 @@ import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.plugin.Plugin; -import java.io.File; import java.util.Calendar; import java.util.HashMap; @@ -30,7 +28,7 @@ public GetEvent(Plugin pl) { public void getplayerloginEvent(PlayerJoinEvent e) { Player p = e.getPlayer(); if (Filerelation.namecheck(p)) { - if (Filerelation.readFile(p).getPlan() == plan.FREE) { + if (Filerelation.readFile(p).getPlan() == Plan.FREE) { p.sendMessage("[foofle drive]あなたは現在" + Filerelation.readFile(p).getPlan() + "プランに加入しています。"); return; } @@ -46,7 +44,7 @@ public void getplayerloginEvent(PlayerJoinEvent e) { Endercloud.econ.depositPlayer(p, -amout[1]); p.sendMessage("[foofle drive]LIGHTプランの料金を支払いました。"); } else { - InventoryAPI.planchange(p, plan.FREE); + InventoryAPI.planchange(p, Plan.FREE); p.sendMessage("[foofle drive]お金が足りないため自動的にfreeプランへ移行しました。"); p.sendMessage("[foofle drive]その際、2段目以降にあるアイテムを全消去しました。"); } @@ -56,7 +54,7 @@ public void getplayerloginEvent(PlayerJoinEvent e) { Endercloud.econ.depositPlayer(p, -amout[2]); p.sendMessage("[foofle drive]MIDDLEプランの料金を支払いました。"); } else { - InventoryAPI.planchange(p, plan.FREE); + InventoryAPI.planchange(p, Plan.FREE); p.sendMessage("[foofle drive]お金が足りないため自動的にfreeプランへ移行しました。"); p.sendMessage("[foofle drive]その際、2段目以降にあるアイテムを全消去しました。"); } @@ -66,7 +64,7 @@ public void getplayerloginEvent(PlayerJoinEvent e) { Endercloud.econ.depositPlayer(p, -amout[3]); p.sendMessage("[foofle drive]LARGEプランの料金を支払いました。"); } else { - InventoryAPI.planchange(p, plan.FREE); + InventoryAPI.planchange(p, Plan.FREE); p.sendMessage("[foofle drive]お金が足りないため自動的にfreeプランへ移行しました。"); p.sendMessage("[foofle drive]その際、2段目以降にあるアイテムを全消去しました。"); } @@ -89,7 +87,7 @@ public void getplayerloginEvent(PlayerJoinEvent e) { } } else { - Playerdata pd = new Playerdata(p, Bukkit.getServer().createInventory(null, 9, "foofle Drive"), plan.FREE); + Playerdata pd = new Playerdata(p, Bukkit.getServer().createInventory(null, 9, "foofle Drive"), Plan.FREE); Filerelation.createFile(pd); p.sendMessage("[foofle drive]あなたは自動的に" + Filerelation.readFile(p).getPlan() + "プランに加入しました。"); } diff --git a/src/main/java/ga/ganma/ender/Plan.java b/src/main/java/ga/ganma/ender/Plan.java new file mode 100644 index 0000000..9e1bb57 --- /dev/null +++ b/src/main/java/ga/ganma/ender/Plan.java @@ -0,0 +1,55 @@ +package ga.ganma.ender; + +import java.io.Serializable; + +public enum Plan implements Serializable { + FREE,LIGHT,MIDDLE,LARGE; + + /** + * プラン名として有効な文字列か判定する + * @param arg プラン名(かもしれない)文字列 + * @return 大文字小文字を意識せず、プラン名として有効な場合true。それ以外の場合false + */ + public static boolean isPlanName(String arg){ + if(arg == null || arg.isEmpty()){ + return false; + } + for(Plan p: Plan.values()){ + if(arg.equalsIgnoreCase(p.name())){ + return true; + } + } + return false; + } + + /** + * 引数に対応するPlanを返す + * @param arg 取得したいPlan名 + * @return 有効なPlan名の場合、対応するPlan。対応しない場合はnull + */ + public static Plan getPlan(String arg){ + if(isPlanName(arg)){ + for(Plan p : Plan.values()){ + if(p.name().equalsIgnoreCase(arg)){ + return p; + } + } + } + return null; + } + + /** + * Plan名の一覧を取得する + * @return カンマ区切りで列挙したPlan名の一覧 + */ + public static String getPlanNameList(){ + StringBuilder sb = new StringBuilder(); + for(Plan p : Plan.values()){ + if(sb.length() != 0){ + sb.append(','); + } + sb.append(p.name()); + } + return sb.toString(); + } +} diff --git a/src/main/java/ga/ganma/ender/command/CommandMain.java b/src/main/java/ga/ganma/ender/command/CommandMain.java index 3eff878..108a11e 100644 --- a/src/main/java/ga/ganma/ender/command/CommandMain.java +++ b/src/main/java/ga/ganma/ender/command/CommandMain.java @@ -1,15 +1,17 @@ package ga.ganma.ender.command; import ga.ganma.ender.Filerelation; -import ga.ganma.ender.plan; +import ga.ganma.ender.Plan; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; +import org.bukkit.command.TabCompleter; import org.bukkit.entity.Player; import org.bukkit.plugin.Plugin; +import java.util.ArrayList; import java.util.Calendar; -import java.util.TimeZone; +import java.util.List; import java.util.logging.Level; public class CommandMain implements CommandExecutor { @@ -21,38 +23,41 @@ public CommandMain(Plugin pl) { @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if (sender instanceof Player) { - Player p = (Player) sender; - if (label.equalsIgnoreCase("ec")) { - if (args.length != 0) { - if (args[0].equalsIgnoreCase("open")) { - new Subopen(this.pl, (Player) sender); - } else if (args[0].equalsIgnoreCase("plan")) { - if (args.length > 1) { - if (args[1].equalsIgnoreCase("LIGHT")) { - new Subplan(this.pl, p, plan.LIGHT); - Filerelation.readFile(p).setFinish(Calendar.getInstance()); - } else if (args[1].equalsIgnoreCase("FREE")) { - new Subplan(this.pl, p, plan.FREE); - }else if (args[1].equalsIgnoreCase("MIDDLE")) { - new Subplan(this.pl, p, plan.MIDDLE); - }else if (args[1].equalsIgnoreCase("LARGE")) { - new Subplan(this.pl, p, plan.LARGE); - } - } else { - p.sendMessage("[foofle drive]プラン名を入力してください。"); - p.sendMessage("[foofle drive]FREE,LIGHT,MIDDLE,LARGE"); - } - } - } - else { - p.sendMessage("[free drive] /ec open でfoofle driveを開くことができます。"); - p.sendMessage("[free drive] /ec plan で好きなプランに加入することができます。"); - } - } - } - else { + if(!(sender instanceof Player)){ pl.getLogger().log(Level.FINE, "このコマンドはコンソールからではなくプレイヤーが入力するものです。"); + return false; + } + if(!label.equalsIgnoreCase("ec")){ + //not ec command + return false; + } + + Player p = (Player) sender; + if(args.length == 0){ + p.sendMessage("[foofle drive] /ec open でfoofle driveを開くことができます。"); + p.sendMessage("[foofle drive] /ec plan で好きなプランに加入することができます。"); + return false; + } + + if (args[0].equalsIgnoreCase("open")) { + new Subopen(this.pl, (Player) sender); + } else if (args[0].equalsIgnoreCase("plan")) { + if(args.length == 1){ //入力不足 + p.sendMessage("[foofle drive]プラン名を入力してください。"); + p.sendMessage("[foofle drive]" + Plan.getPlanNameList()); + return false; + } + + Plan inputPlan = Plan.getPlan(args[1]); + if(inputPlan == null){ //入力値無効 + p.sendMessage("[foofle drive]「"+ args[1] +"」は無効なプラン名です。"); + p.sendMessage("[foofle drive] 有効なプラン名を入力してください。" + Plan.getPlanNameList()); + } + + new Subplan(this.pl, p, inputPlan); + if(inputPlan == Plan.LIGHT){ + Filerelation.readFile(p).setFinish(Calendar.getInstance()); + } } return false; } diff --git a/src/main/java/ga/ganma/ender/command/Subplan.java b/src/main/java/ga/ganma/ender/command/Subplan.java index 26388ce..0fe51bf 100644 --- a/src/main/java/ga/ganma/ender/command/Subplan.java +++ b/src/main/java/ga/ganma/ender/command/Subplan.java @@ -1,6 +1,7 @@ package ga.ganma.ender.command; import ga.ganma.ender.Filerelation; +import ga.ganma.ender.Plan; import ga.ganma.ender.inventoryRelation.InventoryAPI; import ga.ganma.ender.playerdata.Playerdata; import org.bukkit.entity.Player; @@ -11,7 +12,7 @@ public class Subplan { Plugin pl; Player p; - public Subplan(Plugin pl, Player player, ga.ganma.ender.plan plan){ + public Subplan(Plugin pl, Player player, Plan plan){ this.pl = pl; p = player; InventoryAPI.planchange(player,plan); diff --git a/src/main/java/ga/ganma/ender/inventoryRelation/InventoryAPI.java b/src/main/java/ga/ganma/ender/inventoryRelation/InventoryAPI.java index 2589f21..5e7df39 100644 --- a/src/main/java/ga/ganma/ender/inventoryRelation/InventoryAPI.java +++ b/src/main/java/ga/ganma/ender/inventoryRelation/InventoryAPI.java @@ -1,7 +1,7 @@ package ga.ganma.ender.inventoryRelation; import ga.ganma.ender.Filerelation; -import ga.ganma.ender.plan; +import ga.ganma.ender.Plan; import ga.ganma.ender.playerdata.Playerdata; import org.bukkit.Bukkit; import org.bukkit.entity.Player; @@ -17,7 +17,7 @@ public static Inventory Inventorysizechange(Inventory oldInv, int setsize){ return inv; } - public static void planchange(Player player, plan plan){ + public static void planchange(Player player, Plan plan){ Inventory inv = null; ItemStack[] is = null; switch (plan){ diff --git a/src/main/java/ga/ganma/ender/plan.java b/src/main/java/ga/ganma/ender/plan.java deleted file mode 100644 index 07b6c51..0000000 --- a/src/main/java/ga/ganma/ender/plan.java +++ /dev/null @@ -1,7 +0,0 @@ -package ga.ganma.ender; - -import java.io.Serializable; - -public enum plan implements Serializable { - FREE,LIGHT,MIDDLE,LARGE -} diff --git a/src/main/java/ga/ganma/ender/playerdata/Playerdata.java b/src/main/java/ga/ganma/ender/playerdata/Playerdata.java index 7990d4e..cb55641 100644 --- a/src/main/java/ga/ganma/ender/playerdata/Playerdata.java +++ b/src/main/java/ga/ganma/ender/playerdata/Playerdata.java @@ -1,7 +1,7 @@ package ga.ganma.ender.playerdata; import ga.ganma.ender.inventoryRelation.InventoryEncoder; -import ga.ganma.ender.plan; +import ga.ganma.ender.Plan; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; @@ -11,17 +11,17 @@ public class Playerdata implements Serializable { private UUID mcid; - private plan plan; + private Plan plan; private String inventorySt; private Calendar finish; - public Playerdata(Player pl, Inventory inv, plan plan) { + public Playerdata(Player pl, Inventory inv, Plan plan) { this.mcid = pl.getUniqueId(); this.plan = plan; this.inventorySt = InventoryEncoder.inventoryToString(inv); } - public ga.ganma.ender.plan getPlan() { + public Plan getPlan() { return plan; } diff --git a/src/main/java/ga/ganma/foofledrive/Foofledrive.java b/src/main/java/ga/ganma/foofledrive/Foofledrive.java index f58ee9e..f8ca8f0 100644 --- a/src/main/java/ga/ganma/foofledrive/Foofledrive.java +++ b/src/main/java/ga/ganma/foofledrive/Foofledrive.java @@ -2,14 +2,20 @@ import ga.ganma.foofledrive.Listener.GUIEvent; import ga.ganma.foofledrive.Listener.GetEvent; -import ga.ganma.foofledrive.bukkitRunnable.Runnable; import ga.ganma.foofledrive.command.CommandMain; import net.milkbowl.vault.economy.Economy; import org.bukkit.Bukkit; +import org.bukkit.GameMode; +import org.bukkit.OfflinePlayer; +import org.bukkit.entity.Player; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.RegisteredServiceProvider; import org.bukkit.plugin.java.JavaPlugin; +import java.io.File; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; import java.util.logging.Logger; public final class Foofledrive extends JavaPlugin { @@ -19,6 +25,16 @@ public final class Foofledrive extends JavaPlugin { public static int[] configamout = new int[4]; public static String unit; public static Plugin ender; + /** flの使用を拒否するワールド名List */ + public static List denyWorld; + /** denyWorldの制限を非OPプレイヤーに限定するか否か */ + public static boolean denyWorldOnlyNonOP; + /** flの使用を拒否するゲームモードリスト */ + public static List denyGameMode; + /** denyGameModeの制限を非OPプレイヤーに限定するか否か */ + public static boolean denyGameModeOnlyNonOP; + + public Foofledrive fl; @Override @@ -29,18 +45,49 @@ public void onEnable() { new GUIEvent(this); this.getCommand("fl").setExecutor(new CommandMain(this)); this.getCommand("foofledrive").setExecutor(new CommandMain(this)); + this.getCommand("fl").setTabCompleter(new CommandMain(this)); + this.getCommand("foofledrive").setTabCompleter(new CommandMain(this)); saveDefaultConfig(); configamout[0] = this.getConfig().getInt("amout.FREE"); configamout[1] = this.getConfig().getInt("amout.LIGHT"); configamout[2] = this.getConfig().getInt("amout.MIDDLE"); configamout[3] = this.getConfig().getInt("amout.LARGE"); unit = this.getConfig().getString("unit"); + denyWorld = this.getConfig().getStringList("deny.world"); + List denyGameModeConfig = this.getConfig().getStringList("deny.gamemode"); + denyGameMode = new ArrayList<>(); + for(String gm : denyGameModeConfig){ //noConfig will make list NULL + try { + denyGameMode.add(GameMode.getByValue(Integer.parseInt(gm))); + }catch(IllegalArgumentException e){ + this.getLogger().warning("flConfigERROR:deny.gamemode value [" + gm +"] not a GameMode int value"); + throw e; + } + } + denyGameModeOnlyNonOP = this.getConfig().getBoolean("deny.gamemodeWithoutOP", true); + denyWorldOnlyNonOP = this.getConfig().getBoolean("deny.worldWithoutOP", true); + if(!this.setupEconomy()){ Bukkit.getPluginManager().disablePlugin(this); Bukkit.getLogger().warning("[foofle drive]Vaultが存在しません!"); return; } - new Runnable(this).runTaskTimer(this,0,20); + + String FS = File.separator; + File folder = new File(getDataFolder() + FS + "playerdata"); + if (folder.exists()) { + File[] list = folder.listFiles(); + if (list != null) { + for (File f : list) { + String name = f.getName(); + name = name.substring(0, name.lastIndexOf('.')); + UUID id = UUID.fromString(name); + OfflinePlayer pl = Bukkit.getOfflinePlayer(id); + ga.ganma.foofledrive.economy.Economy.paymoney(pl); + } + + } + } } @Override diff --git a/src/main/java/ga/ganma/foofledrive/Listener/GUIEvent.java b/src/main/java/ga/ganma/foofledrive/Listener/GUIEvent.java index ba74f82..963f23d 100644 --- a/src/main/java/ga/ganma/foofledrive/Listener/GUIEvent.java +++ b/src/main/java/ga/ganma/foofledrive/Listener/GUIEvent.java @@ -3,7 +3,7 @@ import ga.ganma.foofledrive.Filerelation; import ga.ganma.foofledrive.command.CommandMain; import ga.ganma.foofledrive.inventoryRelation.InventoryAPI; -import ga.ganma.foofledrive.plan; +import ga.ganma.foofledrive.Plan; import ga.ganma.foofledrive.playerdata.Playerdata; import org.bukkit.Bukkit; import org.bukkit.Material; @@ -22,7 +22,7 @@ public class GUIEvent implements Listener { - private static HashMap ProvisionalPlan = new HashMap<>(); + private static HashMap ProvisionalPlan = new HashMap<>(); public GUIEvent(Plugin pl) { Bukkit.getPluginManager().registerEvents(this, pl); @@ -46,19 +46,19 @@ public void getInventoryclickEvent(InventoryClickEvent e) { if (e.getSlot() == 10) { e.setCancelled(true); pl.openInventory(yesornoInv()); - ProvisionalPlan.put(pl, plan.FREE); + ProvisionalPlan.put(pl, Plan.FREE); } else if (e.getSlot() == 12) { e.setCancelled(true); pl.openInventory(yesornoInv()); - ProvisionalPlan.put(pl, plan.LIGHT); + ProvisionalPlan.put(pl, Plan.LIGHT); } else if (e.getSlot() == 14) { e.setCancelled(true); pl.openInventory(yesornoInv()); - ProvisionalPlan.put(pl, plan.MIDDLE); + ProvisionalPlan.put(pl, Plan.MIDDLE); } else if (e.getSlot() == 16) { e.setCancelled(true); pl.openInventory(yesornoInv()); - ProvisionalPlan.put(pl, plan.LARGE); + ProvisionalPlan.put(pl, Plan.LARGE); } else if (clickedItem.getType() == Material.LIGHT_GRAY_STAINED_GLASS_PANE) { e.setCancelled(true); } @@ -68,48 +68,48 @@ public void getInventoryclickEvent(InventoryClickEvent e) { Playerdata pd; switch (ProvisionalPlan.get(pl)) { case FREE: - InventoryAPI.planchange(pl, plan.FREE); + InventoryAPI.planchange(pl, Plan.FREE); pd = Filerelation.readFile(pl); if (pd.getFinish() == null) { pd.setFinish(Calendar.getInstance()); Filerelation.createFile(pd); } - pl.sendMessage("[foofle drive]プランを" + plan.FREE + "プランに変更しました。"); + pl.sendMessage("[foofle drive]プランを" + Plan.FREE + "プランに変更しました。"); break; case LIGHT: - boolean is = InventoryAPI.planchange(pl, plan.LIGHT); + boolean is = InventoryAPI.planchange(pl, Plan.LIGHT); pd = Filerelation.readFile(pl); if (pd.getFinish() == null) { pd.setFinish(Calendar.getInstance()); Filerelation.createFile(pd); } if (is) { - pl.sendMessage("[foofle drive]プランを" + plan.LIGHT + "プランに変更しました。"); + pl.sendMessage("[foofle drive]プランを" + Plan.LIGHT + "プランに変更しました。"); } break; case MIDDLE: - boolean is1 = InventoryAPI.planchange(pl, plan.MIDDLE); + boolean is1 = InventoryAPI.planchange(pl, Plan.MIDDLE); pd = Filerelation.readFile(pl); if (pd.getFinish() == null) { pd.setFinish(Calendar.getInstance()); Filerelation.createFile(pd); } if (is1) { - pl.sendMessage("[foofle drive]プランを" + plan.MIDDLE + "プランに変更しました。"); + pl.sendMessage("[foofle drive]プランを" + Plan.MIDDLE + "プランに変更しました。"); } break; case LARGE: - boolean is2 = InventoryAPI.planchange(pl, plan.LARGE); + boolean is2 = InventoryAPI.planchange(pl, Plan.LARGE); pd = Filerelation.readFile(pl); if (pd.getFinish() == null) { pd.setFinish(Calendar.getInstance()); Filerelation.createFile(pd); } if (is2) { - pl.sendMessage("[foofle drive]プランを" + plan.LARGE + "プランに変更しました。"); + pl.sendMessage("[foofle drive]プランを" + Plan.LARGE + "プランに変更しました。"); } break; } diff --git a/src/main/java/ga/ganma/foofledrive/Listener/GetEvent.java b/src/main/java/ga/ganma/foofledrive/Listener/GetEvent.java index 48d1bee..1663055 100644 --- a/src/main/java/ga/ganma/foofledrive/Listener/GetEvent.java +++ b/src/main/java/ga/ganma/foofledrive/Listener/GetEvent.java @@ -2,7 +2,7 @@ import ga.ganma.foofledrive.Foofledrive; import ga.ganma.foofledrive.Filerelation; -import ga.ganma.foofledrive.plan; +import ga.ganma.foofledrive.Plan; import ga.ganma.foofledrive.playerdata.Playerdata; import org.bukkit.Bukkit; import org.bukkit.entity.Player; @@ -31,7 +31,7 @@ public GetEvent(Plugin pl) { public void getplayerloginEvent(PlayerJoinEvent e) { p = e.getPlayer(); if (Filerelation.namecheck(p)) { - if (Filerelation.readFile(p).getPlan() == plan.FREE) { + if (Filerelation.readFile(p).getPlan() == Plan.FREE) { p.sendMessage("[foofle drive]あなたは現在" + Filerelation.readFile(p).getPlan() + "プランに加入しています。"); return; } @@ -57,7 +57,7 @@ public void run() { } } else { - Playerdata pd = new Playerdata(p, Bukkit.getServer().createInventory(null, 9, "foofle Drive"), plan.FREE); + Playerdata pd = new Playerdata(p, Bukkit.getServer().createInventory(null, 9, "foofle Drive"), Plan.FREE); Filerelation.createFile(pd); p.sendMessage("[foofle drive]あなたは自動的に" + Filerelation.readFile(p).getPlan() + "プランに加入しました。"); } diff --git a/src/main/java/ga/ganma/foofledrive/Plan.java b/src/main/java/ga/ganma/foofledrive/Plan.java new file mode 100644 index 0000000..1f1194f --- /dev/null +++ b/src/main/java/ga/ganma/foofledrive/Plan.java @@ -0,0 +1,55 @@ +package ga.ganma.foofledrive; + +import java.io.Serializable; + +public enum Plan implements Serializable { + FREE,LIGHT,MIDDLE,LARGE; + + /** + * プラン名として有効な文字列か判定する + * @param arg プラン名(かもしれない)文字列 + * @return 大文字小文字を意識せず、プラン名として有効な場合true。それ以外の場合false + */ + public static boolean isPlanName(String arg){ + if(arg == null || arg.isEmpty()){ + return false; + } + for(Plan p: Plan.values()){ + if(arg.equalsIgnoreCase(p.name())){ + return true; + } + } + return false; + } + + /** + * 引数に対応するPlanを返す + * @param arg 取得したいPlan名 + * @return 有効なPlan名の場合、対応するPlan。対応しない場合はnull + */ + public static Plan getPlan(String arg){ + if(isPlanName(arg)){ + for(Plan p : Plan.values()){ + if(p.name().equalsIgnoreCase(arg)){ + return p; + } + } + } + return null; + } + + /** + * Plan名の一覧を取得する + * @return カンマ区切りで列挙したPlan名の一覧 + */ + public static String getPlanNameList(){ + StringBuilder sb = new StringBuilder(); + for(Plan p : Plan.values()){ + if(sb.length() != 0){ + sb.append(','); + } + sb.append(p.name()); + } + return sb.toString(); + } +} diff --git a/src/main/java/ga/ganma/foofledrive/bukkitRunnable/Runnable.java b/src/main/java/ga/ganma/foofledrive/bukkitRunnable/Runnable.java deleted file mode 100644 index 67254df..0000000 --- a/src/main/java/ga/ganma/foofledrive/bukkitRunnable/Runnable.java +++ /dev/null @@ -1,37 +0,0 @@ -package ga.ganma.foofledrive.bukkitRunnable; - -import ga.ganma.foofledrive.economy.Economy; -import org.bukkit.Bukkit; -import org.bukkit.OfflinePlayer; -import org.bukkit.plugin.Plugin; -import org.bukkit.scheduler.BukkitRunnable; - -import java.io.File; -import java.util.UUID; - -public class Runnable extends BukkitRunnable { - private Plugin plugin; - - public Runnable(Plugin pl) { - plugin = pl; - } - - @Override - public void run() { - String FS = File.separator; - File folder = new File(plugin.getDataFolder() + FS + "playerdata"); - if (folder.exists()) { - File[] list = folder.listFiles(); - if (list != null) { - for (File f : list) { - String name = f.getName(); - name = name.substring(0, name.lastIndexOf('.')); - UUID id = UUID.fromString(name); - OfflinePlayer pl = Bukkit.getOfflinePlayer(id); - Economy.paymoney(pl); - } - - } - } - } -} diff --git a/src/main/java/ga/ganma/foofledrive/command/CommandMain.java b/src/main/java/ga/ganma/foofledrive/command/CommandMain.java index 40d09fa..63ef013 100644 --- a/src/main/java/ga/ganma/foofledrive/command/CommandMain.java +++ b/src/main/java/ga/ganma/foofledrive/command/CommandMain.java @@ -1,139 +1,259 @@ -package ga.ganma.foofledrive.command; - -import ga.ganma.foofledrive.Filerelation; -import ga.ganma.foofledrive.Foofledrive; -import ga.ganma.foofledrive.economy.Economy; -import ga.ganma.foofledrive.plan; -import org.bukkit.Bukkit; -import org.bukkit.Material; -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.ItemMeta; -import org.bukkit.plugin.Plugin; - -import java.util.ArrayList; -import java.util.Calendar; -import java.util.HashMap; -import java.util.List; -import java.util.logging.Level; - -public class CommandMain implements CommandExecutor { - public static HashMap isopenInventory = new HashMap<>(); - private Plugin pl; - - public CommandMain(Plugin pl) { - this.pl = pl; - } - - @Override - public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if (sender instanceof Player) { - Player p = (Player) sender; - if (label.equalsIgnoreCase("fl") || label.equalsIgnoreCase("foofledrive")) { - if (args.length != 0) { - if (args[0].equalsIgnoreCase("open")) { - new Subopen(this.pl, (Player) sender); - } else if (args[0].equalsIgnoreCase("plan")) { - if (args.length > 1) { - if (args[1].equalsIgnoreCase("LIGHT")) { - new Subplan(this.pl, p, plan.LIGHT); - Filerelation.readFile(p).setFinish(Calendar.getInstance()); - } else if (args[1].equalsIgnoreCase("FREE")) { - new Subplan(this.pl, p, plan.FREE); - }else if (args[1].equalsIgnoreCase("MIDDLE")) { - new Subplan(this.pl, p, plan.MIDDLE); - }else if (args[1].equalsIgnoreCase("LARGE")) { - new Subplan(this.pl, p, plan.LARGE); - } - } else { - Inventory inv = Bukkit.createInventory(null,27,"プラン選択画面"); - ItemStack is = new ItemStack(Material.LIGHT_GRAY_STAINED_GLASS_PANE,1); - ItemMeta im0 = is.getItemMeta(); - im0.setDisplayName(" "); - ItemStack free = new ItemStack(Material.PAPER,1); - ItemMeta im1 = free.getItemMeta(); - im1.setDisplayName("FREEプラン"); - List freeprice = new ArrayList<>(); - freeprice.add(Economy.getplanmoney(plan.FREE) + Foofledrive.unit); - im1.setLore(freeprice); - ItemStack light = new ItemStack(Material.IRON_INGOT,1); - ItemMeta im2 = light.getItemMeta(); - im2.setDisplayName("LIGHTプラン"); - List lightprice = new ArrayList<>(); - lightprice.add(Economy.getplanmoney(plan.LIGHT) + Foofledrive.unit); - im2.setLore(lightprice); - ItemStack middle = new ItemStack(Material.GOLD_INGOT,1); - ItemMeta im3 = middle.getItemMeta(); - im3.setDisplayName("MIDDLEプラン"); - List middleprice = new ArrayList<>(); - middleprice.add(Economy.getplanmoney(plan.MIDDLE) + Foofledrive.unit); - im3.setLore(middleprice); - ItemStack large = new ItemStack(Material.DIAMOND,1); - ItemMeta im4 = middle.getItemMeta(); - im4.setDisplayName("LARGEプラン"); - List largeprice = new ArrayList<>(); - largeprice.add(Economy.getplanmoney(plan.LARGE) + Foofledrive.unit); - im4.setLore(largeprice); - - is.setItemMeta(im0); - free.setItemMeta(im1); - light.setItemMeta(im2); - middle.setItemMeta(im3); - large.setItemMeta(im4); - - for(int a = 0;a <= 26;a++) { - if(a == 10){ - inv.setItem(a,free); - } - else if (a == 12){ - inv.setItem(a,light); - } - else if(a == 14){ - inv.setItem(a,middle); - } - else if(a == 16){ - inv.setItem(a,large); - } - else { - inv.setItem(a,is); - } - } - isopenInventory.put(p,true); - p.openInventory(inv); - } - } - else if(args[0].equalsIgnoreCase("reload")) { - if (p.isOp()) { - pl.reloadConfig(); - Foofledrive.configamout[0] = pl.getConfig().getInt("amout.FREE"); - Foofledrive.configamout[1] = pl.getConfig().getInt("amout.LIGHT"); - Foofledrive.configamout[2] = pl.getConfig().getInt("amout.MIDDLE"); - Foofledrive.configamout[3] = pl.getConfig().getInt("amout.LARGE"); - Foofledrive.unit = pl.getConfig().getString("unit"); - p.sendMessage("[foofle drive]コンフィグをリロードしました。"); - } - else { - p.sendMessage("[foofle drive]このコマンドは管理者専用です。"); - } - } - else if(args[0].equalsIgnoreCase("help")){ - p.sendMessage("[free drive] /fl open でfoofle driveを開くことができます。"); - p.sendMessage("[free drive] /fl plan で好きなプランに加入することができます。"); - } - } - else { - p.sendMessage("[free drive] /fl open でfoofle driveを開くことができます。"); - p.sendMessage("[free drive] /fl plan で好きなプランに加入することができます。"); - } - } - } - else { - pl.getLogger().log(Level.INFO, "このコマンドはコンソールからではなくプレイヤーが入力するものです。"); - } - return false; - } -} +package ga.ganma.foofledrive.command; + +import ga.ganma.foofledrive.Filerelation; +import ga.ganma.foofledrive.Foofledrive; +import ga.ganma.foofledrive.economy.Economy; +import ga.ganma.foofledrive.Plan; +import org.bukkit.Bukkit; +import org.bukkit.GameMode; +import org.bukkit.Material; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.command.TabCompleter; +import org.bukkit.entity.Player; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; +import org.bukkit.plugin.Plugin; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.HashMap; +import java.util.List; +import java.util.logging.Level; + +public class CommandMain implements CommandExecutor, TabCompleter { + public static HashMap isopenInventory = new HashMap<>(); + private Plugin pl; + + public CommandMain(Plugin pl) { + this.pl = pl; + } + + private void sendFoofleDriveMessage(Player p, String msg){ + p.sendMessage("[foofle drive]" + msg); + } + + /** + * Configで制限されたステータスでないことを確認する + * @param p + * @return コマンドの使用が許可されている場合true + */ + private boolean isAllowedToUseFL(Player p){ + //ワールド制限チェック + if(Foofledrive.denyWorldOnlyNonOP && p.isOp()){ + //true ゲームモード制限チェックへ進む + } else { + String currentWorldName = p.getWorld().getName(); + if(Foofledrive.denyWorld != null && !Foofledrive.denyWorld.isEmpty()){ + if(Foofledrive.denyWorld.contains(currentWorldName)){ + sendFoofleDriveMessage(p,"このワールドでは許可されていません。"); + return false; + } + } + } + + //ゲームモード制限チェック + if(Foofledrive.denyGameModeOnlyNonOP && p.isOp()){ + return true; + } + GameMode currentGameMode = p.getGameMode(); + if(Foofledrive.denyGameMode != null && !Foofledrive.denyGameMode.isEmpty()){ + if(Foofledrive.denyGameMode.contains(currentGameMode)){ + sendFoofleDriveMessage(p, "このゲームモードでは許可されていません。"); + return false; + } + } + return true; + } + + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if(!(sender instanceof Player)){ + pl.getLogger().log(Level.INFO, "このコマンドはコンソールからではなくプレイヤーが入力するものです。"); + return false; + } + if(!(label.equalsIgnoreCase("fl") || label.equalsIgnoreCase("foofledrive"))){ + //対象外コマンド + return false; + } + + Player p = (Player) sender; + if(args.length == 0){ + sendFoofleDriveMessage(p, " /fl open でfoofle driveを開くことができます。"); + sendFoofleDriveMessage(p, " /fl plan で好きなプランに加入することができます。"); + return false; + } + + if (args[0].equalsIgnoreCase("open")) { + if(isAllowedToUseFL(p)) { //制限チェック + new Subopen(this.pl, (Player) sender); + } + return false; + } + if (args[0].equalsIgnoreCase("plan")) { + if(args.length == 1){ + //プラン選択GUI表示 + showPlanSelect(p); + } else { + Plan plan = Plan.getPlan(args[1]); + if(plan == null){ + sendFoofleDriveMessage(p, " 「"+ args[1] +"」は無効なプラン名です。"); + sendFoofleDriveMessage(p, "有効なプラン名を入力してください。" + Plan.getPlanNameList()); + return false; + } + + new Subplan(this.pl, p, plan); + if(plan == Plan.LIGHT){ + Filerelation.readFile(p).setFinish(Calendar.getInstance()); + } + } + return false; + } + if(args[0].equalsIgnoreCase("reload")) { + if (p.isOp()) { + pl.reloadConfig(); + Foofledrive.configamout[0] = pl.getConfig().getInt("amout.FREE"); + Foofledrive.configamout[1] = pl.getConfig().getInt("amout.LIGHT"); + Foofledrive.configamout[2] = pl.getConfig().getInt("amout.MIDDLE"); + Foofledrive.configamout[3] = pl.getConfig().getInt("amout.LARGE"); + Foofledrive.unit = pl.getConfig().getString("unit"); + sendFoofleDriveMessage(p, "コンフィグをリロードしました。"); + } + else { + sendFoofleDriveMessage(p, "このコマンドは管理者専用です。"); + } + return false; + } + if(args[0].equalsIgnoreCase("help")){ + sendFoofleDriveMessage(p, "/fl open でfoofle driveを開くことができます。"); + sendFoofleDriveMessage(p, "/fl plan で好きなプランに加入することができます。"); + return false; + } + + return false; + } + + private void showPlanSelect(Player p){ + Inventory inv = Bukkit.createInventory(null,27,"プラン選択画面"); + + ItemStack is = new ItemStack(Material.LIGHT_GRAY_STAINED_GLASS_PANE,1); + ItemMeta im0 = is.getItemMeta(); + im0.setDisplayName(" "); + is.setItemMeta(im0); + + ItemStack free = new ItemStack(Material.PAPER,1); + ItemMeta im1 = free.getItemMeta(); + im1.setDisplayName("FREEプラン"); + List freePrice = new ArrayList<>(); + freePrice.add(Economy.getPlanPrice(Plan.FREE) + Foofledrive.unit); + im1.setLore(freePrice); + free.setItemMeta(im1); + + ItemStack light = new ItemStack(Material.IRON_INGOT,1); + ItemMeta im2 = light.getItemMeta(); + im2.setDisplayName("LIGHTプラン"); + List lightPrice = new ArrayList<>(); + lightPrice.add(Economy.getPlanPrice(Plan.LIGHT) + Foofledrive.unit); + im2.setLore(lightPrice); + light.setItemMeta(im2); + + ItemStack middle = new ItemStack(Material.GOLD_INGOT,1); + ItemMeta im3 = middle.getItemMeta(); + im3.setDisplayName("MIDDLEプラン"); + List middlePrice = new ArrayList<>(); + middlePrice.add(Economy.getPlanPrice(Plan.MIDDLE) + Foofledrive.unit); + im3.setLore(middlePrice); + middle.setItemMeta(im3); + + ItemStack large = new ItemStack(Material.DIAMOND,1); + ItemMeta im4 = middle.getItemMeta(); + im4.setDisplayName("LARGEプラン"); + List largePrice = new ArrayList<>(); + largePrice.add(Economy.getPlanPrice(Plan.LARGE) + Foofledrive.unit); + im4.setLore(largePrice); + large.setItemMeta(im4); + + for(int a = 0;a <= 26;a++) { + if(a == 10){ + inv.setItem(a,free); + continue; + } + if (a == 12){ + inv.setItem(a,light); + continue; + } + if(a == 14){ + inv.setItem(a,middle); + continue; + } + if(a == 16){ + inv.setItem(a,large); + continue; + } + inv.setItem(a,is); + } + isopenInventory.put(p,true); + p.openInventory(inv); + } + + /** + * Tab補完支援 + * @param sender コマンド入力者 + * @param command コマンド(fl または foofledrive のはず) + * @param alias 使用された別名(fl のはず) + * @param args コマンドの引数部分
プレイヤー入力値「/fl plan something」の
plan, something が配列の[0][1]にそれぞれ順に格納される + * @auther graycat27(MCID:gray27) + * @return 補完候補のList。nullの場合あり + */ + @Override + public List onTabComplete(CommandSender sender, Command command, String alias, String[] args) { + if (!(alias.equalsIgnoreCase("fl") || alias.equalsIgnoreCase("foofledrive"))) { + return null; + } + List firstCommandList = new ArrayList(); //fl xxx + firstCommandList.add("open"); + firstCommandList.add("plan"); + firstCommandList.add("reload"); + firstCommandList.add("help"); + + if(args.length == 0 || args[0].equals("")){ + //全候補提供 + return firstCommandList; + } + + if(args.length == 1){ + //「/fl xx」状態 + List resultList = new ArrayList(); + for(String maybe : firstCommandList){ + if(maybe.toLowerCase().startsWith(args[0].toLowerCase())){ + resultList.add(maybe); + } + } + return resultList; + } + + if(args.length == 2){ + if(args[0].equals(firstCommandList.get(0)) || //open + args[0].equals(firstCommandList.get(2)) || //reload + args[0].equals(firstCommandList.get(3))){ //help + //追加引数なし + return new ArrayList(); + } + if(args[0].equals(firstCommandList.get(1))){ + //「/fl plan xx」状態 + List resultList = new ArrayList(); + for (Plan pln : Plan.values()) { //planはenum + if(args[1].equals("") || + pln.toString().toLowerCase().startsWith(args[1].toLowerCase())){ + //xx部分未入力or入力内容に合致する候補 + resultList.add(pln.toString()); + } + } + return resultList; + } + } + return new ArrayList(); //for safe + } +} diff --git a/src/main/java/ga/ganma/foofledrive/command/Subplan.java b/src/main/java/ga/ganma/foofledrive/command/Subplan.java index b4dc827..5e3b7ad 100644 --- a/src/main/java/ga/ganma/foofledrive/command/Subplan.java +++ b/src/main/java/ga/ganma/foofledrive/command/Subplan.java @@ -2,7 +2,7 @@ import ga.ganma.foofledrive.Filerelation; import ga.ganma.foofledrive.inventoryRelation.InventoryAPI; -import ga.ganma.foofledrive.plan; +import ga.ganma.foofledrive.Plan; import ga.ganma.foofledrive.playerdata.Playerdata; import org.bukkit.entity.Player; import org.bukkit.plugin.Plugin; @@ -12,7 +12,7 @@ public class Subplan { Plugin pl; Player p; - public Subplan(Plugin pl, Player player, plan plan){ + public Subplan(Plugin pl, Player player, Plan plan){ this.pl = pl; p = player; boolean issuccess; diff --git a/src/main/java/ga/ganma/foofledrive/economy/Economy.java b/src/main/java/ga/ganma/foofledrive/economy/Economy.java index ac15e4a..2c1e207 100644 --- a/src/main/java/ga/ganma/foofledrive/economy/Economy.java +++ b/src/main/java/ga/ganma/foofledrive/economy/Economy.java @@ -3,7 +3,7 @@ import ga.ganma.foofledrive.Foofledrive; import ga.ganma.foofledrive.Filerelation; import ga.ganma.foofledrive.inventoryRelation.InventoryAPI; -import ga.ganma.foofledrive.plan; +import ga.ganma.foofledrive.Plan; import ga.ganma.foofledrive.playerdata.Playerdata; import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; @@ -21,8 +21,8 @@ public static void paymoney(Player p) { if (pd.getFinish().before(Calendar.getInstance())) { switch (pd.getPlan()) { case LIGHT: - if (bal >= getplanmoney(plan.LIGHT)) { - Foofledrive.econ.withdrawPlayer(p, getplanmoney(plan.LIGHT)); + if (bal >= getPlanPrice(Plan.LIGHT)) { + Foofledrive.econ.withdrawPlayer(p, getPlanPrice(Plan.LIGHT)); Bukkit.getLogger().log(Level.INFO, "[foofle drive]" + p.getName() + "のLIGHTプランの料金を支払いました。"); if (p.isOnline()) { p.sendMessage("[foofle drive]料金の支払いをしました。"); @@ -30,7 +30,7 @@ public static void paymoney(Player p) { pd.setFinish(Calendar.getInstance()); Filerelation.createFile(pd); } else { - InventoryAPI.planchange(p, plan.FREE); + InventoryAPI.planchange(p, Plan.FREE); Bukkit.getLogger().log(Level.INFO, "[foofle drive]" + p.getName() + "のお金が足りないため、自動的にfreeプランへ移行しました。"); Bukkit.getLogger().log(Level.INFO, "[foofle drive]その際、2段目以降にあるアイテムを全消去しました。"); if (p.isOnline()) { @@ -40,8 +40,8 @@ public static void paymoney(Player p) { } break; case MIDDLE: - if (bal >= getplanmoney(plan.MIDDLE)) { - Foofledrive.econ.withdrawPlayer(p, getplanmoney(plan.MIDDLE)); + if (bal >= getPlanPrice(Plan.MIDDLE)) { + Foofledrive.econ.withdrawPlayer(p, getPlanPrice(Plan.MIDDLE)); Bukkit.getLogger().log(Level.INFO, "[foofle drive]" + p.getName() + "のMIDDLEプランの料金を支払いました。"); if (p.isOnline()) { p.sendMessage("[foofle drive]料金の支払いをしました。"); @@ -49,7 +49,7 @@ public static void paymoney(Player p) { pd.setFinish(Calendar.getInstance()); Filerelation.createFile(pd); } else { - InventoryAPI.planchange(p, plan.FREE); + InventoryAPI.planchange(p, Plan.FREE); Bukkit.getLogger().log(Level.INFO, "[foofle drive]" + p.getName() + "のお金が足りないため、自動的にfreeプランへ移行しました。"); Bukkit.getLogger().log(Level.INFO, "[foofle drive]その際、2段目以降にあるアイテムを全消去しました。"); if (p.isOnline()) { @@ -59,8 +59,8 @@ public static void paymoney(Player p) { } break; case LARGE: - if (bal >= getplanmoney(plan.LARGE)) { - Foofledrive.econ.withdrawPlayer(p, getplanmoney(plan.LARGE)); + if (bal >= getPlanPrice(Plan.LARGE)) { + Foofledrive.econ.withdrawPlayer(p, getPlanPrice(Plan.LARGE)); Bukkit.getLogger().log(Level.INFO, "[foofle drive]" + p.getName() + "のLARGEプランの料金を支払いました。"); if (p.isOnline()) { p.sendMessage("[foofle drive]料金の支払いをしました。"); @@ -68,7 +68,7 @@ public static void paymoney(Player p) { pd.setFinish(Calendar.getInstance()); Filerelation.createFile(pd); } else { - InventoryAPI.planchange(p, plan.FREE); + InventoryAPI.planchange(p, Plan.FREE); Bukkit.getLogger().log(Level.INFO, "[foofle drive]" + p.getName() + "のお金が足りないため、自動的にfreeプランへ移行しました。"); Bukkit.getLogger().log(Level.INFO, "[foofle drive]その際、2段目以降にあるアイテムを全消去しました。"); if (p.isOnline()) { @@ -87,7 +87,7 @@ public static void paymoney(OfflinePlayer p) { Playerdata pd = Filerelation.readFile(p); if (p != null){ double bal = Foofledrive.econ.getBalance(p); - if (pd.getFinish() != null) { + if (pd != null && pd.getFinish() != null) { if (pd.getFinish().before(Calendar.getInstance())) { int[] amout = Foofledrive.configamout; switch (pd.getPlan()) { @@ -102,7 +102,7 @@ public static void paymoney(OfflinePlayer p) { pd.setFinish(Calendar.getInstance()); Filerelation.createFile(pd); } else { - InventoryAPI.planchange(p, plan.FREE); + InventoryAPI.planchange(p, Plan.FREE); Bukkit.getLogger().log(Level.INFO, "[foofle drive]" + p.getName() + "のお金が足りないため、自動的にfreeプランへ移行しました。"); Bukkit.getLogger().log(Level.INFO, "[foofle drive]その際、2段目以降にあるアイテムを全消去しました。"); if (p.isOnline()) { @@ -123,7 +123,7 @@ public static void paymoney(OfflinePlayer p) { pd.setFinish(Calendar.getInstance()); Filerelation.createFile(pd); } else { - InventoryAPI.planchange(p, plan.FREE); + InventoryAPI.planchange(p, Plan.FREE); Bukkit.getLogger().log(Level.INFO, "[foofle drive]" + p.getName() + "のお金が足りないため、自動的にfreeプランへ移行しました。"); Bukkit.getLogger().log(Level.INFO, "[foofle drive]その際、2段目以降にあるアイテムを全消去しました。"); if (p.isOnline()) { @@ -144,7 +144,7 @@ public static void paymoney(OfflinePlayer p) { pd.setFinish(Calendar.getInstance()); Filerelation.createFile(pd); } else { - InventoryAPI.planchange(p, plan.FREE); + InventoryAPI.planchange(p, Plan.FREE); Bukkit.getLogger().log(Level.INFO, "[foofle drive]" + p.getName() + "のお金が足りないため、自動的にfreeプランへ移行しました。"); Bukkit.getLogger().log(Level.INFO, "[foofle drive]その際、2段目以降にあるアイテムを全消去しました。"); if (p.isOnline()) { @@ -160,7 +160,7 @@ public static void paymoney(OfflinePlayer p) { } } - public static int getplanmoney(plan plan){ + public static int getPlanPrice(Plan plan){ switch (plan){ case FREE: return Foofledrive.configamout[0]; diff --git a/src/main/java/ga/ganma/foofledrive/inventoryRelation/InventoryAPI.java b/src/main/java/ga/ganma/foofledrive/inventoryRelation/InventoryAPI.java index a30a484..141380e 100644 --- a/src/main/java/ga/ganma/foofledrive/inventoryRelation/InventoryAPI.java +++ b/src/main/java/ga/ganma/foofledrive/inventoryRelation/InventoryAPI.java @@ -3,7 +3,7 @@ import ga.ganma.foofledrive.Filerelation; import ga.ganma.foofledrive.Foofledrive; import ga.ganma.foofledrive.economy.Economy; -import ga.ganma.foofledrive.plan; +import ga.ganma.foofledrive.Plan; import ga.ganma.foofledrive.playerdata.Playerdata; import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; @@ -23,7 +23,7 @@ public static Inventory Inventorysizechange(Inventory oldInv, int setsize){ return inv; } - public static boolean planchange(Player player, plan plan){ + public static boolean planchange(Player player, Plan plan){ Inventory inv = null; ItemStack[] is = null; switch (plan){ @@ -82,11 +82,11 @@ public static boolean planchange(Player player, plan plan){ is = Filerelation.readFile(player).getInv().getStorageContents(); break; } - if(Foofledrive.econ.getBalance(player) >= Economy.getplanmoney(plan)) { + if(Foofledrive.econ.getBalance(player) >= Economy.getPlanPrice(plan)) { inv.setStorageContents(is); Playerdata pd = new Playerdata(player, inv, plan); pd.setFinish(Calendar.getInstance()); - Foofledrive.econ.withdrawPlayer(player, Economy.getplanmoney(plan)); + Foofledrive.econ.withdrawPlayer(player, Economy.getPlanPrice(plan)); player.sendMessage("[foofle drive]このプランの一週間の利用料金を払いました。"); Filerelation.createFile(pd); return true; @@ -97,7 +97,7 @@ public static boolean planchange(Player player, plan plan){ return false; } - public static void planchange(OfflinePlayer player, plan plan){ + public static void planchange(OfflinePlayer player, Plan plan){ Inventory inv = null; ItemStack[] is = null; switch (plan){ @@ -157,7 +157,7 @@ public static void planchange(OfflinePlayer player, plan plan){ break; } inv.setStorageContents(is); - Foofledrive.econ.withdrawPlayer(player,Economy.getplanmoney(Filerelation.readFile(player).getPlan())); + Foofledrive.econ.withdrawPlayer(player,Economy.getPlanPrice(Filerelation.readFile(player).getPlan())); Playerdata pd = new Playerdata(player,inv,plan); pd.setFinish(Calendar.getInstance()); Filerelation.createFile(pd); diff --git a/src/main/java/ga/ganma/foofledrive/plan.java b/src/main/java/ga/ganma/foofledrive/plan.java deleted file mode 100644 index cae0bf5..0000000 --- a/src/main/java/ga/ganma/foofledrive/plan.java +++ /dev/null @@ -1,7 +0,0 @@ -package ga.ganma.foofledrive; - -import java.io.Serializable; - -public enum plan implements Serializable { - FREE,LIGHT,MIDDLE,LARGE -} diff --git a/src/main/java/ga/ganma/foofledrive/playerdata/Playerdata.java b/src/main/java/ga/ganma/foofledrive/playerdata/Playerdata.java index 08d61cf..d27bbbc 100644 --- a/src/main/java/ga/ganma/foofledrive/playerdata/Playerdata.java +++ b/src/main/java/ga/ganma/foofledrive/playerdata/Playerdata.java @@ -1,7 +1,7 @@ package ga.ganma.foofledrive.playerdata; import ga.ganma.foofledrive.inventoryRelation.InventoryEncoder; -import ga.ganma.foofledrive.plan; +import ga.ganma.foofledrive.Plan; import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; @@ -12,23 +12,23 @@ public class Playerdata implements Serializable { private UUID mcid; - private plan plan; + private Plan plan; private String inventorySt; private Calendar finish; - public Playerdata(Player pl, Inventory inv, plan plan) { + public Playerdata(Player pl, Inventory inv, Plan plan) { this.mcid = pl.getUniqueId(); this.plan = plan; this.inventorySt = InventoryEncoder.inventoryToString(inv); } - public Playerdata(OfflinePlayer pl, Inventory inv, plan plan) { + public Playerdata(OfflinePlayer pl, Inventory inv, Plan plan) { this.mcid = pl.getUniqueId(); this.plan = plan; this.inventorySt = InventoryEncoder.inventoryToString(inv); } - public ga.ganma.foofledrive.plan getPlan() { + public Plan getPlan() { return plan; } diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 7188af4..11803b3 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -8,4 +8,19 @@ amout: #LARGEプランは54スタック入るゾ つまりラージチェストだゾ LARGE: 500 #unitのところにお金の単位を入れてください。(Vaultがお金の単位をこっちにAPIとしてよこしてくれないんだよクソが) -unit: "FP" \ No newline at end of file +unit: "FP" + +#openコマンドの使用を拒否する条件 +deny: + #ゲームモード制限をOP以外にのみ制限する場合true(OPにも制限を掛ける場合false) + gamemodeWithoutOP: true + #ゲームモード:0=サバイバル, 1=クリエ, 2=アドベンチャー, 3=スペクテイター + gamemode: + - 1 + - 3 + + #ワールド制限をOP以外にのみ制限する場合true(OPにも制限を掛ける場合false) + worldWithoutOP: true + #ワールド名の列挙 + world: + - world_nether \ No newline at end of file diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 8d4c57d..3764276 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -2,6 +2,8 @@ name: foofledrive version: ${project.version} main: ga.ganma.foofledrive.Foofledrive api-version: 1.13 +depend: + - Vault commands: fl: description: ender cloud main command. diff --git a/target/classes/ga/ganma/ender/Ender.class b/target/classes/ga/ganma/ender/Ender.class deleted file mode 100644 index 124a88f..0000000 Binary files a/target/classes/ga/ganma/ender/Ender.class and /dev/null differ diff --git a/target/classes/ga/ganma/ender/Endercloud.class b/target/classes/ga/ganma/ender/Endercloud.class index 4209dc8..50916a0 100644 Binary files a/target/classes/ga/ganma/ender/Endercloud.class and b/target/classes/ga/ganma/ender/Endercloud.class differ diff --git a/target/classes/ga/ganma/ender/Filerelation.class b/target/classes/ga/ganma/ender/Filerelation.class index 2854b58..685ec62 100644 Binary files a/target/classes/ga/ganma/ender/Filerelation.class and b/target/classes/ga/ganma/ender/Filerelation.class differ diff --git a/target/classes/ga/ganma/ender/InventorytoString.class b/target/classes/ga/ganma/ender/InventorytoString.class deleted file mode 100644 index 72359a1..0000000 Binary files a/target/classes/ga/ganma/ender/InventorytoString.class and /dev/null differ diff --git a/target/classes/ga/ganma/ender/Listener/GetEvent$1.class b/target/classes/ga/ganma/ender/Listener/GetEvent$1.class index 7a8df94..7d04560 100644 Binary files a/target/classes/ga/ganma/ender/Listener/GetEvent$1.class and b/target/classes/ga/ganma/ender/Listener/GetEvent$1.class differ diff --git a/target/classes/ga/ganma/ender/Listener/GetEvent.class b/target/classes/ga/ganma/ender/Listener/GetEvent.class index b3a8546..b178b9b 100644 Binary files a/target/classes/ga/ganma/ender/Listener/GetEvent.class and b/target/classes/ga/ganma/ender/Listener/GetEvent.class differ diff --git a/target/classes/ga/ganma/ender/command/CommandMain.class b/target/classes/ga/ganma/ender/command/CommandMain.class index 23d3229..49ba560 100644 Binary files a/target/classes/ga/ganma/ender/command/CommandMain.class and b/target/classes/ga/ganma/ender/command/CommandMain.class differ diff --git a/target/classes/ga/ganma/ender/inventoryRelation/InventoryAPI$1.class b/target/classes/ga/ganma/ender/inventoryRelation/InventoryAPI$1.class index 24e17d6..e6e0cc4 100644 Binary files a/target/classes/ga/ganma/ender/inventoryRelation/InventoryAPI$1.class and b/target/classes/ga/ganma/ender/inventoryRelation/InventoryAPI$1.class differ diff --git a/target/classes/ga/ganma/ender/inventoryRelation/InventoryAPI.class b/target/classes/ga/ganma/ender/inventoryRelation/InventoryAPI.class index 80e1cae..1627b74 100644 Binary files a/target/classes/ga/ganma/ender/inventoryRelation/InventoryAPI.class and b/target/classes/ga/ganma/ender/inventoryRelation/InventoryAPI.class differ diff --git a/target/classes/ga/ganma/ender/inventoryRelation/InventoryEncoder.class b/target/classes/ga/ganma/ender/inventoryRelation/InventoryEncoder.class index 320b248..df68236 100644 Binary files a/target/classes/ga/ganma/ender/inventoryRelation/InventoryEncoder.class and b/target/classes/ga/ganma/ender/inventoryRelation/InventoryEncoder.class differ diff --git a/target/classes/ga/ganma/foofledrive/Filerelation.class b/target/classes/ga/ganma/foofledrive/Filerelation.class index 2886bc0..5e0a10e 100644 Binary files a/target/classes/ga/ganma/foofledrive/Filerelation.class and b/target/classes/ga/ganma/foofledrive/Filerelation.class differ diff --git a/target/classes/ga/ganma/foofledrive/Foofledrive.class b/target/classes/ga/ganma/foofledrive/Foofledrive.class index fb34d68..dde1269 100644 Binary files a/target/classes/ga/ganma/foofledrive/Foofledrive.class and b/target/classes/ga/ganma/foofledrive/Foofledrive.class differ diff --git a/target/classes/ga/ganma/foofledrive/Listener/GUIEvent$1.class b/target/classes/ga/ganma/foofledrive/Listener/GUIEvent$1.class index c04fbf3..1df9f89 100644 Binary files a/target/classes/ga/ganma/foofledrive/Listener/GUIEvent$1.class and b/target/classes/ga/ganma/foofledrive/Listener/GUIEvent$1.class differ diff --git a/target/classes/ga/ganma/foofledrive/Listener/GUIEvent.class b/target/classes/ga/ganma/foofledrive/Listener/GUIEvent.class index 66e7f46..42bc3fe 100644 Binary files a/target/classes/ga/ganma/foofledrive/Listener/GUIEvent.class and b/target/classes/ga/ganma/foofledrive/Listener/GUIEvent.class differ diff --git a/target/classes/ga/ganma/foofledrive/Listener/GetEvent.class b/target/classes/ga/ganma/foofledrive/Listener/GetEvent.class index a533507..aa7fff5 100644 Binary files a/target/classes/ga/ganma/foofledrive/Listener/GetEvent.class and b/target/classes/ga/ganma/foofledrive/Listener/GetEvent.class differ diff --git a/target/classes/ga/ganma/foofledrive/bukkitRunnable/Runnable.class b/target/classes/ga/ganma/foofledrive/bukkitRunnable/Runnable.class deleted file mode 100644 index bdb13db..0000000 Binary files a/target/classes/ga/ganma/foofledrive/bukkitRunnable/Runnable.class and /dev/null differ diff --git a/target/classes/ga/ganma/foofledrive/command/CommandMain.class b/target/classes/ga/ganma/foofledrive/command/CommandMain.class index 8a11cdf..5f4d00d 100644 Binary files a/target/classes/ga/ganma/foofledrive/command/CommandMain.class and b/target/classes/ga/ganma/foofledrive/command/CommandMain.class differ diff --git a/target/classes/ga/ganma/foofledrive/command/Subplan.class b/target/classes/ga/ganma/foofledrive/command/Subplan.class index 0bd3029..58f664b 100644 Binary files a/target/classes/ga/ganma/foofledrive/command/Subplan.class and b/target/classes/ga/ganma/foofledrive/command/Subplan.class differ diff --git a/target/classes/ga/ganma/foofledrive/economy/Economy$1.class b/target/classes/ga/ganma/foofledrive/economy/Economy$1.class index 2be0470..8ffd4fa 100644 Binary files a/target/classes/ga/ganma/foofledrive/economy/Economy$1.class and b/target/classes/ga/ganma/foofledrive/economy/Economy$1.class differ diff --git a/target/classes/ga/ganma/foofledrive/economy/Economy.class b/target/classes/ga/ganma/foofledrive/economy/Economy.class index bb47666..9b6926a 100644 Binary files a/target/classes/ga/ganma/foofledrive/economy/Economy.class and b/target/classes/ga/ganma/foofledrive/economy/Economy.class differ diff --git a/target/classes/ga/ganma/foofledrive/inventoryRelation/InventoryAPI$1.class b/target/classes/ga/ganma/foofledrive/inventoryRelation/InventoryAPI$1.class index f851db4..0fe5faf 100644 Binary files a/target/classes/ga/ganma/foofledrive/inventoryRelation/InventoryAPI$1.class and b/target/classes/ga/ganma/foofledrive/inventoryRelation/InventoryAPI$1.class differ diff --git a/target/classes/ga/ganma/foofledrive/inventoryRelation/InventoryAPI.class b/target/classes/ga/ganma/foofledrive/inventoryRelation/InventoryAPI.class index 75ec84f..74f14c5 100644 Binary files a/target/classes/ga/ganma/foofledrive/inventoryRelation/InventoryAPI.class and b/target/classes/ga/ganma/foofledrive/inventoryRelation/InventoryAPI.class differ diff --git a/target/classes/ga/ganma/foofledrive/inventoryRelation/InventoryEncoder.class b/target/classes/ga/ganma/foofledrive/inventoryRelation/InventoryEncoder.class index 4470db9..3e01c96 100644 Binary files a/target/classes/ga/ganma/foofledrive/inventoryRelation/InventoryEncoder.class and b/target/classes/ga/ganma/foofledrive/inventoryRelation/InventoryEncoder.class differ diff --git a/target/ender-0.0.1.jar b/target/ender-0.0.1.jar deleted file mode 100644 index 9fb0038..0000000 Binary files a/target/ender-0.0.1.jar and /dev/null differ diff --git a/target/endercloud-0.0.1.jar b/target/endercloud-0.0.1.jar deleted file mode 100644 index 132ca82..0000000 Binary files a/target/endercloud-0.0.1.jar and /dev/null differ diff --git "a/target/endercloud-0.7.2\316\262.jar" "b/target/endercloud-0.7.2\316\262.jar" deleted file mode 100644 index ba02ceb..0000000 Binary files "a/target/endercloud-0.7.2\316\262.jar" and /dev/null differ diff --git "a/target/foofledrive-0.7.3\316\262.jar" "b/target/foofledrive-0.7.3\316\262.jar" deleted file mode 100644 index d57f2a7..0000000 Binary files "a/target/foofledrive-0.7.3\316\262.jar" and /dev/null differ diff --git "a/target/foofledrive-0.7.9\316\262.jar" "b/target/foofledrive-0.7.9\316\262.jar" index 874b986..ab69510 100644 Binary files "a/target/foofledrive-0.7.9\316\262.jar" and "b/target/foofledrive-0.7.9\316\262.jar" differ diff --git a/target/maven-archiver/pom.properties b/target/maven-archiver/pom.properties index ea93cfa..4573899 100644 --- a/target/maven-archiver/pom.properties +++ b/target/maven-archiver/pom.properties @@ -1,5 +1,5 @@ #Generated by Maven -#Sat Oct 05 22:36:13 JST 2019 +#Sun Mar 29 09:20:09 JST 2020 +version=0.7.9\u03B2 groupId=ga.ganma artifactId=foofledrive -version=0.7.9\u03B2 diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst index bae6fb4..ba62418 100644 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -1,17 +1,29 @@ -ga\ganma\foofledrive\playerdata\Playerdata.class +ga\ganma\ender\Listener\GetEvent$1.class +ga\ganma\ender\command\CommandMain.class ga\ganma\foofledrive\economy\Economy$1.class ga\ganma\foofledrive\Listener\GetEvent$1.class ga\ganma\foofledrive\Filerelation.class ga\ganma\foofledrive\command\CommandMain.class ga\ganma\foofledrive\command\Subopen.class +ga\ganma\ender\inventoryRelation\InventoryEncoder.class +ga\ganma\ender\command\Subopen.class +ga\ganma\ender\Listener\GUIEvent.class +ga\ganma\ender\inventoryRelation\InventoryAPI.class +ga\ganma\ender\Listener\GetEvent.class +ga\ganma\foofledrive\Listener\GUIEvent.class +ga\ganma\foofledrive\command\Subplan.class +ga\ganma\ender\playerdata\Playerdata.class +ga\ganma\foofledrive\Listener\GetEvent.class +ga\ganma\ender\plan.class +ga\ganma\foofledrive\playerdata\Playerdata.class +ga\ganma\ender\Endercloud.class ga\ganma\foofledrive\inventoryRelation\InventoryEncoder.class ga\ganma\foofledrive\Foofledrive.class +ga\ganma\ender\command\Subplan.class ga\ganma\foofledrive\inventoryRelation\InventoryAPI$1.class +ga\ganma\ender\inventoryRelation\InventoryAPI$1.class ga\ganma\foofledrive\economy\Economy.class -ga\ganma\foofledrive\Listener\GUIEvent.class ga\ganma\foofledrive\inventoryRelation\InventoryAPI.class ga\ganma\foofledrive\Listener\GUIEvent$1.class -ga\ganma\foofledrive\bukkitRunnable\Runnable.class -ga\ganma\foofledrive\command\Subplan.class -ga\ganma\foofledrive\Listener\GetEvent.class +ga\ganma\ender\Filerelation.class ga\ganma\foofledrive\plan.class diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst index a295b75..c9b2e6d 100644 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -1,13 +1,23 @@ -C:\Users\kaito\IdeaProjects\foofledrive\src\main\java\ga\ganma\foofledrive\economy\Economy.java -C:\Users\kaito\IdeaProjects\foofledrive\src\main\java\ga\ganma\foofledrive\Foofledrive.java -C:\Users\kaito\IdeaProjects\foofledrive\src\main\java\ga\ganma\foofledrive\inventoryRelation\InventoryEncoder.java -C:\Users\kaito\IdeaProjects\foofledrive\src\main\java\ga\ganma\foofledrive\Filerelation.java -C:\Users\kaito\IdeaProjects\foofledrive\src\main\java\ga\ganma\foofledrive\Listener\GetEvent.java -C:\Users\kaito\IdeaProjects\foofledrive\src\main\java\ga\ganma\foofledrive\command\Subplan.java -C:\Users\kaito\IdeaProjects\foofledrive\src\main\java\ga\ganma\foofledrive\command\CommandMain.java -C:\Users\kaito\IdeaProjects\foofledrive\src\main\java\ga\ganma\foofledrive\bukkitRunnable\Runnable.java -C:\Users\kaito\IdeaProjects\foofledrive\src\main\java\ga\ganma\foofledrive\command\Subopen.java -C:\Users\kaito\IdeaProjects\foofledrive\src\main\java\ga\ganma\foofledrive\plan.java -C:\Users\kaito\IdeaProjects\foofledrive\src\main\java\ga\ganma\foofledrive\playerdata\Playerdata.java -C:\Users\kaito\IdeaProjects\foofledrive\src\main\java\ga\ganma\foofledrive\inventoryRelation\InventoryAPI.java -C:\Users\kaito\IdeaProjects\foofledrive\src\main\java\ga\ganma\foofledrive\Listener\GUIEvent.java +D:\Users\terer\Documents\GitHub\foofledrive\src\main\java\ga\ganma\foofledrive\Listener\GetEvent.java +D:\Users\terer\Documents\GitHub\foofledrive\src\main\java\ga\ganma\ender\plan.java +D:\Users\terer\Documents\GitHub\foofledrive\src\main\java\ga\ganma\foofledrive\command\Subopen.java +D:\Users\terer\Documents\GitHub\foofledrive\src\main\java\ga\ganma\foofledrive\Listener\GUIEvent.java +D:\Users\terer\Documents\GitHub\foofledrive\src\main\java\ga\ganma\foofledrive\inventoryRelation\InventoryAPI.java +D:\Users\terer\Documents\GitHub\foofledrive\src\main\java\ga\ganma\foofledrive\plan.java +D:\Users\terer\Documents\GitHub\foofledrive\src\main\java\ga\ganma\foofledrive\Foofledrive.java +D:\Users\terer\Documents\GitHub\foofledrive\src\main\java\ga\ganma\ender\Filerelation.java +D:\Users\terer\Documents\GitHub\foofledrive\src\main\java\ga\ganma\ender\inventoryRelation\InventoryAPI.java +D:\Users\terer\Documents\GitHub\foofledrive\src\main\java\ga\ganma\ender\playerdata\Playerdata.java +D:\Users\terer\Documents\GitHub\foofledrive\src\main\java\ga\ganma\foofledrive\playerdata\Playerdata.java +D:\Users\terer\Documents\GitHub\foofledrive\src\main\java\ga\ganma\foofledrive\command\Subplan.java +D:\Users\terer\Documents\GitHub\foofledrive\src\main\java\ga\ganma\foofledrive\command\CommandMain.java +D:\Users\terer\Documents\GitHub\foofledrive\src\main\java\ga\ganma\ender\Endercloud.java +D:\Users\terer\Documents\GitHub\foofledrive\src\main\java\ga\ganma\foofledrive\Filerelation.java +D:\Users\terer\Documents\GitHub\foofledrive\src\main\java\ga\ganma\ender\command\CommandMain.java +D:\Users\terer\Documents\GitHub\foofledrive\src\main\java\ga\ganma\ender\inventoryRelation\InventoryEncoder.java +D:\Users\terer\Documents\GitHub\foofledrive\src\main\java\ga\ganma\ender\command\Subplan.java +D:\Users\terer\Documents\GitHub\foofledrive\src\main\java\ga\ganma\ender\Listener\GetEvent.java +D:\Users\terer\Documents\GitHub\foofledrive\src\main\java\ga\ganma\foofledrive\economy\Economy.java +D:\Users\terer\Documents\GitHub\foofledrive\src\main\java\ga\ganma\foofledrive\inventoryRelation\InventoryEncoder.java +D:\Users\terer\Documents\GitHub\foofledrive\src\main\java\ga\ganma\ender\Listener\GUIEvent.java +D:\Users\terer\Documents\GitHub\foofledrive\src\main\java\ga\ganma\ender\command\Subopen.java diff --git a/target/original-ender-0.0.1.jar b/target/original-ender-0.0.1.jar deleted file mode 100644 index 84619b4..0000000 Binary files a/target/original-ender-0.0.1.jar and /dev/null differ diff --git a/target/original-endercloud-0.0.1.jar b/target/original-endercloud-0.0.1.jar deleted file mode 100644 index 6d33f25..0000000 Binary files a/target/original-endercloud-0.0.1.jar and /dev/null differ diff --git "a/target/original-endercloud-0.7.2\316\262.jar" "b/target/original-endercloud-0.7.2\316\262.jar" deleted file mode 100644 index 194ef1b..0000000 Binary files "a/target/original-endercloud-0.7.2\316\262.jar" and /dev/null differ diff --git "a/target/original-foofledrive-0.7.3\316\262.jar" "b/target/original-foofledrive-0.7.3\316\262.jar" deleted file mode 100644 index 834cfb1..0000000 Binary files "a/target/original-foofledrive-0.7.3\316\262.jar" and /dev/null differ diff --git "a/target/original-foofledrive-0.7.9\316\262.jar" "b/target/original-foofledrive-0.7.9\316\262.jar" index 26869f3..842a0ed 100644 Binary files "a/target/original-foofledrive-0.7.9\316\262.jar" and "b/target/original-foofledrive-0.7.9\316\262.jar" differ