Removing tests. Since we don't do those.

Added /lastcmd.
Added /tfupdate, mainly for my own use.
This commit is contained in:
Steven Lawson 2012-12-21 22:22:08 -05:00
parent ca4e64cc0e
commit bfa0324af9
10 changed files with 156 additions and 36 deletions

View File

@ -134,9 +134,7 @@ is divided into following sections:
</or> </or>
</condition> </condition>
<condition property="have.tests"> <condition property="have.tests">
<or> <or/>
<available file="${test.src.dir}"/>
</or>
</condition> </condition>
<condition property="have.sources"> <condition property="have.sources">
<or> <or>
@ -229,7 +227,6 @@ is divided into following sections:
</target> </target>
<target depends="-pre-init,-init-private,-init-user,-init-project,-do-init" name="-init-check"> <target depends="-pre-init,-init-private,-init-user,-init-project,-do-init" name="-init-check">
<fail unless="src.dir">Must set src.dir</fail> <fail unless="src.dir">Must set src.dir</fail>
<fail unless="test.src.dir">Must set test.src.dir</fail>
<fail unless="build.dir">Must set build.dir</fail> <fail unless="build.dir">Must set build.dir</fail>
<fail unless="dist.dir">Must set dist.dir</fail> <fail unless="dist.dir">Must set dist.dir</fail>
<fail unless="build.classes.dir">Must set build.classes.dir</fail> <fail unless="build.classes.dir">Must set build.classes.dir</fail>
@ -403,11 +400,7 @@ is divided into following sections:
<sequential> <sequential>
<property name="junit.forkmode" value="perTest"/> <property name="junit.forkmode" value="perTest"/>
<junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" showoutput="true" tempdir="${build.dir}"> <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" showoutput="true" tempdir="${build.dir}">
<batchtest todir="${build.test.results.dir}"> <batchtest todir="${build.test.results.dir}"/>
<fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
<filename name="@{testincludes}"/>
</fileset>
</batchtest>
<syspropertyset> <syspropertyset>
<propertyref prefix="test-sys-prop."/> <propertyref prefix="test-sys-prop."/>
<mapper from="test-sys-prop.*" to="*" type="glob"/> <mapper from="test-sys-prop.*" to="*" type="glob"/>
@ -432,11 +425,7 @@ is divided into following sections:
<condition else="" property="testng.methods.arg" value="@{testincludes}.@{testmethods}"> <condition else="" property="testng.methods.arg" value="@{testincludes}.@{testmethods}">
<isset property="test.method"/> <isset property="test.method"/>
</condition> </condition>
<union id="test.set"> <union id="test.set"/>
<fileset dir="${test.src.dir}" excludes="@{excludes},**/*.xml,${excludes}" includes="@{includes}">
<filename name="@{testincludes}"/>
</fileset>
</union>
<taskdef classname="org.testng.TestNGAntTask" classpath="${run.test.classpath}" name="testng"/> <taskdef classname="org.testng.TestNGAntTask" classpath="${run.test.classpath}" name="testng"/>
<testng classfilesetref="test.set" failureProperty="tests.failed" methods="${testng.methods.arg}" mode="${testng.mode}" outputdir="${build.test.results.dir}" suitename="TotalFreedomMod" testname="TestNG tests" workingDir="${work.dir}"> <testng classfilesetref="test.set" failureProperty="tests.failed" methods="${testng.methods.arg}" mode="${testng.mode}" outputdir="${build.test.results.dir}" suitename="TotalFreedomMod" testname="TestNG tests" workingDir="${work.dir}">
<xmlfileset dir="${build.test.classes.dir}" includes="@{testincludes}"/> <xmlfileset dir="${build.test.classes.dir}" includes="@{testincludes}"/>
@ -544,11 +533,7 @@ is divided into following sections:
<sequential> <sequential>
<property name="junit.forkmode" value="perTest"/> <property name="junit.forkmode" value="perTest"/>
<junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" showoutput="true" tempdir="${build.dir}"> <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" showoutput="true" tempdir="${build.dir}">
<batchtest todir="${build.test.results.dir}"> <batchtest todir="${build.test.results.dir}"/>
<fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
<filename name="@{testincludes}"/>
</fileset>
</batchtest>
<syspropertyset> <syspropertyset>
<propertyref prefix="test-sys-prop."/> <propertyref prefix="test-sys-prop."/>
<mapper from="test-sys-prop.*" to="*" type="glob"/> <mapper from="test-sys-prop.*" to="*" type="glob"/>
@ -1231,13 +1216,11 @@ is divided into following sections:
<!-- You can override this target in the ../build.xml file. --> <!-- You can override this target in the ../build.xml file. -->
</target> </target>
<target if="do.depend.true" name="-compile-test-depend"> <target if="do.depend.true" name="-compile-test-depend">
<j2seproject3:depend classpath="${javac.test.classpath}" destdir="${build.test.classes.dir}" srcdir="${test.src.dir}"/> <j2seproject3:depend classpath="${javac.test.classpath}" destdir="${build.test.classes.dir}" srcdir=""/>
</target> </target>
<target depends="init,deps-jar,compile,-pre-pre-compile-test,-pre-compile-test,-compile-test-depend" if="have.tests" name="-do-compile-test"> <target depends="init,deps-jar,compile,-pre-pre-compile-test,-pre-compile-test,-compile-test-depend" if="have.tests" name="-do-compile-test">
<j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" processorpath="${javac.test.processorpath}" srcdir="${test.src.dir}"/> <j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" processorpath="${javac.test.processorpath}" srcdir=""/>
<copy todir="${build.test.classes.dir}"> <copy todir="${build.test.classes.dir}"/>
<fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
</copy>
</target> </target>
<target name="-post-compile-test"> <target name="-post-compile-test">
<!-- Empty placeholder for easier customization. --> <!-- Empty placeholder for easier customization. -->
@ -1251,10 +1234,8 @@ is divided into following sections:
<target depends="init,deps-jar,compile,-pre-pre-compile-test,-pre-compile-test-single" if="have.tests" name="-do-compile-test-single"> <target depends="init,deps-jar,compile,-pre-pre-compile-test,-pre-compile-test-single" if="have.tests" name="-do-compile-test-single">
<fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail> <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
<j2seproject3:force-recompile destdir="${build.test.classes.dir}"/> <j2seproject3:force-recompile destdir="${build.test.classes.dir}"/>
<j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" excludes="" includes="${javac.includes}" processorpath="${javac.test.processorpath}" sourcepath="${test.src.dir}" srcdir="${test.src.dir}"/> <j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" excludes="" includes="${javac.includes}" processorpath="${javac.test.processorpath}" sourcepath="" srcdir=""/>
<copy todir="${build.test.classes.dir}"> <copy todir="${build.test.classes.dir}"/>
<fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
</copy>
</target> </target>
<target name="-post-compile-test-single"> <target name="-post-compile-test-single">
<!-- Empty placeholder for easier customization. --> <!-- Empty placeholder for easier customization. -->

View File

@ -3,6 +3,6 @@ build.xml.script.CRC32=b1031e10
build.xml.stylesheet.CRC32=28e38971@1.44.1.45 build.xml.stylesheet.CRC32=28e38971@1.44.1.45
# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. # This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. # Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
nbproject/build-impl.xml.data.CRC32=7bf70ec5 nbproject/build-impl.xml.data.CRC32=0753327a
nbproject/build-impl.xml.script.CRC32=8511de95 nbproject/build-impl.xml.script.CRC32=fe17df45
nbproject/build-impl.xml.stylesheet.CRC32=6ddba6b6@1.53.1.46 nbproject/build-impl.xml.stylesheet.CRC32=6ddba6b6@1.53.1.46

View File

@ -82,4 +82,3 @@ run.test.classpath=\
${build.test.classes.dir} ${build.test.classes.dir}
source.encoding=UTF-8 source.encoding=UTF-8
src.dir=src src.dir=src
test.src.dir=test

View File

@ -7,9 +7,7 @@
<source-roots> <source-roots>
<root id="src.dir"/> <root id="src.dir"/>
</source-roots> </source-roots>
<test-roots> <test-roots/>
<root id="test.src.dir"/>
</test-roots>
</data> </data>
</configuration> </configuration>
</project> </project>

View File

@ -0,0 +1,46 @@
package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_UserInfo;
import me.StevenLawson.TotalFreedomMod.TFM_Util;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false)
public class Command_lastcmd extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (args.length == 0)
{
return false;
}
Player p;
try
{
p = getPlayer(args[0]);
}
catch (CantFindPlayerException ex)
{
sender.sendMessage(ex.getMessage());
return true;
}
TFM_UserInfo playerdata = TFM_UserInfo.getPlayerData(p);
if (playerdata != null)
{
String last_command = playerdata.getLastCommand();
if (last_command.isEmpty())
{
last_command = "(none)";
}
TFM_Util.playerMsg(sender, p.getName() + " - Last Command: " + last_command, ChatColor.GRAY);
}
return true;
}
}

View File

@ -0,0 +1,67 @@
package me.StevenLawson.TotalFreedomMod.Commands;
import java.io.File;
import me.StevenLawson.TotalFreedomMod.TFM_Log;
import me.StevenLawson.TotalFreedomMod.TFM_Util;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = ADMIN_LEVEL.SENIOR, source = SOURCE_TYPE_ALLOWED.ONLY_CONSOLE, block_host_console = true, ignore_permissions = false)
public class Command_tfupdate extends TFM_Command
{
public static final String[] FILES =
{
"http://s3.madgeekonline.com/totalfreedom/BukkitHttpd.jar",
"http://s3.madgeekonline.com/totalfreedom/BukkitTelnet.jar",
"http://s3.madgeekonline.com/totalfreedom/Essentials.jar",
"http://s3.madgeekonline.com/totalfreedom/EssentialsSpawn.jar",
"http://s3.madgeekonline.com/totalfreedom/TotalFreedomMod.jar",
"http://s3.madgeekonline.com/totalfreedom/craftbukkit.jar",
"http://s3.madgeekonline.com/totalfreedom/worldedit.jar"
};
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (!sender.getName().equalsIgnoreCase("madgeek1450"))
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
return true;
}
for (final String url : FILES)
{
server.getScheduler().runTaskAsynchronously(plugin, new Runnable()
{
@Override
public void run()
{
try
{
TFM_Log.info("Downloading: " + url);
File file = new File("./updates/" + url.substring(url.lastIndexOf("/") + 1));
if (file.exists())
{
file.delete();
}
if (!file.getParentFile().exists())
{
file.getParentFile().mkdirs();
}
TFM_Util.downloadFile(url, file, true);
}
catch (Exception ex)
{
TFM_Log.severe(ex);
}
}
});
}
return true;
}
}

View File

@ -468,6 +468,8 @@ public class TFM_PlayerListener implements Listener
TFM_Log.info(String.format("[PREPROCESS_COMMAND] %s(%s): %s", p.getName(), ChatColor.stripColor(p.getDisplayName()), command), true); TFM_Log.info(String.format("[PREPROCESS_COMMAND] %s(%s): %s", p.getName(), ChatColor.stripColor(p.getDisplayName()), command), true);
} }
playerdata.setLastCommand(command);
command = command.toLowerCase().trim(); command = command.toLowerCase().trim();
boolean block_command = false; boolean block_command = false;

View File

@ -48,6 +48,7 @@ public class TFM_UserInfo
private boolean in_adminchat = false; private boolean in_adminchat = false;
private boolean all_commands_blocked = false; private boolean all_commands_blocked = false;
private Boolean superadmin_id_verified = null; private Boolean superadmin_id_verified = null;
private String last_command = "";
public TFM_UserInfo(Player player) public TFM_UserInfo(Player player)
{ {
@ -453,4 +454,14 @@ public class TFM_UserInfo
{ {
this.superadmin_id_verified = superadmin_id_verified; this.superadmin_id_verified = superadmin_id_verified;
} }
public String getLastCommand()
{
return last_command;
}
public void setLastCommand(String last_command)
{
this.last_command = last_command;
}
} }

View File

@ -937,13 +937,23 @@ public class TFM_Util
return affected; return affected;
} }
public static void downloadFile(String url, File output_file) throws Exception public static void downloadFile(String url, File output_file) throws java.lang.Exception
{
downloadFile(url, output_file, false);
}
public static void downloadFile(String url, File output_file, boolean verbose) throws java.lang.Exception
{ {
URL website = new URL(url); URL website = new URL(url);
ReadableByteChannel rbc = Channels.newChannel(website.openStream()); ReadableByteChannel rbc = Channels.newChannel(website.openStream());
FileOutputStream fos = new FileOutputStream(output_file); FileOutputStream fos = new FileOutputStream(output_file);
fos.getChannel().transferFrom(rbc, 0, 1 << 24); fos.getChannel().transferFrom(rbc, 0, 1 << 24);
fos.close(); fos.close();
if (verbose)
{
TFM_Log.info("Downloaded " + url + " to " + output_file.toString() + ".");
}
} }
public static void adminChatMessage(CommandSender sender, String message, boolean senderIsConsole) public static void adminChatMessage(CommandSender sender, String message, boolean senderIsConsole)

View File

@ -98,6 +98,9 @@ commands:
landmine: landmine:
description: Set a landmine trap. description: Set a landmine trap.
usage: /<command> usage: /<command>
lastcmd:
description: Superadmin command - Show the last command that someone used.
usage: /<command> <player>
lavadmg: lavadmg:
description: Superadmin command - Enable/disable lava damage. description: Superadmin command - Enable/disable lava damage.
usage: /<command> <on | off> usage: /<command> <on | off>
@ -186,7 +189,7 @@ commands:
usage: /<command> <block> [radius (default=50)] [player] usage: /<command> <block> [radius (default=50)] [player]
saconfig: saconfig:
description: Senior Command - Manage superadmins. description: Senior Command - Manage superadmins.
usage: /<command> <list | clean | <add|delete> <username>> usage: /<command> <list | clean | <add|delete|info> <username>>
say: say:
description: Broadcasts the given message as the console, includes sender name. description: Broadcasts the given message as the console, includes sender name.
usage: /<command> <message> usage: /<command> <message>
@ -227,6 +230,9 @@ commands:
tfipbanlist: tfipbanlist:
description: Shows all banned IPs. Superadmins may optionally use 'purge' to clear the list. description: Shows all banned IPs. Superadmins may optionally use 'purge' to clear the list.
usage: /<command> [purge] usage: /<command> [purge]
tfupdate:
description: Madgeek command - Update server files.
usave: /<command>
tossmob: tossmob:
description: Throw a mob in the direction you are facing when you left click with a stick. description: Throw a mob in the direction you are facing when you left click with a stick.
usage: /<command> <mobtype [speed] | off | list> usage: /<command> <mobtype [speed] | off | list>