0 Madboy Posted May 6, 2010 Author Posted May 6, 2010 I use BiggBoss pvpcolor system ... this is colornamemanager +/* + * This program is free software: you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation, either version 3 of the License, or (at your option) any later + * version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License along with + * this program. If not, see <http://www.gnu.org/licenses/>. + */ +package com.l2jserver.gameserver.model.actor.appearance; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.Set; + +import com.l2jserver.L2DatabaseFactory; + +import javolution.util.FastMap; + +/** + * @author BiggBoss + */ +public class ColorNameManager +{ + private static FastMap<Integer, String> _pvpColor = new FastMap<Integer, String>(); + private static FastMap<Integer, String> _pkColor = new FastMap<Integer, String>(); + + private ColorNameManager() + { + } + + public static ColorNameManager getInstance() + { + return SingletonHolder._cne; + } + + /** + * Will load all pvp count with their respective color at server start up + * Also will set up the higher pvp/pk count rank for future purposes + */ + public void loadValues() + { + Connection con = null; + try + { + _pvpColor.put(0, "FFFFFF"); + _pkColor.put(0, "FFFFFF"); + con = L2DatabaseFactory.getInstance().getConnection(); + PreparedStatement pvpStatement = con.prepareStatement("SELECT * FROM pvp_color_nick WHERE type = ?"); + pvpStatement.setString(1, "pvp"); + + ResultSet pvpRset = pvpStatement.executeQuery(); + while(pvpRset.next()) + { + _pvpColor.put(pvpRset.getInt("pvppk_count"), pvpRset.getString("color")); + } + pvpRset.close(); + pvpStatement.close(); + + PreparedStatement pkStatement = con.prepareStatement("SELECT * FROM pvp_color_nick WHERE type = ?"); + pkStatement.setString(1, "pk"); + + ResultSet pkRset = pkStatement.executeQuery(); + while(pkRset.next()) + { + _pkColor.put(pkRset.getInt("pvppk_count"), pkRset.getString("color")); + } + pkRset.close(); + pkStatement.close(); + } + catch(SQLException sqle) + { + sqle.printStackTrace(); + } + System.out.println("ColorNameManager: Loaded " + _pvpColor.size() + " colors for pvp kills!"); + System.out.println("ColorNameManager: Loaded " + _pkColor.size() + " colors for pk kills!"); + } + + /** + * Returns a string-representative with the color of the rank + * @param kills + * @param forPvp + * @return a String containing the Hexadecimal color + */ + public String getColor(int kills, boolean forPvp) + { + String color = ""; + if(forPvp) + color = _pvpColor.get(getValueBefore(kills, _pvpColor.keySet())); + else + color = _pkColor.get(getValueBefore(kills, _pkColor.keySet())); + + return color; + } + + /** + * Will return the value just before the given value contained + * in the provided Set of integers + * @param value + * @param set + * @return the value just before the provided one + */ + private static int getValueBefore(int value, Set<Integer> set) + { + int counter = 0; + for(int i : set) + { + if(i > counter && value > i) + counter = i; + } + return counter; + } + + static class SingletonHolder + { + static ColorNameManager _cne = new ColorNameManager(); + } +} what i need to do? Quote
0 Kяaσh Posted May 6, 2010 Posted May 6, 2010 Replace your code with this if fix it because i get the some error /* * This program is free software: you can redistribute it and/or modify it under * the terms of the GNU General Public License as published by the Free Software * Foundation, either version 3 of the License, or (at your option) any later * version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more * details. * * You should have received a copy of the GNU General Public License along with * this program. If not, see <http://www.gnu.org/licenses/>. */ package com.l2jserver.gameserver.model.actor.appearance; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Set; import com.l2jserver.L2DatabaseFactory; import javolution.util.FastMap; /** * @author BiggBoss */ public class ColorNameManager { private static FastMap<Integer, String> _pvpColor = new FastMap<Integer, String>(); private static FastMap<Integer, String> _pkColor = new FastMap<Integer, String>(); private ColorNameManager() { } public static ColorNameManager getInstance() { return SingletonHolder._cne; } /** * Will load all pvp count with their respective color at server start up * Also will set up the higher pvp/pk count rank for future purposes */ public void loadValues() { Connection con = null; try { _pvpColor.put(0, "FFFFFF"); _pkColor.put(0, "FFFFFF"); con = L2DatabaseFactory.getInstance().getConnection(); PreparedStatement pvpStatement = con.prepareStatement("SELECT * FROM pvp_color_nick WHERE type = ?"); pvpStatement.setString(1, "pvp"); ResultSet pvpRset = pvpStatement.executeQuery(); while(pvpRset.next()) { _pvpColor.put(pvpRset.getInt("pvppk_count"), pvpRset.getString("color")); } pvpRset.close(); pvpStatement.close(); PreparedStatement pkStatement = con.prepareStatement("SELECT * FROM pvp_color_nick WHERE type = ?"); pkStatement.setString(1, "pk"); ResultSet pkRset = pkStatement.executeQuery(); while(pkRset.next()) { _pkColor.put(pkRset.getInt("pvppk_count"), pkRset.getString("color")); } pkRset.close(); pkStatement.close(); } catch(SQLException sqle) { sqle.printStackTrace(); } finally { try { if (con != null) con.close(); } catch (Exception e){} } System.out.println("ColorNameManager: Loaded " +_pvpColor.size()+ " colors for pvp kills!"); System.out.println("ColorNameManager: Loaded " +_pkColor.size()+ " colors for pk kills!"); } /** * Returns a string-representative with the color of the rank * @param kills * @param forPvp * @return a String containing the Hexadecimal color */ public String getColor(int kills, boolean forPvp) { String color = ""; if(forPvp) color = _pvpColor.get(getValueBefore(kills, _pvpColor.keySet())); else color = _pkColor.get(getValueBefore(kills, _pkColor.keySet())); return color; } /** * Will return the value just before the given value contained * in the provided Set of integers * @param value * @param set * @return the value just before the provided one */ private static int getValueBefore(int value, Set<Integer> set) { int counter = 0; for(int i : set) { if(i > counter && value > i) counter = i; } return counter; } static class SingletonHolder { static ColorNameManager _cne = new ColorNameManager(); } } Quote
Question
Madboy
can someone tell me how i can fix this?
ss:
4 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.