Jump to content

Recommended Posts

Posted

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

ε ναι αλλα τι διαφορα εχει το config απο το xml? Ισως να ειναι πιο ευκολο το xml αλλα εφοσον το εχεις ηδη added με config ....

Posted

apla ekana practise,kai to kana

tora esy kolas stis diafores config-me xml

 

me xml ine kalutero,eno to config ine sunithismeno

Posted

apla ekana practise,kai to kana

tora esy kolas stis diafores config-me xml

 

me xml ine kalutero,eno to config ine sunithismeno

kalutero den einai, pio advanced nai...ala kalitero oxi.Same thing.

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

    • TG Support: https://t.me/buyingproxysup | Channel: https://t.me/buyingproxycom Discord support: #buyingproxy | Server: Join the BuyingProxy Discord Server!  Create your free account here
    • Ave is trustworthy,fast  and reliable.His work is amazing!100% satisfied with his services!
    • SMMTOOL.ORG ТВОЙ ПРЯМОЙ ПОСТАВЩИК TG/YouTube/MAX ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ ПОЧЕМУ МЫ? • Свой софт — работаем без посредников и переплат. • Скорость до 50.000.000 в сутки. • Минимальный **** — всего ~5%. ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ Услуги Telegram ПРАЙС-ЛИСТ (ЗА 1000 ЕД.) ПОДПИСЧИКИ (LIFETIME) ➥ 1.2$ — RU База ➥ 1.2$ — Китай База ➥ 1$ — Ultra Fast Группа (~80₽) ➥ 1$ — Ultra Fast (~80₽) ➥ 0.99$ — Super Fast (~80₽) ➥ 0.8$ — Fast (~64₽) ➥ 0.55$ — Normal (~40₽) ➥ 0.44$ — 100K+ Only (~35₽) ПОДПИСЧИКИ (Дневные) ➥ 0.7$ — 60 дней РУ (~55₽) ➥ 0.5$ — 30 Дней РУ (~40₽) ➥ 0.7$ — 60 Дней Китай (~55₽) ➥ 0.5$ — 60 Дней Китай (~40₽) ОПТИМИЗАЦИЯ КАНАЛОВ И БОТОВ ➥ 1.5$ — Подписчики из Поиска Китай (~120₽) ➥ 1.5$ — Подписчики из Поиска РУ База (~120₽) ➥ 1$ — Подписчики из Поиска МИКС (~₽80) ➥ 0.8$ — Бот Старты из Поиска (~64₽) АКТИВНОСТЬ И БОТЫ ➥ 0.7$ — Реакции на Комменты (Позитивные) + Подписчики (Бонус) ➥ 0.7$ — Реакции на Комменты (Негативные) + Подписчики (Бонус) ➥ 0.08$ — Просмотры постов ➥ 0.08$ — Реакции (Любые) ➥ 0.18$ — Запуски ботов МИКС ➥ 0.4$ — Запуски ботов РУ ➥ 0.4$ — Запуски ботов Китай ➥ 0.18$ — Запуски ботов + сообщение (/settings) ➥ 0.5$ — Рефералы в боты ➥ 0.3$ — Репост Истории + просмотр ➥ 0.3$ — Лайк Истории + просмотр Услуги YouTube АКТИВНОСТЬ ➥ 8$ — Кастомные Комментарии Живые Юзеры ➥ 15$ — Кастом Позитивные Комментарии + Лайк + Просмотр Видео ➥ 10$ — Рандомные Позитивные Комментарии + Лайк + Просмотр Видео ➥ 0.55$ — Поделиться Видео Живые Юзеры ➥ 0.5$ — Зрители Эфира (15мин) Живые Юзеры ➥ 18$ — Живые Просмотры Видео 60мин+ Видео ➥ 5$ — Рандомные Позитивные Комментарии ➥ 0.5$ — Лайк под Видео ➥ 0.7$ — Просмотр Видео МИКС + Монетизация Услуги MAX ПОДПИСЧИКИ (LIFETIME) ➥ 22$ — Публичные Каналы ПОДПИСЧИКИ (Дневные) ➥ 15$ — 90 дней ➥ 12$ — 60 дней ➥ 8$ — 30 дней АКТИВНОСТЬ И БОТЫ ➥ 3.50$ — Просмотры на пост ➥ 7$ — Макс Репосты ➥ 8$ — Положительные Реакции ➥ 13$ — Реакция ➥ 13$ — Реакция ➥ 13$ — Реакция ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ БОНУСЫ И ОФФЕРЫ КЭШБЭК ДО 10% для крупных реселлеров API доступ для ваших панелей ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ ОПЛАТА: Crypto | LOLZ Market САЙТ: SMMTOOL.ORG Telegram: SMMTOOL_ORG
  • 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..