diff --git a/pom.xml b/pom.xml index aa163197..ac7a84bf 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.massivecraft Factions - 1.6.9.5-U0.1.11 + 1.6.9.5-U0.1.12-SNAPSHOT jar Factions diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdDelFWarp.java b/src/main/java/com/massivecraft/factions/cmd/CmdDelFWarp.java index 21f56ce6..a5dc7ef4 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdDelFWarp.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdDelFWarp.java @@ -1,5 +1,8 @@ package com.massivecraft.factions.cmd; +import com.massivecraft.factions.FPlayer; +import com.massivecraft.factions.P; +import com.massivecraft.factions.integration.Econ; import com.massivecraft.factions.struct.Permission; public class CmdDelFWarp extends FCommand { @@ -20,10 +23,17 @@ public class CmdDelFWarp extends FCommand { public void perform() { String warp = argAsString(0); if (myFaction.isWarp(warp)) { + if (!transact(fme)) { + return; + } myFaction.removeWarp(warp); fme.msg("Deleted warp %s", warp); } else { fme.msg("Couldn't find warp %s", warp); } } + + private boolean transact(FPlayer player) { + return P.p.getConfig().getBoolean("warp-cost.enabled", false) && !player.isAdminBypassing() && Econ.modifyMoney(player, P.p.getConfig().getDouble("warp-cost.delwarp", 5), "to delete warp", "for deleting warp"); + } } diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdFWarp.java b/src/main/java/com/massivecraft/factions/cmd/CmdFWarp.java index c7177dba..42ea54b9 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdFWarp.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdFWarp.java @@ -1,5 +1,8 @@ package com.massivecraft.factions.cmd; +import com.massivecraft.factions.FPlayer; +import com.massivecraft.factions.P; +import com.massivecraft.factions.integration.Econ; import com.massivecraft.factions.struct.Permission; public class CmdFWarp extends FCommand { @@ -29,6 +32,9 @@ public class CmdFWarp extends FCommand { } else { String warpName = argAsString(0); if (myFaction.isWarp(argAsString(0))) { + if (!transact(fme)) { + return; + } fme.getPlayer().teleport(myFaction.getWarp(warpName).getLocation()); fme.msg("Warped to %s", warpName); } else { @@ -36,4 +42,8 @@ public class CmdFWarp extends FCommand { } } } + + private boolean transact(FPlayer player) { + return P.p.getConfig().getBoolean("warp-cost.enabled", false) && !player.isAdminBypassing() && Econ.modifyMoney(player, P.p.getConfig().getDouble("warp-cost.warp", 5), "to warp", "for warping"); + } } diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdSetFWarp.java b/src/main/java/com/massivecraft/factions/cmd/CmdSetFWarp.java index 5bec0ac8..13921eec 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdSetFWarp.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdSetFWarp.java @@ -1,6 +1,8 @@ package com.massivecraft.factions.cmd; +import com.massivecraft.factions.FPlayer; import com.massivecraft.factions.P; +import com.massivecraft.factions.integration.Econ; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.struct.Relation; import com.massivecraft.factions.util.LazyLocation; @@ -31,9 +33,17 @@ public class CmdSetFWarp extends FCommand { return; } + if (!transact(fme)) { + return; + } + String warp = argAsString(0); LazyLocation loc = new LazyLocation(fme.getPlayer().getLocation()); myFaction.setWarp(warp, loc); fme.msg("Set warp %s to your location.", warp); } + + private boolean transact(FPlayer player) { + return P.p.getConfig().getBoolean("warp-cost.enabled", false) && !player.isAdminBypassing() && Econ.modifyMoney(player, P.p.getConfig().getDouble("warp-cost.setwarp", 5), "to set warp", "for setting warp"); + } } diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 56800f49..e4bcf8f9 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -23,6 +23,16 @@ findfactionsexploit: # What should be the max amount of warps that a Factoin can set? max-warps: 5 +# This is the cost section for warps. +# It will charge them each time the command would be successful. (won't charge on erroneous /f warp attempts). +# You can use decimal places here. +# If enabled is set to false, it will ignore the values. +warp-cost: + enabled: false + setwarp: 5 + delwarp: 5 + warp: 5 + # Pistons # Should we disable pistons in Faction territory? This will prevent people from doing something like: # http://i.gyazo.com/6a1a31222e58a5d60ff341c13f6a8404.gif