Jump to content

Recommended Posts

Posted

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

Posted

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
  • 1 month later...
Posted

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

Posted

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

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

    • NEW SEASON OPENING - TODAY ! GRAND OPENING FROM - 10/07/2026, FRIDAY, 20:00 +3 GMT !
    • Elite Lineage II Development | Websites • Master Accounts • Custom Systems • Server Solutions Turn Your Lineage II Project Into a Professional Experience Hello everyone, My name is Frank, and for years I've been developing custom solutions for Lineage II private servers. My focus isn't simply creating attractive websites—it's building complete ecosystems that improve both the player experience and server management. Unlike generic web designers, I understand how Lineage II servers actually work. Every page and system is designed with real gameplay, server administration, and player retention in mind. Whether you're launching your first project or upgrading an established server, I can help you create something that looks and feels like a premium MMORPG. What I Can Build Modern Landing Pages Your landing page is the first impression players have of your server. I create high-end landing pages featuring: • Cinematic hero sections • Animated backgrounds • Countdown timers • Feature showcases • Grand Opening events • Server roadmap • Responsive mobile design • Fast loading and SEO-friendly structure No generic templates. Every landing page is built specifically for your project. Complete Master Account Systems One of my specialties is developing advanced account management panels that integrate naturally with your Lineage II server. Examples include: • Account Dashboard • Character Selection • Character Information • Character Statistics • Combat Power System • Achievement System • Character Mastery • Collections • Daily Rewards • Vote Rewards • Referral Systems • Lucky Wheel • Premium Account Management • Donation Store • Coin Wallet • VIP Services • PIN Protection • Password Management • Inventory Viewer • Warehouse Viewer • Rankings • Online Players • Server Statistics • Event Pages Everything is designed with both usability and visual quality in mind. Custom Web Systems Need something unique? I also develop completely custom features tailored to your server. Examples: • World Boss Event Pages • Raid Boss Tracker • Olympiad Rankings • Castle Siege Overview • Grand Boss Status • Event Management Panels • Daily Hunt Interfaces • Progression Systems • Collection Systems • Custom Shops • Clan Pages • Marketplace • Admin Panels If you have an idea, we can build it. Full Website Development I can create your complete server website, including: • Home • Downloads • News • Patch Notes • Server Information • Wiki • Rankings • Community Pages • Support Center • Knowledge Base • FAQ • Voting Pages • Donation Pages Designed to match your server's identity. Forum Integration Professional integration with community platforms. Examples: • XenForo • phpBB • Discord Integration • Custom Forum Themes • User Synchronization Server Experience Because I actively work with Lineage II servers, I understand much more than web development. Experience includes designing and implementing systems around: • Character progression • Achievement tracking • Collection systems • Daily Hunt mechanics • Lucky Wheel events • Premium services • Server economy • Custom reward systems • World Boss events • Event scheduling • Player dashboards • Administrative tools This allows me to design websites and panels that feel like a natural extension of your server instead of just another website. Technologies • PHP 8 • MySQL / MariaDB • HTML5 • CSS3 • JavaScript • AJAX • Responsive Design • API Integration • Linux Server Environment Why Choose Me? ✔ Years of Lineage II development experience ✔ I understand both the website and the game server ✔ Custom development—not copy-paste templates ✔ Modern UI & UX ✔ Mobile responsive ✔ Clean and optimized code ✔ Long-term support ✔ Fast communication ✔ Flexible solutions for every budget Portfolio Below you'll find examples of projects I've created, including custom landing pages, master account systems, dashboards, progression systems, and unique interfaces developed for real Lineage II servers.     Need Something Unique? Some of the most successful servers stand out because they offer features players haven't seen before. If you have an idea—even if it's only a rough concept—I can help transform it into a polished, fully functional system.     Contact Interested in working together? Feel free to send me a private message with your project details. I'll be happy to discuss your ideas and provide a free estimate. Let's build something your players will remember.     Discord:  https://discord.gg/qnmNkY6D3n
  • 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..