- 0
Help Adapt To acis 398
-
Posts
-
By Utchiha-Market · Posted
DISCORD : utchiha_market telegram : https://t.me/utchiha_market SELLIX STORE : https://utchiha.sellpass.io/ Join our server for more products : https://discord.gg/uthciha-services https://campsite.bio/utchihaamkt -
By Utchiha-Market · Posted
DISCORD : utchiha_market telegram : https://t.me/utchiha_market SELLIX STORE : https://utchiha.sellpass.io/ Join our server for more products : https://discord.gg/uthciha-services https://campsite.bio/utchihaamkt -
By Utchiha-Market · Posted
DISCORD : utchiha_market telegram : https://t.me/utchiha_market SELLIX STORE : https://utchiha.sellpass.io/ Join our server for more products : https://discord.gg/uthciha-services https://campsite.bio/utchihaamkt -
By Utchiha-Market · Posted
DISCORD : utchiha_market telegram : https://t.me/utchiha_market SELLIX STORE : https://utchiha.sellpass.io/ Join our server for more products : https://discord.gg/uthciha-services https://campsite.bio/utchihaamkt -
By fede260593 · Posted
Hello everyone, I would like some help adapting this file for a custom community board l2jFrozen: package com.l2jfrozen.gameserver.communitybbs; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Map; import java.util.StringTokenizer; import javolution.util.FastMap; import com.l2jfrozen.Config; import com.l2jfrozen.gameserver.cache.HtmCache; import com.l2jfrozen.gameserver.communitybbs.Manager.BaseBBSManager; import com.l2jfrozen.gameserver.communitybbs.Manager.ClanBBSManager; import com.l2jfrozen.gameserver.communitybbs.Manager.PostBBSManager; import com.l2jfrozen.gameserver.communitybbs.Manager.RegionBBSManager; import com.l2jfrozen.gameserver.communitybbs.Manager.TeleBBSManager; import com.l2jfrozen.gameserver.communitybbs.Manager.TopicBBSManager; import com.l2jfrozen.gameserver.communitybbs.Manager.shopBBSManager; import com.l2jfrozen.gameserver.handler.IBBSHandler; import com.l2jfrozen.gameserver.model.L2Clan; import com.l2jfrozen.gameserver.model.L2World; import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance; import com.l2jfrozen.gameserver.model.multisell.L2Multisell; import com.l2jfrozen.gameserver.network.L2GameClient; import com.l2jfrozen.gameserver.network.SystemMessageId; import com.l2jfrozen.gameserver.network.serverpackets.ShowBoard; import com.l2jfrozen.gameserver.network.serverpackets.SystemMessage; public class CommunityBoard { private static CommunityBoard _instance; private final Map<String, IBBSHandler> _handlers; protected final SimpleDateFormat fmt = new SimpleDateFormat("H:mm."); public CommunityBoard() { _handlers = new FastMap<>(); // null; } public boolean checkPlayerConditions(L2PcInstance activeChar, String command) { if (activeChar.isInOlympiadMode()) { activeChar.sendMessage("CommunityBoard use is prohibited at the Olympiad"); return false; } if (activeChar.isFlying() || activeChar.isMounted()) { activeChar.sendMessage("CommunityBoard use is prohibited at while flying or mounted!"); return false; } if (activeChar.inObserverMode()) { activeChar.sendMessage("CommunityBoard use is prohibited in ObserveMode!"); return false; } if (activeChar.isAlikeDead() || activeChar.isDead()) { activeChar.sendMessage("CommunityBoard use is prohibited While Dead"); return false; } if (activeChar.isInCombat()) { activeChar.sendMessage("CommunityBoard use is prohibited in Combat!"); return false; } if (activeChar.isCastingNow()) { activeChar.sendMessage("CommunityBoard use is prohibited while Casting!"); return false; } if (activeChar.isAttackingNow()) { activeChar.sendMessage("CommunityBoard use is prohibited while Attacking!"); return false; } if (activeChar.isInDuel()) { activeChar.sendMessage("CommunityBoard use is prohibited while Playing Duel!"); return false; } if (activeChar.isFishing()) { activeChar.sendMessage("CommunityBoard use is prohibited while Fishing!"); return false; } if (activeChar.isInStoreMode()) { activeChar.sendMessage("CommunityBoard use is prohibited in StoreMode!"); return false; } if (activeChar.isInJail() || activeChar.isCursedWeaponEquipped() || activeChar.isFlying() || activeChar.isInBoat() || activeChar.isProcessingTransaction() || activeChar.isStunned()) { activeChar.sendMessage("CommunityBoard use is prohibited right now!"); return false; } return true; } public static CommunityBoard getInstance() { if (_instance == null) { _instance = new CommunityBoard(); } return _instance; } /** * by Azagthtot * @param handler as IBBSHandler */ public void registerBBSHandler(final IBBSHandler handler) { for (final String s : handler.getBBSCommands()) { _handlers.put(s, handler); } } /** * by Azagthtot * @param client * @param command */ public void handleCommands(final L2GameClient client, final String command) { L2PcInstance activeChar = client.getActiveChar(); if (activeChar == null) return; if(!checkPlayerConditions(activeChar, command)) return; if (Config.COMMUNITY_TYPE.equals("full")) { String cmd = command.substring(4); String params = ""; final int iPos = cmd.indexOf(" "); if (iPos != -1) { params = cmd.substring(iPos + 1); cmd = cmd.substring(0, iPos); } final IBBSHandler bbsh = _handlers.get(cmd); if (bbsh != null) { bbsh.handleCommand(cmd, activeChar, params); } else { if (command.startsWith("_bbsclan")) { String text = HtmCache.getInstance().getHtm("data/html/CommunityBoard/index.htm"); //Custom Community Board text = text.replace("%CharName%", String.valueOf(activeChar.getName())); text = text.replace("%CharClass%", String.valueOf(activeChar.getClassId().name())); text = text.replace("%CharLevel%", String.valueOf(activeChar.getLevel())); if (activeChar.isNoble()) { text = text.replace("%nobless%", "Yes"); } else { text = text.replace("%nobless%", "No"); } L2Clan clan = activeChar.getClan(); if (clan != null) { text = text.replace("%CharClan%", String.valueOf(activeChar.getClan().getName())); } else { text = text.replace("%CharClan%", "No Clan"); } text = text.replace("%CharIP%", String.valueOf(activeChar.getClient().getConnection().getInetAddress().getHostAddress())); text = text.replace("%PlayerOnline%", String.valueOf(L2World.getInstance().getAllPlayers().size()* 1)); text = text.replace("%ServerTime%", fmt.format(new Date(System.currentTimeMillis()))); //Custom Community Board BaseBBSManager.separateAndSend(text, activeChar); } else if (command.startsWith("_bbsmemo")) { String text = HtmCache.getInstance().getHtm("data/html/CommunityBoard/index.htm"); //Custom Community Board text = text.replace("%CharName%", String.valueOf(activeChar.getName())); text = text.replace("%CharClass%", String.valueOf(activeChar.getClassId().name())); text = text.replace("%CharLevel%", String.valueOf(activeChar.getLevel())); if (activeChar.isNoble()) { text = text.replace("%nobless%", "Yes"); } else { text = text.replace("%nobless%", "No"); } L2Clan clan = activeChar.getClan(); if (clan != null) { text = text.replace("%CharClan%", String.valueOf(activeChar.getClan().getName())); } else { text = text.replace("%CharClan%", "No Clan"); } text = text.replace("%CharIP%", String.valueOf(activeChar.getClient().getConnection().getInetAddress().getHostAddress())); text = text.replace("%PlayerOnline%", String.valueOf(L2World.getInstance().getAllPlayers().size()* 1)); text = text.replace("%ServerTime%", fmt.format(new Date(System.currentTimeMillis()))); //Custom Community Board BaseBBSManager.separateAndSend(text, activeChar); } else if (command.startsWith("_bbsgetfav")) { String text = HtmCache.getInstance().getHtm("data/html/CommunityBoard/index.htm"); //Custom Community Board text = text.replace("%CharName%", String.valueOf(activeChar.getName())); text = text.replace("%CharClass%", String.valueOf(activeChar.getClassId().name())); text = text.replace("%CharLevel%", String.valueOf(activeChar.getLevel())); if (activeChar.isNoble()) { text = text.replace("%nobless%", "Yes"); } else { text = text.replace("%nobless%", "No"); } L2Clan clan = activeChar.getClan(); if (clan != null) { text = text.replace("%CharClan%", String.valueOf(activeChar.getClan().getName())); } else { text = text.replace("%CharClan%", "No Clan"); } text = text.replace("%CharIP%", String.valueOf(activeChar.getClient().getConnection().getInetAddress().getHostAddress())); text = text.replace("%PlayerOnline%", String.valueOf(L2World.getInstance().getAllPlayers().size()* 1)); text = text.replace("%ServerTime%", fmt.format(new Date(System.currentTimeMillis()))); //Custom Community Board BaseBBSManager.separateAndSend(text, activeChar); } else if (command.startsWith("_bbstopics")) { String text = HtmCache.getInstance().getHtm("data/html/CommunityBoard/index.htm"); //Custom Community Board text = text.replace("%CharName%", String.valueOf(activeChar.getName())); text = text.replace("%CharClass%", String.valueOf(activeChar.getClassId().name())); text = text.replace("%CharLevel%", String.valueOf(activeChar.getLevel())); if (activeChar.isNoble()) { text = text.replace("%nobless%", "Yes"); } else { text = text.replace("%nobless%", "No"); } L2Clan clan = activeChar.getClan(); if (clan != null) { text = text.replace("%CharClan%", String.valueOf(activeChar.getClan().getName())); } else { text = text.replace("%CharClan%", "No Clan"); } text = text.replace("%CharIP%", String.valueOf(activeChar.getClient().getConnection().getInetAddress().getHostAddress())); text = text.replace("%PlayerOnline%", String.valueOf(L2World.getInstance().getAllPlayers().size()* 1)); text = text.replace("%ServerTime%", fmt.format(new Date(System.currentTimeMillis()))); //Custom Community Board BaseBBSManager.separateAndSend(text, activeChar); } else if (command.startsWith("_bbsposts")) { String text = HtmCache.getInstance().getHtm("data/html/CommunityBoard/index.htm"); //Custom Community Board text = text.replace("%CharName%", String.valueOf(activeChar.getName())); text = text.replace("%CharClass%", String.valueOf(activeChar.getClassId().name())); text = text.replace("%CharLevel%", String.valueOf(activeChar.getLevel())); if (activeChar.isNoble()) { text = text.replace("%nobless%", "Yes"); } else { text = text.replace("%nobless%", "No"); } L2Clan clan = activeChar.getClan(); if (clan != null) { text = text.replace("%CharClan%", String.valueOf(activeChar.getClan().getName())); } else { text = text.replace("%CharClan%", "No Clan"); } text = text.replace("%CharIP%", String.valueOf(activeChar.getClient().getConnection().getInetAddress().getHostAddress())); text = text.replace("%PlayerOnline%", String.valueOf(L2World.getInstance().getAllPlayers().size()* 1)); text = text.replace("%ServerTime%", fmt.format(new Date(System.currentTimeMillis()))); //Custom Community Board BaseBBSManager.separateAndSend(text, activeChar); } else if (command.startsWith("_bbstop")) { String text = HtmCache.getInstance().getHtm("data/html/CommunityBoard/index.htm"); //Custom Community Board text = text.replace("%CharName%", String.valueOf(activeChar.getName())); text = text.replace("%CharClass%", String.valueOf(activeChar.getClassId().name())); text = text.replace("%CharLevel%", String.valueOf(activeChar.getLevel())); if (activeChar.isNoble()) { text = text.replace("%nobless%", "Yes"); } else { text = text.replace("%nobless%", "No"); } L2Clan clan = activeChar.getClan(); if (clan != null) { text = text.replace("%CharClan%", String.valueOf(activeChar.getClan().getName())); } else { text = text.replace("%CharClan%", "No Clan"); } text = text.replace("%CharIP%", String.valueOf(activeChar.getClient().getConnection().getInetAddress().getHostAddress())); text = text.replace("%PlayerOnline%", String.valueOf(L2World.getInstance().getAllPlayers().size()* 1)); text = text.replace("%ServerTime%", fmt.format(new Date(System.currentTimeMillis()))); //Custom Community Board BaseBBSManager.separateAndSend(text, activeChar); } else if (command.startsWith("_bbshome")) { String text = HtmCache.getInstance().getHtm("data/html/CommunityBoard/index.htm"); //Custom Community Board text = text.replace("%CharName%", String.valueOf(activeChar.getName())); text = text.replace("%CharClass%", String.valueOf(activeChar.getClassId().name())); text = text.replace("%CharLevel%", String.valueOf(activeChar.getLevel())); if (activeChar.isNoble()) { text = text.replace("%nobless%", "Yes"); } else { text = text.replace("%nobless%", "No"); } L2Clan clan = activeChar.getClan(); if (clan != null) { text = text.replace("%CharClan%", String.valueOf(activeChar.getClan().getName())); } else { text = text.replace("%CharClan%", "No Clan"); } text = text.replace("%CharIP%", String.valueOf(activeChar.getClient().getConnection().getInetAddress().getHostAddress())); text = text.replace("%PlayerOnline%", String.valueOf(L2World.getInstance().getAllPlayers().size()* 1)); text = text.replace("%ServerTime%", fmt.format(new Date(System.currentTimeMillis()))); //Custom Community Board BaseBBSManager.separateAndSend(text, activeChar); } else if (command.startsWith("_bbsloc")) { String text = HtmCache.getInstance().getHtm("data/html/CommunityBoard/index.htm"); //Custom Community Board text = text.replace("%CharName%", String.valueOf(activeChar.getName())); text = text.replace("%CharClass%", String.valueOf(activeChar.getClassId().name())); text = text.replace("%CharLevel%", String.valueOf(activeChar.getLevel())); if (activeChar.isNoble()) { text = text.replace("%nobless%", "Yes"); } else { text = text.replace("%nobless%", "No"); } L2Clan clan = activeChar.getClan(); if (clan != null) { text = text.replace("%CharClan%", String.valueOf(activeChar.getClan().getName())); } else { text = text.replace("%CharClan%", "No Clan"); } text = text.replace("%CharIP%", String.valueOf(activeChar.getClient().getConnection().getInetAddress().getHostAddress())); text = text.replace("%PlayerOnline%", String.valueOf(L2World.getInstance().getAllPlayers().size()* 1)); text = text.replace("%ServerTime%", fmt.format(new Date(System.currentTimeMillis()))); //Custom Community Board BaseBBSManager.separateAndSend(text, activeChar); } else if (command.startsWith("_bbstele")) { TeleBBSManager.getInstance().parsecmd(command, activeChar); } else if (command.startsWith("_bbsShop")) { shopBBSManager.getInstance().parsecmd(command, activeChar); } else if(command.startsWith("_bbsmultisell;")) { StringTokenizer st = new StringTokenizer(command, ";"); st.nextToken(); shopBBSManager.getInstance().parsecmd("_bbsShop;" + st.nextToken(), activeChar); L2Multisell.getInstance().SeparateAndSend(Integer.parseInt(st.nextToken()), activeChar, false, 0); } else { ShowBoard sb = new ShowBoard("<html><body><br><br><center>the command: " + command + " is not implemented yet</center><br><br></body></html>", "101"); activeChar.sendPacket(sb); sb = null; activeChar.sendPacket(new ShowBoard(null, "102")); activeChar.sendPacket(new ShowBoard(null, "103")); } } } else if (Config.COMMUNITY_TYPE.equals("old")) { RegionBBSManager.getInstance().parsecmd(command, activeChar); } else { activeChar.sendPacket(new SystemMessage(SystemMessageId.CB_OFFLINE)); } activeChar = null; } /** * @param client * @param url * @param arg1 * @param arg2 * @param arg3 * @param arg4 * @param arg5 */ public void handleWriteCommands(final L2GameClient client, final String url, final String arg1, final String arg2, final String arg3, final String arg4, final String arg5) { L2PcInstance activeChar = client.getActiveChar(); if (activeChar == null) return; if (Config.COMMUNITY_TYPE.equals("full")) { if (url.equals("Topic")) { TopicBBSManager.getInstance().parsewrite(arg1, arg2, arg3, arg4, arg5, activeChar); } else if (url.equals("Post")) { PostBBSManager.getInstance().parsewrite(arg1, arg2, arg3, arg4, arg5, activeChar); } else if (url.equals("Region")) { RegionBBSManager.getInstance().parsewrite(arg1, arg2, arg3, arg4, arg5, activeChar); } else if (url.equals("Notice")) { ClanBBSManager.getInstance().parsewrite(arg1, arg2, arg3, arg4, arg5, activeChar); } else { ShowBoard sb = new ShowBoard("<html><body><br><br><center>the command: " + url + " is not implemented yet</center><br><br></body></html>", "101"); activeChar.sendPacket(sb); sb = null; activeChar.sendPacket(new ShowBoard(null, "102")); activeChar.sendPacket(new ShowBoard(null, "103")); } } else if (Config.COMMUNITY_TYPE.equals("old")) { RegionBBSManager.getInstance().parsewrite(arg1, arg2, arg3, arg4, arg5, activeChar); } else { ShowBoard sb = new ShowBoard("<html><body><br><br><center>The Community board is currently disable</center><br><br></body></html>", "101"); activeChar.sendPacket(sb); sb = null; activeChar.sendPacket(new ShowBoard(null, "102")); activeChar.sendPacket(new ShowBoard(null, "103")); } activeChar = null; } } And making it work in another l2jOrion project: package l2jorion.game.community; import java.util.HashMap; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import l2jorion.Config; import l2jorion.game.community.manager.BaseBBSManager; import l2jorion.game.community.manager.ClanBBSManager; import l2jorion.game.community.manager.FavoriteBBSManager; import l2jorion.game.community.manager.FriendsBBSManager; import l2jorion.game.community.manager.MailBBSManager; import l2jorion.game.community.manager.PostBBSManager; import l2jorion.game.community.manager.RankBBSManager; import l2jorion.game.community.manager.RegionBBSManager; import l2jorion.game.community.manager.TopBBSManager; import l2jorion.game.community.manager.TopicBBSManager; import l2jorion.game.handler.ICommunityBoardHandler; import l2jorion.game.model.actor.instance.L2PcInstance; import l2jorion.game.network.L2GameClient; import l2jorion.game.network.SystemMessageId; import l2jorion.logger.Logger; import l2jorion.logger.LoggerFactory; public class CommunityBoardManager { protected static Logger LOG = LoggerFactory.getLogger(CommunityBoardManager.class); private Map<String, ICommunityBoardHandler> _handlers = new HashMap<>(); private final Map<Integer, String> _bypasses = new ConcurrentHashMap<>(); private static CommunityBoardManager _instance; public static CommunityBoardManager getInstance() { if (_instance == null) { _instance = new CommunityBoardManager(); } return _instance; } private CommunityBoardManager() { registerBBSHandler(new TopBBSManager()); registerBBSHandler(new FavoriteBBSManager()); registerBBSHandler(new RegionBBSManager()); registerBBSHandler(new ClanBBSManager()); registerBBSHandler(new TopicBBSManager()); registerBBSHandler(new MailBBSManager()); registerBBSHandler(new FriendsBBSManager()); registerBBSHandler(new TopicBBSManager()); registerBBSHandler(new PostBBSManager()); registerBBSHandler(new RankBBSManager()); LOG.info("CommunityBoardHandlers: Loaded " + _handlers.size() + " handlers"); } public void registerBBSHandler(ICommunityBoardHandler handler) { for (String bypass : handler.getBypassBbsCommands()) { if (_handlers.containsKey(bypass)) { continue; } _handlers.put(bypass, handler); } } public void onBypassCommand(L2GameClient client, String command) { final L2PcInstance player = client.getActiveChar(); if (player == null) { return; } if (Config.COMMUNITY_TYPE.equals("off")) { player.sendPacket(SystemMessageId.CB_OFFLINE); return; } /* * if (!AutoImageSenderManager.wereAllImagesSent(player)) { player.sendMessage("Community wasn't loaded yet, try again in few seconds."); player.sendPacket(new ExShowScreenMessage("Community wasn't loaded yet, try again in few seconds.", 2000, 2, false)); return; } */ String cmd = command.substring(4); String params = ""; final int iPos = cmd.indexOf(" "); if (iPos != -1) { params = cmd.substring(iPos + 1); cmd = cmd.substring(0, iPos); } ICommunityBoardHandler bypass = _handlers.get(cmd); if (bypass != null) { bypass.handleCommand(cmd, player, params); } else { if (command.startsWith("_bbshome")) { TopBBSManager.getInstance().parseCmd(command, player); } else if (command.startsWith("_bbsgetfav") || command.startsWith("bbs_add_fav") || command.startsWith("_bbsdelfav_")) { FavoriteBBSManager.getInstance().parseCmd(command, player); } else if (command.startsWith("_bbsloc")) { RegionBBSManager.getInstance().parseCmd(command, player); } else if (command.startsWith("_bbsclan")) { ClanBBSManager.getInstance().parseCmd(command, player); } else if (command.startsWith("_bbsmemo")) { TopicBBSManager.getInstance().parseCmd(command, player); } else if (command.startsWith("_bbsmail") || command.equals("_maillist_0_1_0_")) { MailBBSManager.getInstance().parseCmd(command, player); } else if (command.startsWith("_friend") || command.startsWith("_block")) { FriendsBBSManager.getInstance().parseCmd(command, player); } else if (command.startsWith("_bbstopics")) { TopicBBSManager.getInstance().parseCmd(command, player); } else if (command.startsWith("_bbsposts")) { PostBBSManager.getInstance().parseCmd(command, player); } else if (command.startsWith("_bbsshowrank")) { RankBBSManager.getInstance().parseCmd(command, player); } else { BaseBBSManager.separateAndSend("<html><body><br><br><center>The command: " + command + " isn't implemented.</center></body></html>", player); } } } public void handleWriteCommands(L2GameClient client, String url, String arg1, String arg2, String arg3, String arg4, String arg5) { final L2PcInstance player = client.getActiveChar(); if (player == null) { return; } if (Config.COMMUNITY_TYPE.equals("off")) { player.sendPacket(SystemMessageId.CB_OFFLINE); return; } if (url.equals("Topic")) { TopicBBSManager.getInstance().parseWrite(arg1, arg2, arg3, arg4, arg5, player); } else if (url.equals("Post")) { PostBBSManager.getInstance().parseWrite(arg1, arg2, arg3, arg4, arg5, player); } else if (url.equals("_bbsloc")) { RegionBBSManager.getInstance().parseWrite(arg1, arg2, arg3, arg4, arg5, player); } else if (url.equals("_bbsclan")) { ClanBBSManager.getInstance().parseWrite(arg1, arg2, arg3, arg4, arg5, player); } else if (url.equals("Mail")) { MailBBSManager.getInstance().parseWrite(arg1, arg2, arg3, arg4, arg5, player); } else if (url.equals("Clan")) { ClanBBSManager.getInstance().parseWrite(arg1, arg2, arg3, arg4, arg5, player); } else if (url.equals("_friend")) { FriendsBBSManager.getInstance().parseWrite(arg1, arg2, arg3, arg4, arg5, player); } else { BaseBBSManager.separateAndSend("<html><body><br><br><center>The command: " + url + " isn't implemented.</center></body></html>", player); } } public ICommunityBoardHandler getCommunityHandler(String bypass) { if (_handlers.isEmpty()) { return null; } for (Map.Entry<String, ICommunityBoardHandler> entry : _handlers.entrySet()) { if (bypass.contains(entry.getKey())) { return entry.getValue(); } } return null; } public void addBypass(L2PcInstance player, String title, String bypass) { _bypasses.put(player.getObjectId(), title + "&" + bypass); } public String removeBypass(L2PcInstance player) { return _bypasses.remove(player.getObjectId()); } public Map<Integer, String> getAllBypass() { return _bypasses; } }
-
-
Topics
Question
addx20
Hello! The only problem that i am facing is the bold line i cant find the SetVar! Need to adapt it for Acis 398.If anyone can help! Thanks
private void rewardPlayers()
{
// First Add Fixed Reward
for (Player player : players)
{
PlayerMemo.setVar(player, "dungeon_atleast1time", "true", -1);
for (Entry<Integer, Integer> itemId : template.getRewards().entrySet())
{
player.addItem("dungeon reward", itemId.getKey(), itemId.getValue(), null, true);
}
}
if (!template.getRewardHtm().equals("NULL"))
{
NpcHtmlMessage htm = new NpcHtmlMessage(0);
htm.setFile(template.getRewardHtm());
for (Player player : players)
player.sendPacket(htm);
}
else
{
for (Player player : players)
{
player.setInstance(InstanceManager.getInstance().getInstance(0), true);
player.teleportTo(82635, 148798, -3464, 25);
}
}
}
===================================================================================================================================
Here is PlayerMemo
package net.sf.l2j.gameserver.model.memo;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import net.sf.l2j.commons.data.MemoSet;
import net.sf.l2j.commons.logging.CLogger;
import net.sf.l2j.commons.pool.ConnectionPool;
/**
Edited by addx20* An implementation of {@link MemoSet} used for Player. There is a restore/save system.
*/
public class PlayerMemo extends MemoSet
{
private static final long serialVersionUID = 1L;
private static final CLogger LOGGER = new CLogger(PlayerMemo.class.getName());
private static final String SELECT_MEMOS = "SELECT * FROM character_memo WHERE charId = ?";
private static final String DELETE_MEMO = "DELETE FROM character_memo WHERE charId = ? AND var = ?";
private static final String INSERT_OR_UPDATE_MEMO = "INSERT INTO character_memo (charId, var, val) VALUES (?, ?, ?) ON DUPLICATE KEY UPDATE val = VALUES(val)";
private final int _objectId;
public PlayerMemo(int objectId)
{
_objectId = objectId;
// Restore memos.
try (Connection con = ConnectionPool.getConnection();
PreparedStatement ps = con.prepareStatement(SELECT_MEMOS))
{
ps.setInt(1, _objectId);
try (ResultSet rs = ps.executeQuery())
{
while (rs.next())
put(rs.getString("var"), rs.getString("val"));
}
}
catch (Exception e)
{
LOGGER.error("Couldn't restore memos for player id {}.", e, _objectId);
}
}
@Override
protected void onSet(String key, String value)
{
// Insert memo, on duplicate update it.
try (Connection con = ConnectionPool.getConnection();
PreparedStatement ps = con.prepareStatement(INSERT_OR_UPDATE_MEMO))
{
ps.setInt(1, _objectId);
ps.setString(2, key);
ps.setString(3, value);
ps.execute();
}
catch (Exception e)
{
LOGGER.error("Couldn't set {} memo for player id {}.", e, key, _objectId);
}
}
@Override
protected void onUnset(String key)
{
// Clear memo.
try (Connection con = ConnectionPool.getConnection();
PreparedStatement ps = con.prepareStatement(DELETE_MEMO))
{
ps.setInt(1, _objectId);
ps.setString(2, key);
ps.execute();
}
catch (Exception e)
{
LOGGER.error("Couldn't unset {} memo for player id {}.", e, key, _objectId);
}
}
}
3 answers to this question
Recommended Posts