Jump to content

[Share]AutoAnnounce - XML


Vkouk

Recommended Posts

I just remembered that feature for l2j,and since i was practising with xml-java i started doing it.I havent test it,but i guess works.Feedback plz

 

Tested:Yes

Working:Yes

 

Picture:

UEn0P.jpg

 

Index: data/xml/autoannounce.xml
===================================================================
--- data/xml/autoannounce.xml	(revision 0)
+++ data/xml/autoannounce.xml	(revision 0)
@@ -0,0 +1,5 @@
+<?xml version='1.0' encoding='utf-8'?>
+<list>
+	<message text="By Ventic!"/>
+	<message text="Kisses!"/>
+</list>
Index: java/net/sf/l2j/gameserver/datatables/xml/AutoAnnounce.java
===================================================================
--- java/net/sf/l2j/gameserver/datatables/xml/AutoAnnounce.java	(revision 0)
+++ java/net/sf/l2j/gameserver/datatables/xml/AutoAnnounce.java	(revision 0)
@@ -0,0 +1,107 @@
+/*
+ * 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.datatables.xml;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStreamReader;
+import java.util.logging.Logger;
+
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import javolution.util.FastList;
+import net.sf.l2j.Config;
+import net.sf.l2j.gameserver.Announcements;
+import net.sf.l2j.gameserver.ThreadPoolManager;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.xml.sax.InputSource;
+
+/**
+ * @author  Ventic
+ */
+
+public class AutoAnnounce
+{
+	private static final Logger log = Logger.getLogger(AutoAnnounce.class.getName());
+	private FastList<String> messages = new FastList<String>();
+	
+	private class AutoAnnounceTask implements Runnable
+	{
+		@SuppressWarnings("synthetic-access")
+		public void run()
+		{
+			loadData();
+		}
+	}
+	
+	private void loadData()
+	{
+		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+		factory.setValidating(false);
+		factory.setIgnoringComments(true);
+		File f = new File(Config.DATAPACK_ROOT + "/data/xml/autoannounce.xml");
+		
+		if (!f.exists())
+		{
+			log.warning("autoannounce.xml could not be loaded: file not found");
+			return;
+		}
+		try
+		{
+			InputSource in = new InputSource(new InputStreamReader(new FileInputStream(f), "UTF-8"));
+			in.setEncoding("UTF-8");
+			Document doc = factory.newDocumentBuilder().parse(f);
+			for (Node na = doc.getFirstChild(); na != null; na = na.getNextSibling())
+			{
+				if(na.getNodeName().equalsIgnoreCase("list"))
+				{
+					for (Node n = na.getFirstChild(); n != null; n = n.getNextSibling())
+					{
+						if (n.getNodeName().equals("message"))
+						{
+							NamedNodeMap ndm = n.getAttributes();
+							String message = ndm.getNamedItem("text").getNodeValue();
+							if (!messages.contains(message))
+							{
+								messages.add(message);
+							}
+							Announcements.getInstance().announceToAll(message);
+						}
+					}
+				}
+			}
+		}
+		catch (Exception e)
+		{}
+	}
+	
+	public static AutoAnnounce getInstance()
+	{
+		return SingletonHolder._instance;
+	}
+	
+	private static class SingletonHolder
+	{
+		@SuppressWarnings("synthetic-access")
+		protected static final AutoAnnounce _instance = new AutoAnnounce();
+	}
+	
+	@SuppressWarnings("synthetic-access")
+	private AutoAnnounce()
+	{
+		ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new AutoAnnounceTask(), 120000, 120000);
+	}
+}
Index: java/net/sf/l2j/gameserver/GameServer.java
===================================================================
--- java/net/sf/l2j/gameserver/GameServer.java	(revision 73)
+++ java/net/sf/l2j/gameserver/GameServer.java	(working copy)
@@ -51,6 +51,7 @@
import net.sf.l2j.gameserver.datatables.sql.SpawnTable;
import net.sf.l2j.gameserver.datatables.xml.ArmorSetsTable;
import net.sf.l2j.gameserver.datatables.xml.AugmentationData;
+import net.sf.l2j.gameserver.datatables.xml.AutoAnnounce;
import net.sf.l2j.gameserver.datatables.xml.CharTemplateTable;
import net.sf.l2j.gameserver.datatables.xml.FishTable;
import net.sf.l2j.gameserver.datatables.xml.HelperBuffTable;
@@ -247,6 +248,7 @@
	 	AdminCommandAccessRights.getInstance();
		L2World.getInstance();
		ZoneManager.getInstance();
+		AutoAnnounce.getInstance();
         SpawnTable.getInstance();
         RaidBossSpawnManager.getInstance();
         _log.config("GrandBossManager: Loaded " + GrandBossManager.getInstance().size() + " GrandBosses instances.");

 

Credits Me

Link to comment
Share on other sites

You are da man, sharing even now in mxc..

Thanks

no problem at all dude

Who tested? Is it working ?

didnt test it.i would be glad if you test it
Link to comment
Share on other sites

  • 1 month later...

thx a lot for it, it may not be usefull as it is now but its usefull if ppl wanna make something new connecting xml files so they will just look at this code and change it as they want

Link to comment
Share on other sites

thx a lot for it, it may not be usefull as it is now but its usefull if ppl wanna make something new connecting xml files so they will just look at this code and change it as they want

somehow yes

Who tested?

look the pic
Link to comment
Share on other sites

  • 3 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.

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

    • Hello MxC! i noticed that hair style change potions  E and F on interlude are not working correct. the visual is totally missplaced or wrong. Where can i find them in patch becasue im stucked. Thanks in advance
    • Visit our website: https://smartaim.cc Reviews from real customers: https://smartaim.cc/index.php?/forum/8-csgo-cheats-reviews/ - Private Undetected League Cheat for Counter-Strike 2 (CS2) with major anti-cheat support: FACEIT, ESPORTAL, GAMERSCLUB, 5EWIN and many others! - Over two years on the market! More than 300 satisfied customers! Features Aimbot: Key Bone Smooth Field of View Recoil Control System (RCS) Friendly Fire Weapon Settings Triggerbot: Key Delay Hitgroup Weapon Settings ESP: Box Style Radius Bone Chams Health Weapon Sound Misc: Panic key (Hot key to disable the cheat during the game, suitable for LAN games or in case you need to disable the cheat for some reason) Auto accept (Automatic game acceptance in CS2 matchmaking) Radar (Opponents and teammates will be shown on the game radar) Stream Bypass (Ability to use a cheat during an online stream) Supported Anti-Cheats List VAC & MATCHMAKING [UNDETECTED] SMAC [UNDETECTED] CYBERSHOKE [UNDETECTED] ESPORTAL [UNDETECTED] GAMERSCLUB [UNDETECTED] FACEIT CLIENT [UNDETECTED] EASY ESPORTS [UNDETECTED] CEVO [UNDETECTED] 5EWIN / 5EPLAY / 5EARENA [UNDETECTED] B5CSGO [UNDETECTED] PERFECT WORLD PVP (PWA)完美世界WANMEI PVP (PWA)  [UNDETECTED] FASTCUP [UNDETECTED] MOSS [UNDETECTED] 99DAMAGE [UNDETECTED] CHALLENGEME.GG [UNDETECTED] AKROS [UNDETECTED]   Payment Methods: CRYPTO, PAYPAL, WECHAT, APPLEPAY and others.   In-game screenshots and video      
    • Like maxcheaters is a thing 🤣🥳🥳🥳
    • LF someone to add drops to mobs over lv 76 on my server, I have tried all of the "Guides" that I could find on the internet and none of them seem to work.  Obviously since this is marketplace I am willing to pay. PM me here or on Discord - offhealz
    • Scammers and liars like him won't make it far here 🙂 Good luck with getting clients. Like TrevorJ - fotis says "clowns".  
  • 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