자동공지사항
자동공지사항
Config.java
public static boolean Use_Show_Announcecycle; // 추가
public static int Show_Announcecycle_Time; // 추가
public static final String OTHER_SETTINGS_CONFIG_FILE = "./config/othersettings.properties"; // 추가
// othersettings.properties
try {
Properties othersettings = new Properties();
InputStream is = new FileInputStream(new File(OTHER_SETTINGS_CONFIG_FILE));
othersettings.load(is);
is.close();
Use_Show_Announcecycle = Boolean.parseBoolean(othersettings.getProperty("UseShowAnnouncecycle", "false"));
Show_Announcecycle_Time = Integer.parseInt(othersettings.getProperty("ShowAnnouncecycleTime", "30"));
} catch (Exception e) {
_log.log(Level.SEVERE, e.getLocalizedMessage(), e);
throw new Error("Failed to Load " + OTHER_SETTINGS_CONFIG_FILE + " File.");
}
validate(); // 검색 후 위에 내용 추가.
} else if (pName.equalsIgnoreCase("UseShowAnnouncecycle")) { // 추가
Use_Show_Announcecycle = Boolean.valueOf(pValue);
} else if (pName.equalsIgnoreCase("ShowAnnouncecycleTime")) { // 추가
Show_Announcecycle_Time = Integer.parseInt(pValue);
Announcecycle.java // 생성 : 위치 package l1j.server.server;
package l1j.server.server;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.LineNumberReader;
import java.util.List;
import java.util.StringTokenizer;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.Collection;
import javolution.util.FastList;
import l1j.server.Config;
import l1j.server.server.model.L1World;
import l1j.server.server.model.Instance.L1PcInstance;
import l1j.server.server.serverpackets.S_SystemMessage;
public class Announcecycle {
private static Logger _log = Logger
.getLogger(Announcecycle.class.getName());
private static Announcecycle _instance;
private List _Announcecycle = new FastList();
private int _Announcecyclesize = 0;
private Announcecycle() {
loadAnnouncecycle();
}
public static Announcecycle getInstance() {
if (_instance == null) {
_instance = new Announcecycle();
}
return _instance;
}
public void loadAnnouncecycle() {
_Announcecycle.clear();
File file = new File("data/Announcecycle.txt");
if (file.exists()) {
readFromDiskmulti(file);
doAnnouncecycle();
} else {
_log.config("data/Announcecycle.txt");
}
}
private void readFromDiskmulti(File file) {
LineNumberReader lnr = null;
try {
int i = 0;
String line = null;
lnr = new LineNumberReader(new FileReader(file));
while ((line = lnr.readLine()) != null) {
StringTokenizer st = new StringTokenizer(line, "\n\r");
if (st.hasMoreTokens()) {
String showAnnouncecycle = st.nextToken();
_Announcecycle.add(showAnnouncecycle);
i++;
}
}
_log.config("Announcecycle: Loaded " + i + " Announcecycle.");
} catch (IOException e1) {
_log.log(Level.SEVERE, "Error reading Announcecycle", e1);
} finally {
try {
lnr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public void doAnnouncecycle() {
AnnouncTask rs = new AnnouncTask();
GeneralThreadPool.getInstance().scheduleAtFixedRate(rs, 180000, 60000 * Config.Show_Announcecycle_Time);
}
/** The task launching the function doAnnouncCycle() */
class AnnouncTask implements Runnable {
public void run() {
try {
ShowAnnounceToAll(_Announcecycle.get(_Announcecyclesize));
_Announcecyclesize++;
if (_Announcecyclesize >= _Announcecycle.size())
_Announcecyclesize = 0;
} catch (Exception e) {
_log.log(Level.WARNING, "", e);
}
}
}
private void ShowAnnounceToAll(String msg) {
Collection allpc = L1World.getInstance().getAllPlayers();
for (L1PcInstance pc : allpc)
pc.sendPackets(new S_SystemMessage(msg));
}
}
GameServer.java
if (Config.Use_Show_Announcecycle == true) { // 추가
Announcecycle.getInstance();
}
Config폴더
othersettings.properties // 생성
#-------------------------------------------------------------
# OtherSettings config
#-------------------------------------------------------------
#──────────────────
# 자동 공지사항..(\data\announcecycle.txt) True=사용함, False=사용안함
# 자동 공지사항 시간..(단위 : 분)
UseShowAnnouncecycle = false
ShowAnnouncecycleTime = 1
#──────────────────
data폴더
announcecycle.txt // 생성
자동 공지사항 테스트 메세지 출력.
자동 공지사항 테스트 메세지 출력.
자동 공지사항 테스트 메세지 출력.

찰떡01 님의 최근 댓글
ㄳ 2023 06.17 ㄱㅅ 2020 12.19 클라 공유 부탁드립니다. 2020 12.19 ㄱㅅ 2020 11.26 ㄱㅅ 2020 11.05