04-23-2010, 06:56 PM
(Сообщение последний раз редактировалось: 04-24-2010, 03:27 PM lxShaDoWxl.)
Столкнулся с такой проблемой на не которых сборках если в SQL не поставить isGM="1" нельзя использовать гм-команды, как сделать что бы без isGM а только с AccesLevel>0 можно было использовать гм-команды
я предполагал что надо убрать в коде(ниже написан) isGM то можно будет, но не получилось.. помогите решить этот вопрос
я предполагал что надо убрать в коде(ниже написан) isGM то можно будет, но не получилось.. помогите решить этот вопрос
PHP код:
<?php
/*
* 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 com.l2open.gameserver.datatables;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Map;
import javolution.util.FastMap;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.l2open.L2DatabaseFactory;
import com.l2open.gameserver.model.L2AccessLevel;
import com.l2open.gameserver.model.L2AdminCommandAccessRight;
/**
* @author FBIagent<br>
*/
public class AdminCommandAccessRights
{
/** The logger<br> */
private final static Log _log = LogFactory.getLog(AdminCommandAccessRights.class);
private Map<String, L2AdminCommandAccessRight> _adminCommandAccessRights;
/**
* Returns the one and only instance of this class<br>
* <br>
*
* @return AdminCommandAccessRights: the one and only instance of this class<br>
*/
public static AdminCommandAccessRights getInstance()
{
return SingletonHolder._instance;
}
/** The access rights<br> */
private AdminCommandAccessRights()
{
loadAdminCommandAccessRights();
}
/**
* Loads admin command access rights from database<br>
*/
private void loadAdminCommandAccessRights()
{
_adminCommandAccessRights = new FastMap<String, L2AdminCommandAccessRight>();
Connection con = null;
try
{
con = L2DatabaseFactory.getInstance().getConnection();
PreparedStatement stmt = con.prepareStatement("SELECT * FROM admin_command_access_rights");
ResultSet rset = stmt.executeQuery();
String adminCommand = null;
String accessLevels = null;
while (rset.next())
{
adminCommand = rset.getString("adminCommand");
accessLevels = rset.getString("accessLevels");
_adminCommandAccessRights.put(adminCommand, new L2AdminCommandAccessRight(adminCommand, accessLevels));
}
rset.close();
stmt.close();
}
catch (SQLException e)
{
_log.error("AdminCommandAccessRights: Error loading from database: " + e);
}
finally
{
L2DatabaseFactory.close(con);
}
_log.info("AdminCommandAccessRights: Loaded: " + _adminCommandAccessRights.size() + " from database.");
}
public boolean hasAccess(String adminCommand, L2AccessLevel accessLevel)
{
if (accessLevel.isGm())
return true;
if (accessLevel.getLevel() == AccessLevels._builderAccessLevelNum)
return false;
L2AdminCommandAccessRight acar = _adminCommandAccessRights.get(adminCommand);
if (acar == null)
{
_log.info("AdminCommandAccessRights: No rights defined for admin command " + adminCommand + ".");
return false;
}
return acar.hasAccess(accessLevel);
}
public void reloadAdminCommandAccessRights()
{
loadAdminCommandAccessRights();
}
@SuppressWarnings("synthetic-access")
private static class SingletonHolder
{
protected static final AdminCommandAccessRights _instance = new AdminCommandAccessRights();
}
}
Добавлено через 20 часов 30 минут
раз никто не знает пока что, скиньте сборку где можно давать ГМ права без isGM или вообще что бы его там не было этого isGM