Some effect for the f home teleport command
This commit is contained in:
parent
73ea2b75e0
commit
0039370f05
@ -77,6 +77,8 @@ public class Conf
|
||||
public static boolean homesTeleportToOnDeath = true;
|
||||
public static boolean homesRespawnFromNoPowerLossWorlds = true;
|
||||
public static boolean homesTeleportCommandEnabled = true;
|
||||
public static boolean homesTeleportCommandSmokeEffectEnabled = true;
|
||||
public static float homesTeleportCommandSmokeEffectThickness = 3f;
|
||||
public static boolean homesTeleportAllowedFromEnemyTerritory = true;
|
||||
public static boolean homesTeleportAllowedFromDifferentWorld = true;
|
||||
public static double homesTeleportAllowedEnemyDistance = 32.0;
|
||||
|
@ -1,5 +1,8 @@
|
||||
package com.massivecraft.factions.cmd;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.entity.Player;
|
||||
@ -13,6 +16,7 @@ import com.massivecraft.factions.Faction;
|
||||
import com.massivecraft.factions.struct.Permission;
|
||||
import com.massivecraft.factions.struct.Relation;
|
||||
import com.massivecraft.factions.struct.Role;
|
||||
import com.massivecraft.factions.zcore.util.SmokeUtil;
|
||||
|
||||
public class CmdHome extends FCommand
|
||||
{
|
||||
@ -122,6 +126,17 @@ public class CmdHome extends FCommand
|
||||
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
|
||||
if ( ! payForCommand(Conf.econCostHome, "to change faction home", "for changing faction home")) return;
|
||||
|
||||
// Create a smoke effect
|
||||
if (Conf.homesTeleportCommandSmokeEffectEnabled)
|
||||
{
|
||||
List<Location> smokeLocations = new ArrayList<Location>();
|
||||
smokeLocations.add(me.getLocation());
|
||||
smokeLocations.add(me.getLocation().add(0, 1, 0));
|
||||
smokeLocations.add(myFaction.getHome());
|
||||
smokeLocations.add(myFaction.getHome().add(0, 1, 0));
|
||||
SmokeUtil.spawnCloudRandom(smokeLocations, Conf.homesTeleportCommandSmokeEffectThickness);
|
||||
}
|
||||
|
||||
me.teleport(myFaction.getHome());
|
||||
}
|
||||
|
||||
|
@ -29,7 +29,6 @@ import com.massivecraft.factions.FPlayer;
|
||||
import com.massivecraft.factions.FPlayers;
|
||||
import com.massivecraft.factions.Faction;
|
||||
import com.massivecraft.factions.P;
|
||||
import com.massivecraft.factions.struct.Permission;
|
||||
import com.massivecraft.factions.struct.Relation;
|
||||
import com.massivecraft.factions.util.MiscUtil;
|
||||
|
||||
|
91
src/com/massivecraft/factions/zcore/util/SmokeUtil.java
Normal file
91
src/com/massivecraft/factions/zcore/util/SmokeUtil.java
Normal file
@ -0,0 +1,91 @@
|
||||
package com.massivecraft.factions.zcore.util;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Random;
|
||||
|
||||
import org.bukkit.Effect;
|
||||
import org.bukkit.Location;
|
||||
|
||||
// http://mc.kev009.com/Protocol
|
||||
// -----------------------------
|
||||
// Smoke Directions
|
||||
// -----------------------------
|
||||
// Direction ID Direction
|
||||
// 0 South - East
|
||||
// 1 South
|
||||
// 2 South - West
|
||||
// 3 East
|
||||
// 4 (Up or middle ?)
|
||||
// 5 West
|
||||
// 6 North - East
|
||||
// 7 North
|
||||
// 8 North - West
|
||||
//-----------------------------
|
||||
|
||||
public class SmokeUtil
|
||||
{
|
||||
public static Random random = new Random();
|
||||
|
||||
// -------------------------------------------- //
|
||||
// Spawn once
|
||||
// -------------------------------------------- //
|
||||
|
||||
// Single ========
|
||||
public static void spawnSingle(Location location, int direction)
|
||||
{
|
||||
if (location == null) return;
|
||||
location.getWorld().playEffect(location, Effect.SMOKE, direction);
|
||||
}
|
||||
|
||||
public static void spawnSingle(Location location)
|
||||
{
|
||||
spawnSingle(location, 4);
|
||||
}
|
||||
|
||||
public static void spawnSingleRandom(Location location)
|
||||
{
|
||||
spawnSingle(location, random.nextInt(9));
|
||||
}
|
||||
|
||||
// Simple Cloud ========
|
||||
public static void spawnCloudSimple(Location location)
|
||||
{
|
||||
for (int i = 0; i <= 8; i++)
|
||||
{
|
||||
spawnSingle(location, i);
|
||||
}
|
||||
}
|
||||
|
||||
public static void spawnCloudSimple(Collection<Location> locations)
|
||||
{
|
||||
for (Location location : locations)
|
||||
{
|
||||
spawnCloudSimple(location);
|
||||
}
|
||||
}
|
||||
|
||||
// Random Cloud ========
|
||||
public static void spawnCloudRandom(Location location, float thickness)
|
||||
{
|
||||
int singles = (int) Math.floor(thickness*9);
|
||||
for (int i = 0; i < singles; i++)
|
||||
{
|
||||
spawnSingleRandom(location);
|
||||
}
|
||||
}
|
||||
|
||||
public static void spawnCloudRandom(Collection<Location> locations, float thickness)
|
||||
{
|
||||
for (Location location : locations)
|
||||
{
|
||||
spawnCloudRandom(location, thickness);
|
||||
}
|
||||
}
|
||||
|
||||
// -------------------------------------------- //
|
||||
// Attach continuous effects to or locations
|
||||
// -------------------------------------------- //
|
||||
|
||||
// TODO
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user