mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2024-11-26 07:06:45 +01:00
WG Hardcore penalty flag 'mcmmo-hardcore'
This commit is contained in:
parent
38bc60ba86
commit
2cecc91026
@ -1,4 +1,5 @@
|
|||||||
Version 2.1.82
|
Version 2.1.82
|
||||||
|
Added new WG flag 'mcmmo-hardcore' if set to negative players will not be penalized by hardcore mode (if hardcore mode is enabled) it defaults to true
|
||||||
Added proper error handling when loading parties file
|
Added proper error handling when loading parties file
|
||||||
Fixed an error that could occur when using mcrank on an offline player
|
Fixed an error that could occur when using mcrank on an offline player
|
||||||
You can now use mcrank on offline players by default
|
You can now use mcrank on offline players by default
|
||||||
|
@ -6,6 +6,8 @@ import com.gmail.nossr50.datatypes.player.PlayerProfile;
|
|||||||
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
||||||
import com.gmail.nossr50.util.player.NotificationManager;
|
import com.gmail.nossr50.util.player.NotificationManager;
|
||||||
import com.gmail.nossr50.util.player.UserManager;
|
import com.gmail.nossr50.util.player.UserManager;
|
||||||
|
import com.gmail.nossr50.worldguard.WorldGuardManager;
|
||||||
|
import com.gmail.nossr50.worldguard.WorldGuardUtils;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@ -14,6 +16,12 @@ public final class HardcoreManager {
|
|||||||
private HardcoreManager() {}
|
private HardcoreManager() {}
|
||||||
|
|
||||||
public static void invokeStatPenalty(Player player) {
|
public static void invokeStatPenalty(Player player) {
|
||||||
|
|
||||||
|
if(WorldGuardUtils.isWorldGuardLoaded()) {
|
||||||
|
if(!WorldGuardManager.getInstance().hasHardcoreFlag(player))
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
double statLossPercentage = Config.getInstance().getHardcoreDeathStatPenaltyPercentage();
|
double statLossPercentage = Config.getInstance().getHardcoreDeathStatPenaltyPercentage();
|
||||||
int levelThreshold = Config.getInstance().getHardcoreDeathStatPenaltyLevelThreshold();
|
int levelThreshold = Config.getInstance().getHardcoreDeathStatPenaltyLevelThreshold();
|
||||||
|
|
||||||
@ -59,6 +67,12 @@ public final class HardcoreManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void invokeVampirism(Player killer, Player victim) {
|
public static void invokeVampirism(Player killer, Player victim) {
|
||||||
|
|
||||||
|
if(WorldGuardUtils.isWorldGuardLoaded()) {
|
||||||
|
if(!WorldGuardManager.getInstance().hasHardcoreFlag(killer) || !WorldGuardManager.getInstance().hasHardcoreFlag(victim))
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
double vampirismStatLeechPercentage = Config.getInstance().getHardcoreVampirismStatLeechPercentage();
|
double vampirismStatLeechPercentage = Config.getInstance().getHardcoreVampirismStatLeechPercentage();
|
||||||
int levelThreshold = Config.getInstance().getHardcoreVampirismLevelThreshold();
|
int levelThreshold = Config.getInstance().getHardcoreVampirismLevelThreshold();
|
||||||
|
|
||||||
|
@ -6,4 +6,5 @@ public class WorldGuardFlags {
|
|||||||
// StateFlag with the name "my-custom-flag", which defaults to "allow"
|
// StateFlag with the name "my-custom-flag", which defaults to "allow"
|
||||||
public static final StateFlag MCMMO_ENABLE_WG_FLAG = new StateFlag("mcmmo", true);
|
public static final StateFlag MCMMO_ENABLE_WG_FLAG = new StateFlag("mcmmo", true);
|
||||||
public static final StateFlag MCMMO_XP_WG_FLAG = new StateFlag("mcmmo-xp", true);
|
public static final StateFlag MCMMO_XP_WG_FLAG = new StateFlag("mcmmo-xp", true);
|
||||||
|
public static final StateFlag MCMMO_HARDCORE_WG_FLAG = new StateFlag("mcmmo-hardcore", true);
|
||||||
}
|
}
|
||||||
|
@ -64,6 +64,23 @@ public class WorldGuardManager {
|
|||||||
return query.testState(loc, WorldGuardPlugin.inst().wrapPlayer(player), WorldGuardFlags.MCMMO_XP_WG_FLAG);
|
return query.testState(loc, WorldGuardPlugin.inst().wrapPlayer(player), WorldGuardFlags.MCMMO_XP_WG_FLAG);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean hasHardcoreFlag(Player player)
|
||||||
|
{
|
||||||
|
if(player == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
BukkitPlayer localPlayer = BukkitAdapter.adapt(player);
|
||||||
|
com.sk89q.worldedit.util.Location loc = localPlayer.getLocation();
|
||||||
|
|
||||||
|
//WorldGuardPlugin worldGuard = getWorldGuard();
|
||||||
|
RegionContainer container = WorldGuard.getInstance().getPlatform().getRegionContainer();
|
||||||
|
RegionQuery query = container.createQuery();
|
||||||
|
|
||||||
|
//ApplicableRegionSet set = query.getApplicableRegions(loc);
|
||||||
|
|
||||||
|
return query.testState(loc, WorldGuardPlugin.inst().wrapPlayer(player), WorldGuardFlags.MCMMO_HARDCORE_WG_FLAG);
|
||||||
|
}
|
||||||
|
|
||||||
private WorldGuardPlugin getWorldGuard() {
|
private WorldGuardPlugin getWorldGuard() {
|
||||||
Plugin plugin = getServer().getPluginManager().getPlugin("WorldGuard");
|
Plugin plugin = getServer().getPluginManager().getPlugin("WorldGuard");
|
||||||
|
|
||||||
@ -88,6 +105,7 @@ public class WorldGuardManager {
|
|||||||
registry.register(WorldGuardFlags.MCMMO_XP_WG_FLAG);*/
|
registry.register(WorldGuardFlags.MCMMO_XP_WG_FLAG);*/
|
||||||
registry.register(WorldGuardFlags.MCMMO_ENABLE_WG_FLAG);
|
registry.register(WorldGuardFlags.MCMMO_ENABLE_WG_FLAG);
|
||||||
registry.register(WorldGuardFlags.MCMMO_XP_WG_FLAG);
|
registry.register(WorldGuardFlags.MCMMO_XP_WG_FLAG);
|
||||||
|
registry.register(WorldGuardFlags.MCMMO_HARDCORE_WG_FLAG);
|
||||||
System.out.println("mcMMO has registered WG flags successfully!");
|
System.out.println("mcMMO has registered WG flags successfully!");
|
||||||
} catch (FlagConflictException e) {
|
} catch (FlagConflictException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
Loading…
Reference in New Issue
Block a user