mirror of
https://github.com/AtlasMediaGroup/TotalFreedomMod.git
synced 2025-06-11 21:43:54 +00:00
Added /health (try 2)
This commit is contained in:
@ -0,0 +1,56 @@
|
||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||
|
||||
import java.text.DecimalFormat;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import me.StevenLawson.TotalFreedomMod.TFM_Log;
|
||||
import me.StevenLawson.TotalFreedomMod.TFM_TickMeter;
|
||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||
import org.apache.commons.lang.exception.ExceptionUtils;
|
||||
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_health extends TFM_Command
|
||||
{
|
||||
@Override
|
||||
public boolean run(final CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||
{
|
||||
|
||||
Runnable task;
|
||||
task = new Runnable() // async
|
||||
{
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
try
|
||||
{
|
||||
TFM_TickMeter meter = new TFM_TickMeter(plugin);
|
||||
meter.startTicking();
|
||||
Thread.sleep(1000); // ticks per second
|
||||
meter.stopTicking();
|
||||
|
||||
Runtime runtime = Runtime.getRuntime();
|
||||
int mb = 1048576; // 1024 * 1024
|
||||
|
||||
float usedMem = runtime.totalMemory() - runtime.freeMemory();
|
||||
|
||||
TFM_Util.playerMsg(sender, "Reserved Memory: " + runtime.totalMemory() / mb + "mb");
|
||||
TFM_Util.playerMsg(sender, "Used Memory: " + new DecimalFormat("#").format(usedMem / mb) + "mb (" + new DecimalFormat("#").format(usedMem/runtime.totalMemory()*100) + "%)");
|
||||
TFM_Util.playerMsg(sender, "Max Memory: " + runtime.maxMemory() / mb + "mb");
|
||||
TFM_Util.playerMsg(sender, "Ticks per second: " + (meter.getTicks() == 20 ? ChatColor.GREEN : ChatColor.RED) + meter.getTicks());
|
||||
}
|
||||
catch (Exception iex)
|
||||
{
|
||||
TFM_Log.warning("Exception in TFM_TickMeter: Thread was interupted in sleeping process.");
|
||||
TFM_Log.warning(ExceptionUtils.getStackTrace(iex));
|
||||
}
|
||||
}
|
||||
};
|
||||
new Thread(task, "TickMeter").start();
|
||||
return true;
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
@ -472,6 +472,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);
|
||||
}
|
||||
|
||||
playerdata.setLastCommand(command);
|
||||
|
||||
command = command.toLowerCase().trim();
|
||||
|
||||
boolean block_command = false;
|
||||
|
40
src/me/StevenLawson/TotalFreedomMod/TFM_TickMeter.java
Normal file
40
src/me/StevenLawson/TotalFreedomMod/TFM_TickMeter.java
Normal file
@ -0,0 +1,40 @@
|
||||
package me.StevenLawson.TotalFreedomMod;
|
||||
|
||||
public class TFM_TickMeter
|
||||
{
|
||||
|
||||
int ticks;
|
||||
int taskId;
|
||||
final TotalFreedomMod plugin;
|
||||
|
||||
public TFM_TickMeter(TotalFreedomMod plugin)
|
||||
{
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
public int startTicking()
|
||||
{
|
||||
int tId = plugin.getServer().getScheduler().scheduleSyncRepeatingTask(plugin, new Runnable()
|
||||
{
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
ticks += 1;
|
||||
}
|
||||
}, 1L, 1L); // ticks (20 in 1 second)
|
||||
|
||||
taskId = tId;
|
||||
return tId;
|
||||
}
|
||||
|
||||
public void stopTicking()
|
||||
{
|
||||
plugin.getServer().getScheduler().cancelTask(taskId);
|
||||
}
|
||||
|
||||
public int getTicks()
|
||||
{
|
||||
return ticks;
|
||||
}
|
||||
|
||||
}
|
@ -48,6 +48,7 @@ public class TFM_UserInfo
|
||||
private boolean in_adminchat = false;
|
||||
private boolean all_commands_blocked = false;
|
||||
private Boolean superadmin_id_verified = null;
|
||||
private String last_command = "";
|
||||
|
||||
public TFM_UserInfo(Player player)
|
||||
{
|
||||
@ -453,4 +454,14 @@ public class TFM_UserInfo
|
||||
{
|
||||
this.superadmin_id_verified = superadmin_id_verified;
|
||||
}
|
||||
|
||||
public String getLastCommand()
|
||||
{
|
||||
return last_command;
|
||||
}
|
||||
|
||||
public void setLastCommand(String last_command)
|
||||
{
|
||||
this.last_command = last_command;
|
||||
}
|
||||
}
|
||||
|
@ -937,13 +937,23 @@ public class TFM_Util
|
||||
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);
|
||||
ReadableByteChannel rbc = Channels.newChannel(website.openStream());
|
||||
FileOutputStream fos = new FileOutputStream(output_file);
|
||||
fos.getChannel().transferFrom(rbc, 0, 1 << 24);
|
||||
fos.close();
|
||||
|
||||
if (verbose)
|
||||
{
|
||||
TFM_Log.info("Downloaded " + url + " to " + output_file.toString() + ".");
|
||||
}
|
||||
}
|
||||
|
||||
public static void adminChatMessage(CommandSender sender, String message, boolean senderIsConsole)
|
||||
|
Reference in New Issue
Block a user