Jump to content

Recommended Posts

Posted (edited)

i installed all code in latest H5 core version=5816

builddate=25/02/2013 06:00

 

and i got only one error in AutoVoteRewardHandler also in Shutdown and Gameserver but is the same

 

package com.l2jserver.gameserver.instancemanager;
    
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;

import com.l2jserver.gameserver.model.item.instance.L2ItemInstance;
import com.l2jserver.Config;
import com.l2jserver.L2DatabaseFactory;
import com.l2jserver.gameserver.ThreadPoolManager;
import com.l2jserver.gameserver.model.L2World;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.clientpackets.Say2;
import com.l2jserver.gameserver.network.serverpackets.CreatureSay;
import com.l2jserver.gameserver.util.Broadcast;
    
public class AutoVoteRewardHandler
{
  private static Logger _log = Logger.getLogger(AutoVoteRewardHandler.class.getName());
  
  private static final int initialCheck  = 1 * 1000;
  private static final int delayForCheck = Config.DELAY_FOR_NEXT_REWARD * 1000;

  private static int lastVoteCount = 0;
      
  private AutoVoteRewardHandler()
  {
      _log.info("Vote Reward System: Vote reward system initiated.");
      if (Config.VOTE_REWARD_ENABLE)
          load();
      ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new AutoReward(), initialCheck, delayForCheck);
  }
      
  private class AutoReward implements Runnable
	{
		@Override
		public void run()
		{
			int votes = getVotes(Config.VOTE_HTML_PATCH);
			System.out.println("Server Votes: " + votes);
			if (votes != 0 && getLastVoteCount() != 0 && votes >= getLastVoteCount() + Config.VOTES_FOR_REWARD)
			{
				Connection con = null;
				try
				{
					con = L2DatabaseFactory.getInstance().getConnection();
					PreparedStatement statement = con.prepareStatement("SELECT c.charId, c.char_name FROM characters AS c LEFT JOIN accounts AS a ON c.account_name = a.login WHERE c.online > 0 GROUP BY a.lastIP ORDER BY c.level DESC");
					ResultSet rset = statement.executeQuery();
					L2PcInstance player = null;
				        L2ItemInstance item = null;
					L2ItemInstance item2 = null;
					while (rset.next())
					{
						player = L2World.getInstance().getPlayer(rset.getInt("charId"));
						if (player != null && !player.getClient().isDetached())
						{
								item = player.getInventory().getItemByItemId(Config.VOTE_REWARD1_ID);
								if (item == null || item.getCount() < Config.MAX_REWARD_COUNT_FOR_STACK_ITEM1)
									player.addItem("reward", Config.VOTE_REWARD1_ID, Config.VOTE_REWARD1_COUNT, player, true);
								item2 = player.getInventory().getItemByItemId(Config.VOTE_REWARD1_ID);
						
								if (item2 == null || item2.getCount() < Config.MAX_REWARD_COUNT_FOR_STACK_ITEM1)
									player.addItem("reward", Config.VOTE_REWARD2_ID, Config.VOTE_REWARD2_COUNT, player, true);
						}
					}
					setLastVoteCount(getLastVoteCount() + Config.VOTES_FOR_REWARD);
					statement.close();
					_log.info("Vote Reward System: Reward for votes now!");
		            Broadcast.toAllOnlinePlayers(new CreatureSay(1, Say2.CRITICAL_ANNOUNCE, "", "Vote Manager: Reward for players! Thanks for Vote."));
			}
				catch (SQLException e)
				{
					e.printStackTrace();
				}
				finally
				{
					L2DatabaseFactory.close(con);
				}
				
				setLastVoteCount(getLastVoteCount() + Config.VOTES_FOR_REWARD);
			}
			Broadcast.toAllOnlinePlayers(new CreatureSay(1, Say2.CRITICAL_ANNOUNCE, "", "Vote Manager: Server votes: " + votes + " | Next Reward on " + (getLastVoteCount() + Config.VOTES_FOR_REWARD) + " Votes."));
			if (getLastVoteCount() == 0)
				setLastVoteCount(votes);
		}
	}
      
  private int getVotes(String urlString)
  {
      URL url = null;
      InputStreamReader isr = null;
      BufferedReader in = null;
      try
      {
          url = new URL(urlString);
          isr = new InputStreamReader(url.openStream());
          in = new BufferedReader(isr);
          String inputLine;
          while ((inputLine = in.readLine()) != null)
          {
        	  if (Config.VOTE_REWARD_TOPZONE_ENABLE)
        	  {
        		  // for TopZone
        		  if (inputLine.contains("<tr><td><div align=\"center\"><b><font style=\"font-size:14px;color:#018BC1;\""))
        		  {
        			  return Integer.valueOf(inputLine.split(">")[5].replace("</font", ""));
        		  }
        	  }
        	  if (Config.VOTE_REWARD_HOPZONE_ENABLE)
       	  {
        		  // for HopZone
        		  if (inputLine.contains("rank anonymous tooltip"))
        		  {
        			  @SuppressWarnings("unused")
        			  int Sub = 12;
        			  switch (inputLine.length())
        			  {
        				  case 116:
        					  Sub = 13; 
        					  break;
        				  case 117:
        					  Sub = 14; 
        					  break;
        				  case 118:
        					  Sub = 15;
        					  break;
        				  case 119:
        					  Sub = 16; 
        					  break;
        			  }
        			  return Integer.valueOf(inputLine.split(">")[2].replace("</span", ""));
        		  }
              }
          }
      }
      catch (IOException e)
      {
          _log.warning("Vote Reward System: "+e);
      }
      finally
      {
          try
          {
              in.close();
          }
          catch (IOException e)
          {}
          try
          {
              isr.close();
          }
          catch (IOException e)
          {}
      }
      return 0;
  }
      
  private void setLastVoteCount(int voteCount)
  {
      lastVoteCount = voteCount;
  }
      
  private int getLastVoteCount()
  {
      return lastVoteCount;
  }
  
  private void load()
  {
      int votes = 0;
      Connection con = null;
      try
      {
          con = L2DatabaseFactory.getInstance().getConnection();
          PreparedStatement statement = con.prepareStatement("SELECT vote FROM votes LIMIT 1");
          ResultSet rset = statement.executeQuery();

          while (rset.next())
          {
              votes = rset.getInt("vote");
          }
          rset.close();
          statement.close();
      }
      catch (Exception e)
      {
          _log.log(Level.WARNING, "data error on vote: ", e);
      }
      finally
      {
          L2DatabaseFactory.close(con);
      }
      
      setLastVoteCount(votes);
  }
  
  public void save()
  {
      Connection con = null;
      try
      {
          con = L2DatabaseFactory.getInstance().getConnection();
          PreparedStatement statement = con.prepareStatement("UPDATE votes SET vote = ? WHERE id=1");
          statement.setInt(1, getLastVoteCount());
          statement.execute();
          statement.close();
      }
      catch (Exception e)
      {
          _log.log(Level.WARNING, "data error on vote: ", e);
      }
      finally
      {
          L2DatabaseFactory.close(con);
      }
  }
  
  public static AutoVoteRewardHandler getInstance()
  {
     return SingletonHolder._instance;
  }
      
  @SuppressWarnings("synthetic-access")
  private static class SingletonHolder
  {
      protected static final AutoVoteRewardHandler _instance = new AutoVoteRewardHandler();
  }
}
that give me error and

import com.l2jserver.gameserver.model.item.instance.L2ItemInstance; 

L2ItemInstance item = null;

L2ItemInstance item2 = null;

 

it says : "Multiple markers at this line

- Occurrence of 'L2ItemInstance'

- L2ItemInstance cannot be resolved

to a type"

 

how to fix that ?

 

 

I had the same error but fixed when save all files ;) and see that import :

import com.l2jserver.gameserver.model.item.instance.L2ItemInstance;

i change it to :

import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;

for my revision.

 

 

Other problem was smthing with API i delete this from AutoVoteRewardHandler.java :

finally
{
L2DatabaseFactory.close(con);
}

Edit : The problem with API no fixed problem when server running because connection no close.

Edited by drgn
Posted (edited)
I have problem with AutoVoteSystem !

 

With topzone i get server votes : 0

and with hopzone i get this error :

 

image.jpg

 

My properties file :

 



# ---------------------------------------------------------------------------
# Vote Reward System
# ---------------------------------------------------------------------------
# Set it "True" if you want to Enable Vote Reward System.
EnableVoteReward = True
 
# If you enable Vote Reward System you must fill your Html Patch.
# e.g. VoteHtmlPatch = http://l2.hopzone.net / http://l2topzone.net
# Html Patch for Your Vote Site
# Works with TopZone & HopZone
 
ServerNameForVotes = ServerName 
VoteHtmlPatch = http://l2.hopzone.net/.... <- Here what? my main hopzone site url?
VoteReward1Count = 5
VoteReward2Count = 2
VoteReward1Id = 9627
VoteReward2Id = 3470
VotesForReward = 10
 
# Max a-beep-t of reward items that you want to stop reward 
# the player that have more than "MaxRewardCountForStack".
MaxRewardCountForStackItem1 = 500
MaxRewardCountForStackItem2 = 500
 
# DelayForNextReward in seconds
DelayForNextReward = 300
 
# Enable TopZone Vote Reward
# Default = False
EnableTopzoneReward = False
 
# Enable HopZone Vote Reward
# Default = False
EnableHopzoneReward = True


 

My AutoVoteRewardHanlder.java :

 



package com.l2jserver.gameserver.instancemanager;
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
 
import com.l2jserver.Config;
import com.l2jserver.L2DatabaseFactory;
import com.l2jserver.gameserver.ThreadPoolManager;
import com.l2jserver.gameserver.model.L2World;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
import com.l2jserver.gameserver.network.clientpackets.Say2;
import com.l2jserver.gameserver.network.serverpackets.CreatureSay;
import com.l2jserver.gameserver.util.Broadcast;
 
public class AutoVoteRewardHandler
{
    private static Logger _log = Logger.getLogger(AutoVoteRewardHandler.class.getName());
    
    private static final int initialCheck = 1 * 1000;
    private static final int delayForCheck = Config.DELAY_FOR_NEXT_REWARD * 1000;
    
    private static int lastVoteCount = 0;
    
    private AutoVoteRewardHandler()
    {
        _log.info("Vote Reward System: Vote reward system initiated.");
        if (Config.VOTE_REWARD_ENABLE)
        {
            load();
        }
        ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new AutoReward(), initialCheck, delayForCheck);
    }
    
    private class AutoReward implements Runnable
    {
        @Override
        public void run()
        {
            int votes = getVotes(Config.VOTE_HTML_PATCH);
            System.out.println("Server Votes: " + votes);
            if ((votes != 0) && (getLastVoteCount() != 0) && (votes >= (getLastVoteCount() + Config.VOTES_FOR_REWARD)))
            {
                Connection con = null;
                try
                {
                    con = L2DatabaseFactory.getInstance().getConnection();
                    PreparedStatement statement = con.prepareStatement("SELECT c.charId, c.char_name FROM characters AS c LEFT JOIN accounts AS a ON c.account_name = a.login WHERE c.online > 0 GROUP BY a.lastIP ORDER BY c.level DESC");
                    ResultSet rset = statement.executeQuery();
                    L2PcInstance player = null;
                    L2ItemInstance item = null;
                    L2ItemInstance item2 = null;
                    while (rset.next())
                    {
                        player = L2World.getInstance().getPlayer(rset.getInt("charId"));
                        if ((player != null) && !player.getClient().isDetached())
                        {
                            item = player.getInventory().getItemByItemId(Config.VOTE_REWARD1_ID);
                            if ((item == null) || (item.getCount() < Config.MAX_REWARD_COUNT_FOR_STACK_ITEM1))
                            {
                                player.addItem("reward", Config.VOTE_REWARD1_ID, Config.VOTE_REWARD1_COUNT, player, true);
                            }
                            item2 = player.getInventory().getItemByItemId(Config.VOTE_REWARD1_ID);
                            
                            if ((item2 == null) || (item2.getCount() < Config.MAX_REWARD_COUNT_FOR_STACK_ITEM1))
                            {
                                player.addItem("reward", Config.VOTE_REWARD2_ID, Config.VOTE_REWARD2_COUNT, player, true);
                            }
                        }
                    }
                    setLastVoteCount(getLastVoteCount() + Config.VOTES_FOR_REWARD);
                    statement.close();
                    _log.info("Vote Reward System: Reward for votes now!");
                    Broadcast.toAllOnlinePlayers(new CreatureSay(1, Say2.CRITICAL_ANNOUNCE, "", "Vote Manager: Reward for players! Thanks for Vote."));
                }
                catch (SQLException e)
                {
                    e.printStackTrace();
                }
                finally
                {
                    L2DatabaseFactory.close(con);
                }
                
                setLastVoteCount(getLastVoteCount() + Config.VOTES_FOR_REWARD);
            }
            Broadcast.toAllOnlinePlayers(new CreatureSay(1, Say2.CRITICAL_ANNOUNCE, "", "Vote Manager: Server votes: " + votes + " | Next Reward on " + (getLastVoteCount() + Config.VOTES_FOR_REWARD) + " Votes."));
            if (getLastVoteCount() == 0)
            {
                setLastVoteCount(votes);
            }
        }
    }
    
    private int getVotes(String urlString)
    {
        URL url = null;
        InputStreamReader isr = null;
        BufferedReader in = null;
        try
        {
            url = new URL(urlString);
            isr = new InputStreamReader(url.openStream());
            in = new BufferedReader(isr);
            String inputLine;
            while ((inputLine = in.readLine()) != null)
            {
                if (Config.VOTE_REWARD_TOPZONE_ENABLE)
                {
                    // for TopZone
                    if (inputLine.contains("<tr><td><div align=\"center\"><b><font style=\"font-size:14px;color:#018BC1;\""))
                    {
                        return Integer.valueOf(inputLine.split(">")[3].replace("</div", ""));
                        
                    }
                }
                if (Config.VOTE_REWARD_HOPZONE_ENABLE)
                {
                    // for HopZone
                    if (inputLine.contains("rank anonymous tooltip"))
                    {
                        @SuppressWarnings("unused")
                        int Sub = 12;
                        switch (inputLine.length())
                        {
                            case 116:
                                Sub = 13;
                                break;
                            case 117:
                                Sub = 14;
                                break;
                            case 118:
                                Sub = 15;
                                break;
                            case 119:
                                Sub = 16;
                                break;
                        }
                        return Integer.valueOf(inputLine.split(">")[2].replace("</span", ""));
                    }
                }
            }
        }
        catch (IOException e)
        {
            _log.warning("Vote Reward System: " + e);
        }
        finally
        {
            try
            {
                in.close();
            }
            catch (IOException e)
            {
            }
            try
            {
                isr.close();
            }
            catch (IOException e)
            {
            }
        }
        return 0;
    }
    
    private void setLastVoteCount(int voteCount)
    {
        lastVoteCount = voteCount;
    }
    
    private int getLastVoteCount()
    {
        return lastVoteCount;
    }
    
    private void load()
    {
        int votes = 0;
        Connection con = null;
        try
        {
            con = L2DatabaseFactory.getInstance().getConnection();
            PreparedStatement statement = con.prepareStatement("SELECT vote FROM votes LIMIT 1");
            ResultSet rset = statement.executeQuery();
            
            while (rset.next())
            {
                votes = rset.getInt("vote");
            }
            rset.close();
            statement.close();
        }
        catch (Exception e)
        {
            _log.log(Level.WARNING, "data error on vote: ", e);
        }
        finally
        {
            L2DatabaseFactory.close(con);
        }
        
        setLastVoteCount(votes);
    }
    
    public void save()
    {
        Connection con = null;
        try
        {
            con = L2DatabaseFactory.getInstance().getConnection();
            PreparedStatement statement = con.prepareStatement("UPDATE votes SET vote = ? WHERE id=1");
            statement.setInt(1, getLastVoteCount());
            statement.execute();
            statement.close();
        }
        catch (Exception e)
        {
            _log.log(Level.WARNING, "data error on vote: ", e);
        }
        finally
        {
            L2DatabaseFactory.close(con);
        }
    }
    
    public static AutoVoteRewardHandler getInstance()
    {
        return SingletonHolder._instance;
    }
    
    @SuppressWarnings("synthetic-access")
    private static class SingletonHolder
    {
        protected static final AutoVoteRewardHandler _instance = new AutoVoteRewardHandler();
    }
}


 

I dont know where the problem is !

 

Edit:

I edit this line :

 



if (inputLine.contains("<tr><td><div align=\"center\"><b><font style=\"font-size:14px;color:#018BC1;\""))


 

to:

 



if (inputLine.contains("Votes:"))


 

And work !

 

Any ideas for hopzone?

Edited by drgn
Posted

You should create a topic in Dev Help Section.

That error is common to appear when hopzone is Down, can't be that?

If it was down, it wouldn't return a 403 error.

 

For anyone looking for the solution: http://www.maxcheaters.com/topic/169551-vote-reward-system-problem/?do=findComment&comment=2268862

  • 2 weeks later...
Posted (edited)

Link Broken? i have problem with dat table i think, votes saved only for TopZone i think because when i enable Hopzone votes at atble stay 20 and real its 3 :/ and the message is that reward when server reach 21 Votes :/

Edited by drgn
  • 1 month later...
  • 1 month later...
Posted (edited)

For all that had a problem with this Vote Reward below is the proper code of AutoVoteRewardHandler.java that is working for both Topzone and Hopzone (rest of the files like in the 1st post:

 

AutoVoteRewardHandler.java

package com.l2jserver.gameserver.instancemanager;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;

import com.l2jserver.Config;
import com.l2jserver.L2DatabaseFactory;
import com.l2jserver.gameserver.ThreadPoolManager;
import com.l2jserver.gameserver.model.L2World;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
import com.l2jserver.gameserver.network.clientpackets.Say2;
import com.l2jserver.gameserver.network.serverpackets.CreatureSay;
import com.l2jserver.gameserver.util.Broadcast;

public class AutoVoteRewardHandler
{
	private static Logger _log = Logger.getLogger(AutoVoteRewardHandler.class.getName());
	
	private static final int initialCheck = 1 * 1000;
	private static final int delayForCheck = Config.DELAY_FOR_NEXT_REWARD * 1000;
	
	private static int lastVoteCount = 0;
	
	private AutoVoteRewardHandler()
	{
		_log.info("Vote Reward System: Vote reward system initiated.");
		if (Config.VOTE_REWARD_ENABLE)
		{
			load();
		}
		ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new AutoReward(), initialCheck, delayForCheck);
	}
	
	private class AutoReward implements Runnable
	{
		@Override
		public void run()
		{
			int votes = getVotes(Config.VOTE_HTML_PATCH);
			System.out.println("Server Votes: " + votes);
			if ((votes != 0) && (getLastVoteCount() != 0) && (votes >= (getLastVoteCount() + Config.VOTES_FOR_REWARD)))
			{
				Connection con = null;
				try
				{
					con = L2DatabaseFactory.getInstance().getConnection();
					PreparedStatement statement = con.prepareStatement("SELECT c.charId, c.char_name FROM characters AS c LEFT JOIN accounts AS a ON c.account_name = a.login WHERE c.online > 0 GROUP BY a.lastIP ORDER BY c.level DESC");
					ResultSet rset = statement.executeQuery();
					L2PcInstance player = null;
					L2ItemInstance item = null;
					L2ItemInstance item2 = null;
					while (rset.next())
					{
						player = L2World.getInstance().getPlayer(rset.getInt("charId"));
						if ((player != null) && !player.getClient().isDetached())
						{
							item = player.getInventory().getItemByItemId(Config.VOTE_REWARD1_ID);
							if ((item == null) || (item.getCount() < Config.MAX_REWARD_COUNT_FOR_STACK_ITEM1))
							{
								player.addItem("reward", Config.VOTE_REWARD1_ID, Config.VOTE_REWARD1_COUNT, player, true);
							}
							item2 = player.getInventory().getItemByItemId(Config.VOTE_REWARD1_ID);
							
							if ((item2 == null) || (item2.getCount() < Config.MAX_REWARD_COUNT_FOR_STACK_ITEM1))
							{
								player.addItem("reward", Config.VOTE_REWARD2_ID, Config.VOTE_REWARD2_COUNT, player, true);
							}
						}
					}
					setLastVoteCount(getLastVoteCount() + Config.VOTES_FOR_REWARD);
					statement.close();
					_log.info("Vote Reward System: Reward for votes now!");
					Broadcast.toAllOnlinePlayers(new CreatureSay(1, Say2.CRITICAL_ANNOUNCE, "", "Vote Manager: Reward for players! Thanks for Vote."));
				}
				catch (SQLException e)
				{
					e.printStackTrace();
				}
				finally
				{
					L2DatabaseFactory.close(con);
				}
				
				setLastVoteCount(getLastVoteCount() + Config.VOTES_FOR_REWARD);
			}
			Broadcast.toAllOnlinePlayers(new CreatureSay(1, Say2.CRITICAL_ANNOUNCE, "", "Vote Manager: Server votes: " + votes + " | Next Reward on " + (getLastVoteCount() + Config.VOTES_FOR_REWARD) + " Votes."));
			if (getLastVoteCount() == 0)
			{
				setLastVoteCount(votes);
			}
		}
	}
	
	private int getVotes(String urlString)
	{
		URL url = null;
		InputStreamReader isr = null;
		BufferedReader in = null;
		try
		{
			url = new URL(urlString);
			URLConnection connection = url.openConnection();
			connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0.2) Gecko/20100101 Firefox/10.0.2");
			connection.connect();
			InputStream response = connection.getInputStream();
			isr = new InputStreamReader(response);
			in = new BufferedReader(isr);
			String inputLine;
			while ((inputLine = in.readLine()) != null)
			{
				if (Config.VOTE_REWARD_TOPZONE_ENABLE)
				{
					// for TopZone
					// if (inputLine.contains("<tr><td><div align=\"center\"><b><font style=\"font-size:14px;color:#018BC1;\""))
					if (inputLine.contains("Votes:"))
					{
						return Integer.valueOf(inputLine.split(">")[3].replace("</div", ""));
					}
				}
				if (Config.VOTE_REWARD_HOPZONE_ENABLE)
				{
					// for HopZone
					if (inputLine.contains("rank anonymous tooltip"))
					{
						@SuppressWarnings("unused")
						int Sub = 12;
						switch (inputLine.length())
						{
							case 116:
								Sub = 13;
								break;
							case 117:
								Sub = 14;
								break;
							case 118:
								Sub = 15;
								break;
							case 119:
								Sub = 16;
								break;
						}
						return Integer.valueOf(inputLine.split(">")[2].replace("</span", ""));
					}
				}
			}
		}
		catch (IOException e)
		{
			_log.warning("Vote Reward System: " + e);
		}
		finally
		{
			try
			{
				in.close();
			}
			catch (IOException e)
			{
			}
			try
			{
				isr.close();
			}
			catch (IOException e)
			{
			}
		}
		return 0;
	}
	
	private void setLastVoteCount(int voteCount)
	{
		lastVoteCount = voteCount;
	}
	
	private int getLastVoteCount()
	{
		return lastVoteCount;
	}
	
	private void load()
	{
		int votes = 0;
		Connection con = null;
		try
		{
			con = L2DatabaseFactory.getInstance().getConnection();
			PreparedStatement statement = con.prepareStatement("SELECT vote FROM votes LIMIT 1");
			ResultSet rset = statement.executeQuery();
			
			while (rset.next())
			{
				votes = rset.getInt("vote");
			}
			rset.close();
			statement.close();
		}
		catch (Exception e)
		{
			_log.log(Level.WARNING, "data error on vote: ", e);
		}
		finally
		{
			L2DatabaseFactory.close(con);
		}
		
		setLastVoteCount(votes);
	}
	
	public void save()
	{
		Connection con = null;
		try
		{
			con = L2DatabaseFactory.getInstance().getConnection();
			PreparedStatement statement = con.prepareStatement("UPDATE votes SET vote = ? WHERE id=1");
			statement.setInt(1, getLastVoteCount());
			statement.execute();
			statement.close();
		}
		catch (Exception e)
		{
			_log.log(Level.WARNING, "data error on vote: ", e);
		}
		finally
		{
			L2DatabaseFactory.close(con);
		}
	}
	
	public static AutoVoteRewardHandler getInstance()
	{
		return SingletonHolder._instance;
	}
	
	@SuppressWarnings("synthetic-access")
	private static class SingletonHolder
	{
		protected static final AutoVoteRewardHandler _instance = new AutoVoteRewardHandler();
	}
}

Because the .sql file is dead I assume votes.sql shoul looks like that but not sure:

 

-- ----------------------------
-- Table structure for `votes`
-- ----------------------------
DROP TABLE IF EXISTS `votes`;
CREATE TABLE `votes` (
  `id` int(6) NOT NULL,
  `vote` int(6) NOT NULL,
  PRIMARY KEY (`id`)
) DEFAULT CHARSET=utf8;


-- ----------------------------
-- Records of votes
-- ----------------------------
INSERT INTO votes VALUES ('1', '0');

 

Edited by Gorion
  • 4 weeks later...
Posted

Somone can reshare sql for this please!

 

 Thanks!

-- ----------------------------
-- Table structure for `votes`
-- ----------------------------
DROP TABLE IF EXISTS `votes`;
CREATE TABLE `votes` (
  `id` int(6) NOT NULL,
  `vote` int(6) NOT NULL,
  PRIMARY KEY (`id`)
) DEFAULT CHARSET=utf8;


-- ----------------------------
-- Records of votes
-- ----------------------------
INSERT INTO votes VALUES ('1', '0');
  • 1 month later...
Posted

Γεια σας !

Έχω ένα θεματάκι.. όταν φτάνει ο αριθμός τον votes δεν δίνει reward και πετάει error !

image.jpg

Έχει κανείς καμία ιδέα;

Έχω ψάξει τα πάντα :/ με έχει μπερδέψει αρκετά !

 

Ευχαριστώ !

Posted (edited)
Εδώ είναι το πρόβλημα :
PreparedStatement statement = con.prepareStatement("SELECT c.charId, c.char_name FROM characters AS c LEFT JOIN accounts AS a ON c.account_name = a.login WHERE c.online > 0 GROUP BY a.lastIP ORDER BY c.level DESC");

change to :

PreparedStatement statement = con.prepareStatement("SELECT c.charId, c.char_name FROM characters AS c LEFT JOIN l2jls.accounts AS a ON c.account_name = a.login WHERE c.online > 0 GROUP BY a.lastIP ORDER BY c.level DESC");

ήθελε το l2jls στο accounts. Το είχα ξανά κάνει αλλά δεν είχε πιάσει ! Τώρα δίνει κανονικά reward !

Edited by drgn
  • 2 weeks later...
Posted

This is not working, can anyone help me with the right code for Topzone vote reward?

while ((inputLine = in.readLine()) != null)
			{
				// for top-zone
				if (inputLine.contains("Votes:"))
				{
					return Integer.valueOf(inputLine.split(">")[3].replace("</div", ""));
				}
  • 5 months later...

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.




  • Posts

    • if still looking send me more info. 
    • Discord         :  utchiha_market Telegram        : https://t.me/utchiha_market  
    • Trust is built on experience. We share feedback from our users collected on external resources.     👉 Official website: https://vibesms.com 📢 Telegram channel: https://t.me/vibe_sms  
    • 我们已更新当前产品信息并重新设计了主题 — 欢迎访问,抢先了解我们项目的新产品与新服务! 相关链接: 数字商品商店: 点击 Telegram 机器人: 点击 SMM 面板: 点击 我们的项目正在积极寻找新的供应商和合作伙伴! — Snapchat 旧号和新号 | 含分数 (snapscores) | 地区: 欧洲/美国 | 通过邮箱/手机号完全访问 — Reddit 老账号,发帖和评论业力值从 100 到 100,000+ | 通过邮箱完全访问 — LinkedIn 老账号,含真实人脉 | 地区: 欧洲/美国 | 通过邮箱完全访问 + 有效的双重验证密码 — Instagram 老账号 (2010–2023 年) | 通过邮箱完全访问 (可能还绑定双重验证密码) — Facebook 老账号 (2010–2023 年) | 通过邮箱完全访问 (可能还绑定双重验证密码) | 含好友或无好友 | 地区: 欧洲/美国/亚洲 — Threads 账号 | 通过邮箱完全访问 (可能还绑定双重验证密码) — TikTok/Facebook/Google ADS 代理广告账号 请通过以下联系方式与我们联系 — 一起讨论合作条款! 我们也始终欢迎其他形式的合作提案。 联系方式与支持: Telegram: https://t.me/socnet_support Telegram 频道: https://t.me/accsforyou_shop WhatsApp: https://wa.me/79051904467 WhatsApp 频道: https://whatsapp.com/channel/0029Vau0CMX002TGkD4uHa2n Discord: socnet_support Discord 服务器: https://discord.gg/y9AStFFsrh 邮箱: solomonbog@socnet.store 通过这些联系方式您还可以: — 获取批发采购咨询 — 建立合作伙伴关系 (现有合作伙伴: https://socnet.bgng.io/partners ) — 成为我们的供应商 SocNet — 数字商品与高级订阅商店 
    • 我们已更新当前产品信息并重新设计了主题 — 欢迎访问,抢先了解我们项目的新产品与新服务! 相关链接: 数字商品商店: 点击 Telegram 机器人: 点击 SMM 面板: 点击 我们的项目正在积极寻找新的供应商和合作伙伴! — Snapchat 旧号和新号 | 含分数 (snapscores) | 地区: 欧洲/美国 | 通过邮箱/手机号完全访问 — Reddit 老账号,发帖和评论业力值从 100 到 100,000+ | 通过邮箱完全访问 — LinkedIn 老账号,含真实人脉 | 地区: 欧洲/美国 | 通过邮箱完全访问 + 有效的双重验证密码 — Instagram 老账号 (2010–2023 年) | 通过邮箱完全访问 (可能还绑定双重验证密码) — Facebook 老账号 (2010–2023 年) | 通过邮箱完全访问 (可能还绑定双重验证密码) | 含好友或无好友 | 地区: 欧洲/美国/亚洲 — Threads 账号 | 通过邮箱完全访问 (可能还绑定双重验证密码) — TikTok/Facebook/Google ADS 代理广告账号 请通过以下联系方式与我们联系 — 一起讨论合作条款! 我们也始终欢迎其他形式的合作提案。 联系方式与支持: Telegram: https://t.me/socnet_support Telegram 频道: https://t.me/accsforyou_shop WhatsApp: https://wa.me/79051904467 WhatsApp 频道: https://whatsapp.com/channel/0029Vau0CMX002TGkD4uHa2n Discord: socnet_support Discord 服务器: https://discord.gg/y9AStFFsrh 邮箱: solomonbog@socnet.store 通过这些联系方式您还可以: — 获取批发采购咨询 — 建立合作伙伴关系 (现有合作伙伴: https://socnet.bgng.io/partners ) — 成为我们的供应商 SocNet — 数字商品与高级订阅商店 
  • Topics

×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock