Перейти к содержанию
Авторизация  
BANNER

Не запускается гейм сервер,помогите!

Рекомендуемые сообщения

Вот что пишет

23:48:22] ERROR C:\Server\gameserver\data\scripts\services\community\RegionComm
unity.java:149,15: The method replace(char, char) in the type java.lang.String i
s not applicable for the arguments (java.lang.String, java.lang.String)
[23:48:22] ERROR C:\Server\gameserver\data\scripts\services\community\RegionComm
unity.java:155,16: The method replace(char, char) in the type java.lang.String i
s not applicable for the arguments (java.lang.String, java.lang.String)
[23:48:22] ERROR C:\Server\gameserver\data\scripts\services\community\RegionComm
unity.java:156,53: The method replace(char, char) in the type java.lang.String i
s not applicable for the arguments (java.lang.String, java.lang.String)
[23:48:22] ERROR C:\Server\gameserver\data\scripts\services\community\RegionComm
unity.java:179,17: The method replace(char, char) in the type java.lang.String i
s not applicable for the arguments (java.lang.String, java.lang.String)
[23:48:22] ERROR C:\Server\gameserver\data\scripts\services\community\RegionComm
unity.java:180,17: The method replace(char, char) in the type java.lang.String i
s not applicable for the arguments (java.lang.String, java.lang.String)
[23:48:22] ERROR C:\Server\gameserver\data\scripts\services\community\RegionComm
unity.java:181,17: The method replace(char, char) in the type java.lang.String i
s not applicable for the arguments (java.lang.String, java.lang.String)
[23:48:22] ERROR C:\Server\gameserver\data\scripts\services\community\RegionComm
unity.java:185,17: The method replace(char, char) in the type java.lang.String i
s not applicable for the arguments (java.lang.String, java.lang.String)
[23:48:22] ERROR C:\Server\gameserver\data\scripts\services\community\RegionComm
unity.java:186,17: The method replace(char, char) in the type java.lang.String i
s not applicable for the arguments (java.lang.String, java.lang.String)
[23:48:22] ERROR C:\Server\gameserver\data\scripts\services\community\RegionComm
unity.java:191,17: The method replace(char, char) in the type java.lang.String i
s not applicable for the arguments (java.lang.String, java.lang.String)
[23:48:22] ERROR C:\Server\gameserver\data\scripts\services\community\RegionComm
unity.java:200,17: The method replace(char, char) in the type java.lang.String i
s not applicable for the arguments (java.lang.String, java.lang.String)
[23:48:22] ERROR C:\Server\gameserver\data\scripts\services\community\RegionComm
unity.java:206,17: The method replace(char, char) in the type java.lang.String i
s not applicable for the arguments (java.lang.String, java.lang.String)
[23:48:22] ERROR C:\Server\gameserver\data\scripts\services\community\RegionComm
unity.java:210,17: The method replace(char, char) in the type java.lang.String i
s not applicable for the arguments (java.lang.String, java.lang.String)
[23:48:22] ERROR C:\Server\gameserver\data\scripts\services\community\RegionComm
unity.java:211,17: The method replace(char, char) in the type java.lang.String i
s not applicable for the arguments (java.lang.String, java.lang.String)
[23:48:22] ERROR C:\Server\gameserver\data\scripts\services\community\RegionComm
unity.java:227,17: The method replace(char, char) in the type java.lang.String i
s not applicable for the arguments (java.lang.String, java.lang.String)
[23:48:22] ERROR C:\Server\gameserver\data\scripts\services\community\RegionComm
unity.java:228,17: The method replace(char, char) in the type java.lang.String i
s not applicable for the arguments (java.lang.String, java.lang.String)
[23:48:22] ERROR C:\Server\gameserver\data\scripts\services\community\RegionComm
unity.java:237,19: The method replace(char, char) in the type java.lang.String i
s not applicable for the arguments (java.lang.String, java.lang.String)
[23:48:22] ERROR C:\Server\gameserver\data\scripts\services\community\RegionComm
unity.java:238,19: The method replace(char, char) in the type java.lang.String i
s not applicable for the arguments (java.lang.String, java.lang.String)
[23:48:22] ERROR C:\Server\gameserver\data\scripts\services\community\RegionComm
unity.java:239,19: The method replace(char, char) in the type java.lang.String i
s not applicable for the arguments (java.lang.String, java.lang.String)
[23:48:22] ERROR C:\Server\gameserver\data\scripts\services\community\RegionComm
unity.java:240,19: The method replace(char, char) in the type java.lang.String i
s not applicable for the arguments (java.lang.String, java.lang.String)
[23:48:22] ERROR C:\Server\gameserver\data\scripts\services\community\RegionComm
unity.java:245,17: The method replace(char, char) in the type java.lang.String i
s not applicable for the arguments (java.lang.String, java.lang.String)
[23:48:22] ERROR C:\Server\gameserver\data\scripts\services\community\RegionComm
unity.java:250,16: The method replace(char, char) in the type java.lang.String i
s not applicable for the arguments (java.lang.String, java.lang.String)
[23:48:22] ERROR C:\Server\gameserver\data\scripts\services\community\RegionComm
unity.java:251,16: The method replace(char, char) in the type java.lang.String i
s not applicable for the arguments (java.lang.String, java.lang.String)
[23:48:22] ERROR C:\Server\gameserver\data\scripts\services\community\RegionComm
unity.java:252,16: The method replace(char, char) in the type java.lang.String i
s not applicable for the arguments (java.lang.String, java.lang.String)
[23:48:22] ERROR C:\Server\gameserver\data\scripts\services\community\RegionComm
unity.java:298,25: The method replace(char, char) in the type java.lang.String i
s not applicable for the arguments (java.lang.String, java.lang.String)
[23:48:22] ERROR C:\Server\gameserver\data\scripts\services\community\RegionComm
unity.java:299,19: The method replace(char, char) in the type java.lang.String i
s not applicable for the arguments (java.lang.String, java.lang.String)
[23:48:22] ERROR C:\Server\gameserver\data\scripts\services\community\RegionComm
unity.java:300,19: The method replace(char, char) in the type java.lang.String i
s not applicable for the arguments (java.lang.String, java.lang.String)
[23:48:22] ERROR C:\Server\gameserver\data\scripts\services\community\RegionComm
unity.java:301,86: The method replace(char, char) in the type java.lang.String i
s not applicable for the arguments (java.lang.String, java.lang.String)
[23:48:22] ERROR C:\Server\gameserver\data\scripts\services\community\RegionComm
unity.java:338,19: The method replace(char, char) in the type java.lang.String i
s not applicable for the arguments (java.lang.String, java.lang.String)
[23:48:22] ERROR C:\Server\gameserver\data\scripts\services\community\RegionComm
unity.java:366,24: The method replace(char, char) in the type java.lang.String i
s not applicable for the arguments (java.lang.String, java.lang.String)
[23:48:22] ERROR C:\Server\gameserver\data\scripts\services\community\RegionComm
unity.java:367,18: The method replace(char, char) in the type java.lang.String i
s not applicable for the arguments (java.lang.String, java.lang.String)
[23:48:22] ERROR C:\Server\gameserver\data\scripts\services\community\RegionComm
unity.java:368,18: The method replace(char, char) in the type java.lang.String i
s not applicable for the arguments (java.lang.String, java.lang.String)
[23:48:22] ERROR C:\Server\gameserver\data\scripts\services\community\RegionComm
unity.java:369,78: The method replace(char, char) in the type java.lang.String i
s not applicable for the arguments (java.lang.String, java.lang.String)
[23:48:22] ERROR C:\Server\gameserver\data\scripts\services\community\RegionComm
unity.java:380,18: The method replace(char, char) in the type java.lang.String i
s not applicable for the arguments (java.lang.String, java.lang.String)
[23:48:22] ERROR C:\Server\gameserver\data\scripts\services\community\RegionComm
unity.java:387,16: The method replace(char, char) in the type java.lang.String i
s not applic..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
package services.community;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.StringTokenizer;

import l2r.gameserver.Config;
import l2r.gameserver.data.htm.HtmCache;
import l2r.gameserver.data.xml.holder.ItemHolder;
import l2r.gameserver.data.xml.holder.RecipeHolder;
import l2r.gameserver.handler.bbs.CommunityBoardManager;
import l2r.gameserver.handler.bbs.ICommunityBoardHandler;
import l2r.gameserver.model.GameObjectsStorage;
import l2r.gameserver.model.Player;
import l2r.gameserver.model.Recipe;
import l2r.gameserver.model.World;
import l2r.gameserver.model.items.ManufactureItem;
import l2r.gameserver.model.items.TradeItem;
import l2r.gameserver.network.serverpackets.RadarControl;
import l2r.gameserver.network.serverpackets.ShowBoard;
import l2r.gameserver.scripts.ScriptFile;
import l2r.gameserver.templates.item.ItemTemplate;
import l2r.gameserver.utils.HtmlUtils;
import l2r.gameserver.utils.MapUtils;
import l2r.gameserver.utils.Util;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class RegionCommunity implements ScriptFile, ICommunityBoardHandler
{
    private static final Logger _log = LoggerFactory.getLogger(RegionCommunity.class);
    private static final int[][] _towns = new int[][] { {1010005, 19, 21}, {1010006, 20, 22}, {1010007, 22, 22}, {1010013, 22, 19}, {1010023, 24, 18}, {1010049, 23, 24}, {1010199, 24, 16}, {1010200, 21, 16}, {1010574, 22, 13}};
    private static final String[] _regionTypes = { "&$596;", "&$597;", "&$665;" };
    private static final String[] _elements = { "&$1622;", "&$1623;", "&$1624;", "&$1625;", "&$1626;", "&$1627;" };
    private static final String[] _grade = { "&$1291;", "&$1292;", "&$1293;", "&$1294;", "&$1295;", "S80 Grade", "S84 Grade" };
    private static final int SELLER_PER_PAGE = 12;

    @Override
    public void onLoad()
    {
        if(Config.COMMUNITYBOARD_ENABLED)
        {
            _log.info("CommunityBoard: Region service loaded.");
            CommunityBoardManager.getInstance().registerHandler(this);
        }
    }

    @Override
    public void onReload()
    {
        if(Config.COMMUNITYBOARD_ENABLED)
            CommunityBoardManager.getInstance().removeHandler(this);
    }

    @Override
    public void onShutdown()
    {}

    @Override
    public String[] getBypassCommands()
    {
        return new String[] { "_bbsloc", "_bbsregion_", "_bbsreglist_", "_bbsregsearch", "_bbsregview_", "_bbsregtarget_" };
    }

    @Override
    public void onBypassCommand(Player player, String bypass)
    {
        StringTokenizer st = new StringTokenizer(bypass, "_");
        String cmd = st.nextToken();
        player.setSessionVar("add_fav", null);
        if("bbsloc".equals(cmd))
        {
            String tpl = HtmCache.getInstance().getNotNull(Config.BBS_HOME_DIR + "bbs_regiontpl.htm", player);
            StringBuilder rl = new StringBuilder("");

            for(int townId = 0; townId < _towns.length; townId++)
            {
                int[] town = _towns[townId];

                String reg = tpl.replace("%region_bypass%", "_bbsregion_" + String.valueOf(townId));
                reg = reg.replace("%region_name%", HtmlUtils.htmlNpcString(town[0]));
                reg = reg.replace("%region_desc%", "&$498;: &$1157;, &$1434;, &$645;.");
                reg = reg.replace("%region_type%", "l2ui.bbs_folder");
                int sellers = 0;

                int rx = town[1];
                int ry = town[2];
                int offset = 0;

                for(Player seller : GameObjectsStorage.getAllPlayersForIterate())
                {
                    int tx = MapUtils.regionX(seller);
                    int ty = MapUtils.regionY(seller);

                    if(tx >= rx - offset && tx <= rx + offset && ty >= ry - offset && ty <= ry + offset)
                        if(seller.getPrivateStoreType() > 0 && seller.getPrivateStoreType() != Player.STORE_OBSERVING_GAMES)
                            sellers++;
                }
                reg = reg.replace("%sellers_count%", String.valueOf(sellers));
                rl.append(reg);
            }
            HashMap<Integer, String> tpls = Util.parseTemplate(HtmCache.getInstance().getNotNull(Config.BBS_HOME_DIR + "bbs_region_list.htm", player));
            String html = tpls.get(0);
            html = html.replace("%REGION_LIST%", rl.toString());
            html = html.replace("<?tree_menu?>", tpls.get(1));

            ShowBoard.separateAndSend(html, player);
        }
        else if("bbsregion".equals(cmd))
        {
            String tpl = HtmCache.getInstance().getNotNull(Config.BBS_HOME_DIR + "bbs_regiontpl.htm", player);
            int townId = Integer.parseInt(st.nextToken());
            StringBuilder rl = new StringBuilder("");
            int[] town = _towns[townId];
            player.setSessionVar("add_fav", bypass + "&Region " + townId);

            for(int type = 0; type < _regionTypes.length; type++)
            {
                String reg = tpl.replace("%region_bypass%", "_bbsreglist_" + townId + "_" + type + "_1_0_");
                reg = reg.replace("%region_name%", _regionTypes[type]);
                reg = reg.replace("%region_desc%", _regionTypes[type] + ".");
                reg = reg.replace("%region_type%", "l2ui.bbs_board");
                int sellers = 0;

                int rx = town[1];
                int ry = town[2];
                int offset = 0;

                for(Player seller : GameObjectsStorage.getAllPlayersForIterate())
                {
                    int tx = MapUtils.regionX(seller);
                    int ty = MapUtils.regionY(seller);

                    if(tx >= rx - offset && tx <= rx + offset && ty >= ry - offset && ty <= ry + offset)
                    {
                        if(type == 0 && (seller.getPrivateStoreType() == Player.STORE_PRIVATE_SELL || seller.getPrivateStoreType() == Player.STORE_PRIVATE_SELL_PACKAGE))
                            sellers++;
                        else if(type == 1 && seller.getPrivateStoreType() == Player.STORE_PRIVATE_BUY)
                            sellers++;
                        else if(type == 2 && seller.getPrivateStoreType() == Player.STORE_PRIVATE_MANUFACTURE)
                            sellers++;
                    }
                }

                reg = reg.replace("%sellers_count%", String.valueOf(sellers));
                rl.append(reg);
            }

            HashMap<Integer, String> tpls = Util.parseTemplate(HtmCache.getInstance().getNotNull(Config.BBS_HOME_DIR + "bbs_region_list.htm", player));
            String html = tpls.get(0);
            html = html.replace("%REGION_LIST%", rl.toString());
            html = html.replace("<?tree_menu?>", tpls.get(2).replace("%TREE%", " > " + HtmlUtils.htmlNpcString(town[0])));

            ShowBoard.separateAndSend(html, player);
        }
        else if("bbsreglist".equals(cmd))
        {
            int townId = Integer.parseInt(st.nextToken());
            int type = Integer.parseInt(st.nextToken());
            int page = Integer.parseInt(st.nextToken());
            int byItem = Integer.parseInt(st.nextToken());
            String search = st.hasMoreTokens() ? st.nextToken().toLowerCase() : "";
            int[] town = _towns[townId];
            player.setSessionVar("add_fav", bypass + "&Region " + townId + " " + _regionTypes[type]);

            List<Player> sellers = getSellersList(townId, type, search, byItem == 1);

            int start = (page - 1) * SELLER_PER_PAGE;
            int end = Math.min(page * SELLER_PER_PAGE, sellers.size());

            String html = HtmCache.getInstance().getNotNull(Config.BBS_HOME_DIR + "bbs_region_sellers.htm", player);

            if(page == 1)
            {
                html = html.replace("%ACTION_GO_LEFT%", "");
                html = html.replace("%GO_LIST%", "");
                html = html.replace("%NPAGE%", "1");
            }
            else
            {
                html = html.replace("%ACTION_GO_LEFT%", "bypass _bbsreglist_" + townId + "_" + type + "_" + (page - 1) + "_" + byItem + "_" + search);
                html = html.replace("%NPAGE%", String.valueOf(page));
                StringBuilder goList = new StringBuilder("");
                for(int i = page > 10 ? page - 10 : 1; i < page; i++)
                    goList.append("<td><a action=\"bypass _bbsreglist_").append(townId).append("_").append(type).append("_").append(i).append("_").append(byItem).append("_").append(search).append("\"> ").append(i).append(" </a> </td>\n\n");

                html = html.replace("%GO_LIST%", goList.toString());
            }

            int pages = Math.max(sellers.size() / SELLER_PER_PAGE, 1);
            if(sellers.size() > pages * SELLER_PER_PAGE)
                pages++;

            if(pages > page)
            {
                html = html.replace("%ACTION_GO_RIGHT%", "bypass _bbsreglist_" + townId + "_" + type + "_" + (page + 1) + "_" + byItem + "_" + search);
                int ep = Math.min(page + 10, pages);
                StringBuilder goList = new StringBuilder("");
                for(int i = page + 1; i <= ep; i++)
                    goList.append("<td><a action=\"bypass _bbsreglist_").append(townId).append("_").append(type).append("_").append(i).append("_").append(byItem).append("_").append(search).append("\"> ").append(i).append(" </a> </td>\n\n");

                html = html.replace("%GO_LIST2%", goList.toString());
            }
            else
            {
                html = html.replace("%ACTION_GO_RIGHT%", "");
                html = html.replace("%GO_LIST2%", "");
            }

            StringBuilder seller_list = new StringBuilder("");
            String tpl = HtmCache.getInstance().getNotNull(Config.BBS_HOME_DIR + "bbs_region_stpl.htm", player);

            for(int i = start; i < end; i++)
            {
                Player seller = sellers.get(i);
                List<TradeItem> tl = seller.getTradeList();
                List<ManufactureItem> cl = seller.getCreateList();

                if(tl == null && cl == null)
                    continue;

                String stpl = tpl;
                stpl = stpl.replace("%view_bypass%", "bypass _bbsregview_" + townId + "_" + type + "_" + page + "_" + seller.getObjectId() + "_" + byItem + "_" + search);
                stpl = stpl.replace("%seller_name%", seller.getName());
                String title = "-";
                if(type == 0)
                    title = tl != null && seller.getSellStoreName() != null && !seller.getSellStoreName().isEmpty() ? seller.getSellStoreName() : "-";
                else if(type == 1)
                    title = tl != null && seller.getBuyStoreName() != null && !seller.getBuyStoreName().isEmpty() ? seller.getBuyStoreName() : "-";
                else if(type == 2 && seller.getPrivateStoreType() == Player.STORE_PRIVATE_MANUFACTURE)
                    title = cl != null && seller.getManufactureName() != null && !seller.getManufactureName().isEmpty() ? seller.getManufactureName() : "-";

                title = title.replace("<", "");
                title = title.replace(">", "");
                title = title.replace("&", "");
                title = title.replace("$", "");

                if(title.isEmpty())
                    title = "-";

                stpl = stpl.replace("%seller_title%", title);

                seller_list.append(stpl);
            }

            html = html.replace("%SELLER_LIST%", seller_list.toString());
            html = html.replace("%search_bypass%", "_bbsregsearch_" + townId + "_" + type);
            html = html.replace("%TREE%", " > <a action=\"bypass _bbsregion_" + townId + "\">" + HtmlUtils.htmlNpcString(town[0]) + "</a> > " + _regionTypes[type]);

            ShowBoard.separateAndSend(html, player);
        }
        else if("bbsregview".equals(cmd))
        {
            int townId = Integer.parseInt(st.nextToken());
            int type = Integer.parseInt(st.nextToken());
            int page = Integer.parseInt(st.nextToken());
            int objectId = Integer.parseInt(st.nextToken());
            int byItem = Integer.parseInt(st.nextToken());
            String search = st.hasMoreTokens() ? st.nextToken().toLowerCase() : "";
            int[] town = _towns[townId];

            Player seller = World.getPlayer(objectId);
            if(seller == null || seller.getPrivateStoreType() == 0)
            {
                onBypassCommand(player, "_bbsreglist_" + townId + "_" + type + "_" + page + "_" + byItem + "_" + search);
                return;
            }

            String title = "-";
            String tpl = HtmCache.getInstance().getNotNull(Config.BBS_HOME_DIR + "bbs_region_storetpl.htm", player);
            StringBuilder sb = new StringBuilder("");

            if(type < 2)
            {
                List<TradeItem> sl = type == 0 ? seller.getSellList() : seller.getBuyList();
                List<TradeItem> tl = seller.getTradeList();

                if(sl == null || sl.isEmpty() || tl == null)
                {
                    onBypassCommand(player, "_bbsreglist_" + townId + "_" + type + "_" + page + "_" + byItem + "_" + search);
                    return;
                }

                if(type == 0 && seller.getSellStoreName() != null && !seller.getSellStoreName().isEmpty())
                    title = seller.getSellStoreName();
                else if(type == 1 && seller.getBuyStoreName() != null && !seller.getBuyStoreName().isEmpty())
                    title = seller.getBuyStoreName();

                for(TradeItem ti : sl)
                {
                    ItemTemplate item = ItemHolder.getInstance().getTemplate(ti.getItemId());
                    if(item != null)
                    {
                        String stpl = tpl.replace("%item_name%", item.getName() + (item.isEquipment() && ti.getEnchantLevel() > 0 ? " +" + ti.getEnchantLevel() : ""));
                        stpl = stpl.replace("%item_img%", item.getIcon());
                        stpl = stpl.replace("%item_count%", String.valueOf(ti.getCount()));
                        stpl = stpl.replace("%item_price%", String.format("%,3d", ti.getOwnersPrice()).replace(" ", ","));

                        String desc = "";
                        if(item.getCrystalType() != ItemTemplate.Grade.NONE)
                        {
                            desc = _grade[item.getCrystalType().ordinal() - 1];
                            desc += item.getCrystalCount() > 0 ? (player.isLangRus() ? " Кристаллов: " : " Crystals: ") + item.getCrystalCount() + "; " : "; ";
                        }

                        if(item.isEquipment())
                            if(ti.getAttackElement() >= 0 && ti.getAttackElementValue() > 0)
                                desc += "&$1620;: " + _elements[ti.getAttackElement()] + " +" + ti.getAttackElementValue();
                            else if(ti.getDefenceFire() > 0 || ti.getDefenceWater() > 0 || ti.getDefenceWind() > 0 || ti.getDefenceEarth() > 0 || ti.getDefenceHoly() > 0 || ti.getDefenceUnholy() > 0)
                            {
                                desc += "&$1651;:";
                                if(ti.getDefenceFire() > 0)
                                    desc += " &$1622; +" + ti.getDefenceFire() + "; ";
                                if(ti.getDefenceWater() > 0)
                                    desc += " &$1623; +" + ti.getDefenceWater() + "; ";
                                if(ti.getDefenceWind() > 0)
                                    desc += " &$1624; +" + ti.getDefenceWind() + "; ";
                                if(ti.getDefenceEarth() > 0)
                                    desc += " &$1625; +" + ti.getDefenceEarth() + "; ";
                                if(ti.getDefenceHoly() > 0)
                                    desc += " &$1626; +" + ti.getDefenceHoly() + "; ";
                                if(ti.getDefenceUnholy() > 0)
                                    desc += " &$1627; +" + ti.getDefenceUnholy() + "; ";
                            }
                        if(item.isStackable())
                            desc += player.isLangRus() ? "Стыкуемый; " : "Stackable; ";
                        if(item.isSealedItem())
                            desc += player.isLangRus() ? "Запечатанный; " : "Sealed; ";
                        if(item.isShadowItem())
                            desc += player.isLangRus() ? "Теневой предмет; " : "Shadow item; ";
                        if(item.isTemporal())
                            desc += player.isLangRus() ? "Временный; " : "Temporal; ";

                        stpl = stpl.replace("%item_desc%", desc);
                        sb.append(stpl);
                    }
                }
            }
            else
            {
                List<ManufactureItem> cl = seller.getCreateList();
                if(cl == null)
                {
                    onBypassCommand(player, "_bbsreglist_" + townId + "_" + type + "_" + page + "_" + byItem + "_" + search);
                    return;
                }

                if((title = seller.getManufactureName()) == null)
                    title = "-";

                for(ManufactureItem mi : cl)
                {
                    Recipe rec = RecipeHolder.getInstance().getRecipeByRecipeId(mi.getRecipeId() - 1);
                    if(rec == null)
                        continue;

                    ItemTemplate item = ItemHolder.getInstance().getTemplate(rec.getItemId());

                    if(item == null)
                        continue;

                    String stpl = tpl.replace("%item_name%", item.getName());
                    stpl = stpl.replace("%item_img%", item.getIcon());
                    stpl = stpl.replace("%item_count%", "N/A");
                    stpl = stpl.replace("%item_price%", String.format("%,3d", mi.getCost()).replace(" ", ","));

                    String desc = "";
                    if(item.getCrystalType() != ItemTemplate.Grade.NONE)
                        desc = _grade[item.getCrystalType().ordinal() - 1] + (item.getCrystalCount() > 0 ? (player.isLangRus() ? " Кристаллов: " : " Crystals: ") + item.getCrystalCount() + "; " : "; ");

                    if(item.isStackable())
                        desc = player.isLangRus() ? "Стыкуемый; " : "Stackable; ";
                    if(item.isSealedItem())
                        desc += player.isLangRus() ? "Запечатанный; " : "Sealed; ";

                    stpl = stpl.replace("%item_desc%", desc);
                    sb.append(stpl);
                }
            }

            String html = HtmCache.getInstance().getNotNull(Config.BBS_HOME_DIR + "bbs_region_view.htm", player);

            html = html.replace("%sell_type%", _regionTypes[type]);

            title = title.replace("<", "");
            title = title.replace(">", "");
            title = title.replace("&", "");
            title = title.replace("$", "");
            if(title.isEmpty())
                title = "-";
            html = html.replace("%title%", title);
            html = html.replace("%char_name%", seller.getName());
            html = html.replace("%object_id%", String.valueOf(seller.getObjectId()));
            html = html.replace("%STORE_LIST%", sb.toString());
            html = html.replace("%list_bypass%", "_bbsreglist_" + townId + "_" + type + "_" + page + "_" + byItem + "_" + search);
            html = html.replace("%TREE%", " > <a action=\"bypass _bbsregion_" + townId + "\">" + HtmlUtils.htmlNpcString(town[0]) + "</a> > <a action=\"bypass _bbsreglist_" + townId + "_" + type + "_" + page + "_" + byItem + "_\">" + _regionTypes[type] + "</a> > " + seller.getName());

            ShowBoard.separateAndSend(html, player);
        }
        else if("bbsregtarget".equals(cmd))
        {
            int objectId = Integer.parseInt(st.nextToken());
            Player seller = World.getPlayer(objectId);
            if(seller != null)
            {
                player.sendPacket(new RadarControl(0, 2, seller.getLoc()));
                if(player.knowsObject(seller))
                {
                    player.setObjectTarget(seller);
                    seller.broadcastRelationChanged();
                }
            }
            else
                player.sendActionFailed();
        }

    }

    @Override
    public void onWriteCommand(Player player, String bypass, String arg1, String arg2, String arg3, String arg4, String arg5)
    {
        StringTokenizer st = new StringTokenizer(bypass, "_");
        String cmd = st.nextToken();
        if("bbsregsearch".equals(cmd))
        {
            int townId = Integer.parseInt(st.nextToken());
            int type = Integer.parseInt(st.nextToken());
            String byItem = "Item".equals(arg4) ? "1" : "0";
            if(arg3 == null)
                arg3 = "";

            arg3 = arg3.replace("<", "");
            arg3 = arg3.replace(">", "");
            arg3 = arg3.replace("&", "");
            arg3 = arg3.replace("$", "");

            if(arg3.length() > 30)
                arg3 = arg3.substring(0, 30);

            onBypassCommand(player, "_bbsreglist_" + townId + "_" + type + "_1_" + byItem + "_" + arg3);
        }
    }

    private static List<Player> getSellersList(int townId, int type, String search, boolean byItem)
    {
        List<Player> list = new ArrayList<Player>();
        int town[] = _towns[townId];
        int rx = town[1];
        int ry = town[2];
        int offset = 0;

        for(Player seller : GameObjectsStorage.getAllPlayersForIterate())
        {
            int tx = MapUtils.regionX(seller);
            int ty = MapUtils.regionY(seller);

            if(tx >= rx - offset && tx <= rx + offset && ty >= ry - offset && ty <= ry + offset)
            {
                List<TradeItem> tl = seller.getTradeList();
                List<ManufactureItem> cl = seller.getCreateList();
                if(seller.getPrivateStoreType() > 0)
                    if(type == 0 && tl != null && (seller.getPrivateStoreType() == Player.STORE_PRIVATE_SELL || seller.getPrivateStoreType() == Player.STORE_PRIVATE_SELL_PACKAGE))
                        list.add(seller);
                    else if(type == 1 && tl != null && seller.getPrivateStoreType() == Player.STORE_PRIVATE_BUY)
                        list.add(seller);
                    else if(type == 2 && cl != null && seller.getPrivateStoreType() == Player.STORE_PRIVATE_MANUFACTURE)
                        list.add(seller);
            }
        }

        if(!search.isEmpty() && !list.isEmpty())
        {
            List<Player> s_list = new ArrayList<Player>();
            for(Player seller : list)
            {
                List<TradeItem> tl = seller.getTradeList();
                List<ManufactureItem> cl = seller.getCreateList();
                if(byItem)
                {
                    if((type == 0 || type == 1) && tl != null)
                    {
                        List<TradeItem> sl = type == 0 ? seller.getSellList() : seller.getBuyList();
                        if(sl != null)
                            for(TradeItem ti : sl)
                            {
                                ItemTemplate item = ItemHolder.getInstance().getTemplate(ti.getItemId());
                                if(item != null && item.getName() != null && item.getName().toLowerCase().contains(search))
                                {
                                    s_list.add(seller);
                                    break;
                                }
                            }
                    }
                    else if(type == 2 && cl != null)
                        for(ManufactureItem mi : cl)
                        {
                            Recipe recipe = RecipeHolder.getInstance().getRecipeByRecipeId(mi.getRecipeId() - 1);
                            if(recipe != null)
                            {
                                ItemTemplate item = ItemHolder.getInstance().getTemplate(recipe.getItemId());
                                if(item != null && item.getName() != null && item.getName().toLowerCase().contains(search))
                                {
                                    s_list.add(seller);
                                    break;
                                }
                            }
                        }
                }
                else if(type == 0 && tl != null && seller.getSellStoreName() != null && seller.getSellStoreName().toLowerCase().contains(search))
                    s_list.add(seller);
                else if(type == 1 && tl != null && seller.getBuyStoreName() != null && seller.getBuyStoreName().toLowerCase().contains(search))
                    s_list.add(seller);
                else if(type == 2 && cl != null && seller.getCreateList() != null && seller.getManufactureName() != null && seller.getManufactureName().toLowerCase().contains(search))
                    s_list.add(seller);
            }
            list = s_list;
        }

        if(!list.isEmpty())
        {
            Player[] players = new Player[list.size()];
            list.toArray(players);
            Arrays.sort(players, new PlayersComparator<Player>());
            list.clear();
            list.addAll(Arrays.asList(players));
        }

        return list;
    }

    private static class PlayersComparator<T> implements Comparator<T>
    {
        @Override
        public int compare(Object o1, Object o2)
        {
            if(o1 instanceof Player && o2 instanceof Player)
            {
                Player p1 = (Player) o1;
                Player p2 = (Player) o2;
                return p1.getName().compareTo(p2.getName());
            }
            return 0;
        }
    }
}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

замени все replace на replaceAll

должно помочь

Изменено пользователем 1ntegrate

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...