Jump to content
  • 0

hopzone java code


Question

Posted

package net.sf.l2j.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 net.sf.l2j.Config;

import net.sf.l2j.L2DatabaseFactory;

import net.sf.l2j.gameserver.Announcements;

import net.sf.l2j.gameserver.ThreadPoolManager;

import net.sf.l2j.gameserver.model.L2ItemInstance;

import net.sf.l2j.gameserver.model.L2World;

import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;

 

public class AutoVoteRewardHandler

{

private final String HOPZONE = "Config.HopZone_ID";

// 60 * 1000(1000milliseconds = 1 second) = 60seconds

private final int initialCheck = 60 * 1000;

// 1800 * 1000(1000milliseconds = 1 second) = 1800seconds = 30minutes

private final int delayForCheck = Config.Delay_for_check * 1000;

private final int[] itemId = {Config.Item_ID};

private final int[] itemCount = {Config.Item_Count};

private final int[] maxStack = {Config.Max_Stack};

private final int votesRequiredForReward = Config.Votes_Required;

// do not change

private int lastVoteCount = 0;

 

private AutoVoteRewardHandler()

{

System.out.println("Vote Reward System Initiated.");

ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new AutoReward(), initialCheck, delayForCheck);

}

 

private class AutoReward implements Runnable

{

public void run()

{

int votes = getVotes();

System.out.println("Server Votes: " + votes);

if (votes != 0 && getLastVoteCount() != 0 && votes >= getLastVoteCount() + votesRequiredForReward)

{

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;

while (rset.next())

{

player = L2World.getInstance().getPlayer("charId");

if (player != null && !player.getClient().isDetached())

{

for (int i = 0; i < itemId.length; i++)

{

item = player.getInventory().getItemByItemId(itemId);

if (item == null || item.getCount() < maxStack)

player.addItem("reward", itemId, itemCount, player, true);

}

}

}

statement.close();

}

catch (SQLException e)

{

e.printStackTrace();

}

finally

{

                          try { if (con != null) con.close(); } catch (SQLException e) { e.printStackTrace(); }

}

 

setLastVoteCount(getLastVoteCount() + votesRequiredForReward);

}

Announcements.getInstance().announceToAll("Server Votes: " + votes + " | Next Reward on " + (getLastVoteCount() + votesRequiredForReward) + " Votes.");

if (getLastVoteCount() == 0)

setLastVoteCount(votes);

}

}

 

private int getVotes()

{

URL url = null;

InputStreamReader isr = null;

BufferedReader in = null;

try

{

url = new URL(HOPZONE);

isr = new InputStreamReader(url.openStream());

in = new BufferedReader(isr);

String inputLine;

while ((inputLine = in.readLine()) != null)

{

if (inputLine.contains("moreinfo_total_rank_text"))

return Integer.valueOf(inputLine.split(">")[2].replace("</div", ""));

}

}

catch (IOException e)

{

e.printStackTrace();

}

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;

}

 

public static AutoVoteRewardHandler getInstance()

{

return SingletonHolder._instance;

}

 

@SuppressWarnings("synthetic-access")

private static class SingletonHolder

{

protected static final AutoVoteRewardHandler _instance = new AutoVoteRewardHandler();

}

}

 

 

to code beni ok exw vali kai ta ipolipa gameserver+config alla m vgeni ena error sto parapano code

 

 

if (player != null && !player.getClient().isDetached())

 

 

 

bori kapios na m pi pos to fix afto??

10 answers to this question

Recommended Posts

  • 0
Posted

To quick fix που σου δίνει το eclipse το δοκίμασες;

ti? den to gnorizo afto pou les :) ase pou twra pros8ata arxisa na vazo java codes.
  • 0
Posted

L2GameClient.java line 70

 

private boolean _isDetached = false;

 

line 168

public boolean isDetached()
{
	return _isDetached;
}

public void setDetached(boolean b)
{
	_isDetached = b;
}

Βάλτο και θα είσαι οκ,για όποια απορία κάνε ένα reply.

  • 0
Posted

re ka8usterimene ti mlks les?

xaxaxa0  XD

ty m vgike to error alla otan anigo ton server to gameserver m vgazi error kai den 3ekinai ka9olou :) twra ti ftei??

πιθανός να έχει κάποιο λάθος το vote system,

φέρε μια φώτο με το error.

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 account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Posts

    • 🏰 Clan Donations System – Power Through Unity This system allows clan members to support their clan directly through donations, turning contribution into strength.   How it works: Every donation made by a clan member is automatically listed in the clan donation panel. Each donation is permanently linked to the clan — no loss, no reset. The Clan Leader manages rewards manually for full transparency.   🎁 Clan Donation Rewards For every donation: The clan receives 5% Real Money or 10% Donate Coins (Leader chooses how the reward is given)   📌 After the reward is delivered, the donation is marked as PAID in the system. 🧾 Full Transparency Player name Donation amount Reward value (Real / Donate Coins) Date & status (Pending / Paid)   Everything is visible. Everything is tracked. Nothing is forgotten.   ⚔️ Support your clan. Strengthen your alliance. Power is built — not given.   https://www.l2dead.com/ https://discord.gg/TGnATuZmdt
    • up  corrected some retail crashes and hooked some new memory adresses that were missing  fix some missing retail behaviors on some recipes , you can also get the server as c4 with fixed scripts fully retail  what has been done to the c4  ( client is already configured) totally fixed npcposes  totally fixed raidbosses and minions bugged quests are fixed (known) a lot of recipes that were wrong  wrong values in several stats and corrected hero weapons behaviors/atk range
    • ποιο ειναι αρχαιο ακριβως? εκανες τον κοπο να ανοιξεις τα λινκς που εστειλα? 
    • Rates: xp45x / sp50x / adena50x (all adena is divided by 100/all shops prices too) Server: Full Official interlude server  with custom modifications Gameplay: l2Gold weapons - jewels, Buffs 1 hour, rebirth, No class change quests, increased movement speed on all classes   Download patch here: https://mega.nz/file/oZdG2KTa#1uTYSyEkNQV9U0Zxj-KLDE88mLj4pzQJZSYs2k3tpzo   Our server is waiting for all Lineage 2 fans who want to relive the good old days. This server is non-profit and fully dedicated to the community. There is no corruption, no pay-to-win, and no hidden agendas—just pure classic L2 fun.
  • Topics

×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..