Archived
0

Merged Seen and FirstSeen

This commit is contained in:
minenash
2018-01-16 19:00:56 -05:00
parent 2d0d57955e
commit 5865e277d9
3 changed files with 87 additions and 112 deletions

View File

@@ -1,111 +0,0 @@
package com.redstoner.modules.firstseen;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer;
import org.bukkit.Statistic;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import com.nemez.cmdmgr.Command;
import com.redstoner.annotations.Commands;
import com.redstoner.annotations.Version;
import com.redstoner.misc.CommandHolderType;
import com.redstoner.modules.Module;
@Commands(CommandHolderType.String)
@Version(major = 4, minor = 0, revision = 0, compatible = 4)
public class FirstSeen implements Module
{
@SuppressWarnings("deprecation")
@Command(hook = "firstseenP")
public void firstseen(CommandSender sender, String person)
{
OfflinePlayer oPlayer = Bukkit.getPlayer(person);
if (oPlayer == null)
oPlayer = Bukkit.getServer().getOfflinePlayer(person);
Long firstJoin = oPlayer.getFirstPlayed();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
String disDate = format.format(new Date(firstJoin));
if (disDate.equals("1969-12-31 19:00"))
{
getLogger().message(sender, true, "&3" + oPlayer.getName() + "&c has never joined.");
}
else
{
getLogger().message(sender, "&3" + oPlayer.getName() + " &efirst joined&a " + disDate + "&e.");
}
}
@Command(hook = "firstseen")
public void firstseen(CommandSender sender)
{
firstseen(sender, sender.getName());
}
@Command(hook = "playtimeDef")
public boolean playtime(CommandSender sender)
{
return playtime(sender, sender.getName());
}
@Command(hook = "playtime")
public boolean playtime(CommandSender sender, String name)
{
if (name == null)
name = sender.getName();
Player player = Bukkit.getPlayer(name);
if (player == null)
{
getLogger().message(sender, true,
"That player couldn't be found! Hint: Currently, you can only check statistics of players that are online!");
return true;
}
int ticks_lived = player.getStatistic(Statistic.PLAY_ONE_TICK);
int days = ticks_lived / 1728000;
int hours = (ticks_lived % 1728000) / 72000;
int minutes = (ticks_lived % 72000) / 1200;
getLogger().message(sender,
"The player &e" + name + " &7has been online for "
+ (days == 0 && hours == 0 && minutes == 0 ? "less than a minute."
: ("a total of: &e" + (days != 0 ? (days + "d ") : "")
+ ((hours != 0 || days != 0) ? (hours + "h ") : "")
+ ((minutes != 0 || hours != 0 || days != 0) ? (minutes + "m") : ""))));
return true;
}
// @noformat
@Override
public String getCommandString()
{
return "command firstseen {\n"
+ " [empty] {\n"
+ " run firstseen;\n"
+ " type player;\n"
+ " help Gives the date and time they first joined;\n"
+ " perm utils.firstseen;\n"
+ " }\n"
+ " [string:person] {\n"
+ " run firstseenP person;\n"
+ " help Gives the date and time when a player first joined;\n"
+ " perm utils.firstseen.other;\n"
+ " }\n"
+ "}\n"
+ "command playtime {\n"
+ " [empty] {\n"
+ " type player;\n"
+ " run playtimeDef;\n"
+ " perm utils.playtime;\n"
+ " help Displays your total playtime!;\n"
+ " }\n"
+ " [string:name] {\n"
+ " run playtime name;\n"
+ " perm utils.playtime.others;\n"
+ " help Displays the playtime of another player. The player must be online!;\n"
+ " }\n"
+ "}";
}
// @format
}

View File

@@ -10,4 +10,30 @@ command seen {
perm utils.seen;
run seen2 player ips;
}
}
command firstseen {
[empty] {
run firstseen;
type player;
help Gives the date and time they first joined;
perm utils.firstseen;
}
[string:person] {
run firstseenP person;
help Gives the date and time when a player first joined;
perm utils.firstseen.other;
}
}
command playtime {
[empty] {
type player;
run playtimeDef;
perm utils.playtime;
help Displays your total playtime!;
}
[string:name] {
run playtime name;
perm utils.playtime.others;
help Displays the playtime of another player. The player must be online!;
}
}

View File

@@ -1,12 +1,15 @@
package com.redstoner.modules.seen;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.UUID;
import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer;
import org.bukkit.Statistic;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
@@ -31,7 +34,7 @@ import com.redstoner.modules.datamanager.DataManager;
@AutoRegisterListener
@Commands(CommandHolderType.File)
@Version(major = 4, minor = 0, revision = 3, compatible = 4)
@Version(major = 4, minor = 0, revision = 4, compatible = 4)
public class Seen implements Module, Listener
{
HashMap<UUID, JSONArray> names = new HashMap<>();
@@ -201,4 +204,61 @@ public class Seen implements Module, Listener
else
return (JSONArray) json.get("ips");
}
@SuppressWarnings("deprecation")
@Command(hook = "firstseenP")
public void firstseen(CommandSender sender, String person)
{
OfflinePlayer oPlayer = Bukkit.getPlayer(person);
if (oPlayer == null)
oPlayer = Bukkit.getServer().getOfflinePlayer(person);
Long firstJoin = oPlayer.getFirstPlayed();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
String disDate = format.format(new Date(firstJoin));
if (disDate.equals("1969-12-31 19:00"))
{
getLogger().message(sender, true, "&3" + oPlayer.getName() + "&c has never joined.");
}
else
{
getLogger().message(sender, "&3" + oPlayer.getName() + " &efirst joined&a " + disDate + "&e.");
}
}
@Command(hook = "firstseen")
public void firstseen(CommandSender sender)
{
firstseen(sender, sender.getName());
}
@Command(hook = "playtimeDef")
public boolean playtime(CommandSender sender)
{
return playtime(sender, sender.getName());
}
@Command(hook = "playtime")
public boolean playtime(CommandSender sender, String name)
{
if (name == null)
name = sender.getName();
Player player = Bukkit.getPlayer(name);
if (player == null)
{
getLogger().message(sender, true,
"That player couldn't be found! Hint: Currently, you can only check statistics of players that are online!");
return true;
}
int ticks_lived = player.getStatistic(Statistic.PLAY_ONE_TICK);
int days = ticks_lived / 1728000;
int hours = (ticks_lived % 1728000) / 72000;
int minutes = (ticks_lived % 72000) / 1200;
getLogger().message(sender,
"The player &e" + name + " &7has been online for "
+ (days == 0 && hours == 0 && minutes == 0 ? "less than a minute."
: ("a total of: &e" + (days != 0 ? (days + "d ") : "")
+ ((hours != 0 || days != 0) ? (hours + "h ") : "")
+ ((minutes != 0 || hours != 0 || days != 0) ? (minutes + "m") : ""))));
return true;
}
}