Добрый вечер.
Сборка овер, начал впиливать коммунку.
В игре при попытке открыть КБ ничего не происходит, в консоли ГС'а
В Player.java кусок кода с байпассами
Направьте, пожалуйста, куда нужно
Сборка овер, начал впиливать коммунку.
В игре при попытке открыть КБ ничего не происходит, в консоли ГС'а
Код:
Direct access to bypass: _bbshome / Player: support
bypassCommands
Код:
public String[] getBypassCommands()
{
return new String[] {
"_bbshome",
"_bbslink",
"_bbsnews",
"_bbsmultisell",
"_bbspage",
"_bbsscripts",
"_wiki",
"_teleport",
"_stat",
"_services",
"_info",
"_event",
"_donate",
"_bbsshop" };
}
Player.java
Код:
private List<String> getStoredBypasses(boolean bbs)
{
if(bbs)
{
if(bypasses_bbs == null)
bypasses_bbs = new LazyArrayList<String>();
return bypasses_bbs;
}
if(bypasses == null)
bypasses = new LazyArrayList<String>();
return bypasses;
}
public void cleanBypasses(boolean bbs)
{
List<String> bypassStorage = getStoredBypasses(bbs);
synchronized(bypassStorage)
{
bypassStorage.clear();
}
}
public String encodeBypasses(String htmlCode, boolean bbs)
{
List<String> bypassStorage = getStoredBypasses(bbs);
synchronized(bypassStorage)
{
return BypassManager.encode(htmlCode, bypassStorage, bbs);
}
}
public DecodedBypass decodeBypass(String bypass)
{
BypassType bpType = BypassManager.getBypassType(bypass);
boolean bbs = bpType == BypassType.ENCODED_BBS || bpType == BypassType.SIMPLE_BBS;
List<String> bypassStorage = getStoredBypasses(bbs);
if(bpType == BypassType.ENCODED || bpType == BypassType.ENCODED_BBS)
return BypassManager.decode(bypass, bypassStorage, bbs, this);
if(bpType == BypassType.SIMPLE)
return new DecodedBypass(bypass, false).trim();
if(bpType == BypassType.SIMPLE_BBS && !bypass.startsWith("_bbsscripts"))
return new DecodedBypass(bypass, true).trim();
ICommunityBoardHandler handler = CommunityBoardManager.getInstance().getCommunityHandler(bypass);
if(handler != null)
return new DecodedBypass(bypass, handler).trim();
_log.warn("Direct access to bypass: " + bypass + " / Player: " + getName());
return null;
}
чась CommunityBoard.java (onBypassCommand)
Код:
@Override
public void onBypassCommand(Player player, String bypass)
{
if(!checkPlayerByPremium(player))
{
player.scriptRequest(new CustomMessage("community.Ask.Player.Buy.Premium", player).toString(), "services.RateBonus:list", new Object[0]);
return;
}
StringTokenizer st = new StringTokenizer(bypass, "_");
String cmd = st.nextToken();
String html = "";
if("bbshome".equals(cmd))
{
StringTokenizer p = new StringTokenizer(Config.BBS_DEFAULT, "_");
String dafault = p.nextToken();
if(dafault.equals(cmd))
{
html = HtmCache.getInstance().getNotNull("scripts/services/community/" + Config.BBS_FOLDER + "/bbs_top.htm", player);
int favCount = 0;
Connection con = null;
PreparedStatement statement = null;
ResultSet rset = null;
try
{
con = DatabaseFactory.getInstance().getConnection();
statement = con.prepareStatement("SELECT count(*) as cnt FROM `bbs_favorites` WHERE `object_id` = ?");
statement.setInt(1, player.getObjectId());
rset = statement.executeQuery();
if(rset.next())
favCount = rset.getInt("cnt");
}
catch(Exception e)
{}
finally
{
DbUtils.closeQuietly(con, statement, rset);
}
html = html.replace("<?fav_count?>", String.valueOf(favCount));
html = html.replace("<?clan_count?>", String.valueOf(ClanTable.getInstance().getClans().length));
html = html.replace("<?market_count?>", String.valueOf(CommunityBoardManager.getInstance().getIntProperty("col_count")));
}
else
{
onBypassCommand(player, Config.BBS_DEFAULT);
return;
}
}
}
