xAddytzu Posted August 16, 2010 Posted August 16, 2010 What is this code? It's a simple class which the gms are able to open votes with own question. Tested: YES, coded in notepad++ ;) - Commands: //setwords option1 option2 option3 exemple: //setwords 1v1 2v2 3v3 when the options are ready, write //startvotes for html ... also //showvotes will show the votes //clear - the command will help you to clear the options and votes vote.htm - Index: gameserver\data\html\custom <html><body><title>Vote for Event</title> <br><br><br> <table width=270> <tr> <td valign=top width=75>%first%</td> <td valign=top width=35>%voteCount1%</td> <td valign=top width=75><button value="" action="bypass -h custom_vote_1" width=16 height=16 back="L2UI.CheckBox_checked" fore="L2UI.CheckBox"></td> </tr> <tr> <td valign=top width=75>%second%</td> <td valign=top width=35>%voteCount2%</td> <td valign=top width=75><button value="" action="bypass -h custom_vote_2" width=16 height=16 back="L2UI.CheckBox_checked" fore="L2UI.CheckBox"></td> </tr> <tr> <td valign=top width=75>%third%</td> <td valign=top width=35>%voteCount3%</td> <td valign=top width=75><button value="" action="bypass -h custom_vote_3" width=16 height=16 back="L2UI.CheckBox_checked" fore="L2UI.CheckBox"></td> </tr> </table> </body></html> AdminCustom.java - Index: net.sf.l2j.gameserver.handler.admincommandhandlers /* 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 2, 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, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA * 02111-1307, USA. * * http://www.gnu.org/copyleft/gpl.html */ package net.sf.l2j.gameserver.handler.admincommandhandlers; import java.util.StringTokenizer; import net.sf.l2j.gameserver.handler.IAdminCommandHandler; import net.sf.l2j.gameserver.model.L2World; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; import net.sf.l2j.gameserver.model.entity.Events.Vote; /** * @author xAddytzu */ public class AdminCustom implements IAdminCommandHandler { private static final String[] ADMIN_COMMANDS = { "admin_setwords", "admin_startvotes", "admin_showvotes", "admin_clear" }; public static String first = ""; public static String second = ""; public static String third = ""; public boolean useAdminCommand(String command, L2PcInstance activeChar) { if (!activeChar.isGM()) return false; if (command.startsWith("admin_setwords")) { try { String val = command.substring(14); StringTokenizer st = new StringTokenizer(val); first = st.nextToken(); second = st.nextToken(); third = st.nextToken(); } catch (Exception e) { e.printStackTrace(); } } if (command.startsWith("admin_startvotes")) { for(L2PcInstance player : L2World.getInstance().getAllPlayers()) { if(player == null) continue; if(player.isOfflineTrade()) continue; Vote.getInstance().showVoteHtml(player); } } if (command.startsWith("admin_showvotes")) Vote.getInstance().showVoteHtml(activeChar); if (command.startsWith("admin_clear")) Vote.getInstance().clear(); return true; } public String[] getAdminCommandList() { return ADMIN_COMMANDS; } } Vote.java - Index: net.sf.l2j.gameserver.model.entity.Events /* 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 2, 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, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA * 02111-1307, USA. * * http://www.gnu.org/copyleft/gpl.html */ package net.sf.l2j.gameserver.model.entity.Events; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminCustom; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; import net.sf.l2j.gameserver.serverpackets.NpcHtmlMessage; /** * @author xAddytzu */ public class Vote { private static Vote _instance = null; private List<String> _IPs = new FastList<String>(); public static int voteCount1 = 0; public static int voteCount2 = 0; public static int voteCount3 = 0; public static Vote getInstance() { if(_instance == null) _instance = new Vote(); return _instance; } public void handleCommand(L2PcInstance player,String command) { if(command.startsWith("custom_vote_1")) { if (_IPs.contains(player.getClient().getConnection().getSocketChannel().socket().getInetAddress().getHostAddress())) return; _IPs.add(player.getClient().getConnection().getSocketChannel().socket().getInetAddress().getHostAddress()); voteCount1++; player.sendMessage("Thanks for your vote."); } else if(command.startsWith("custom_vote_2")) { if (_IPs.contains(player.getClient().getConnection().getSocketChannel().socket().getInetAddress().getHostAddress())) return; _IPs.add(player.getClient().getConnection().getSocketChannel().socket().getInetAddress().getHostAddress()); voteCount2++; player.sendMessage("Thanks for your vote."); } else if(command.startsWith("custom_vote_3")) { if (_IPs.contains(player.getClient().getConnection().getSocketChannel().socket().getInetAddress().getHostAddress())) return; _IPs.add(player.getClient().getConnection().getSocketChannel().socket().getInetAddress().getHostAddress()); voteCount3++; player.sendMessage("Thanks for your vote."); } } public void showVoteHtml(L2PcInstance activeChar) { String htmFile = "data/html/custom/vote.htm"; NpcHtmlMessage html = new NpcHtmlMessage(1); html.setFile(htmFile); html.replace("%first%", String.valueOf(AdminCustom.first)); html.replace("%second%", String.valueOf(AdminCustom.second)); html.replace("%third%", String.valueOf(AdminCustom.third)); html.replace("%voteCount1%", String.valueOf(voteCount1)); html.replace("%voteCount2%", String.valueOf(voteCount2)); html.replace("%voteCount3%", String.valueOf(voteCount3)); activeChar.sendPacket(html); } public void clear() { voteCount1 = 0; voteCount2 = 0; voteCount3 = 0; AdminCustom.first = ""; AdminCustom.second = ""; AdminCustom.third = ""; _IPs.clear(); } } BypassHandler.java - Index: net.sf.l2j.gameserver.model.custom /* * 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 net.sf.l2j.gameserver.model.custom; import java.util.StringTokenizer; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; import net.sf.l2j.gameserver.model.entity.Events.Vote; public class BypassHandler { private static BypassHandler _instance = null; public static BypassHandler getInstance() { if(_instance == null) _instance = new BypassHandler(); return _instance; } private BypassHandler() { } public void handleBypass(final L2PcInstance player, String command) { if(command.startsWith("custom_vote")) { Vote.getInstance().handleCommand(player, command); } } } RequestBypassToServer.java - Index: net.sf.l2j.gameserver.clientpackets else if (_command.startsWith("Quest ")) { if(!activeChar.validateBypass(_command)) return; L2PcInstance player = getClient().getActiveChar(); if (player == null) return; String p = _command.substring(6).trim(); int idx = p.indexOf(' '); if (idx < 0) player.processQuestEvent(p, ""); else player.processQuestEvent(p.substring(0, idx), p.substring(idx).trim()); } + else if(_command.startsWith("custom_")) + { + L2PcInstance player = getClient().getActiveChar(); + if(!player.validateBypass(_command)) + return; + + BypassHandler.getInstance().handleBypass(player, _command); + }
FighterBoss Posted August 16, 2010 Posted August 16, 2010 lol perfect. If really works i promised +1 karma for me. Maybe i will test it tommorow. Waiting for someone to test it until then...
xAddytzu Posted August 16, 2010 Author Posted August 16, 2010 i didnt understand, what this thing does? read the code :\
Geo® Posted August 16, 2010 Posted August 16, 2010 read the code :\ I didn't understand too but I don't know how to read codes :S
Kяaσh Posted August 16, 2010 Posted August 16, 2010 I didn't understand too but I don't know how to read codes :S That means that you don't know java.
Reptant_ Posted August 16, 2010 Posted August 16, 2010 That means that you don't know java. I donot know java but i can understand what that code says it's not about java knowledge,it's about how clever u are and understand some things
adenaman Posted August 16, 2010 Posted August 16, 2010 this is a rly interesting idea. the only problem that i can see is that you will "force" to show the html windows, so if a player is in pvp or killing mobs or smth, he could get some problems. It could be better with a .vote command or smth like that, or even the newbies html, i mean the msg that shows you when you start ("click your mouse to move and use items ...") with the "?" icon could be edited? that could be a good way to show the html Note: i didnt read the code rly good, also you edited it after i read it, so if i said smth stupid, sorry
Onix Posted August 16, 2010 Posted August 16, 2010 good idea to make it ! really great share and excellent work xaddytzu ! thanks for share it here ! ;)
DJxPauL® Posted August 16, 2010 Posted August 16, 2010 Tested and works but is a problem. If you are in dual box, you can vote with all characters.
xAddytzu Posted August 16, 2010 Author Posted August 16, 2010 Tested and works but is a problem. If you are in dual box, you can vote with all characters. ahh, I will update it tomorrow
xAddytzu Posted August 16, 2010 Author Posted August 16, 2010 Tested and works but is a problem. If you are in dual box, you can vote with all characters. [HeRoMaN][ link=topic=169475.msg1301065#msg1301065 date=1281997597] If SomeOne Tested And Works, Please Reply.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now