Faction Missions Implemented + Allowed Console to give points now
This commit is contained in:
parent
92d46f91f4
commit
769394a058
@ -3,6 +3,7 @@ package com.massivecraft.factions;
|
||||
import com.massivecraft.factions.event.FactionDisbandEvent.PlayerDisbandReason;
|
||||
import com.massivecraft.factions.iface.EconomyParticipator;
|
||||
import com.massivecraft.factions.iface.RelationParticipator;
|
||||
import com.massivecraft.factions.missions.Mission;
|
||||
import com.massivecraft.factions.struct.BanInfo;
|
||||
import com.massivecraft.factions.struct.Relation;
|
||||
import com.massivecraft.factions.struct.Role;
|
||||
@ -24,6 +25,8 @@ public interface Faction extends EconomyParticipator {
|
||||
|
||||
boolean altInvited(FPlayer fplayer);
|
||||
|
||||
Map<String, Mission> getMissions();
|
||||
|
||||
void deinviteAlt(FPlayer alt);
|
||||
|
||||
void deinviteAllAlts();
|
||||
|
@ -10,6 +10,7 @@ import com.massivecraft.factions.integration.Econ;
|
||||
import com.massivecraft.factions.integration.Worldguard;
|
||||
import com.massivecraft.factions.integration.dynmap.EngineDynmap;
|
||||
import com.massivecraft.factions.listeners.*;
|
||||
import com.massivecraft.factions.missions.MissionHandler;
|
||||
import com.massivecraft.factions.shop.ShopClickPersistence;
|
||||
import com.massivecraft.factions.shop.ShopConfig;
|
||||
import com.massivecraft.factions.struct.ChatMode;
|
||||
@ -253,6 +254,7 @@ public class P extends MPlugin {
|
||||
new CropUpgrades(),
|
||||
new RedstoneUpgrade(),
|
||||
new ShopClickPersistence(),
|
||||
new MissionHandler(this),
|
||||
new SpawnerUpgrades()
|
||||
};
|
||||
|
||||
|
@ -13,6 +13,7 @@ import com.massivecraft.factions.cmd.relational.CmdRelationNeutral;
|
||||
import com.massivecraft.factions.cmd.relational.CmdRelationTruce;
|
||||
import com.massivecraft.factions.cmd.roles.CmdDemote;
|
||||
import com.massivecraft.factions.cmd.roles.CmdPromote;
|
||||
import com.massivecraft.factions.missions.CmdMissions;
|
||||
import com.massivecraft.factions.shop.CmdShop;
|
||||
import com.massivecraft.factions.zcore.util.TL;
|
||||
import org.bukkit.Bukkit;
|
||||
@ -129,6 +130,7 @@ public class FCmdRoot extends FCommand {
|
||||
public CmdLogout cmdLogout = new CmdLogout();
|
||||
public CmdNotifications cmdNotifications = new CmdNotifications();
|
||||
public CmdShop cmdShop = new CmdShop();
|
||||
public CmdMissions cmdMissions = new CmdMissions();
|
||||
|
||||
|
||||
|
||||
@ -250,6 +252,10 @@ public class FCmdRoot extends FCommand {
|
||||
this.addSubCommand(this.cmdFGlobal);
|
||||
this.addSubCommand(this.cmdViewChest);
|
||||
|
||||
if(P.p.getConfig().getBoolean("Missions-Enabled")){
|
||||
this.addSubCommand(this.cmdMissions);
|
||||
}
|
||||
|
||||
if(P.p.getConfig().getBoolean("F-Shop.Enabled")){
|
||||
this.addSubCommand(this.cmdShop);
|
||||
}
|
||||
|
@ -32,7 +32,7 @@ public class CmdPoints extends FCommand {
|
||||
@Override
|
||||
public void perform() {
|
||||
if (!P.p.getConfig().getBoolean("f-points.Enabled", true)) {
|
||||
fme.msg(TL.GENERIC_DISABLED);
|
||||
msg(TL.GENERIC_DISABLED);
|
||||
return;
|
||||
}
|
||||
this.commandChain.add(this);
|
||||
|
@ -45,16 +45,17 @@ public class CmdPointsAdd extends FCommand {
|
||||
}
|
||||
|
||||
if (faction == null || faction.isWilderness()) {
|
||||
fme.msg(TL.COMMAND_POINTS_FAILURE.toString().replace("{faction}", args.get(0)));
|
||||
msg(TL.COMMAND_POINTS_FAILURE.toString().replace("{faction}", args.get(0)));
|
||||
return;
|
||||
}
|
||||
if(argAsInt(1) <= 0){
|
||||
fme.msg(TL.COMMAND_POINTS_INSUFFICIENT);
|
||||
msg(TL.COMMAND_POINTS_INSUFFICIENT);
|
||||
return;
|
||||
}
|
||||
|
||||
faction.setPoints(faction.getPoints() + argAsInt(1));
|
||||
fme.msg(TL.COMMAND_POINTS_SUCCESSFUL, argAsInt(1), faction.getTag(), faction.getPoints());
|
||||
|
||||
msg(TL.COMMAND_POINTS_SUCCESSFUL, argAsInt(1), faction.getTag(), faction.getPoints());
|
||||
}
|
||||
|
||||
|
||||
|
@ -43,17 +43,17 @@ public class CmdPointsRemove extends FCommand {
|
||||
}
|
||||
|
||||
if (faction == null || faction.isWilderness()) {
|
||||
fme.msg(TL.COMMAND_POINTS_FAILURE.toString().replace("{faction}", args.get(0)));
|
||||
msg(TL.COMMAND_POINTS_FAILURE.toString().replace("{faction}", args.get(0)));
|
||||
return;
|
||||
}
|
||||
|
||||
if(argAsInt(1) <= 0){
|
||||
fme.msg(TL.COMMAND_POINTS_INSUFFICIENT);
|
||||
msg(TL.COMMAND_POINTS_INSUFFICIENT);
|
||||
return;
|
||||
}
|
||||
|
||||
faction.setPoints(faction.getPoints() - argAsInt(1));
|
||||
fme.msg(TL.COMMAND_REMOVEPOINTS_SUCCESSFUL, argAsInt(1), faction.getTag(), faction.getPoints());
|
||||
msg(TL.COMMAND_REMOVEPOINTS_SUCCESSFUL, argAsInt(1), faction.getTag(), faction.getPoints());
|
||||
}
|
||||
|
||||
|
||||
|
@ -42,17 +42,17 @@ public class CmdPointsSet extends FCommand {
|
||||
}
|
||||
|
||||
if (faction == null || faction.isWilderness()) {
|
||||
fme.msg(TL.COMMAND_POINTS_FAILURE.toString().replace("{faction}", args.get(0)));
|
||||
msg(TL.COMMAND_POINTS_FAILURE.toString().replace("{faction}", args.get(0)));
|
||||
return;
|
||||
}
|
||||
|
||||
if(argAsInt(1) < 0){
|
||||
fme.msg(TL.COMMAND_POINTS_INSUFFICIENT);
|
||||
msg(TL.COMMAND_POINTS_INSUFFICIENT);
|
||||
return;
|
||||
}
|
||||
|
||||
faction.setPoints(argAsInt(1));
|
||||
fme.msg(TL.COMMAND_SETPOINTS_SUCCESSFUL, argAsInt(1), faction.getTag(), faction.getPoints());
|
||||
msg(TL.COMMAND_SETPOINTS_SUCCESSFUL, argAsInt(1), faction.getTag(), faction.getPoints());
|
||||
}
|
||||
|
||||
|
||||
|
@ -0,0 +1,39 @@
|
||||
package com.massivecraft.factions.missions;
|
||||
|
||||
import com.massivecraft.factions.cmd.FCommand;
|
||||
import com.massivecraft.factions.struct.Permission;
|
||||
import com.massivecraft.factions.zcore.util.TL;
|
||||
|
||||
public class CmdMissions extends FCommand {
|
||||
|
||||
public CmdMissions() {
|
||||
this.aliases.add("missions");
|
||||
this.aliases.add("mission");
|
||||
|
||||
this.permission = Permission.MISSIONS.node;
|
||||
|
||||
this.disableOnLock = true;
|
||||
this.disableOnSpam = true;
|
||||
|
||||
senderMustBePlayer = true;
|
||||
senderMustBeMember = true;
|
||||
senderMustBeModerator = false;
|
||||
senderMustBeAdmin = false;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void perform() {
|
||||
if (myFaction == null) {
|
||||
return;
|
||||
}
|
||||
final MissionGUI missionsGUI = new MissionGUI(p, fme);
|
||||
missionsGUI.build();
|
||||
fme.getPlayer().openInventory(missionsGUI.getInventory());
|
||||
}
|
||||
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_MISSION_DESCRIPTION;
|
||||
}
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
package com.massivecraft.factions.missions;
|
||||
|
||||
public class Mission {
|
||||
private long progress;
|
||||
private String name;
|
||||
private String type;
|
||||
|
||||
public Mission(String name, String type) {
|
||||
this.name = name;
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public long getProgress() {
|
||||
return progress;
|
||||
}
|
||||
|
||||
public void incrementProgress() {
|
||||
++progress;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
}
|
106
src/main/java/com/massivecraft/factions/missions/MissionGUI.java
Normal file
106
src/main/java/com/massivecraft/factions/missions/MissionGUI.java
Normal file
@ -0,0 +1,106 @@
|
||||
package com.massivecraft.factions.missions;
|
||||
|
||||
import com.massivecraft.factions.FPlayer;
|
||||
import com.massivecraft.factions.P;
|
||||
import com.massivecraft.factions.util.FactionGUI;
|
||||
import com.massivecraft.factions.util.XMaterial;
|
||||
import com.massivecraft.factions.zcore.util.TL;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.configuration.ConfigurationSection;
|
||||
import org.bukkit.enchantments.Enchantment;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
import org.bukkit.inventory.ItemFlag;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class MissionGUI implements FactionGUI {
|
||||
private P plugin;
|
||||
private FPlayer fPlayer;
|
||||
private Inventory inventory;
|
||||
private Map<Integer, String> slots;
|
||||
|
||||
public MissionGUI(P plugin, FPlayer fPlayer) {
|
||||
this.slots = new HashMap<>();
|
||||
this.plugin = plugin;
|
||||
this.fPlayer = fPlayer;
|
||||
this.inventory = plugin.getServer().createInventory(this, plugin.getConfig().getInt("MissionGUISize") * 9, plugin.color(plugin.getConfig().getString("Missions-GUI-Title")));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(int slot, ClickType action) {
|
||||
ConfigurationSection configurationSection = plugin.getConfig().getConfigurationSection("Missions");
|
||||
if (configurationSection == null) {
|
||||
return;
|
||||
}
|
||||
int max = plugin.getConfig().getInt("MaximumMissionsAllowedAtOnce");
|
||||
if (fPlayer.getFaction().getMissions().size() >= max) {
|
||||
fPlayer.msg(TL.MISSION_MISSION_MAX_ALLOWED, max);
|
||||
return;
|
||||
}
|
||||
String missionName = slots.get(slot);
|
||||
if (missionName == null) {
|
||||
return;
|
||||
}
|
||||
if (fPlayer.getFaction().getMissions().containsKey(missionName)) {
|
||||
fPlayer.msg(TL.MISSION_MISSION_ACTIVE);
|
||||
return;
|
||||
}
|
||||
ConfigurationSection section = configurationSection.getConfigurationSection(missionName);
|
||||
if (section == null) {
|
||||
return;
|
||||
}
|
||||
ConfigurationSection missionSection = section.getConfigurationSection("Mission");
|
||||
if (missionSection == null) {
|
||||
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")));
|
||||
build();
|
||||
fPlayer.getPlayer().openInventory(inventory);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void build() {
|
||||
ConfigurationSection configurationSection = plugin.getConfig().getConfigurationSection("Missions");
|
||||
if (configurationSection == null) {
|
||||
return;
|
||||
}
|
||||
for (String key : configurationSection.getKeys(false)) {
|
||||
ConfigurationSection section = configurationSection.getConfigurationSection(key);
|
||||
int slot = section.getInt("Slot");
|
||||
|
||||
ItemStack itemStack = XMaterial.matchXMaterial(section.getString("Material")).parseItem();
|
||||
ItemMeta itemMeta = itemStack.getItemMeta();
|
||||
itemMeta.setDisplayName(ChatColor.translateAlternateColorCodes('&', section.getString("Name")));
|
||||
List<String> loreLines = new ArrayList<>();
|
||||
for (String line : section.getStringList("Lore")) {
|
||||
loreLines.add(ChatColor.translateAlternateColorCodes('&', line));
|
||||
}
|
||||
if (fPlayer.getFaction().getMissions().containsKey(key)) {
|
||||
Mission mission = fPlayer.getFaction().getMissions().get(key);
|
||||
itemMeta.addEnchant(Enchantment.SILK_TOUCH, 1, true);
|
||||
itemMeta.addItemFlags(ItemFlag.HIDE_ENCHANTS);
|
||||
loreLines.add("");
|
||||
loreLines.add(plugin.color(plugin.getConfig().getString("Mission-Progress-Format")
|
||||
.replace("{progress}", String.valueOf(mission.getProgress()))
|
||||
.replace("{total}", String.valueOf(section.getConfigurationSection("Mission").get("Amount")))));
|
||||
}
|
||||
itemMeta.setLore(loreLines);
|
||||
itemStack.setItemMeta(itemMeta);
|
||||
inventory.setItem(slot, itemStack);
|
||||
slots.put(slot, key);
|
||||
}
|
||||
}
|
||||
|
||||
public Inventory getInventory() {
|
||||
return inventory;
|
||||
}
|
||||
}
|
@ -0,0 +1,108 @@
|
||||
package com.massivecraft.factions.missions;
|
||||
|
||||
import com.massivecraft.factions.FPlayer;
|
||||
import com.massivecraft.factions.FPlayers;
|
||||
import com.massivecraft.factions.P;
|
||||
import com.massivecraft.factions.zcore.util.TL;
|
||||
import org.bukkit.configuration.ConfigurationSection;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.block.BlockBreakEvent;
|
||||
import org.bukkit.event.block.BlockPlaceEvent;
|
||||
import org.bukkit.event.entity.EntityDeathEvent;
|
||||
import org.bukkit.event.player.PlayerFishEvent;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class MissionHandler implements Listener {
|
||||
|
||||
private P plugin;
|
||||
|
||||
public MissionHandler(P plugin){
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onEntityDeath(EntityDeathEvent event) {
|
||||
if (event.getEntity() == null || event.getEntity().getKiller() == null) {
|
||||
return;
|
||||
}
|
||||
FPlayer fPlayer = FPlayers.getInstance().getByPlayer(event.getEntity().getKiller());
|
||||
if (fPlayer == null) {
|
||||
return;
|
||||
}
|
||||
List<Mission> missions = fPlayer.getFaction().getMissions().values().stream().filter(mission -> mission.getType().equalsIgnoreCase("kill")).collect(Collectors.toList());
|
||||
for (Mission mission2 : missions) {
|
||||
ConfigurationSection section = plugin.getConfig().getConfigurationSection("Missions").getConfigurationSection(mission2.getName());
|
||||
if (!event.getEntityType().toString().equals(section.getConfigurationSection("Mission").getString("EntityType"))) {
|
||||
continue;
|
||||
}
|
||||
mission2.incrementProgress();
|
||||
checkIfDone(fPlayer, mission2, section);
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onBlockBreak(BlockBreakEvent event) {
|
||||
FPlayer fPlayer = FPlayers.getInstance().getByPlayer(event.getPlayer());
|
||||
if (fPlayer == null) {
|
||||
return;
|
||||
}
|
||||
List<Mission> missions = fPlayer.getFaction().getMissions().values().stream().filter(mission -> mission.getType().equalsIgnoreCase("mine")).collect(Collectors.toList());
|
||||
for (Mission mission2 : missions) {
|
||||
ConfigurationSection section = plugin.getConfig().getConfigurationSection("Missions").getConfigurationSection(mission2.getName());
|
||||
if (!event.getBlock().getType().toString().equals(section.getConfigurationSection("Mission").getString("Material"))) {
|
||||
continue;
|
||||
}
|
||||
mission2.incrementProgress();
|
||||
checkIfDone(fPlayer, mission2, section);
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onBlockPlace(BlockPlaceEvent event) {
|
||||
FPlayer fPlayer = FPlayers.getInstance().getByPlayer(event.getPlayer());
|
||||
if (fPlayer == null) {
|
||||
return;
|
||||
}
|
||||
List<Mission> missions = fPlayer.getFaction().getMissions().values().stream().filter(mission -> mission.getType().equalsIgnoreCase("place")).collect(Collectors.toList());
|
||||
for (Mission mission2 : missions) {
|
||||
ConfigurationSection section = plugin.getConfig().getConfigurationSection("Missions").getConfigurationSection(mission2.getName());
|
||||
if (!event.getBlock().getType().toString().equals(section.getConfigurationSection("Mission").getString("Material"))) {
|
||||
continue;
|
||||
}
|
||||
mission2.incrementProgress();
|
||||
checkIfDone(fPlayer, mission2, section);
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onPlayerFish(PlayerFishEvent event) {
|
||||
if (event.getState() != PlayerFishEvent.State.CAUGHT_FISH) {
|
||||
return;
|
||||
}
|
||||
FPlayer fPlayer = FPlayers.getInstance().getByPlayer(event.getPlayer());
|
||||
if (fPlayer == null) {
|
||||
return;
|
||||
}
|
||||
List<Mission> missions = fPlayer.getFaction().getMissions().values().stream().filter(mission -> mission.getType().equalsIgnoreCase("fish")).collect(Collectors.toList());
|
||||
for (Mission mission2 : missions) {
|
||||
ConfigurationSection section = plugin.getConfig().getConfigurationSection("Missions").getConfigurationSection(mission2.getName());
|
||||
mission2.incrementProgress();
|
||||
checkIfDone(fPlayer, mission2, section);
|
||||
}
|
||||
}
|
||||
|
||||
private void checkIfDone(FPlayer fPlayer, Mission mission, ConfigurationSection section) {
|
||||
if (mission.getProgress() < section.getConfigurationSection("Mission").getLong("Amount")) {
|
||||
return;
|
||||
}
|
||||
for (String command : section.getConfigurationSection("Reward").getStringList("Commands")) {
|
||||
P.p.getServer().dispatchCommand(P.p.getServer().getConsoleSender(), command.replace("%faction%", fPlayer.getFaction().getTag()));
|
||||
}
|
||||
fPlayer.getFaction().getMissions().remove(mission.getName());
|
||||
fPlayer.getFaction().msg(TL.MISSION_MISSION_FINISHED, plugin.color(section.getString("Name")));
|
||||
}
|
||||
}
|
@ -53,6 +53,7 @@ public enum Permission {
|
||||
COLEADER("coleader"),
|
||||
MOD_ANY("mod.any"),
|
||||
COLEADER_ANY("coleader.any"),
|
||||
MISSIONS("missions"),
|
||||
MODIFY_POWER("modifypower"),
|
||||
MONEY_BALANCE("money.balance"),
|
||||
MONEY_BALANCE_ANY("money.balance.any"),
|
||||
|
@ -7,6 +7,7 @@ import com.massivecraft.factions.event.FactionDisbandEvent.PlayerDisbandReason;
|
||||
import com.massivecraft.factions.iface.EconomyParticipator;
|
||||
import com.massivecraft.factions.iface.RelationParticipator;
|
||||
import com.massivecraft.factions.integration.Econ;
|
||||
import com.massivecraft.factions.missions.Mission;
|
||||
import com.massivecraft.factions.scoreboards.FTeamWrapper;
|
||||
import com.massivecraft.factions.struct.BanInfo;
|
||||
import com.massivecraft.factions.struct.Permission;
|
||||
@ -72,6 +73,7 @@ public abstract class MemoryFaction implements Faction, EconomyParticipator {
|
||||
private long lastDeath;
|
||||
private int strikes = 0;
|
||||
private int points = 0;
|
||||
private Map<String, Mission> missions = new ConcurrentHashMap<>();
|
||||
|
||||
|
||||
// -------------------------------------------- //
|
||||
@ -91,6 +93,7 @@ public abstract class MemoryFaction implements Faction, EconomyParticipator {
|
||||
this.permanent = false;
|
||||
this.money = 0.0;
|
||||
this.powerBoost = 0.0;
|
||||
this.missions = new ConcurrentHashMap<>();
|
||||
this.foundedDate = System.currentTimeMillis();
|
||||
this.maxVaults = Conf.defaultMaxVaults;
|
||||
this.defaultRole = Role.RECRUIT;
|
||||
@ -111,6 +114,7 @@ public abstract class MemoryFaction implements Faction, EconomyParticipator {
|
||||
lastPlayerLoggedOffTime = old.lastPlayerLoggedOffTime;
|
||||
money = old.money;
|
||||
powerBoost = old.powerBoost;
|
||||
missions = new ConcurrentHashMap<>();
|
||||
relationWish = old.relationWish;
|
||||
claimOwnership = old.claimOwnership;
|
||||
fplayers = new HashSet<>();
|
||||
@ -1159,6 +1163,12 @@ public abstract class MemoryFaction implements Faction, EconomyParticipator {
|
||||
return claimOwnership;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Map<String, Mission> getMissions() {
|
||||
return this.missions;
|
||||
}
|
||||
|
||||
public void clearAllClaimOwnership() {
|
||||
claimOwnership.clear();
|
||||
}
|
||||
|
@ -944,6 +944,13 @@ public enum TL {
|
||||
GENERIC_PLACEHOLDER("<This is a placeholder for a message you should not see>"),
|
||||
GENERIC_NOTENOUGHMONEY("&cYou dont have enough money!"),
|
||||
GENERIC_MONEYTAKE("&c{amount} has been taken from your account."),
|
||||
|
||||
|
||||
MISSION_MISSION_STARTED("&f%1$s &dstarted the %2$s &fmission"),
|
||||
MISSION_MISSION_ACTIVE("&c&l[!] &7This mission is currently active!"),
|
||||
MISSION_MISSION_MAX_ALLOWED("&c&l[!] &7You may not have more then &b%1$s &7missions active at once."),
|
||||
MISSION_MISSION_FINISHED("&c&l[!] &7Your faction has successfully completed %1$s mission!"),
|
||||
COMMAND_MISSION_DESCRIPTION("Opens missions gui"),
|
||||
// F Global \\
|
||||
|
||||
|
||||
|
@ -696,6 +696,55 @@ f-grace:
|
||||
f-points:
|
||||
Enabled: true
|
||||
|
||||
############################################################
|
||||
# +------------------------------------------------------+ #
|
||||
# | Faction Missions | #
|
||||
# +------------------------------------------------------+ #
|
||||
############################################################
|
||||
MissionGUISize: 3
|
||||
Missions-Enabled: true
|
||||
Missions-GUI-Title: '&bFaction Missions'
|
||||
MaximumMissionsAllowedAtOnce: 1
|
||||
Mission-Progress-Format: '&b&lProgression: &f{progress}&7/&e{total}'
|
||||
|
||||
#Mission Types: KILL, MINE, FISH
|
||||
Missions:
|
||||
sugarcane:
|
||||
Slot: 11
|
||||
Material: "SUGAR_CANE"
|
||||
Name: "&f10,000 &2Sugar Cane"
|
||||
Lore:
|
||||
- "&b&lMine &f&n10,000&r &2Sugar Cane"
|
||||
Mission:
|
||||
Type: "MINE"
|
||||
Material: "SUGAR_CANE_BLOCK"
|
||||
Amount: 10000
|
||||
Reward:
|
||||
Commands: ["f points add %faction% 100"]
|
||||
zombie:
|
||||
Slot: 15
|
||||
Material: "ROTTEN_FLESH"
|
||||
Name: "&f1,000 &eZombies"
|
||||
Lore:
|
||||
- "&b&lKill &f&n1,000&r &eZombies"
|
||||
Mission:
|
||||
Type: "KILL"
|
||||
EntityType: "ZOMBIE"
|
||||
Amount: 1000
|
||||
Reward:
|
||||
Commands: ["f points add %faction% 100"]
|
||||
fishing:
|
||||
Slot: 13
|
||||
Material: "FISHING_ROD"
|
||||
Name: "&f100 &6Fish"
|
||||
Lore:
|
||||
- "&b&lCatch fish &n100&r &d<imes"
|
||||
Mission:
|
||||
Type: "FISH"
|
||||
Amount: 100
|
||||
Reward:
|
||||
Commands: ["f points add %faction% 100"]
|
||||
|
||||
############################################################
|
||||
# +------------------------------------------------------+ #
|
||||
# | Faction Focus | #
|
||||
|
@ -128,6 +128,8 @@ permissions:
|
||||
description: gives ability to toggle grace period on and off
|
||||
factions.invsee:
|
||||
description: Allows players to use the inventory see command
|
||||
factions.missions:
|
||||
description: Allows players to use missions command
|
||||
factions.alts:
|
||||
description: Allows players to use the alts command
|
||||
factions.announce:
|
||||
|
Loading…
Reference in New Issue
Block a user