Jump to content
  • 0

[HELP]ONE CODE I MADE DOESN'T WORK-JAVA


Question

Posted

I WANT TO HAPPEN EVERY 1 HOUR FOR EXAMPLE, IT DOES NOT WORK :sssss HOW CAN I MAKE IT TO WORK? CAN ANYONE HELP ME :/


### Eclipse Workspace Patch 1.0
#P testGameserver
Index: java/net/sf/l2j/gameserver/GameServer.java
===================================================================
--- java/net/sf/l2j/gameserver/GameServer.java	(revision 5117)
+++ java/net/sf/l2j/gameserver/GameServer.java	(working copy)
@@ -217,6 +217,7 @@
import net.sf.l2j.gameserver.instancemanager.RaidBossSpawnManager;
import net.sf.l2j.gameserver.instancemanager.SiegeManager;
import net.sf.l2j.gameserver.model.AutoChatHandler;
+import net.sf.l2j.gameserver.model.entity.AutoRewardLords;
import net.sf.l2j.gameserver.model.AutoSpawnHandler;
import net.sf.l2j.gameserver.model.L2Manor;
import net.sf.l2j.gameserver.model.L2PetDataTable;
@@ -343,6 +344,7 @@

		RecipeController.getInstance();

+		AutoRewardLords.getInstance();
		SkillTreeTable.getInstance();
		ArmorSetsTable.getInstance();
		FishTable.getInstance();
Index: java/net/sf/l2j/gameserver/model/entity/AutoRewardLords.java
===================================================================
--- java/net/sf/l2j/gameserver/model/entity/AutoRewardLords.java	(revision 0)
+++ java/net/sf/l2j/gameserver/model/entity/AutoRewardLords.java	(revision 0)
@@ -0,0 +1,69 @@
+/* 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;
+
+import java.util.Collection;
+
+import net.sf.l2j.gameserver.Announcements;
+import net.sf.l2j.gameserver.ThreadPoolManager;
+import net.sf.l2j.gameserver.model.L2World;
+import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
+
+/**
+ *
+ * @author  Cafr
+ */
+public class AutoRewardLords
+{
+	Collection<L2PcInstance> players = L2World.getInstance().getAllPlayers();
+	
+	 class AutoRewardTask implements Runnable
+	{
+		public void run()
+		{
+			for(L2PcInstance player : players)
+			{
+			   if(player != null) if(player.getClan() != null)
+					   if(player.getClan().getHasCastle() > 0 && player.isClanLeader())
+					   {
+						   player.getInventory().addAdena(null, 25000000, player, null);
+						   player.sendMessage("Auto rewarding castle lords activated,look your inventory.");
+					   }	  
+			   }
+			Announcements.getInstance().announceToAll("All online castle lords rewarded.");
+			System.out.println("Auto Castle Lords Reward Activated");
+		 }
+	}
+	
+	private AutoRewardLords()
+		{
+		 ThreadPoolManager.getInstance().scheduleGeneral(new AutoRewardTask(), 60000);
+		}
+   
+	
+	public static AutoRewardLords getInstance()
+		{
+			return SingletonHolder._instance;
+		}
+		
+		private static class SingletonHolder
+		{
+			@SuppressWarnings("synthetic-access")
+			protected static final AutoRewardLords _instance = new AutoRewardLords();
+		}
+}
\ No newline at end of file

Recommended Posts

  • 0
Posted

Thats what i thought at the beggining too.  :(

 

But:

 

You need to update it, it's a copy of current state of the map, not a reference, LOL, imagine the damage that could cause...

 

Actually its a ref and not a new collection referencing the player objects. Taken from the latest revision:

 

227         public L2TIntObjectHashMap<L2PcInstance> getAllPlayers()

228         {

229                 return _allPlayers;

230         }

  • 0
Posted

Yes, I mixed with getAllPlayersArray() which returns a copy into an array of L2PcI.

 

Also L2TIntObjectHashMap should be thread safe...

 

--Edit:

I knew I wasn't that wrong.

With L2World.getInstance().getAllPlayers() you get a map, to get an (iterable) array you need to use getAllPlayersArray(), which isn't a collection.

 

In Freya and older High Five versions L2World.getInstance().getAllPlayers() returned a collection...

 

Be careful depends on the core you try to run the script, obviously the script in first post is for Freya.

  • 0
Posted

+ Collection<L2PcInstance> players = L2World.getInstance().getAllPlayers();

 

I think he has to update his collection each time the method runs.. I agree with Leluche, because a player might exit and get deleted from _allPlayers L2TIntObjectHashMap, so he needs to get deleted from his collection too. Or am i wrong?

  • 0
Posted

+ Collection<L2PcInstance> players = L2World.getInstance().getAllPlayers();

 

I think he has to update his collection each time the method runs.. I agree with Leluche, because a player might exit and get deleted from _allPlayers L2TIntObjectHashMap, so he needs to get deleted from his collection too. Or am i wrong?

 

Read the thread again: http://maxcheaters.com/forum/index.php?topic=227009.msg2000014#msg2000014

I say there why it has to be updated and here (previous post): http://maxcheaters.com/forum/index.php?topic=227009.msg1999371#msg1999371

I included the update in the run method...

 

Actually Leluche and adenaman said that update is not required.

http://maxcheaters.com/forum/index.php?topic=227009.msg1999711#msg1999711

http://maxcheaters.com/forum/index.php?topic=227009.msg2000281#msg2000281

  • 0
Posted

problem solved , actually update was required finally , but and i have to change the scheduleGeneral.

Thanks you :)

 

Good that you got it working, sometimes we go offtopic trying to prove who is right :D

  • 0
Posted

Oh i see. That's what i wanted to say, but thinking Leluche said the opposite :P

 

sometimes we go offtopic trying to prove who is right :D

Yeah this happens quite often here :D

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
Answer this question...

×   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.

×
×
  • Create New...