Compare commits
28 Commits
2.0.1-BETA
...
2.0.4
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bdc658922f | ||
|
|
40d6054275 | ||
|
|
93744347db | ||
|
|
b13afcb6a2 | ||
|
|
cd33572460 | ||
|
|
c9eca60c18 | ||
|
|
9b9633aa68 | ||
|
|
b46009f633 | ||
|
|
b1d51f40ce | ||
|
|
f6fc529898 | ||
|
|
f730023b42 | ||
|
|
7339afd60e | ||
|
|
2b0bfae44c | ||
|
|
533bd1b984 | ||
|
|
0b626397a5 | ||
|
|
db669ce2c2 | ||
|
|
65e7061135 | ||
|
|
4b23117262 | ||
|
|
06395b5c4a | ||
|
|
7973d807e6 | ||
|
|
666d6ab21d | ||
|
|
fac351d35a | ||
|
|
bd4f92e133 | ||
|
|
4bf1676b2b | ||
|
|
6ba970ac13 | ||
|
|
a057a235b8 | ||
|
|
10f06baadc | ||
|
|
07fa138d58 |
@@ -1,5 +1,7 @@
|
||||
# SaberFactions
|
||||
|
||||
 [](https://www.codefactor.io/repository/github/driftay/saber-factions)
|
||||
|
||||
SaberFactions is a fork of both FactionsUUID and SavageFactions. Creators of those plugins include DtrShock and ProSavage. Credits to them.
|
||||
SaberFactions is the newest, latest and greatest factions plugin designed for the best and most functional factions experience minecraft has seen!
|
||||
|
||||
|
||||
2
pom.xml
2
pom.xml
@@ -4,7 +4,7 @@
|
||||
|
||||
<groupId>com.massivecraft</groupId>
|
||||
<artifactId>Factions</artifactId>
|
||||
<version>1.6.9.5-U0.2.1-2.0.1-BETA</version>
|
||||
<version>1.6.9.5-U0.2.1-2.0.3-BETA</version>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<name>SaberFactions</name>
|
||||
|
||||
@@ -98,7 +98,7 @@ public class Conf {
|
||||
public static boolean worldGuardChecking = false;
|
||||
public static boolean worldGuardBuildPriority = false;
|
||||
//DISCORD
|
||||
public static boolean useDiscordSystem = true;
|
||||
public static boolean useDiscordSystem = false;
|
||||
public static String discordBotToken = "<token here>";
|
||||
public static String fromDiscordFactionChatPrefix = "&f[&dDiscord&f] ";
|
||||
public static String avatarUrl = "http://cravatar.eu/helmavatar/%uuid%.png";
|
||||
@@ -161,22 +161,22 @@ public class Conf {
|
||||
public static boolean territoryDenyBuildWhenOffline = true;
|
||||
public static boolean territoryPainBuild = false;
|
||||
public static boolean territoryPainBuildWhenOffline = false;
|
||||
public static boolean territoryDenyUseage = true;
|
||||
public static boolean territoryDenyUsage = true;
|
||||
public static boolean territoryEnemyDenyBuild = true;
|
||||
public static boolean territoryEnemyDenyBuildWhenOffline = true;
|
||||
public static boolean territoryEnemyPainBuild = false;
|
||||
public static boolean territoryEnemyPainBuildWhenOffline = false;
|
||||
public static boolean territoryEnemyDenyUseage = true;
|
||||
public static boolean territoryEnemyDenyUsage = true;
|
||||
public static boolean territoryAllyDenyBuild = true;
|
||||
public static boolean territoryAllyDenyBuildWhenOffline = true;
|
||||
public static boolean territoryAllyPainBuild = false;
|
||||
public static boolean territoryAllyPainBuildWhenOffline = false;
|
||||
public static boolean territoryAllyDenyUseage = true;
|
||||
public static boolean territoryAllyDenyUsage = true;
|
||||
public static boolean territoryTruceDenyBuild = true;
|
||||
public static boolean territoryTruceDenyBuildWhenOffline = true;
|
||||
public static boolean territoryTrucePainBuild = false;
|
||||
public static boolean territoryTrucePainBuildWhenOffline = false;
|
||||
public static boolean territoryTruceDenyUseage = true;
|
||||
public static boolean territoryTruceDenyUsage = true;
|
||||
public static boolean territoryBlockCreepers = false;
|
||||
public static boolean territoryBlockCreepersWhenOffline = false;
|
||||
public static boolean territoryBlockFireballs = false;
|
||||
@@ -186,12 +186,12 @@ public class Conf {
|
||||
public static boolean territoryDenyEndermanBlocks = true;
|
||||
public static boolean territoryDenyEndermanBlocksWhenOffline = true;
|
||||
public static boolean safeZoneDenyBuild = true;
|
||||
public static boolean safeZoneDenyUseage = true;
|
||||
public static boolean safeZoneDenyUsage = true;
|
||||
public static boolean safeZoneBlockTNT = true;
|
||||
public static boolean safeZonePreventAllDamageToPlayers = false;
|
||||
public static boolean safeZoneDenyEndermanBlocks = true;
|
||||
public static boolean warZoneDenyBuild = true;
|
||||
public static boolean warZoneDenyUseage = true;
|
||||
public static boolean warZoneDenyUsage = true;
|
||||
public static boolean warZoneBlockCreepers = false;
|
||||
public static boolean warZoneBlockFireballs = false;
|
||||
public static boolean warZoneBlockTNT = true;
|
||||
@@ -199,7 +199,7 @@ public class Conf {
|
||||
public static boolean warZoneFriendlyFire = false;
|
||||
public static boolean warZoneDenyEndermanBlocks = true;
|
||||
public static boolean wildernessDenyBuild = false;
|
||||
public static boolean wildernessDenyUseage = false;
|
||||
public static boolean wildernessDenyUsage = false;
|
||||
public static boolean wildernessBlockCreepers = false;
|
||||
public static boolean wildernessBlockFireballs = false;
|
||||
public static boolean wildernessBlockTNT = false;
|
||||
@@ -217,9 +217,9 @@ public class Conf {
|
||||
public static boolean ownedMessageByChunk = false;
|
||||
public static boolean pistonProtectionThroughDenyBuild = true;
|
||||
public static Set<Material> territoryProtectedMaterials = EnumSet.noneOf(Material.class);
|
||||
public static Set<Material> territoryDenyUseageMaterials = EnumSet.noneOf(Material.class);
|
||||
public static Set<Material> territoryDenyUsageMaterials = EnumSet.noneOf(Material.class);
|
||||
public static Set<Material> territoryProtectedMaterialsWhenOffline = EnumSet.noneOf(Material.class);
|
||||
public static Set<Material> territoryDenyUseageMaterialsWhenOffline = EnumSet.noneOf(Material.class);
|
||||
public static Set<Material> territoryDenyUsageMaterialsWhenOffline = EnumSet.noneOf(Material.class);
|
||||
public static transient Set<EntityType> safeZoneNerfedCreatureTypes = EnumSet.noneOf(EntityType.class);
|
||||
/// <summary>
|
||||
/// This defines a set of materials which should always be allowed to use, regardless of factions permissions.
|
||||
@@ -388,25 +388,25 @@ public class Conf {
|
||||
// Config is not loading if value is empty ???
|
||||
territoryBypassProtectedMaterials.add(Material.COOKIE);
|
||||
|
||||
territoryDenyUseageMaterials.add(XMaterial.FIRE_CHARGE.parseMaterial());
|
||||
territoryDenyUseageMaterials.add(Material.FLINT_AND_STEEL);
|
||||
territoryDenyUseageMaterials.add(Material.BUCKET);
|
||||
territoryDenyUseageMaterials.add(Material.WATER_BUCKET);
|
||||
territoryDenyUseageMaterials.add(Material.LAVA_BUCKET);
|
||||
territoryDenyUsageMaterials.add(XMaterial.FIRE_CHARGE.parseMaterial());
|
||||
territoryDenyUsageMaterials.add(Material.FLINT_AND_STEEL);
|
||||
territoryDenyUsageMaterials.add(Material.BUCKET);
|
||||
territoryDenyUsageMaterials.add(Material.WATER_BUCKET);
|
||||
territoryDenyUsageMaterials.add(Material.LAVA_BUCKET);
|
||||
if (!FactionsPlugin.getInstance().mc17) {
|
||||
territoryDenyUseageMaterials.add(Material.ARMOR_STAND);
|
||||
territoryDenyUsageMaterials.add(Material.ARMOR_STAND);
|
||||
}
|
||||
|
||||
|
||||
territoryProtectedMaterialsWhenOffline.add(Material.BEACON);
|
||||
|
||||
territoryDenyUseageMaterialsWhenOffline.add(XMaterial.FIRE_CHARGE.parseMaterial());
|
||||
territoryDenyUseageMaterialsWhenOffline.add(Material.FLINT_AND_STEEL);
|
||||
territoryDenyUseageMaterialsWhenOffline.add(Material.BUCKET);
|
||||
territoryDenyUseageMaterialsWhenOffline.add(Material.WATER_BUCKET);
|
||||
territoryDenyUseageMaterialsWhenOffline.add(Material.LAVA_BUCKET);
|
||||
territoryDenyUsageMaterialsWhenOffline.add(XMaterial.FIRE_CHARGE.parseMaterial());
|
||||
territoryDenyUsageMaterialsWhenOffline.add(Material.FLINT_AND_STEEL);
|
||||
territoryDenyUsageMaterialsWhenOffline.add(Material.BUCKET);
|
||||
territoryDenyUsageMaterialsWhenOffline.add(Material.WATER_BUCKET);
|
||||
territoryDenyUsageMaterialsWhenOffline.add(Material.LAVA_BUCKET);
|
||||
if (!FactionsPlugin.getInstance().mc17) {
|
||||
territoryDenyUseageMaterialsWhenOffline.add(Material.ARMOR_STAND);
|
||||
territoryDenyUsageMaterialsWhenOffline.add(Material.ARMOR_STAND);
|
||||
}
|
||||
safeZoneNerfedCreatureTypes.add(EntityType.BLAZE);
|
||||
safeZoneNerfedCreatureTypes.add(EntityType.CAVE_SPIDER);
|
||||
|
||||
@@ -146,18 +146,10 @@ public class FactionsPlugin extends MPlugin {
|
||||
public void onEnable() {
|
||||
log("==== Setup ====");
|
||||
|
||||
|
||||
// Vault dependency check.
|
||||
if (getServer().getPluginManager().getPlugin("Vault") == null) {
|
||||
log("Vault is not present, the plugin will not run properly.");
|
||||
getServer().getPluginManager().disablePlugin(instance);
|
||||
return;
|
||||
}
|
||||
|
||||
int version = Integer.parseInt(ReflectionUtils.PackageType.getServerVersion().split("_")[1]);
|
||||
switch (version) {
|
||||
case 7:
|
||||
FactionsPlugin.instance.log("Minecraft Version 1.7 found, disabling banners, itemflags inside GUIs, and Titles.");
|
||||
FactionsPlugin.instance.log("Minecraft Version 1.7 found, disabling banners, itemflags inside GUIs, corners, and Titles.");
|
||||
mc17 = true;
|
||||
break;
|
||||
case 8:
|
||||
@@ -176,6 +168,18 @@ public class FactionsPlugin extends MPlugin {
|
||||
mc114 = true;
|
||||
break;
|
||||
}
|
||||
//Dependency checks
|
||||
if (Bukkit.getPluginManager().isPluginEnabled("Vault") && Bukkit.getPluginManager().isPluginEnabled("Essentials")) {
|
||||
RegisteredServiceProvider<Economy> rsp = FactionsPlugin.this.getServer().getServicesManager().getRegistration(Economy.class);
|
||||
FactionsPlugin.econ = rsp.getProvider();
|
||||
} else {
|
||||
divider();
|
||||
System.out.println("You are missing dependencies!");
|
||||
System.out.println("Please verify EssentialsX and Vault are installed!");
|
||||
Bukkit.getPluginManager().disablePlugin(instance);
|
||||
divider();
|
||||
return;
|
||||
}
|
||||
migrateFPlayerLeaders();
|
||||
log("==== End Setup ====");
|
||||
|
||||
@@ -184,7 +188,12 @@ public class FactionsPlugin extends MPlugin {
|
||||
}
|
||||
this.loadSuccessful = false;
|
||||
|
||||
saveDefaultConfig();
|
||||
if (!new File(this.getDataFolder() + "/config.yml").exists()) {
|
||||
this.saveResource("config.yml", false);
|
||||
this.reloadConfig();
|
||||
}
|
||||
//Attempt to generate a permission list
|
||||
PermissionList.generateFile();
|
||||
|
||||
// Load Conf from disk
|
||||
Conf.load();
|
||||
@@ -259,8 +268,10 @@ public class FactionsPlugin extends MPlugin {
|
||||
this.getServer().getScheduler().runTaskTimer(this, CheckTask::cleanupTask, 0L, 1200L);
|
||||
this.getServer().getScheduler().runTaskTimerAsynchronously(this, new WeeWooTask(this), 600L, 600L);
|
||||
}
|
||||
if(Conf.useDiscordSystem) {
|
||||
if(Conf.useDiscordSystem && !Conf.discordBotToken.equals("<token here>")) {
|
||||
new FactionChatHandler(this);
|
||||
} else {
|
||||
System.out.println("\n\n\n SABER-FACTIONS-DISCORD-INTEGRATION - You are not using Discord integration features, set conf.json option useDiscordSystem to true and put a valid token in before using!\n\n\n");
|
||||
}
|
||||
|
||||
ShopConfig.setup();
|
||||
@@ -287,10 +298,6 @@ public class FactionsPlugin extends MPlugin {
|
||||
|
||||
if (!CommodoreProvider.isSupported()) this.getCommand(refCommand).setTabCompleter(this);
|
||||
|
||||
|
||||
RegisteredServiceProvider<Economy> rsp = FactionsPlugin.this.getServer().getServicesManager().getRegistration(Economy.class);
|
||||
FactionsPlugin.econ = rsp.getProvider();
|
||||
|
||||
if (getDescription().getFullName().contains("BETA")) {
|
||||
divider();
|
||||
System.out.println("You are using a BETA version of the plugin!");
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.massivecraft.factions.cmd;
|
||||
|
||||
import com.massivecraft.factions.Conf;
|
||||
import com.massivecraft.factions.FactionsPlugin;
|
||||
import com.massivecraft.factions.listeners.FactionsPlayerListener;
|
||||
import com.massivecraft.factions.shop.ShopConfig;
|
||||
import com.massivecraft.factions.struct.Permission;
|
||||
import com.massivecraft.factions.zcore.util.TL;
|
||||
@@ -28,6 +29,11 @@ public class CmdReload extends FCommand {
|
||||
if (FactionsPlugin.getInstance().getConfig().getBoolean("enable-faction-flight")) {
|
||||
FactionsPlugin.getInstance().factionsFlight = true;
|
||||
}
|
||||
|
||||
if (!FactionsPlugin.getInstance().mc17) {
|
||||
FactionsPlayerListener.loadCorners();
|
||||
}
|
||||
|
||||
long timeReload = (System.currentTimeMillis() - timeInitStart);
|
||||
|
||||
context.msg(TL.COMMAND_RELOAD_TIME, timeReload);
|
||||
|
||||
@@ -44,7 +44,7 @@ public class CmdUnban extends FCommand {
|
||||
context.faction.unban(target);
|
||||
|
||||
context.msg(TL.COMMAND_UNBAN_UNBANNED, context.fPlayer.getName(), target.getName());
|
||||
target.msg(TL.COMMAND_UNBAN_TARGET, context.faction.getTag(target));
|
||||
target.msg(TL.COMMAND_UNBAN_TARGET.toString(), context.faction.getTag(target));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -77,6 +77,9 @@ public class CheckTask implements Runnable {
|
||||
}
|
||||
faction.msg(TL.CHECK_WALLS_CHECK);
|
||||
|
||||
if (!Conf.useDiscordSystem) return;
|
||||
|
||||
|
||||
String channelId = faction.getWallNotifyChannelId();
|
||||
if (channelId == null) {
|
||||
continue;
|
||||
@@ -122,6 +125,10 @@ public class CheckTask implements Runnable {
|
||||
CheckTask.bufferChecks.add(faction.getId());
|
||||
}
|
||||
faction.msg(TL.CHECK_BUFFERS_CHECK);
|
||||
|
||||
if (!Conf.useDiscordSystem) return;
|
||||
|
||||
|
||||
String channelId = faction.getBufferNotifyChannelId();
|
||||
if (channelId == null) {
|
||||
continue;
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.massivecraft.factions.cmd.check;
|
||||
|
||||
import com.massivecraft.factions.Conf;
|
||||
import com.massivecraft.factions.Faction;
|
||||
import com.massivecraft.factions.Factions;
|
||||
import com.massivecraft.factions.FactionsPlugin;
|
||||
@@ -24,9 +25,9 @@ public class WeeWooTask implements Runnable {
|
||||
continue;
|
||||
}
|
||||
faction.msg(TL.WEE_WOO_MESSAGE);
|
||||
if (!FactionChatHandler.jda.getStatus().equals(JDA.Status.CONNECTED)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!Conf.useDiscordSystem) return;
|
||||
|
||||
String discordChannelId = faction.getWeeWooChannelId();
|
||||
if (discordChannelId == null || discordChannelId.isEmpty()) {
|
||||
continue;
|
||||
|
||||
@@ -9,6 +9,8 @@ import com.massivecraft.factions.struct.Permission;
|
||||
import com.massivecraft.factions.util.CornerTask;
|
||||
import com.massivecraft.factions.zcore.fperms.PermissableAction;
|
||||
import com.massivecraft.factions.zcore.util.TL;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Comparator;
|
||||
@@ -29,6 +31,10 @@ public class CmdCorner extends FCommand {
|
||||
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (FactionsPlugin.getInstance().mc17) {
|
||||
context.player.sendMessage(ChatColor.RED + "This command is disabled!");
|
||||
return;
|
||||
}
|
||||
FLocation to = new FLocation(context.player.getLocation());
|
||||
if (FactionsPlugin.getInstance().getFactionsPlayerListener().getCorners().contains(to)) {
|
||||
Faction cornerAt = Board.getInstance().getFactionAt(to);
|
||||
|
||||
@@ -115,16 +115,16 @@ public class CmdTnt extends FCommand {
|
||||
context.msg(TL.GENERIC_ARGS_TOOFEW);
|
||||
context.msg(context.args.get(0).equalsIgnoreCase("take") || context.args.get(0).equalsIgnoreCase("t") ? TL.COMMAND_TNT_TAKE_DESCRIPTION : TL.COMMAND_TNT_ADD_DESCRIPTION);
|
||||
}
|
||||
context.sendMessage(TL.COMMAND_TNT_AMOUNT.toString().replace("{amount}", context.faction.getTnt() + "").replace("{bankSize}", context.faction.getTntBankLimit() + ""));
|
||||
context.msg(TL.COMMAND_TNT_AMOUNT, context.faction.getTnt(), context.faction.getTntBankLimit());
|
||||
}
|
||||
|
||||
|
||||
public boolean inventoryContains(Inventory inventory, ItemStack item) {
|
||||
int count = 0;
|
||||
ItemStack[] items = inventory.getContents();
|
||||
for (int i = 0; i < items.length; i++) {
|
||||
if (items[i] != null && items[i].getType() == item.getType() && items[i].getDurability() == item.getDurability()) {
|
||||
count += items[i].getAmount();
|
||||
for (ItemStack item1 : items) {
|
||||
if (item1 != null && item1.getType() == item.getType() && item1.getDurability() == item.getDurability()) {
|
||||
count += item1.getAmount();
|
||||
}
|
||||
if (count >= item.getAmount()) {
|
||||
return true;
|
||||
|
||||
@@ -40,9 +40,6 @@ public class FactionChatHandler extends ListenerAdapter {
|
||||
private void startBot() {
|
||||
try {
|
||||
jda = new JDABuilder(AccountType.BOT).setToken(Conf.discordBotToken).buildBlocking();
|
||||
if(jda == null) {
|
||||
System.out.println("\n\n\n SABER-FACTIONS-DISCORD-INTEGRATION - Please Make a Valid Token To Use Discord Features! Location Conf.json discordBotToken.\n\n\n");
|
||||
}
|
||||
} catch (LoginException | InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
@@ -262,9 +262,9 @@ public class FactionsBlockListener implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
@EventHandler (ignoreCancelled = true)
|
||||
public void onHopperPlace(BlockPlaceEvent e) {
|
||||
if (e.getItemInHand().getType() != Material.HOPPER && !FactionsPlugin.getInstance().getConfig().getBoolean("fvault.No-Hoppers-near-vault")) {
|
||||
if (e.getItemInHand().getType() != Material.HOPPER || !FactionsPlugin.getInstance().getConfig().getBoolean("fvault.No-Hoppers-near-vault")) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -47,25 +47,31 @@ import java.util.logging.Level;
|
||||
public class FactionsPlayerListener implements Listener {
|
||||
|
||||
HashMap<Player, Boolean> fallMap = new HashMap<>();
|
||||
private Set<FLocation> corners;
|
||||
public static Set<FLocation> corners;
|
||||
// Holds the next time a player can have a map shown.
|
||||
private HashMap<UUID, Long> showTimes = new HashMap<>();
|
||||
// for handling people who repeatedly spam attempts to open a door (or similar) in another faction's territory
|
||||
private Map<String, InteractAttemptSpam> interactSpammers = new HashMap<>();
|
||||
|
||||
public FactionsPlayerListener() {
|
||||
this.corners = new HashSet<>();
|
||||
for (Player player : FactionsPlugin.getInstance().getServer().getOnlinePlayers()) {
|
||||
initPlayer(player);
|
||||
}
|
||||
if (!FactionsPlugin.getInstance().mc17) {
|
||||
loadCorners();
|
||||
}
|
||||
}
|
||||
|
||||
public static void loadCorners() {
|
||||
FactionsPlayerListener.corners = new HashSet<>();
|
||||
for (World world : FactionsPlugin.getInstance().getServer().getWorlds()) {
|
||||
WorldBorder border = world.getWorldBorder();
|
||||
if (border != null) {
|
||||
int cornerCoord = (int) ((border.getSize() - 1.0) / 2.0);
|
||||
this.corners.add(new FLocation(world.getName(), FLocation.blockToChunk(cornerCoord), FLocation.blockToChunk(cornerCoord)));
|
||||
this.corners.add(new FLocation(world.getName(), FLocation.blockToChunk(cornerCoord), FLocation.blockToChunk(-cornerCoord)));
|
||||
this.corners.add(new FLocation(world.getName(), FLocation.blockToChunk(-cornerCoord), FLocation.blockToChunk(cornerCoord)));
|
||||
this.corners.add(new FLocation(world.getName(), FLocation.blockToChunk(-cornerCoord), FLocation.blockToChunk(-cornerCoord)));
|
||||
FactionsPlayerListener.corners.add(new FLocation(world.getName(), FLocation.blockToChunk(cornerCoord), FLocation.blockToChunk(cornerCoord)));
|
||||
FactionsPlayerListener.corners.add(new FLocation(world.getName(), FLocation.blockToChunk(cornerCoord), FLocation.blockToChunk(-cornerCoord)));
|
||||
FactionsPlayerListener.corners.add(new FLocation(world.getName(), FLocation.blockToChunk(-cornerCoord), FLocation.blockToChunk(cornerCoord)));
|
||||
FactionsPlayerListener.corners.add(new FLocation(world.getName(), FLocation.blockToChunk(-cornerCoord), FLocation.blockToChunk(-cornerCoord)));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -108,17 +114,17 @@ public class FactionsPlayerListener implements Listener {
|
||||
}
|
||||
|
||||
if (otherFaction.hasPlayersOnline()) {
|
||||
if (!Conf.territoryDenyUseageMaterials.contains(material)) {
|
||||
if (!Conf.territoryDenyUsageMaterials.contains(material)) {
|
||||
return true; // Item isn't one we're preventing for online factions.
|
||||
}
|
||||
} else {
|
||||
if (!Conf.territoryDenyUseageMaterialsWhenOffline.contains(material)) {
|
||||
if (!Conf.territoryDenyUsageMaterialsWhenOffline.contains(material)) {
|
||||
return true; // Item isn't one we're preventing for offline factions.
|
||||
}
|
||||
}
|
||||
|
||||
if (otherFaction.isWilderness()) {
|
||||
if (!Conf.wildernessDenyUseage || Conf.worldsNoWildernessProtection.contains(location.getWorld().getName())) {
|
||||
if (!Conf.wildernessDenyUsage || Conf.worldsNoWildernessProtection.contains(location.getWorld().getName())) {
|
||||
return true; // This is not faction territory. Use whatever you like here.
|
||||
}
|
||||
|
||||
@@ -128,7 +134,7 @@ public class FactionsPlayerListener implements Listener {
|
||||
|
||||
return false;
|
||||
} else if (otherFaction.isSafeZone()) {
|
||||
if (!Conf.safeZoneDenyUseage || Permission.MANAGE_SAFE_ZONE.has(player)) {
|
||||
if (!Conf.safeZoneDenyUsage || Permission.MANAGE_SAFE_ZONE.has(player)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -138,7 +144,7 @@ public class FactionsPlayerListener implements Listener {
|
||||
|
||||
return false;
|
||||
} else if (otherFaction.isWarZone()) {
|
||||
if (!Conf.warZoneDenyUseage || Permission.MANAGE_WAR_ZONE.has(player)) {
|
||||
if (!Conf.warZoneDenyUsage || Permission.MANAGE_WAR_ZONE.has(player)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -14,10 +14,7 @@ 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;
|
||||
import java.util.*;
|
||||
|
||||
public class MissionGUI implements FactionGUI {
|
||||
private FactionsPlugin plugin;
|
||||
@@ -79,7 +76,15 @@ public class MissionGUI implements FactionGUI {
|
||||
if (configurationSection == null) {
|
||||
return;
|
||||
}
|
||||
for (int fill = 0; fill < configurationSection.getInt("FillItem.Rows") * 9; ++fill) {
|
||||
ItemStack fillItem = new ItemStack(XMaterial.matchXMaterial(configurationSection.getString("FillItem.Material")).parseItem());
|
||||
ItemMeta meta = fillItem.getItemMeta();
|
||||
meta.setDisplayName("");
|
||||
fillItem.setItemMeta(meta);
|
||||
inventory.setItem(fill, fillItem);
|
||||
}
|
||||
for (String key : configurationSection.getKeys(false)) {
|
||||
if (!key.equals("FillItem")) {
|
||||
ConfigurationSection section = configurationSection.getConfigurationSection(key);
|
||||
int slot = section.getInt("Slot");
|
||||
|
||||
@@ -105,6 +110,7 @@ public class MissionGUI implements FactionGUI {
|
||||
slots.put(slot, key);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public Inventory getInventory() {
|
||||
return inventory;
|
||||
|
||||
@@ -174,13 +174,13 @@ public enum Relation implements Permissable {
|
||||
if (isMember()) {
|
||||
return false;
|
||||
} else if (isEnemy()) {
|
||||
return Conf.territoryEnemyDenyUseage;
|
||||
return Conf.territoryEnemyDenyUsage;
|
||||
} else if (isAlly()) {
|
||||
return Conf.territoryAllyDenyUseage;
|
||||
return Conf.territoryAllyDenyUsage;
|
||||
} else if (isTruce()) {
|
||||
return Conf.territoryTruceDenyUseage;
|
||||
return Conf.territoryTruceDenyUsage;
|
||||
} else {
|
||||
return Conf.territoryDenyUseage;
|
||||
return Conf.territoryDenyUsage;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.massivecraft.factions.tag;
|
||||
|
||||
import com.massivecraft.factions.FPlayers;
|
||||
import com.massivecraft.factions.Factions;
|
||||
import com.massivecraft.factions.FactionsPlugin;
|
||||
import com.massivecraft.factions.zcore.util.TL;
|
||||
@@ -12,7 +13,8 @@ public enum GeneralTag implements Tag {
|
||||
MAX_ALLIES("{max-allies}", () -> getRelation("ally")),
|
||||
MAX_ENEMIES("{max-enemies}", () -> getRelation("enemy")),
|
||||
MAX_TRUCES("{max-truces}", () -> getRelation("truce")),
|
||||
FACTIONLESS("{factionless}", () -> String.valueOf(Factions.getInstance().getNone().getFPlayersWhereOnline(true).size())),
|
||||
FACTIONLESS("factionless", () -> String.valueOf(FPlayers.getInstance().getOnlinePlayers().stream().filter(p -> !p.hasFaction()).count())),
|
||||
FACTIONLESS_TOTAL("factionless-total", () -> String.valueOf(FPlayers.getInstance().getAllFPlayers().stream().filter(p -> !p.hasFaction()).count())),
|
||||
TOTAL_ONLINE("{total-online}", () -> String.valueOf(Bukkit.getOnlinePlayers().size())),
|
||||
;
|
||||
|
||||
|
||||
@@ -28,6 +28,9 @@ public class CornerTask extends BukkitRunnable {
|
||||
FLocation fLocation = surrounding.remove(0);
|
||||
if (fPlayer.attemptClaim(fPlayer.getFaction(), fLocation, true)) {
|
||||
++amount;
|
||||
} else {
|
||||
fPlayer.sendMessage(TL.COMMAND_CORNER_FAIL_WITH_FEEDBACK.toString().replace("&", "§") + amount);
|
||||
cancel();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.massivecraft.factions.util;
|
||||
|
||||
import com.massivecraft.factions.FactionsPlugin;
|
||||
import com.massivecraft.factions.struct.Permission;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.configuration.file.YamlConfiguration;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
|
||||
public class PermissionList {
|
||||
public static void generateFile() {
|
||||
File file = new File(FactionsPlugin.getInstance().getDataFolder().toString() + "/" + "permissions.yml");
|
||||
if (!file.exists()) {
|
||||
try {
|
||||
FactionsPlugin.getInstance().log("Generating a file with all permissions...");
|
||||
file.createNewFile();
|
||||
FileConfiguration config = YamlConfiguration.loadConfiguration(file);
|
||||
for (Permission p : Permission.values()) {
|
||||
config.set(p.node, p.name());
|
||||
}
|
||||
config.save(file);
|
||||
FactionsPlugin.getInstance().log("Generation complete you can find this file at " + FactionsPlugin.getInstance().getDataFolder().toString() + "/" + "permissions.yml");
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -805,7 +805,7 @@ public abstract class MemoryFPlayer implements FPlayer {
|
||||
int factionBuffer = FactionsPlugin.getInstance().getConfig().getInt("hcf.buffer-zone", 0);
|
||||
int worldBuffer = FactionsPlugin.getInstance().getConfig().getInt("world-border.buffer", 0);
|
||||
|
||||
if (Conf.worldGuardChecking && Worldguard.checkForRegionsInChunk(flocation)) {
|
||||
if (Conf.worldGuardChecking && Worldguard.checkForRegionsInChunk(flocation) && !this.isAdminBypassing()) {
|
||||
// Checks for WorldGuard regions in the chunk attempting to be claimed
|
||||
error = FactionsPlugin.getInstance().txt.parse(TL.CLAIM_PROTECTED.toString());
|
||||
} else if (flocation.isOutsideWorldBorder(FactionsPlugin.getInstance().getConfig().getInt("world-border.buffer", 0))) {
|
||||
@@ -1226,7 +1226,7 @@ public abstract class MemoryFPlayer implements FPlayer {
|
||||
}
|
||||
|
||||
LandClaimEvent claimEvent = new LandClaimEvent(flocation, forFaction, this);
|
||||
Bukkit.getScheduler().runTask(FactionsPlugin.getInstance(), () -> Bukkit.getPluginManager().callEvent(claimEvent));
|
||||
Bukkit.getPluginManager().callEvent(claimEvent);
|
||||
if (claimEvent.isCancelled()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -123,6 +123,7 @@ public enum TL {
|
||||
COMMAND_CORNER_CANT_CLAIM("&c&l[!] &cYou may not claim this corner!"),
|
||||
COMMAND_CORNER_CLAIMED("\n&2&l[!] &aYou have claimed the corner successfully, totalling in &b%1$d &achunks!\n"),
|
||||
COMMAND_CORNER_ATTEMPTING_CLAIM("&c&l[!] &7Attempting to claim corner..."),
|
||||
COMMAND_CORNER_FAIL_WITH_FEEDBACK("&c&l[!] &cOne or more claims in this corner could not be claimed! Total chunks claimed:&b "),
|
||||
COMMAND_CORNER_NOT_CORNER("&c&l[!] &7You must be in a corner to use this command!"),
|
||||
COMMAND_CORNER_DESCRIPTION("claim a corner at world border"),
|
||||
COMMAND_CORNERLIST_DESCRIPTION("list of all corners"),
|
||||
@@ -881,7 +882,7 @@ public enum TL {
|
||||
COMMAND_TNT_WIDTHDRAW_SUCCESS("&cSuccessfully withdrew tnt."),
|
||||
COMMAND_TNT_WIDTHDRAW_NOTENOUGH("&cNot enough tnt in bank."),
|
||||
COMMAND_TNT_DEPOSIT_NOTENOUGH("&cNot enough tnt in tnt inventory."),
|
||||
COMMAND_TNT_AMOUNT("&cYour faction has {amount} tnt out of {bankSize} in the tnt bank."),
|
||||
COMMAND_TNT_AMOUNT("&cYour faction has %1$s tnt out of %2$s in the tnt bank."),
|
||||
COMMAND_TNT_POSITIVE("&cPlease use positive numbers!"),
|
||||
COMMAND_TNT_DESCRIPTION("add/widthraw from faction's tnt bank"),
|
||||
COMMAND_TNT_WIDTHDRAW_NOTENOUGH_SPACE("&cNot enough space in your inventory."),
|
||||
@@ -967,7 +968,7 @@ public enum TL {
|
||||
CLAIM_MEMBERS("Factions must have at least %s members to claim land."),
|
||||
CLAIM_SAFEZONE("You can not claim a Safe Zone."),
|
||||
CLAIM_WARZONE("You can not claim a War Zone."),
|
||||
CLAIM_POWER("You can't claim more land!You need more power!"),
|
||||
CLAIM_POWER("You can't claim more land! You need more power!"),
|
||||
CLAIM_LIMIT("Limit reached. You can't claim more land!"),
|
||||
CLAIM_ALLY("You can't claim the land of your allies."),
|
||||
CLAIM_CONTIGIOUS("You can only claim additional land which is connected to your first claim or controlled by another faction!"),
|
||||
|
||||
@@ -274,19 +274,19 @@ hcf:
|
||||
show:
|
||||
# First line can be {header} for default header, or any string (we recommend &m for smooth lines ;plugin)
|
||||
- '&8&m--------------&7 &8<&e{faction}&8> &8&m--------------'
|
||||
- '&6 * &cOwner: &7{leader}'
|
||||
- '&6 * &cDescription: &7{description}'
|
||||
- '&6 * &cLand / Power / Max Power: &7{chunks} &8/ &7{power} &8/ &7{maxPower}'
|
||||
- '&6 * &cFaction Strikes: &7{strikes}'
|
||||
- '&6 * &cFaction Points: &7{faction-points}'
|
||||
- '&6 * &cFounded: &7{create-date}'
|
||||
- '&6 * &cBalance: &f{faction-balance}'
|
||||
- '&6 * &cAllies: &5{allies-list}'
|
||||
- '&6 * &cEnemies: &c{enemies-list}'
|
||||
- '&6 * &cOnline Members: &8(&7{online}/{members}&8) &7{online-list}'
|
||||
- '&6 * &cOffline Members: &8(&7{offline}/{members}&8) &7{offline-list}'
|
||||
- '&6 * &cAlts: &8{alts}'
|
||||
- '&6 * &cBans: &7{faction-bancount}'
|
||||
- '&4&l* &cOwner: &f{leader}'
|
||||
- '&4&l* &cDescription: &f{description}'
|
||||
- '&4&l* &cLand / Power / Max Power: &f{chunks} &8/ &f{power} &8/ &f{maxPower}'
|
||||
- '&4&l* &cFaction Strikes: &f{strikes}'
|
||||
- '&4&l* &cFaction Points: &f{faction-points}'
|
||||
- '&4&l* &cFounded: &f{create-date}'
|
||||
- '&4&l* &cBalance: &f{faction-balance}'
|
||||
- '&4&l* &cAllies: &a{allies-list}'
|
||||
- '&4&l* &cEnemies: &4{enemies-list}'
|
||||
- '&4&l* &cOnline Members: &8[&f{online}/{members}&8] &a{online-list}'
|
||||
- '&4&l* &cOffline Members: &8[&f{offline}/{members}&8] &a{offline-list}'
|
||||
- '&4&l* &cAlts: &f{alts}'
|
||||
- '&4&l* &cBans: &f{faction-bancount}'
|
||||
- '&8&m----------------------------------------'
|
||||
# For a /f show that does not display fancy messages that are essentially empty, use minimal-show
|
||||
minimal-show: false
|
||||
@@ -303,13 +303,15 @@ show-exempt:
|
||||
# Lines that arent defined wont be sent (home not set, faction not peaceful / permanent, dtr freeze)
|
||||
map:
|
||||
# First line can be {header} for default header, or any string (we recommend &m for smooth lines ;plugin)
|
||||
- '&6* &cFaction: &7{faction}'
|
||||
- '&6* &cOwner: &7{leader}'
|
||||
- '&6* &cLand / Power / Max Power: &7{chunks} &8/ &7{power} &8/ &7{maxPower}'
|
||||
- '&6* &cAllies: &5{allies-list}'
|
||||
- '&6* &cEnemies: &c{enemies-list}'
|
||||
- '&6* &cOnline Members: &8(&7{online}/{members}&8) {online-list}'
|
||||
- '&6* &cOffline Members: &7{offline-list}'
|
||||
- ''
|
||||
- '&4&l* &cFaction &f{faction}'
|
||||
- '&4&l* &cOwner &f{leader}'
|
||||
- '&4&l* &cLand / Power / Max Power: &f{chunks} &8/ &f{power} &8/ &f{maxPower}'
|
||||
- '&4&l* &cAllies &a{allies-list}'
|
||||
- '&4&l* &cEnemies &4{enemies-list}'
|
||||
- '&4&l* &cOnline Members &8[&f{online}/{members}&8] &a{online-list}'
|
||||
- '&4&l* &cOffline Members &4{offline-list}'
|
||||
- ''
|
||||
|
||||
############################################################
|
||||
# +------------------------------------------------------+ #
|
||||
@@ -426,7 +428,7 @@ help:
|
||||
fperm-gui:
|
||||
relation:
|
||||
# GUI Name
|
||||
name: 'Faction Permissions'
|
||||
name: '&8&lFaction Permissions'
|
||||
# Amount of inventory rows, No larger than 5
|
||||
rows: 4
|
||||
# These are the slots where the relations are going to be placed on the first GUI
|
||||
@@ -452,7 +454,7 @@ fperm-gui:
|
||||
enemy: DIAMOND_AXE
|
||||
neutral: WOOD_AXE
|
||||
Placeholder-Item:
|
||||
Name: '&cClick to edit {relation} permissions!'
|
||||
Name: '&c{relation}&f permissions!'
|
||||
action:
|
||||
name: 'Faction Permissions'
|
||||
rows: 6
|
||||
@@ -527,14 +529,14 @@ fperm-gui:
|
||||
# {action-access} Access name eg: Allow, Deny
|
||||
# {action-access-color} Access color eg: Allow;GREEN
|
||||
placeholder-item:
|
||||
name: '&c&l(!) &ePermission: &6&n{action}'
|
||||
name: '&c&lPermission to {action}'
|
||||
lore:
|
||||
- ''
|
||||
- '&6&l * &cStatus: &8[{action-access-color}{action-access}&8]'
|
||||
- '&4&l* &cStatus: &f{action-access-color}{action-access}'
|
||||
- ''
|
||||
- '&7Left click to &a&nAllow&7.'
|
||||
- '&7Right click to &c&nDeny&7.'
|
||||
- '&7Middle click to &7&nUndefined&7.'
|
||||
- '&2&l* &aLeft click to &alAllow&a.'
|
||||
- '&4&l* &cRight click to &c&lDeny&c.'
|
||||
- '&8&l* &7Middle click to &7&lUndefine&7.'
|
||||
# Back item will be take you to the previous GUI
|
||||
back-item:
|
||||
Type: ARROW
|
||||
@@ -566,16 +568,16 @@ fwarp-gui:
|
||||
- 15
|
||||
warp-item:
|
||||
Type: EYE_OF_ENDER
|
||||
Name: '&c&l(!) &eFaction Warp: &6&n{warp}'
|
||||
Name: '&c&lFaction Warp {warp}'
|
||||
# {warp-protected} Warp protection by password, Enabled & Disabled
|
||||
# {warp-cost} Warp cost
|
||||
Lore:
|
||||
- ''
|
||||
- '&6&l * &cPassword: &7{warp-protected}'
|
||||
- '&6&l * &cCost: &7{warp-cost}'
|
||||
- '&4&l* &cPassword: &f{warp-protected}'
|
||||
- '&4&l* &cCost: &f{warp-cost}'
|
||||
- ''
|
||||
- '&c&lNote: &7You need pay to teleport to'
|
||||
- '&7a faction warp. Unless it''s &nDisabled&7.'
|
||||
- '&7&o(( Tip: You need &c&opay&7&o to &f&oteleport to'
|
||||
- '&7&oa &a&ofaction warp&7&o. Unless it''s &c&oDisabled&7&o. ))'
|
||||
# Dummy Items
|
||||
dummy-item:
|
||||
Type: BLACK_STAINED_GLASS_PANE
|
||||
@@ -638,8 +640,13 @@ f-alts:
|
||||
frules:
|
||||
Enabled: true
|
||||
default-rules:
|
||||
- '&cDefault Faction Rules :('
|
||||
- '&cUse /f rules add <rule> to add a rule'
|
||||
- '&f'
|
||||
- '&r &r &r &r &r &r &r &r &r &r &r &r &r &r &r &r &r &r &r &r &r &r &f&l«&c&l*&4&l*&c&l*&f&l»&r &c&lFaction Rules &r &f&l«&c&l*&4&l*&c&l*&f&l»'
|
||||
- '&r &r &r &fWith this feature you can set &cstandars&f for your &afaction'
|
||||
- '&r &r &r &r &r &r &fPut as many &crules&f as you desire for your &amembers'
|
||||
- '&f'
|
||||
- '&r &r &r &r &r &r &r &r &r &r &r &7&o(( Tip: Use &f&o/f rules add <rule>&7&o add a &c&orule&7&o ))'
|
||||
- ''
|
||||
############################################################
|
||||
# +------------------------------------------------------+ #
|
||||
# | Faction TNT Bank | #
|
||||
@@ -742,13 +749,16 @@ f-points:
|
||||
############################################################
|
||||
MissionGUISize: 3
|
||||
Missions-Enabled: true
|
||||
Missions-GUI-Title: '&bFaction Missions'
|
||||
Missions-GUI-Title: '&8&lFaction Missions'
|
||||
MaximumMissionsAllowedAtOnce: 1
|
||||
Mission-Progress-Format: '&b&lProgression: &f{progress}&7/&e{total}'
|
||||
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
|
||||
sugarcane:
|
||||
Slot: 11
|
||||
Material: "SUGAR_CANE"
|
||||
@@ -870,7 +880,7 @@ fchest:
|
||||
fupgrades:
|
||||
Enabled: true
|
||||
MainMenu:
|
||||
Title: '{faction}''s Upgrade Menu'
|
||||
Title: '&8&l{faction}''s Upgrade Menu'
|
||||
DummyItem:
|
||||
rows: 5
|
||||
Name: '&f'
|
||||
@@ -887,26 +897,26 @@ fupgrades:
|
||||
level-2: 500000
|
||||
level-3: 750000
|
||||
CropItem:
|
||||
Name: '&c&lUpgrade Growth Speed'
|
||||
Name: '&c&lGrowth Speed'
|
||||
Type: WHEAT
|
||||
Amount: 1
|
||||
Damage: 0
|
||||
Lore:
|
||||
- '&7Increase growth speed of crops in claims.'
|
||||
- '&7&o(Chance to Grow Two Levels)'
|
||||
- '&7&oIncrease growth &c&ospeed&7&o of crops in &c&oclaims.'
|
||||
- '&7&oChance to Grow Two Levels.'
|
||||
- 'Current level is &e&l&o{level}'
|
||||
- ''
|
||||
- '&c&lTier'
|
||||
- '&f&l* &7Current Level: &3{level}/3'
|
||||
- '&c&lChances'
|
||||
- '&4&l* &cLevel 1: &f10% Chance'
|
||||
- '&4&l* &cLevel 2: &f20% Chance'
|
||||
- '&4&l* &cLevel 3: &f30% Chance'
|
||||
- '&f'
|
||||
- '&c&lCosts'
|
||||
- '&4&l* &cLevel 1: &f$250,000'
|
||||
- '&4&l* &cLevel 2: &f$500,000'
|
||||
- '&4&l* &cLevel 3: &f$750,000'
|
||||
- ''
|
||||
- '&c&lPerks'
|
||||
- '&f&l* &7Level 1 - &f10% Chance'
|
||||
- '&7 - Cost: $250,000'
|
||||
- '&f&l* &7Level 2 - &f20% Chance'
|
||||
- '&7 - Cost: $500,000'
|
||||
- '&f&l* &7Level 3 - &f30% Chance'
|
||||
- '&7 - Cost: $750,000'
|
||||
- ''
|
||||
- '&e&lClick to &nUnlock'
|
||||
- '&7&o(( Tip: &f&oleft-click&7&o to &c&oupgrade&7&o ))'
|
||||
slots:
|
||||
- 31
|
||||
EXP:
|
||||
@@ -919,25 +929,25 @@ fupgrades:
|
||||
level-2: 4000000
|
||||
level-3: 6000000
|
||||
EXPItem:
|
||||
Name: '&c&lUpgrade EXP Drop Rate'
|
||||
Name: '&c&lEXP Drop Rate'
|
||||
Type: EXP_BOTTLE
|
||||
Amount: 1
|
||||
Damage: 0
|
||||
Lore:
|
||||
- '&7Increased Vanilla XP gained from monsters.'
|
||||
- '&7&oIncreased Vanilla &e&oEXP&7&o gained from &c&omonsters&7&o.'
|
||||
- '&7&oYour current level is &e&l&o{level}'
|
||||
- ''
|
||||
- '&c&lTier'
|
||||
- '&f&l* &7Current Level: &3{level}/3'
|
||||
- '&c&lMultipliers'
|
||||
- '&4&l* &cLevel 1: &f1.5'
|
||||
- '&4&l* &cLevel 2: &f2.0'
|
||||
- '&4&l* &cLevel 3: &f2.5'
|
||||
- '&f'
|
||||
- '&c&lCosts'
|
||||
- '&4&l* &cLevel 1: &f$2,000,000'
|
||||
- '&4&l* &cLevel 2: &f$4,000,000'
|
||||
- '&4&l* &cLevel 3: &f$6,000,000'
|
||||
- ''
|
||||
- '&c&lPerks'
|
||||
- '&f&l* &7Level 1 - &f1.5x Multiplier'
|
||||
- '&7 - Cost: $2,000,000'
|
||||
- '&f&l* &7Level 2 - &f2.0x Multiplier'
|
||||
- '&7 - Cost: $4,000,000'
|
||||
- '&f&l* &7Level 3 - &f2.5x Multiplier'
|
||||
- '&7 - Cost: $6,000,000'
|
||||
- ''
|
||||
- '&e&lClick to &nUnlock'
|
||||
- '&7&o(( Tip: &f&oleft-click&7&o to &c&oupgrade&7&o ))'
|
||||
slots:
|
||||
- 32
|
||||
Power:
|
||||
@@ -955,21 +965,21 @@ fupgrades:
|
||||
Amount: 1
|
||||
Damage: 0
|
||||
Lore:
|
||||
- '&7&o(Increase the amount of power'
|
||||
- '&7&oyour faction has)'
|
||||
- '&a&oIncrease&7&o the amount of &c&opower'
|
||||
- '&7&oyour &a&ofaction has&7&o.'
|
||||
- 'Current level is &e&l&o{level}'
|
||||
- ''
|
||||
- '&c&lTier'
|
||||
- '&f&l* &7Current Level: &3{level}/3'
|
||||
- '&c&lIncreased Faction Power'
|
||||
- '&4&l* &cLevel 1: &f100'
|
||||
- '&4&l* &cLevel 2: &f200'
|
||||
- '&4&l* &cLevel 3: &f300'
|
||||
- '&f'
|
||||
- '&c&lCosts'
|
||||
- '&4&l* &cLevel 1: &f$1,000,000'
|
||||
- '&4&l* &cLevel 2: &f$2,000,000'
|
||||
- '&4&l* &cLevel 3: &f$3,000,000'
|
||||
- ''
|
||||
- '&c&lPerks'
|
||||
- '&f&l* &7Level 1 - &f100 Increased Faction Power'
|
||||
- '&7 - Cost: $1,000,000'
|
||||
- '&f&l* &7Level 2 - &f200 Increased Faction Power'
|
||||
- '&7 - Cost: $2,000,000'
|
||||
- '&f&l* &7Level 3 - &f300 Increased Faction Power'
|
||||
- '&7 - Cost: $3,000,000'
|
||||
- ''
|
||||
- '&e&lClick to &nUnlock'
|
||||
- '&7&o(( Tip: &f&oleft-click&7&o to &c&oupgrade&7&o ))'
|
||||
slots:
|
||||
- 22
|
||||
Redstone:
|
||||
@@ -980,13 +990,12 @@ fupgrades:
|
||||
Amount: 1
|
||||
Damage: 0
|
||||
Lore:
|
||||
- '&7&o(Prevents water from being'
|
||||
- '&7&oable to break redstone)'
|
||||
- '&7&oPrevents &e&owater&7&o from being'
|
||||
- '&7&oable to break &c&oredstone'
|
||||
- ''
|
||||
- '&f&l* &7Current Level: &3{level}/1'
|
||||
- '&4&l* &cCost: &f$1,000,000'
|
||||
- ''
|
||||
- '&7 - Cost: $1,000,000'
|
||||
- '&e&lClick to &nUnlock'
|
||||
- '&7&o(( Tip: &f&oLeft-click&7&o to &c&oupgrade&7&o ))'
|
||||
slots:
|
||||
- 23
|
||||
Spawners:
|
||||
@@ -1000,25 +1009,25 @@ fupgrades:
|
||||
level-2: 2000000
|
||||
level-3: 3000000
|
||||
SpawnerItem:
|
||||
Name: '&c&lUpgrade Spawn Rate'
|
||||
Name: '&c&lSpawn Rate'
|
||||
Type: MOB_SPAWNER
|
||||
Amount: 1
|
||||
Damage: 0
|
||||
Lore:
|
||||
- '&7Decreased mob spawner delay in claims.'
|
||||
- '&c&oDecreased&7&o mob spawner delay in &a&oclaims&7&o.'
|
||||
- '&7&oYour current level is &e&l&o{level}'
|
||||
- ''
|
||||
- '&c&lTier'
|
||||
- '&f&l* &7Current Level: &3{level}/3'
|
||||
- '&c&lDecreased Spawner Delay'
|
||||
- '&4&l* &cLevel 1: &f0.10%'
|
||||
- '&4&l* &cLevel 2: &f0.20%'
|
||||
- '&4&l* &cLevel 3: &f0.30'
|
||||
- '&f'
|
||||
- '&c&lCosts'
|
||||
- '&4&l* &cLevel 1: &f$1,000,000'
|
||||
- '&4&l* &cLevel 2: &f$2,000,000'
|
||||
- '&4&l* &cLevel 3: &f$3,000,000'
|
||||
- ''
|
||||
- '&c&lPerks'
|
||||
- '&f&l* &7Level 1 - &f10% Lower Delay'
|
||||
- '&7 - Cost: $1,000,000'
|
||||
- '&f&l* &7Level 2 - &f20% Lower Delay'
|
||||
- '&7 - Cost: $2,000,000'
|
||||
- '&f&l* &7Level 3 - &f30% Lower Delay'
|
||||
- '&7 - Cost: $3,000,000'
|
||||
- ''
|
||||
- '&e&lClick to &nUnlock'
|
||||
- '&7&o(( Tip: &f&oleft-click&7&o to &c&oupgrade&7&o ))'
|
||||
slots:
|
||||
- 30
|
||||
DamageReduct:
|
||||
@@ -1031,26 +1040,25 @@ fupgrades:
|
||||
level-2: 4000000
|
||||
level-3: 6000000
|
||||
ReduceItem:
|
||||
Name: '&c&lDamage Reduction Upgrade'
|
||||
Name: '&c&lDamage Reduction'
|
||||
Type: GOLD_CHESTPLATE
|
||||
Amount: 1
|
||||
Damage: 0
|
||||
Lore:
|
||||
- '&7Reduce the amount of damage taken'
|
||||
- '&7in your faction claims.'
|
||||
- '&a&oReduce&7&o the amount of &a&odamage taken&7&o in faction claims.'
|
||||
- '&7&oYour current level is &e&l&o{level}'
|
||||
- ''
|
||||
- '&c&lTier'
|
||||
- '&f&l* &7Current Level: &3{level}/3'
|
||||
- '&c&lDamage Increase'
|
||||
- '&4&l* &cLevel 1: &f3%'
|
||||
- '&4&l* &cLevel 2: &f5%'
|
||||
- '&4&l* &cLevel 3: &f7%'
|
||||
- '&f'
|
||||
- '&c&lCosts'
|
||||
- '&4&l* &cLevel 1: &f$2,000,000'
|
||||
- '&4&l* &cLevel 2: &f$4,000,000'
|
||||
- '&4&l* &cLevel 3: &f$6,000,000'
|
||||
- ''
|
||||
- '&c&lPerks'
|
||||
- '&f&l* &7Level 1 - &7((&f-3% Damage Per Hit&7))'
|
||||
- '&7 - Cost: $2,000,000'
|
||||
- '&f&l* &7Level 2 - &7((&f-5% Damage Per Hit&7))'
|
||||
- '&7 - Cost: $4,000,000'
|
||||
- '&f&l* &7Level 3 - &7((&f-7% Damage Per Hit&7))'
|
||||
- '&7 - Cost: $6,000,000'
|
||||
- ''
|
||||
- '&e&lClick to &nUnlock'
|
||||
- '&7&o(( Tip: &f&oleft-click&7&o to &c&oupgrade&7&o ))'
|
||||
slots:
|
||||
- 7
|
||||
DamageIncrease:
|
||||
@@ -1063,26 +1071,25 @@ fupgrades:
|
||||
level-2: 4000000
|
||||
level-3: 6000000
|
||||
IncreaseItem:
|
||||
Name: '&c&lDamage Increase Upgrade'
|
||||
Name: '&c&lDamage Increase'
|
||||
Type: DIAMOND_SWORD
|
||||
Amount: 1
|
||||
Damage: 0
|
||||
Lore:
|
||||
- '&7Increase the amount of damage given'
|
||||
- '&7in your faction claims.'
|
||||
- '&a&oIncrease&7&o the amount of &a&odamage given&7&o.'
|
||||
- '&7&oYour current level is &e&l&o{level}'
|
||||
- ''
|
||||
- '&c&lTier'
|
||||
- '&f&l* &7Current Level: &3{level}/3'
|
||||
- '&c&lDamage Increase'
|
||||
- '&4&l* &cLevel 1: &f3%'
|
||||
- '&4&l* &cLevel 2: &f5%'
|
||||
- '&4&l* &cLevel 3: &f7%'
|
||||
- '&f'
|
||||
- '&c&lCosts'
|
||||
- '&4&l* &cLevel 1: &f$2,000,000'
|
||||
- '&4&l* &cLevel 2: &f$4,000,000'
|
||||
- '&4&l* &cLevel 3: &f$6,000,000'
|
||||
- ''
|
||||
- '&c&lPerks'
|
||||
- '&f&l* &7Level 1 - &7((&f+3% Damage Per Hit&7))'
|
||||
- '&7 - Cost: $2,000,000'
|
||||
- '&f&l* &7Level 2 - &7((&f+5% Damage Per Hit&7))'
|
||||
- '&7 - Cost: $4,000,000'
|
||||
- '&f&l* &7Level 3 - &7((&f+7% Damage Per Hit&7))'
|
||||
- '&7 - Cost: $6,000,000'
|
||||
- ''
|
||||
- '&e&lClick to &nUnlock'
|
||||
- '&7&o(( Tip: &f&oleft-click&7&o to &c&oupgrade&7&o ))'
|
||||
slots:
|
||||
- 1
|
||||
TNT:
|
||||
@@ -1095,26 +1102,25 @@ fupgrades:
|
||||
level-2: 4000000
|
||||
level-3: 6000000
|
||||
TntItem:
|
||||
Name: '&c&lTNT Bank Upgrade'
|
||||
Name: '&c&lTNT Bank'
|
||||
Type: TNT
|
||||
Amount: 1
|
||||
Damage: 0
|
||||
Lore:
|
||||
- '&7Upgrade Your tnt bank limit,'
|
||||
- '&7to be eligible to store more tnt.'
|
||||
- '&a&oUpgrade&7&o your &a&ofactions tnt&7&o limit.'
|
||||
- '&7&oYour current level is &e&l&o{level}'
|
||||
- ''
|
||||
- '&c&lTier'
|
||||
- '&f&l* &7Current Level: &3{level}/3'
|
||||
- '&c&lFaction Tnt Limit'
|
||||
- '&4&l* &cLevel 1: &f500,000'
|
||||
- '&4&l* &cLevel 2: &f1,000,000'
|
||||
- '&4&l* &cLevel 3: &f2,000,000'
|
||||
- '&f'
|
||||
- '&c&lCosts'
|
||||
- '&4&l* &cLevel 1: &f$1,000,000'
|
||||
- '&4&l* &cLevel 2: &f$2,000,000'
|
||||
- '&4&l* &cLevel 3: &f$3,000,000'
|
||||
- ''
|
||||
- '&c&lPerks'
|
||||
- '&f&l* &7Level 1 - &f500,000 TNT'
|
||||
- '&7 - Cost: $2,000,000'
|
||||
- '&f&l* &7Level 2 - &f1,000,000 TNT'
|
||||
- '&7 - Cost: $4,000,000'
|
||||
- '&f&l* &7Level 3 - &f2,000,000 TNT'
|
||||
- '&7 - Cost: $6,000,000'
|
||||
- ''
|
||||
- '&e&lClick to &nUnlock'
|
||||
- '&7&o(( Tip: &f&oleft-click&7&o to &c&oupgrade&7&o ))'
|
||||
slots:
|
||||
- 21
|
||||
Warps:
|
||||
@@ -1127,26 +1133,25 @@ fupgrades:
|
||||
level-2: 2000000
|
||||
level-3: 3000000
|
||||
WarpItem:
|
||||
Name: '&c&lWarp Upgrade'
|
||||
Name: '&c&lWarps'
|
||||
Type: EYE_OF_ENDER
|
||||
Amount: 1
|
||||
Damage: 0
|
||||
Lore:
|
||||
- '&7Upgrade Your warp limit,'
|
||||
- '&7to be able to set more warps.'
|
||||
- '&a&oIncrease&7&o the &a&ofaction warp&7&o limit.'
|
||||
- '&7&oYour current level is &e&l&o{level}'
|
||||
- ''
|
||||
- '&c&lTier'
|
||||
- '&f&l* &7Current Level: &3{level}/3'
|
||||
- '&c&lFaction Warp Limit'
|
||||
- '&4&l* &cLevel 1: &f3'
|
||||
- '&4&l* &cLevel 2: &f4'
|
||||
- '&4&l* &cLevel 3: &f5'
|
||||
- '&f'
|
||||
- '&c&lCosts'
|
||||
- '&4&l* &cLevel 1: &f$1,000,000'
|
||||
- '&4&l* &cLevel 2: &f$2,000,000'
|
||||
- '&4&l* &cLevel 3: &f$3,000,000'
|
||||
- ''
|
||||
- '&c&lPerks'
|
||||
- '&f&l* &7Level 1 - &f3 Warps'
|
||||
- '&7 - Cost: $1,000,000'
|
||||
- '&f&l* &7Level 2 - &f4 Warps'
|
||||
- '&7 - Cost: $2,000,000'
|
||||
- '&f&l* &7Level 3 - &f5 Warps'
|
||||
- '&7 - Cost: $3,000,000'
|
||||
- ''
|
||||
- '&e&lClick to &nUnlock'
|
||||
- '&7&o(( Tip: &f&oleft-click&7&o to &c&oupgrade&7&o ))'
|
||||
slots:
|
||||
- 24
|
||||
Chest:
|
||||
@@ -1160,25 +1165,25 @@ fupgrades:
|
||||
level-2: 2000000
|
||||
level-3: 3000000
|
||||
ChestItem:
|
||||
Name: '&c&lUpgrade Faction Chest Size'
|
||||
Name: '&c&lFaction Chest'
|
||||
Type: CHEST
|
||||
Amount: 1
|
||||
Damage: 0
|
||||
Lore:
|
||||
- '&7Increased Faction Chest Size.'
|
||||
- '&a&oIncreased&7&o Faction Chest Size.'
|
||||
- '&7&oYour current level is &e&l&o{level}'
|
||||
- ''
|
||||
- '&c&lTier'
|
||||
- '&f&l* &7Current Level: &3{level}/3'
|
||||
- '&c&lFaction Chest Size'
|
||||
- '&4&l* &cLevel 1: &f2 Rows'
|
||||
- '&4&l* &cLevel 2: &f3 Rows'
|
||||
- '&4&l* &cLevel 3: &f4 Rows'
|
||||
- '&f'
|
||||
- '&c&lCosts'
|
||||
- '&4&l* &cLevel 1: &f$1,000,000'
|
||||
- '&4&l* &cLevel 2: &f$2,000,000'
|
||||
- '&4&l* &cLevel 3: &f$3,000,000'
|
||||
- ''
|
||||
- '&c&lPerks'
|
||||
- '&f&l* &7Level 1 - &f2 Rows'
|
||||
- '&7 - Cost: $1,000,000'
|
||||
- '&f&l* &7Level 2 - &f3 Rows'
|
||||
- '&7 - Cost: $2,000,000'
|
||||
- '&f&l* &7Level 3 - &f4 Rows'
|
||||
- '&7 - Cost: $3,000,000'
|
||||
- ''
|
||||
- '&e&lClick to &nUnlock'
|
||||
- '&7&o(( Tip: &f&oleft-click&7&o to &c&oupgrade&7&o ))'
|
||||
slots:
|
||||
- 20
|
||||
Members:
|
||||
@@ -1191,25 +1196,25 @@ fupgrades:
|
||||
level-2: 2000000
|
||||
level-3: 3000000
|
||||
MembersItem:
|
||||
Name: '&c&lUpgrade Faction Members'
|
||||
Name: '&c&lFaction Members'
|
||||
Type: PAPER
|
||||
Amount: 1
|
||||
Damage: 0
|
||||
Lore:
|
||||
- '&7Increase faction member limit.'
|
||||
- '&a&oIncrease&7&o the &a&ofaction member&7&o limit.'
|
||||
- '&7&oYour current level is &e&l&o{level}'
|
||||
- ''
|
||||
- '&c&lTier'
|
||||
- '&f&l* &7Current Level: &3{level}/3'
|
||||
- '&c&lFaction Member Limit'
|
||||
- '&4&l* &cLevel 1: &f30'
|
||||
- '&4&l* &cLevel 2: &f35'
|
||||
- '&4&l* &cLevel 3: &f40'
|
||||
- '&f'
|
||||
- '&c&lCosts'
|
||||
- '&4&l* &cLevel 1: &f$1,000,000'
|
||||
- '&4&l* &cLevel 2: &f$2,000,000'
|
||||
- '&4&l* &cLevel 3: &f$3,000,000'
|
||||
- ''
|
||||
- '&c&lPerks'
|
||||
- '&f&l* &7Level 1 - &f30 Members'
|
||||
- '&7 - Cost: $1,000,000'
|
||||
- '&f&l* &7Level 2 - &f35 Members'
|
||||
- '&7 - Cost: $2,000,000'
|
||||
- '&f&l* &7Level 3 - &f40 Members'
|
||||
- '&7 - Cost: $3,000,000'
|
||||
- ''
|
||||
- '&e&lClick to &nUnlock'
|
||||
- '&7&o(( Tip: &f&oleft-click&7&o to &c&oupgrade&7&o ))'
|
||||
slots:
|
||||
- 40
|
||||
Armor:
|
||||
@@ -1223,25 +1228,25 @@ fupgrades:
|
||||
level-2: 2000000
|
||||
level-3: 3000000
|
||||
ArmorItem:
|
||||
Name: '&c&lReinforced Armor Upgrade'
|
||||
Name: '&c&lReinforced Armor'
|
||||
Type: DIAMOND_CHESTPLATE
|
||||
Amount: 1
|
||||
Damage: 0
|
||||
Lore:
|
||||
- '&7Decreases damage to armor.'
|
||||
- '&a&oDecreases&7&o damage done &a&oto armor&7&o.'
|
||||
- '&7&oYour current level is &e&l&o{level}'
|
||||
- ''
|
||||
- '&c&lTier'
|
||||
- '&f&l* &7Current Level: &3{level}/3'
|
||||
- '&c&lReinforced Armor'
|
||||
- '&4&l* &cLevel 1: &f0.10%'
|
||||
- '&4&l* &cLevel 2: &f0.15%'
|
||||
- '&4&l* &cLevel 3: &f0.20%'
|
||||
- '&f'
|
||||
- '&c&lCosts'
|
||||
- '&4&l* &cLevel 1: &f$1,000,000'
|
||||
- '&4&l* &cLevel 2: &f$2,000,000'
|
||||
- '&4&l* &cLevel 3: &f$3,000,000'
|
||||
- ''
|
||||
- '&c&lPerks'
|
||||
- '&f&l* &7Level 1 - &f10% Reduction'
|
||||
- '&7 - Cost: $1,000,000'
|
||||
- '&f&l* &7Level 2 - &f15% Reduction'
|
||||
- '&7 - Cost: $2,000,000'
|
||||
- '&f&l* &7Level 3 - &f20% Reduction'
|
||||
- '&7 - Cost: $3,000,000'
|
||||
- ''
|
||||
- '&e&lClick to &nUnlock'
|
||||
- '&7&o(( Tip: &f&oleft-click&7&o to &c&oupgrade&7&o ))'
|
||||
slots:
|
||||
- 4
|
||||
|
||||
@@ -1322,6 +1327,7 @@ Tntfill:
|
||||
# - {offline-list} : Lists all offline members with tooltips
|
||||
# - {alts} : List all alts online or offline
|
||||
# - {truces-list} : Lists each faction truce with tooltips
|
||||
# - {factionless-total} : Count of all factionless players online
|
||||
|
||||
# Player variables. Can be used in tooltips.show, scoreboards, or /f show
|
||||
# - {group} : Players group
|
||||
|
||||
@@ -65,6 +65,13 @@ permissions:
|
||||
factions.kit.halfplayer:
|
||||
description: Can do all but create factions.
|
||||
children:
|
||||
factions.missions: true
|
||||
factions.shop: true
|
||||
factions.permissions: true
|
||||
factions.setdiscord: true
|
||||
factions.discord: true
|
||||
factions.paypal: true
|
||||
factions.paypalset: true
|
||||
factions.admin: true
|
||||
factions.autoclaim: true
|
||||
factions.promote: true
|
||||
@@ -113,6 +120,7 @@ permissions:
|
||||
factions.checkpoint: true
|
||||
factions.rules: true
|
||||
factions.setwarp: true
|
||||
factions.warp: true
|
||||
factions.banner: true
|
||||
factions.vault: true
|
||||
factions.getvault: true
|
||||
|
||||
Reference in New Issue
Block a user