package org.buckit.model; import java.util.ArrayList; import org.buckit.Config; import org.buckit.access.AccessLevel; public class UserDataHolder { private int id, firstlogin, lastlogin, uptime, ipbantime, bantime, mutetime; private String username, usernameformat, commands, ip; private boolean admin, canbuild; private AccessLevel accesslevel; private ArrayList<String> commandArray; private boolean canuseall = false,online = false; public UserDataHolder(int id, String username, String usernameformat, boolean admin, boolean canbuild, String commands, int firstlogin, int lastlogin, int uptime, int ipbantime, int bantime, int mutetime, AccessLevel accesslevel,String ip) { this.id = id; this.username = username; this.usernameformat = usernameformat; this.admin = admin; this.canbuild = canbuild; this.commands = commands; this.firstlogin = firstlogin; this.lastlogin = lastlogin; this.uptime = uptime; this.ipbantime = ipbantime; this.bantime = bantime; this.mutetime = mutetime; this.accesslevel = accesslevel; this.commandArray = new ArrayList<String>(); for (String command : commands.split(Config.DATABASE_DELIMITER)) this.commandArray.add(command); this.ip = ip; canuseall = commandArray.contains(Config.FULL_ACCESS_STRING); } /** * @return the id */ public int getId() { return id; } /** * @return the firstlogin */ public int getFirstlogin() { return firstlogin; } /** * @return the lastlogin */ public int getLastlogin() { return lastlogin; } /** * @return the uptime */ public int getUptime() { return uptime; } /** * @return the bantime */ public int getBantime() { return bantime; } /** * @return the mutetime */ public int getMutetime() { return mutetime; } /** * @return the username */ public String getUsername() { return username; } /** * @return the usernameformat */ public String getUsernameformat() { return usernameformat; } /** * @return the commands */ public String getCommands() { return commands; } /** * @return the admin */ public boolean isAdmin() { return admin; } /** * @return the canbuild */ public boolean canbuild() { return canbuild; } /** * @return the accesslevel */ public AccessLevel getAccessLevel() { return accesslevel; } /** * @return the muted */ public boolean isMuted() { if((System.currentTimeMillis()/1000) < getMutetime()) return true; return getMutetime() == -1; } public boolean isBanned() { if((System.currentTimeMillis()/1000) < getBantime()) return true; return (getBantime() == -1); } public boolean isIpBanned() { if((System.currentTimeMillis()/1000) < getIpBantime()) return true; return (getIpBantime() == -1); } /** * @param id * the id to set */ public void setId(int id) { this.id = id; } /** * @param firstlogin * the firstlogin to set */ public void setFirstlogin(int firstlogin) { this.firstlogin = firstlogin; } /** * @param lastlogin * the lastlogin to set */ public void setLastlogin(int lastlogin) { this.lastlogin = lastlogin; } /** * @param uptime * the uptime to set */ public void setUptime(int uptime) { this.uptime = uptime; } /** * @param bantime * the bantime to set */ public void setBantime(int bantime) { this.bantime = bantime; } /** * @param mutetime * the mutetime to set */ public void setMutetime(int mutetime) { this.mutetime = mutetime; } /** * @param username * the username to set */ public void setUsername(String username) { this.username = username; } /** * @param usernameformat * the usernameformat to set */ public void setUsernameformat(String usernameformat) { this.usernameformat = usernameformat; } /** * @param commands * the commands to set */ public void setCommands(String commands) { this.commands = commands; this.commandArray = new ArrayList<String>(); for (String command : commands.split(Config.DATABASE_DELIMITER)) this.commandArray.add(command); canuseall = commandArray.contains(Config.FULL_ACCESS_STRING); } /** * @param admin * the admin to set */ public void setAdmin(boolean admin) { this.admin = admin; } /** * @param canbuild * the canbuild to set */ public void setCanbuild(boolean canbuild) { this.canbuild = canbuild; } /** * @param accesslevel * the accesslevel to set */ public void setAccesslevel(AccessLevel accesslevel) { this.accesslevel = accesslevel; } /** * @param ip the ip to set */ public void setIp(String ip) { this.ip = ip; } /** * @return the ip */ public String getIp() { return ip; } /** * @param ipbantime the ipbantime to set */ public void setIpbantime(int ipbantime) { this.ipbantime = ipbantime; } /** * @return the ipbantime */ public int getIpBantime() { return ipbantime; } public boolean canUseCommand(String command, String world) { return canuseall || commandArray.contains(command) || getAccessLevel().canUseCommand(command, world); } /** * @param online the online to set */ public void setOnline(boolean online) { this.online = online; } /** * @return the online */ public boolean isOnline() { return online; } }