Fix for Permissions 3.x (2.x should still work)
This commit is contained in:
8
META-INF/MANIFEST.MF
Executable file
8
META-INF/MANIFEST.MF
Executable file
@@ -0,0 +1,8 @@
|
|||||||
|
Manifest-Version: 1.0
|
||||||
|
Class-Path: Stats/lib/sqlite.jar Stats/lib/mysql.jar GroupManager.jar Permissions.jar
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
66
com/nidefawl/Stats/Permissions/GroupManagerResolver.java
Executable file
66
com/nidefawl/Stats/Permissions/GroupManagerResolver.java
Executable file
@@ -0,0 +1,66 @@
|
|||||||
|
package com.nidefawl.Stats.Permissions;
|
||||||
|
|
||||||
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
|
import org.anjocaido.groupmanager.GroupManager;
|
||||||
|
import org.anjocaido.groupmanager.data.Group;
|
||||||
|
import org.anjocaido.groupmanager.data.User;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.plugin.Plugin;
|
||||||
|
|
||||||
|
public class GroupManagerResolver implements PermissionsResolver {
|
||||||
|
public static final Logger log = Logger.getLogger("Minecraft");
|
||||||
|
Plugin plugin = null;
|
||||||
|
private GroupManager perms = null;
|
||||||
|
|
||||||
|
public GroupManagerResolver(Plugin plugin) {
|
||||||
|
this.plugin = plugin;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean load() {
|
||||||
|
if (perms == null) {
|
||||||
|
Plugin checkPlugin = plugin.getServer().getPluginManager().getPlugin("GroupManager");
|
||||||
|
if (checkPlugin != null && checkPlugin.isEnabled() && checkPlugin instanceof GroupManager) {
|
||||||
|
perms = (GroupManager) checkPlugin;
|
||||||
|
} else
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean permission(CommandSender sender, String permCmd) {
|
||||||
|
if(sender.isOp()) return true;
|
||||||
|
if(!(sender instanceof Player)) return false;
|
||||||
|
if (!load())
|
||||||
|
return false;
|
||||||
|
final Player player = (Player)sender;
|
||||||
|
return perms.getWorldsHolder().getWorldData(player).getPermissionsHandler().has(player, permCmd);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean inGroup(Player player, String group) {
|
||||||
|
if (!load())
|
||||||
|
return false;
|
||||||
|
Group g = perms.getWorldsHolder().getWorldData(player).getGroup(group);
|
||||||
|
if(g==null) return false;
|
||||||
|
User u = perms.getWorldsHolder().getWorldData(player).getUser(player.getName());
|
||||||
|
if(u==null) return false;
|
||||||
|
return u.containsSubGroup(g)||u.getGroup().equals(g);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void reloadPerms() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getGroup(Player player) {
|
||||||
|
User u = perms.getWorldsHolder().getWorldData(player).getUser(player.getName());
|
||||||
|
if(u==null) return "";
|
||||||
|
return u.getGroupName();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -59,7 +59,11 @@ public class NijiPermissionsResolver implements PermissionsResolver {
|
|||||||
public void reloadPerms() {
|
public void reloadPerms() {
|
||||||
if (!load())
|
if (!load())
|
||||||
return;
|
return;
|
||||||
perms.setupPermissions();
|
if(Permissions.version.toLowerCase().startsWith("3.")) {
|
||||||
|
((Permissions)Permissions.instance).getHandler().reload();
|
||||||
|
} else {
|
||||||
|
perms.setupPermissions();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ import com.nidefawl.Stats.util.Updater;
|
|||||||
public class Stats extends JavaPlugin {
|
public class Stats extends JavaPlugin {
|
||||||
|
|
||||||
public final static Logger log = Logger.getLogger("Minecraft");
|
public final static Logger log = Logger.getLogger("Minecraft");
|
||||||
public final static double version = 0.985;
|
public final static double version = 0.99;
|
||||||
public final static String logprefix = "[Stats-" + version + "]";
|
public final static String logprefix = "[Stats-" + version + "]";
|
||||||
public final static String defaultCategory = "stats";
|
public final static String defaultCategory = "stats";
|
||||||
public boolean enabled = false;
|
public boolean enabled = false;
|
||||||
|
|||||||
44
com/nidefawl/Stats/StatsServerListener.java
Executable file
44
com/nidefawl/Stats/StatsServerListener.java
Executable file
@@ -0,0 +1,44 @@
|
|||||||
|
package com.nidefawl.Stats;
|
||||||
|
|
||||||
|
import org.bukkit.event.server.PluginDisableEvent;
|
||||||
|
import org.bukkit.event.server.PluginEnableEvent;
|
||||||
|
import org.bukkit.event.server.ServerListener;
|
||||||
|
import org.bukkit.plugin.Plugin;
|
||||||
|
|
||||||
|
import com.nidefawl.Stats.Permissions.GroupManagerResolver;
|
||||||
|
import com.nidefawl.Stats.Permissions.NijiPermissionsResolver;
|
||||||
|
import com.nidefawl.Stats.Permissions.defaultResolver;
|
||||||
|
|
||||||
|
public class StatsServerListener extends ServerListener {
|
||||||
|
Stats stats = null;
|
||||||
|
public StatsServerListener(Stats plugin) {
|
||||||
|
this.stats = plugin;
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public void onPluginEnable(PluginEnableEvent event) {
|
||||||
|
Plugin plugin = event.getPlugin();
|
||||||
|
String name = plugin.getDescription().getName();
|
||||||
|
if (name.equals("GroupManager")) {
|
||||||
|
stats.setPerms(new GroupManagerResolver(plugin));
|
||||||
|
} else if (name.equals("Permissions")) {
|
||||||
|
stats.setPerms(new NijiPermissionsResolver(plugin));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called when a plugin is disabled
|
||||||
|
*
|
||||||
|
* @param event Relevant event details
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void onPluginDisable(PluginDisableEvent event) {
|
||||||
|
Plugin plugin = event.getPlugin();
|
||||||
|
String name = plugin.getDescription().getName();
|
||||||
|
if (name.equals("GroupManager")) {
|
||||||
|
stats.setPerms(new defaultResolver());
|
||||||
|
} else if (name.equals("Permissions")) {
|
||||||
|
stats.setPerms(new defaultResolver());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
223
com/nidefawl/Stats/StatsView.java
Executable file
223
com/nidefawl/Stats/StatsView.java
Executable file
@@ -0,0 +1,223 @@
|
|||||||
|
package com.nidefawl.Stats;
|
||||||
|
|
||||||
|
import java.sql.Date;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.Server;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.command.ConsoleCommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import com.nidefawl.Stats.datasource.Category;
|
||||||
|
import com.nidefawl.Stats.datasource.PlayerStat;
|
||||||
|
|
||||||
|
public class StatsView {
|
||||||
|
|
||||||
|
public static boolean onCommand(Stats plugin, CommandSender sender, String[] args) {
|
||||||
|
if (!plugin.Perms().permission(sender, "stats.view.own")) {
|
||||||
|
sender.sendMessage(ChatColor.RED + "You don't have permission to view your stats!");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
Player who = null;
|
||||||
|
if (sender instanceof Player) {
|
||||||
|
who = (Player) sender;
|
||||||
|
}
|
||||||
|
int offs = 0;
|
||||||
|
if (args.length > 0) {
|
||||||
|
who = playerMatch(plugin.getServer(), args[0]);
|
||||||
|
if (who != null) {
|
||||||
|
if (!plugin.Perms().permission(sender, "stats.view.others")) {
|
||||||
|
sender.sendMessage(ChatColor.RED + "You don't have permission to view others stats!");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
offs++;
|
||||||
|
} else {
|
||||||
|
if ((sender instanceof ConsoleCommandSender)) {
|
||||||
|
sender.sendMessage(ChatColor.RED + "Player '" + args[0] + "' is not online!");
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
who = (Player) sender;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (args.length == offs + 1) {
|
||||||
|
if (isStat(plugin, who.getName(), args[offs])) {
|
||||||
|
printStat(plugin, sender, who, "stats", args[offs]);
|
||||||
|
return true;
|
||||||
|
} else if (plugin.getItems().getItem(args[offs]) != 0 && !(args[offs].equals("boat") || args[offs].equals("minecart"))) {
|
||||||
|
printStat(plugin, sender, who, "blockcreate", args[offs]);
|
||||||
|
printStat(plugin, sender, who, "blockdestroy", args[offs]);
|
||||||
|
return true;
|
||||||
|
} else if (isCat(plugin, who.getName(), args[offs])) {
|
||||||
|
sender.sendMessage(StatsSettings.premessage + "Please choose: (/stats " + args[offs] + " <stat-name>)");
|
||||||
|
sender.sendMessage(StatsSettings.premessage + ChatColor.WHITE + getCatEntries(plugin, who.getName(), args[offs]));
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
sender.sendMessage(StatsSettings.premessage + ChatColor.RED + "stat/category '" + args[offs] + "' not found. Possible values:");
|
||||||
|
sender.sendMessage(StatsSettings.premessage + ChatColor.WHITE + getCats(plugin, who.getName()));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
} else if (args.length == offs + 2) {
|
||||||
|
if (isCat(plugin, who.getName(), args[offs])) {
|
||||||
|
printStat(plugin, sender, who, args[offs], args[offs + 1]);
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
sender.sendMessage(StatsSettings.premessage + ChatColor.RED + "stat/category '" + args[offs] + "' not found. Possible values:");
|
||||||
|
sender.sendMessage(StatsSettings.premessage + ChatColor.WHITE + getCats(plugin, who.getName()));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
int playedTime = plugin.get(who.getName(), "stats", "playedfor");
|
||||||
|
int movedBlocks = plugin.get(who.getName(), "stats", "move");
|
||||||
|
int totalCreate = plugin.get(who.getName(), "stats", "totalblockcreate");
|
||||||
|
int totalDestroy = plugin.get(who.getName(), "stats", "totalblockdestroy");
|
||||||
|
int tkills = plugin.get(who.getName(), "kills", "total");
|
||||||
|
int tdeaths = plugin.get(who.getName(), "deaths", "total");
|
||||||
|
int pdeaths = plugin.get(who.getName(), "deaths", "player");
|
||||||
|
int pkills = plugin.get(who.getName(), "kills", "player");
|
||||||
|
int totalDamage = plugin.get(who.getName(), "damagetaken", "total");
|
||||||
|
int totalDamageDealt = plugin.get(who.getName(), "damagedealt", "total");
|
||||||
|
try {
|
||||||
|
sender.sendMessage("------------------------------------------------");
|
||||||
|
sender.sendMessage(ChatColor.GOLD + " stats for " + ChatColor.WHITE + who.getName() + ChatColor.GOLD + ": (" + ChatColor.WHITE + "/stats help for more" + ChatColor.GOLD + ")");
|
||||||
|
sender.sendMessage("------------------------------------------------");
|
||||||
|
String s1 = ChatColor.GOLD + "[" + ChatColor.YELLOW + "Playedtime" + ChatColor.GOLD + "]" + ChatColor.YELLOW;
|
||||||
|
while (MinecraftFontWidthCalculator.getStringWidth(sender, s1) < 120)
|
||||||
|
s1 += " ";
|
||||||
|
s1 += ChatColor.WHITE + GetTimeString(playedTime);
|
||||||
|
sender.sendMessage(s1);
|
||||||
|
s1 = ChatColor.GOLD + "[" + ChatColor.YELLOW + "Moved" + ChatColor.GOLD + "]" + ChatColor.YELLOW;
|
||||||
|
while (MinecraftFontWidthCalculator.getStringWidth(sender, s1) < 120)
|
||||||
|
s1 += " ";
|
||||||
|
s1 += ChatColor.WHITE + String.valueOf(movedBlocks) + " blocks";
|
||||||
|
sender.sendMessage(s1);
|
||||||
|
printStatFormatted(sender, "Blocks", "created", totalCreate, "destroyed", totalDestroy);
|
||||||
|
printStatFormatted(sender, "Deaths", "total", tdeaths, "player", pdeaths);
|
||||||
|
printStatFormatted(sender, "Kills", "total", tkills, "player", pkills);
|
||||||
|
printStatFormatted(sender, "Damage", "dealt", totalDamageDealt, "taken", totalDamage);
|
||||||
|
sender.sendMessage("------------------------------------------------");
|
||||||
|
} catch (Exception e) {
|
||||||
|
// TODO: handle exception
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Player playerMatch(Server server, String name) {
|
||||||
|
List<Player> list = server.matchPlayer(name);
|
||||||
|
for (Player p : list)
|
||||||
|
if (p != null && p.getName().equalsIgnoreCase(name))
|
||||||
|
return p;
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void printStatFormatted(CommandSender sender, String name, String title1, int value1, String title2, int value2) {
|
||||||
|
String s1 = ChatColor.GOLD + "[" + ChatColor.YELLOW + name + ChatColor.GOLD + "]" + ChatColor.YELLOW;
|
||||||
|
while (MinecraftFontWidthCalculator.getStringWidth(sender, s1) < 120)
|
||||||
|
s1 += " ";
|
||||||
|
if (title2 != null)
|
||||||
|
s1 += ChatColor.WHITE + title1 + "/" + title2;
|
||||||
|
else
|
||||||
|
s1 += ChatColor.WHITE + title1;
|
||||||
|
while (MinecraftFontWidthCalculator.getStringWidth(sender, s1) < 240)
|
||||||
|
s1 += " ";
|
||||||
|
if (title2 != null)
|
||||||
|
s1 += value1 + "/" + value2;
|
||||||
|
else
|
||||||
|
s1 += value1;
|
||||||
|
sender.sendMessage(s1);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isCat(Stats plugin, String player, String category) {
|
||||||
|
PlayerStat ps = plugin.getStats().get(player);
|
||||||
|
if (ps == null)
|
||||||
|
return false;
|
||||||
|
Category cat = ps.get(category);
|
||||||
|
if (cat == null)
|
||||||
|
return false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void printStat(Stats plugin, CommandSender sendTo, Player statPlayer, String cat, String stat) {
|
||||||
|
long statVal = plugin.get(statPlayer.getName(), cat, stat);
|
||||||
|
String statString = "" + statVal;
|
||||||
|
if (stat.equalsIgnoreCase("playedfor")) {
|
||||||
|
statString = GetTimeString((int) statVal);
|
||||||
|
}
|
||||||
|
if (stat.equalsIgnoreCase("lastlogout") || stat.equalsIgnoreCase("lastlogin")) {
|
||||||
|
Date logDate = new Date(statVal * 1000);
|
||||||
|
SimpleDateFormat format = new SimpleDateFormat("dd-MMM-yy hh:mm");
|
||||||
|
statString = format.format(logDate);
|
||||||
|
}
|
||||||
|
sendTo.sendMessage(StatsSettings.premessage + cat + "/" + stat + ": " + ChatColor.WHITE + statString);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String GetTimeString(int Seconds) {
|
||||||
|
int days = (int) Math.ceil(Seconds / (24 * 3600));
|
||||||
|
int hours = (int) Math.ceil((Seconds - (24 * 3600 * days)) / 3600);
|
||||||
|
int minutes = (int) Math.ceil((Seconds - (24 * 3600 * days + 3600 * hours)) / 60);
|
||||||
|
String timeString = "";
|
||||||
|
timeString += days + "d " + hours + "h " + minutes + "m";
|
||||||
|
return timeString;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getCatEntries(Stats plugin, String player, String category) {
|
||||||
|
PlayerStat ps = plugin.getStats().get(player);
|
||||||
|
if (ps == null)
|
||||||
|
return "player not found";
|
||||||
|
Set<String> cats = ps.getCats();
|
||||||
|
if (cats.size() == 0)
|
||||||
|
return "no categories founnd";
|
||||||
|
Category cat = ps.get(category);
|
||||||
|
if (cat == null)
|
||||||
|
return "category not found";
|
||||||
|
Set<String> entris = cat.getEntries();
|
||||||
|
int length = (entris.size() - 1);
|
||||||
|
int on = 0;
|
||||||
|
String list = "";
|
||||||
|
for (String currentName : entris) {
|
||||||
|
if (currentName == null) {
|
||||||
|
++on;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
list += (on >= length) ? currentName : currentName + ", ";
|
||||||
|
++on;
|
||||||
|
}
|
||||||
|
list += " ";
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getCats(Stats plugin, String player) {
|
||||||
|
PlayerStat ps = plugin.getStats().get(player);
|
||||||
|
if (ps == null)
|
||||||
|
return "no categories found";
|
||||||
|
Set<String> cats = ps.getCats();
|
||||||
|
if (cats.size() == 0)
|
||||||
|
return "no categories found";
|
||||||
|
int length = (cats.size() - 1);
|
||||||
|
int on = 0;
|
||||||
|
String list = "";
|
||||||
|
for (String currentName : cats) {
|
||||||
|
if (currentName == null) {
|
||||||
|
++on;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
list += (on >= length) ? currentName : currentName + ", ";
|
||||||
|
++on;
|
||||||
|
}
|
||||||
|
list += " ";
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isStat(Stats plugin, String player, String stat) {
|
||||||
|
PlayerStat ps = plugin.getStats().get(player);
|
||||||
|
if (ps == null)
|
||||||
|
return false;
|
||||||
|
Category cat = ps.get("stats");
|
||||||
|
if (cat == null)
|
||||||
|
return false;
|
||||||
|
if (cat.get(stat) == 0)
|
||||||
|
return false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
15
com/nidefawl/Stats/udpates/Update1.java
Executable file
15
com/nidefawl/Stats/udpates/Update1.java
Executable file
@@ -0,0 +1,15 @@
|
|||||||
|
package com.nidefawl.Stats.udpates;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
|
||||||
|
import com.nidefawl.Stats.Stats;
|
||||||
|
|
||||||
|
public class Update1 {
|
||||||
|
public static void execute(Stats plugin) {
|
||||||
|
File oldLoc = new File("items.txt");
|
||||||
|
if(oldLoc.exists()) {
|
||||||
|
Stats.LogInfo("Moving items.txt to "+plugin.getDataFolder().getPath()+"/items.txt");
|
||||||
|
oldLoc.renameTo(new File(plugin.getDataFolder(),"items.txt"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
96
com/nidefawl/Stats/udpates/Update2.java
Executable file
96
com/nidefawl/Stats/udpates/Update2.java
Executable file
@@ -0,0 +1,96 @@
|
|||||||
|
package com.nidefawl.Stats.udpates;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileWriter;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.PreparedStatement;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
|
||||||
|
import com.nidefawl.Stats.Stats;
|
||||||
|
import com.nidefawl.Stats.StatsSettings;
|
||||||
|
import com.nidefawl.Stats.ItemResolver.hModItemResolver;
|
||||||
|
import com.nidefawl.Stats.ItemResolver.itemResolver;
|
||||||
|
import com.nidefawl.Stats.datasource.StatsSQLConnectionManager;
|
||||||
|
|
||||||
|
public class Update2 {
|
||||||
|
public static void execute(Stats plugin) {
|
||||||
|
FileWriter writer;
|
||||||
|
itemResolver items = new hModItemResolver(new File(plugin.getDataFolder(),"items.txt"));
|
||||||
|
try {
|
||||||
|
writer = new FileWriter(new File(plugin.getDataFolder(),"items.txt"),true);
|
||||||
|
if (writer != null) {
|
||||||
|
try {
|
||||||
|
if(items.getItem(26).equals("26")) {
|
||||||
|
Stats.LogInfo("Adding bedblock (26) to items.txt");
|
||||||
|
writer.write("bedblock:26\r\n");
|
||||||
|
Stats.LogInfo("Updating stats in database");
|
||||||
|
UpdateItemStatKey("26","bedblock");
|
||||||
|
}
|
||||||
|
if(items.getItem(93).equals("93")) {
|
||||||
|
Stats.LogInfo("Adding repeateron (93) to items.txt");
|
||||||
|
writer.write("repeateron:93\r\n");
|
||||||
|
Stats.LogInfo("Updating stats in database");
|
||||||
|
UpdateItemStatKey("93","repeateron");
|
||||||
|
}
|
||||||
|
if(items.getItem(94).equals("94")) {
|
||||||
|
Stats.LogInfo("Adding repeateroff (94) to items.txt");
|
||||||
|
writer.write("repeateroff:94\r\n");
|
||||||
|
Stats.LogInfo("Updating stats in database");
|
||||||
|
UpdateItemStatKey("94","repeateroff");
|
||||||
|
}
|
||||||
|
if(items.getItem(355).equals("355")) {
|
||||||
|
Stats.LogInfo("Adding bed (355) to items.txt");
|
||||||
|
writer.write("bed:355\r\n");
|
||||||
|
Stats.LogInfo("Updating stats in database");
|
||||||
|
UpdateItemStatKey("355","bed");
|
||||||
|
}
|
||||||
|
if(items.getItem(356).equals("356")) {
|
||||||
|
Stats.LogInfo("Adding repeater (356) to items.txt");
|
||||||
|
writer.write("repeater:356\r\n");
|
||||||
|
Stats.LogInfo("Updating stats in database");
|
||||||
|
UpdateItemStatKey("356","repeater");
|
||||||
|
}
|
||||||
|
writer.close();
|
||||||
|
plugin.setItems( new hModItemResolver(new File(plugin.getDataFolder(),"items.txt")));
|
||||||
|
} catch (IOException e) {
|
||||||
|
Stats.LogError("Exception while updating "+plugin.getDataFolder().getPath()+"/items.txt "+ e);
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (IOException e1) {
|
||||||
|
e1.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
static void UpdateItemStatKey(String oldKey,String newKey) {
|
||||||
|
|
||||||
|
int result = 0;
|
||||||
|
Connection conn = null;
|
||||||
|
PreparedStatement ps = null;
|
||||||
|
ResultSet rs = null;
|
||||||
|
try {
|
||||||
|
conn = StatsSQLConnectionManager.getConnection(StatsSettings.useMySQL);
|
||||||
|
ps = conn.prepareStatement("UPDATE " + StatsSettings.dbTable + " set stat = ? where stat = ? and (category = 'blockdestroy' or category = 'blockcreate' or category = 'itemuse' or category = 'itemdrop' or category = 'itempickup');");
|
||||||
|
ps.setString(1, newKey);
|
||||||
|
ps.setString(2, oldKey);
|
||||||
|
result = ps.executeUpdate();
|
||||||
|
} catch (SQLException ex) {
|
||||||
|
Stats.LogError("SQL exception" + ex);
|
||||||
|
ex.printStackTrace();
|
||||||
|
} finally {
|
||||||
|
try {
|
||||||
|
if (rs != null)
|
||||||
|
rs.close();
|
||||||
|
if (ps != null)
|
||||||
|
ps.close();
|
||||||
|
if (conn != null)
|
||||||
|
conn.close();
|
||||||
|
} catch (SQLException ex) {
|
||||||
|
Stats.LogError("SQL exception on close"+ ex);
|
||||||
|
ex.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Stats.LogInfo("Updated " + result + " stats.");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
name: Stats
|
name: Stats
|
||||||
main: com.nidefawl.Stats.Stats
|
main: com.nidefawl.Stats.Stats
|
||||||
version: 0.985
|
version: 0.99
|
||||||
author: nidefawl
|
author: nidefawl
|
||||||
commands:
|
commands:
|
||||||
stats:
|
stats:
|
||||||
|
|||||||
Reference in New Issue
Block a user