From 649392363fdfd898674b61c68447917dc5f886a1 Mon Sep 17 00:00:00 2001 From: DroppingAnvil Date: Mon, 18 Nov 2019 17:05:46 -0600 Subject: [PATCH] Randomized missions implemented! Signed-off-by: DroppingAnvil --- .../factions/missions/MissionGUI.java | 57 +++++++++---------- .../massivecraft/factions/util/Updater.java | 2 +- src/main/resources/config.yml | 7 ++- 3 files changed, 33 insertions(+), 33 deletions(-) diff --git a/src/main/java/com/massivecraft/factions/missions/MissionGUI.java b/src/main/java/com/massivecraft/factions/missions/MissionGUI.java index ad6c0b8f..5324a9b4 100644 --- a/src/main/java/com/massivecraft/factions/missions/MissionGUI.java +++ b/src/main/java/com/massivecraft/factions/missions/MissionGUI.java @@ -30,7 +30,30 @@ public class MissionGUI implements FactionGUI { @Override public void onClick(int slot, ClickType action) { + String missionName = slots.get(slot); + if (missionName == null) { + return; + } ConfigurationSection configurationSection = plugin.getConfig().getConfigurationSection("Missions"); + if (missionName.equals(plugin.color(FactionsPlugin.getInstance().getConfig().getString("Randomization.Start-Item.Allowed.Name")))) { + Mission pickedMission = null; + Set keys = plugin.getConfig().getConfigurationSection("Missions").getKeys(false); + while (pickedMission == null) { + Random r = new Random(); + int pick = r.nextInt(keys.size() - 1); + if (!keys.toArray()[pick].toString().equals("FillItem")) { + missionName = keys.toArray()[pick].toString(); + if (!fPlayer.getFaction().getMissions().keySet().contains(missionName)) { + pickedMission = new Mission(missionName, plugin.getConfig().getString("Missions." + missionName + ".Mission.Type")); + fPlayer.getFaction().getMissions().put(missionName, pickedMission); + fPlayer.msg(TL.MISSION_MISSION_STARTED, fPlayer.describeTo(fPlayer.getFaction()), plugin.color(plugin.getConfig().getString("Missions." + missionName + ".Name"))); + build(); + fPlayer.getPlayer().openInventory(inventory); + return; + } + } + } + } else if (plugin.getConfig().getBoolean("Randomization.Enabled")) {return;} if (configurationSection == null) { return; } @@ -39,13 +62,9 @@ public class MissionGUI implements FactionGUI { fPlayer.msg(TL.MISSION_MISSION_MAX_ALLOWED, max); return; } - String missionName = slots.get(slot); - if (missionName == null) { + if (missionName.equals(plugin.color(FactionsPlugin.getInstance().getConfig().getString("Randomization.Start-Item.Disallowed.Name")))) { return; } - //if (missionName.equals(plugin.color(FactionsPlugin.getInstance().getConfig().getString("Randomization.Start-Item.Disallowed.Name")))) { - //return; - //} if (fPlayer.getFaction().getMissions().containsKey(missionName)) { fPlayer.msg(TL.MISSION_MISSION_ACTIVE); return; @@ -65,24 +84,7 @@ public class MissionGUI implements FactionGUI { if (missionSection == null) { return; } - //Coming soon (: - //if (missionName.equals(plugin.color(FactionsPlugin.getInstance().getConfig().getString("Randomization.Start-Item.Allowed.Name")))) { - //Mission pickedMission = null; - //Set keys = plugin.getConfig().getConfigurationSection("Missions").getKeys(false); - //while (pickedMission == null) { - //Random r = new Random(); - //int pick = r.nextInt(keys.size() - 1); - //if (!keys.toArray()[pick].toString().equals("FillItem")) { - //missionName = keys.toArray()[pick].toString(); - //pickedMission = new Mission(missionName, plugin.getConfig().getString("Missions." + missionName + ".Mission.Type")); - //fPlayer.getFaction().getMissions().put(missionName, pickedMission); - //fPlayer.msg(TL.MISSION_MISSION_STARTED, fPlayer.describeTo(fPlayer.getFaction()), plugin.color(plugin.getConfig().getString("Missions." + missionName + ".Name"))); - //build(); - //fPlayer.getPlayer().openInventory(inventory); - //return; - //} - //} - //} + Mission mission = new Mission(missionName, missionSection.getString("Type")); fPlayer.getFaction().getMissions().put(missionName, mission); fPlayer.msg(TL.MISSION_MISSION_STARTED, fPlayer.describeTo(fPlayer.getFaction()), plugin.color(section.getString("Name"))); @@ -136,8 +138,7 @@ public class MissionGUI implements FactionGUI { start = XMaterial.matchXMaterial(plugin.getConfig().getString("Randomization.Start-Item.Allowed.Material")).parseItem(); meta = start.getItemMeta(); meta.setDisplayName(plugin.color(plugin.getConfig().getString("Randomization.Start-Item.Allowed.Name"))); - List loree = meta.getLore(); - loree.clear(); + List loree = new ArrayList<>(); for (String string : plugin.getConfig().getStringList("Randomization.Start-Item.Allowed.Lore")) { loree.add(plugin.color(string)); } @@ -147,8 +148,7 @@ public class MissionGUI implements FactionGUI { start = XMaterial.matchXMaterial(plugin.getConfig().getString("Randomization.Start-Item.Disallowed.Material")).parseItem(); meta = start.getItemMeta(); meta.setDisplayName(plugin.color(plugin.getConfig().getString("Randomization.Start-Item.Disallowed.Name"))); - List lore = meta.getLore(); - lore.clear(); + List lore = new ArrayList<>(); for (String string : plugin.getConfig().getStringList("Randomization.Start-Item.Disallowed.Lore")) { lore.add(plugin.color(string).replace("%reason%", TL.MISSION_MISSION_ALL_COMPLETED.toString())); } @@ -159,8 +159,7 @@ public class MissionGUI implements FactionGUI { start = XMaterial.matchXMaterial(plugin.getConfig().getString("Randomization.Start-Item.Disallowed.Material")).parseItem(); meta = start.getItemMeta(); meta.setDisplayName(plugin.color(plugin.getConfig().getString("Randomization.Start-Item.Disallowed.Name"))); - List lore = meta.getLore(); - lore.clear(); + List lore = new ArrayList<>(); for (String string : plugin.getConfig().getStringList("Randomization.Start-Item.Disallowed.Lore")) { lore.add(plugin.color(string).replace("%reason%", FactionsPlugin.getInstance().txt.parse(TL.MISSION_MISSION_MAX_ALLOWED.toString(), plugin.getConfig().getInt("MaximumMissionsAllowedAtOnce")))); } diff --git a/src/main/java/com/massivecraft/factions/util/Updater.java b/src/main/java/com/massivecraft/factions/util/Updater.java index 95678a8e..a45f484e 100644 --- a/src/main/java/com/massivecraft/factions/util/Updater.java +++ b/src/main/java/com/massivecraft/factions/util/Updater.java @@ -33,7 +33,7 @@ public class Updater { lore.clear(); lore.add("&4%reason%"); conf.set("Randomization.Start-Item.Disallowed.Lore", lore); - conf.set("Randomization.Start-Item.Slot", 23); + conf.set("Randomization.Start-Item.Slot", 28); conf.set("Config-Version", 1.1); version = 1.1; diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 8992309b..ccb1fdeb 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -748,7 +748,7 @@ f-points: # | Faction Missions | # # +------------------------------------------------------+ # ############################################################ -MissionGUISize: 3 +MissionGUISize: 4 Missions-Enabled: true Missions-GUI-Title: '&8&lFaction Missions' MaximumMissionsAllowedAtOnce: 1 @@ -767,14 +767,15 @@ Randomization: Material: GRAY_STAINED_GLASS_PANE Lore: - '&4%reason%' - Slot: 23 + # in default configuration you will need to change the GUI size to 4 and for best results change the fillitem rows to 4 as well. + Slot: 31 DenyMissionsMoreThenOnce: true #this setting to true, means that if they complete a mission they cannot redo the same mission #Mission Types: KILL, MINE, PLACE, FISH, TAME, ENCHANT, CONSUME Missions: FillItem: Material: BLACK_STAINED_GLASS_PANE - Rows: 3 + Rows: 4 sugarcane: Slot: 11 Material: "SUGAR_CANE"