mirror of
https://github.com/AtlasMediaGroup/TotalFreedomMod.git
synced 2024-11-27 01:05:38 +00:00
randomized gradients and /playtime
This commit is contained in:
parent
067180d2cf
commit
114567a302
@ -119,6 +119,19 @@ public class ActivityLogEntry implements IConfig
|
|||||||
ips.clear();
|
ips.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getTotalSecondsPlayed()
|
||||||
|
{
|
||||||
|
int result = 0;
|
||||||
|
for (String duration : durations)
|
||||||
|
{
|
||||||
|
String[] spl = duration.split(" ");
|
||||||
|
result += Integer.parseInt(spl[0]) * 60 * 60;
|
||||||
|
result += Integer.parseInt(spl[2]) * 60;
|
||||||
|
result += Integer.parseInt(spl[5]);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isValid()
|
public boolean isValid()
|
||||||
{
|
{
|
||||||
|
@ -45,11 +45,26 @@ public class Command_nickgradient extends FreedomCommand
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String from = "", to = "";
|
||||||
java.awt.Color awt1, awt2;
|
java.awt.Color awt1, awt2;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
awt1 = java.awt.Color.decode(args[0]);
|
if (args[0].equalsIgnoreCase("random") ||
|
||||||
awt2 = java.awt.Color.decode(args[1]);
|
args[0].equalsIgnoreCase("r"))
|
||||||
|
{
|
||||||
|
awt1 = FUtil.getRandomAWTColor();
|
||||||
|
from = " (From: " + FUtil.getHexStringOfAWTColor(awt1) + ")";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
awt1 = java.awt.Color.decode(args[0]);
|
||||||
|
if (args[1].equalsIgnoreCase("random") ||
|
||||||
|
args[1].equalsIgnoreCase("r"))
|
||||||
|
{
|
||||||
|
awt2 = FUtil.getRandomAWTColor();
|
||||||
|
to = " (To: " + FUtil.getHexStringOfAWTColor(awt2) + ")";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
awt2 = java.awt.Color.decode(args[1]);
|
||||||
}
|
}
|
||||||
catch (NumberFormatException ex)
|
catch (NumberFormatException ex)
|
||||||
{
|
{
|
||||||
@ -69,7 +84,7 @@ public class Command_nickgradient extends FreedomCommand
|
|||||||
|
|
||||||
plugin.esb.setNickname(sender.getName(), outputNick);
|
plugin.esb.setNickname(sender.getName(), outputNick);
|
||||||
|
|
||||||
msg("Your nickname is now: " + outputNick);
|
msg("Your nickname is now: '" + outputNick + ChatColor.GRAY + "'" + from + to);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,63 @@
|
|||||||
|
package me.totalfreedom.totalfreedommod.command;
|
||||||
|
|
||||||
|
import java.time.Instant;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
import me.totalfreedom.totalfreedommod.admin.ActivityLogEntry;
|
||||||
|
import me.totalfreedom.totalfreedommod.rank.Rank;
|
||||||
|
import me.totalfreedom.totalfreedommod.util.FUtil;
|
||||||
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.ONLY_IN_GAME)
|
||||||
|
@CommandParameters(description = "Gets your playtime statistics.", usage = "/<command>")
|
||||||
|
public class Command_playtime extends FreedomCommand
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public boolean run(final CommandSender sender, final Player playerSender, final Command cmd, final String commandLabel, final String[] args, final boolean senderIsConsole)
|
||||||
|
{
|
||||||
|
ActivityLogEntry entry = plugin.acl.getActivityLog(playerSender);
|
||||||
|
int seconds = entry.getTotalSecondsPlayed();
|
||||||
|
int minutes = 0;
|
||||||
|
int hours = 0;
|
||||||
|
while (seconds >= 60)
|
||||||
|
{
|
||||||
|
seconds -= 60;
|
||||||
|
minutes += 1;
|
||||||
|
}
|
||||||
|
while (minutes >= 60)
|
||||||
|
{
|
||||||
|
minutes -= 60;
|
||||||
|
hours += 1;
|
||||||
|
}
|
||||||
|
if (entry.getTimestamps().size() == 0)
|
||||||
|
{
|
||||||
|
entry.addLogin();
|
||||||
|
}
|
||||||
|
String lastLoginString = entry.getTimestamps().get(entry.getTimestamps().size() - 1);
|
||||||
|
Date currentTime = Date.from(Instant.now());
|
||||||
|
lastLoginString = lastLoginString.replace("Login: ", "");
|
||||||
|
Date lastLogin = FUtil.stringToDate(lastLoginString);
|
||||||
|
|
||||||
|
long duration = currentTime.getTime() - lastLogin.getTime();
|
||||||
|
long cseconds = duration / 1000 % 60;
|
||||||
|
long cminutes = duration / (60 * 1000) % 60;
|
||||||
|
long chours = duration / (60 * 60 * 1000);
|
||||||
|
StringBuilder sb = new StringBuilder()
|
||||||
|
.append("Playtime - " + sender.getName() + "\n")
|
||||||
|
.append("Current Session: " + chours + " hours, " + cminutes + " minutes, and " + cseconds + " seconds" + "\n")
|
||||||
|
.append("Overall: " + hours + " hours, " + minutes + " minutes, and " + seconds + " seconds" + "\n");
|
||||||
|
List<String> durations = entry.getDurations();
|
||||||
|
if (durations.size() >= 3)
|
||||||
|
{
|
||||||
|
sb.append("Recent Sessions:");
|
||||||
|
for (int i = 0; i < 3; i++)
|
||||||
|
{
|
||||||
|
sb.append("\n" + " - " + durations.get((durations.size() - 1) - i));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
msg(sb.toString());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
@ -183,11 +183,26 @@ public class Command_tag extends FreedomCommand
|
|||||||
}
|
}
|
||||||
else if (args[0].equalsIgnoreCase("gradient"))
|
else if (args[0].equalsIgnoreCase("gradient"))
|
||||||
{
|
{
|
||||||
|
String from = "", to = "";
|
||||||
java.awt.Color awt1, awt2;
|
java.awt.Color awt1, awt2;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
awt1 = java.awt.Color.decode(args[1]);
|
if (args[1].equalsIgnoreCase("random") ||
|
||||||
awt2 = java.awt.Color.decode(args[2]);
|
args[1].equalsIgnoreCase("r"))
|
||||||
|
{
|
||||||
|
awt1 = FUtil.getRandomAWTColor();
|
||||||
|
from = " (From: " + FUtil.getHexStringOfAWTColor(awt1) + ")";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
awt1 = java.awt.Color.decode(args[1]);
|
||||||
|
if (args[2].equalsIgnoreCase("random") ||
|
||||||
|
args[2].equalsIgnoreCase("r"))
|
||||||
|
{
|
||||||
|
awt2 = FUtil.getRandomAWTColor();
|
||||||
|
to = " (To: " + FUtil.getHexStringOfAWTColor(awt2) + ")";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
awt2 = java.awt.Color.decode(args[2]);
|
||||||
}
|
}
|
||||||
catch (NumberFormatException ex)
|
catch (NumberFormatException ex)
|
||||||
{
|
{
|
||||||
@ -233,7 +248,7 @@ public class Command_tag extends FreedomCommand
|
|||||||
{
|
{
|
||||||
save(playerSender, tag);
|
save(playerSender, tag);
|
||||||
}
|
}
|
||||||
msg("Tag set to '" + outputTag + ChatColor.GRAY + "'." + (save ? " (Saved)" : ""));
|
msg("Tag set to '" + outputTag + ChatColor.GRAY + "'." + (save ? " (Saved)" : "") + from + to);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -7,6 +7,7 @@ import java.util.Collections;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.UUID;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import me.totalfreedom.totalfreedommod.TotalFreedomMod;
|
import me.totalfreedom.totalfreedommod.TotalFreedomMod;
|
||||||
|
@ -779,6 +779,21 @@ public class FUtil
|
|||||||
return new java.awt.Color(color.getRed(), color.getGreen(), color.getBlue());
|
return new java.awt.Color(color.getRed(), color.getGreen(), color.getBlue());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static java.awt.Color getRandomAWTColor()
|
||||||
|
{
|
||||||
|
return new java.awt.Color(randomInteger(0, 255), randomInteger(0, 255), randomInteger(0, 255));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getHexStringOfAWTColor(java.awt.Color color)
|
||||||
|
{
|
||||||
|
String hex = Integer.toHexString(color.getRGB() & 0xFFFFFF);
|
||||||
|
if (hex.length() < 6)
|
||||||
|
{
|
||||||
|
hex = "0" + hex;
|
||||||
|
}
|
||||||
|
return "#" + hex;
|
||||||
|
}
|
||||||
|
|
||||||
public static void createExplosionOnDelay(Location location, float power, int delay)
|
public static void createExplosionOnDelay(Location location, float power, int delay)
|
||||||
{
|
{
|
||||||
new BukkitRunnable()
|
new BukkitRunnable()
|
||||||
|
Loading…
Reference in New Issue
Block a user