Add "Immortal" faction flag support
Update version to 3.3.3
This commit is contained in:
parent
3700bfe1e9
commit
dc1543681a
@ -3,7 +3,7 @@ name: ${project.name}
|
||||
version: ${project.version}
|
||||
website: ${project.url}
|
||||
description: ${project.description}
|
||||
authors: [Madus, Cayorion, Ulumulu1510, MarkehMe, Brettflan]
|
||||
authors: [Madus, Cayorion, Ulumulu1510, MarkehMe, Brettflan, AlkorZ3]
|
||||
depend: [MassiveCore]
|
||||
softdepend: [PermissionsEx, Permissions, Essentials, EssentialsChat, HeroChat, LocalAreaChat, LWC, ChatManager, AuthMe, Vault, WorldEdit, WorldGuard]
|
||||
api-version: 1.13
|
||||
|
2
pom.xml
2
pom.xml
@ -5,7 +5,7 @@
|
||||
<parent>
|
||||
<groupId>com.massivecraft.massivesuper</groupId>
|
||||
<artifactId>MassiveSuper</artifactId>
|
||||
<version>3.3.2</version>
|
||||
<version>3.3.3</version>
|
||||
<relativePath>../MassiveSuper</relativePath>
|
||||
</parent>
|
||||
|
||||
|
@ -38,6 +38,7 @@ import com.massivecraft.factions.engine.EngineLastActivity;
|
||||
import com.massivecraft.factions.engine.EngineMotd;
|
||||
import com.massivecraft.factions.engine.EngineMoveChunk;
|
||||
import com.massivecraft.factions.engine.EnginePermBuild;
|
||||
import com.massivecraft.factions.engine.EnginePlayerDamage;
|
||||
import com.massivecraft.factions.engine.EnginePlayerData;
|
||||
import com.massivecraft.factions.engine.EnginePower;
|
||||
import com.massivecraft.factions.engine.EngineSeeChunk;
|
||||
@ -234,6 +235,7 @@ public class Factions extends MassivePlugin
|
||||
EngineMotd.class,
|
||||
EngineMoveChunk.class,
|
||||
EnginePermBuild.class,
|
||||
EnginePlayerDamage.class,
|
||||
EnginePlayerData.class,
|
||||
EnginePower.class,
|
||||
EngineSeeChunk.class,
|
||||
|
83
src/com/massivecraft/factions/engine/EnginePlayerDamage.java
Normal file
83
src/com/massivecraft/factions/engine/EnginePlayerDamage.java
Normal file
@ -0,0 +1,83 @@
|
||||
package com.massivecraft.factions.engine;
|
||||
|
||||
import com.massivecraft.factions.entity.BoardColl;
|
||||
import com.massivecraft.factions.entity.Faction;
|
||||
import com.massivecraft.factions.entity.MConf;
|
||||
import com.massivecraft.factions.entity.MFlag;
|
||||
import com.massivecraft.factions.entity.MPlayer;
|
||||
import com.massivecraft.factions.entity.MPlayerColl;
|
||||
import com.massivecraft.massivecore.Engine;
|
||||
import com.massivecraft.massivecore.ps.PS;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.entity.EntityDamageEvent;
|
||||
import java.util.HashMap;
|
||||
|
||||
public class EnginePlayerDamage extends Engine
|
||||
{
|
||||
// -------------------------------------------- //
|
||||
// INSTANCE & CONSTRUCT
|
||||
// -------------------------------------------- //
|
||||
|
||||
private static EnginePlayerDamage i = new EnginePlayerDamage();
|
||||
public static EnginePlayerDamage get() { return i; }
|
||||
public HashMap<Integer, Long> coolDownTp = new HashMap<Integer, Long>();
|
||||
|
||||
// -------------------------------------------- //
|
||||
// MANAGE PLAYER DAMAGE / IMMORTAL FLAG
|
||||
// -------------------------------------------- //
|
||||
|
||||
// @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
public void onEntityDamaged(EntityDamageEvent event)
|
||||
{
|
||||
if (!(event.getEntity() instanceof Player))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// If a player receive some damage...
|
||||
Player player = (Player)event.getEntity();
|
||||
|
||||
//PS playerPs = PS.valueOf(player.getLocation());
|
||||
Faction psFaction = BoardColl.get().getFactionAt(PS.valueOf(player.getLocation()));
|
||||
|
||||
// Bukkit.getServer().getLogger().warning("Damage on Player : " + player.getName() + ": [" + psFaction.getName() + "]");
|
||||
|
||||
// Are we Immortal ?
|
||||
if (psFaction.getFlag(MFlag.getFlagImmortal()) == true)
|
||||
{
|
||||
// Bukkit.getServer().getLogger().warning("Damage on Player " + player.getName() + ": " + event.getCause() + "=> Immortal !");
|
||||
// Bukkit.getServer().getLogger().warning("Loc: " + player.getLocation());
|
||||
|
||||
event.setCancelled(true);
|
||||
|
||||
if ( event.getCause() == EntityDamageEvent.DamageCause.VOID)
|
||||
{
|
||||
// TP CoolDown?
|
||||
if ( (coolDownTp.get(player.getEntityId()) == null) || ( ( System.nanoTime() - coolDownTp.get(player.getEntityId())) > 500000000))
|
||||
{
|
||||
if( coolDownTp.get(player.getEntityId()) != null)
|
||||
{
|
||||
coolDownTp.remove(player.getEntityId());
|
||||
}
|
||||
|
||||
coolDownTp.put(player.getEntityId(), System.nanoTime());
|
||||
|
||||
// Bukkit.getServer().getLogger().warning("Respawning to: " + player.getWorld().getSpawnLocation() + " @" + System.nanoTime() + "!");
|
||||
player.teleport(player.getWorld().getSpawnLocation());
|
||||
}
|
||||
else
|
||||
{
|
||||
// Bukkit.getServer().getLogger().warning("Respawning Cooldown :" + System.nanoTime() + "!");
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Bukkit.getServer().getLogger().warning("Damage on Player " + player.getName() + ": " + event.getCause() + "=> Mortal !");
|
||||
}
|
||||
}
|
||||
}
|
@ -37,6 +37,7 @@ public class MFlag extends Entity<MFlag> implements Prioritized, Registerable, N
|
||||
public final static transient String ID_INFPOWER = "infpower";
|
||||
public final static transient String ID_FLY = "fly";
|
||||
public final static transient String ID_TAXKICK = "taxkick";
|
||||
public final static transient String ID_IMMORTAL = "immortal";
|
||||
|
||||
public final static transient int PRIORITY_OPEN = 1_000;
|
||||
public final static transient int PRIORITY_MONSTERS = 2_000;
|
||||
@ -55,6 +56,7 @@ public class MFlag extends Entity<MFlag> implements Prioritized, Registerable, N
|
||||
public final static transient int PRIORITY_INFPOWER = 15_000;
|
||||
public final static transient int PRIORITY_FLY = 16_000;
|
||||
public final static transient int PRIORITY_TAXKICK = 17_000;
|
||||
public final static transient int PRIORITY_IMMORTAL = 18_000;
|
||||
|
||||
// -------------------------------------------- //
|
||||
// META: CORE
|
||||
@ -96,6 +98,7 @@ public class MFlag extends Entity<MFlag> implements Prioritized, Registerable, N
|
||||
getFlagInfpower();
|
||||
getFlagFly();
|
||||
getFlagTaxKick();
|
||||
getFlagImmortal();
|
||||
}
|
||||
|
||||
public static MFlag getFlagOpen() { return getCreative(PRIORITY_OPEN, ID_OPEN, ID_OPEN, "Can the faction be joined without an invite?", "Anyone can join. No invite required.", "An invite is required to join.", false, true, true); }
|
||||
@ -115,6 +118,7 @@ public class MFlag extends Entity<MFlag> implements Prioritized, Registerable, N
|
||||
public static MFlag getFlagInfpower() { return getCreative(PRIORITY_INFPOWER, ID_INFPOWER, ID_INFPOWER, "Does the faction have infinite power?", "The faction has infinite power.", "The faction power works as usual.", false, false, true); }
|
||||
public static MFlag getFlagFly() { return getCreative(PRIORITY_FLY, ID_FLY, ID_FLY, "Is flying allowed for members in faction territory?", "Members can fly in faction territory.", "Members can not fly in faction territory.", false, false, true); }
|
||||
public static MFlag getFlagTaxKick() { return getCreative(PRIORITY_TAXKICK, ID_TAXKICK, ID_TAXKICK, "Are players kicked for not paying taxes?", "Members are kicked for not paying taxes.", "Members are not kicked for not paying taxes.", false, true, true); }
|
||||
public static MFlag getFlagImmortal() { return getCreative(PRIORITY_IMMORTAL, ID_IMMORTAL, ID_IMMORTAL, "Are players immortal in this territory?", "Players are immortal in this territory.", "Players are NOT immortal in this territory.", false, false, true); }
|
||||
|
||||
public static MFlag getCreative(int priority, String id, String name, String desc, String descYes, String descNo, boolean standard, boolean editable, boolean visible)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user