Release update.

This commit is contained in:
Steven Lawson 2011-11-20 23:31:29 -05:00
parent bb3c08b9c5
commit e621290fae
6 changed files with 106 additions and 2 deletions

View file

@ -35,6 +35,10 @@ disable_weather: true
landmines_enabled: false
mp44_enabled: false
# Moblimiter:
mob_limiter_enabled: true
mob_limiter_max: 50
# Superadmins: Users that can always log in and use the most powerful commands:
# When online-mode = false, only superadmin_ips will be used.
# The superadmin lists have been moved to superadmin.yml

View file

@ -0,0 +1,62 @@
package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.ExperienceOrb;
import org.bukkit.entity.Player;
public class Command_addexp extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (senderIsConsole)
{
sender.sendMessage(TotalFreedomMod.NOT_FROM_CONSOLE);
return true;
}
if (!sender.isOp())
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
return true;
}
if (args.length != 1)
{
return false;
}
int exp_amount;
try
{
exp_amount = Integer.parseInt(args[0]);
if (exp_amount < 0)
{
sender.sendMessage(ChatColor.AQUA + "Invalid exp amount (MUST BE POSITIVE).");
return true;
}
else if (exp_amount > 2000)
{
sender.sendMessage(ChatColor.AQUA + "Invalid exp amount (MAX = 2000).");
return true;
}
}
catch (NumberFormatException ex)
{
sender.sendMessage(ChatColor.AQUA + "Invalid exp amount.");
return true;
}
ExperienceOrb exp_orb = sender_p.getWorld().spawn(sender_p.getLocation(), ExperienceOrb.class);
exp_orb.setExperience(exp_amount);
sender.sendMessage(ChatColor.AQUA + String.valueOf(exp_amount) + " exp added.");
return true;
}
}

View file

@ -1,6 +1,7 @@
package me.StevenLawson.TotalFreedomMod.Listener;
import me.StevenLawson.TotalFreedomMod.TFM_UserInfo;
import me.StevenLawson.TotalFreedomMod.TFM_Util;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.bukkit.entity.Player;
import org.bukkit.event.entity.*;
@ -23,7 +24,7 @@ public class TFM_EntityListener extends EntityListener
event.setCancelled(true);
return;
}
event.setYield(0.0f);
}
@ -69,11 +70,26 @@ public class TFM_EntityListener extends EntityListener
}
}
}
if (event.getCause() == DamageCause.LAVA && !TotalFreedomMod.allowLavaDamage)
{
event.setCancelled(true);
return;
}
}
@Override
public void onCreatureSpawn(CreatureSpawnEvent event)
{
if (TotalFreedomMod.mobLimiterEnabled)
{
if (TotalFreedomMod.mobLimiterMax > 0)
{
if (TFM_Util.getMobAmount(event.getEntity().getWorld()) > TotalFreedomMod.mobLimiterMax)
{
event.setCancelled(true);
}
}
}
}
}

View file

@ -580,4 +580,18 @@ public class TFM_Util
}
}
}
public static int getMobAmount(World world)
{
List<LivingEntity> mobs = world.getLivingEntities();
for (int j = 0; j < mobs.size(); j++)
{
if (!Creature.class.isInstance(mobs.get(j)))
{
mobs.remove(j);
j--;
}
}
return mobs.size();
}
}

View file

@ -135,6 +135,8 @@ public class TotalFreedomMod extends JavaPlugin
public static Boolean disableWeather = true;
public static boolean landminesEnabled = false;
public static boolean mp44Enabled = false;
public static boolean mobLimiterEnabled = true;
public static int mobLimiterMax = 50;
public void loadMainConfig()
{
@ -159,6 +161,8 @@ public class TotalFreedomMod extends JavaPlugin
disableWeather = config.getBoolean("disable_weather", disableWeather);
landminesEnabled = config.getBoolean("landmines_enabled", landminesEnabled);
mp44Enabled = config.getBoolean("mp44_enabled", mp44Enabled);
mobLimiterEnabled = config.getBoolean("mob_limiter_enabled", mobLimiterEnabled);
mobLimiterMax = config.getInt("mob_limiter_max", mobLimiterMax);
}
public static List<String> superadmins = new ArrayList<String>();
@ -201,6 +205,7 @@ public class TotalFreedomMod extends JavaPlugin
pm.registerEvent(Event.Type.ENTITY_COMBUST, entityListener, Event.Priority.High, this);
pm.registerEvent(Event.Type.ENTITY_DAMAGE, entityListener, Event.Priority.High, this);
pm.registerEvent(Event.Type.EXPLOSION_PRIME, entityListener, Event.Priority.High, this);
pm.registerEvent(Event.Type.CREATURE_SPAWN, entityListener, Event.Priority.Normal, this);
pm.registerEvent(Event.Type.BLOCK_IGNITE, blockListener, Event.Priority.High, this);
pm.registerEvent(Event.Type.BLOCK_BURN, blockListener, Event.Priority.High, this);

View file

@ -4,6 +4,9 @@ version: 2.2
description: Plugin for the Total Freedom server.
author: StevenLawson / Madgeek1450
commands:
addexp:
description: Add levels to your survival level.
usage: /<command> [level]
cage:
description: Superadmin command - Place a cage around someone.
usage: /<command> <partialname> [off | outermaterial] [water | lava]