To prevent abuse, GMs should be permission restricted (via GM level) to trade with other non GM players, use their storage (prevent transferring to their other characters), send via Duey and to drop items. GM level is configurable.

This commit is contained in:
Matthew Hinds
2023-05-12 18:02:08 +12:00
parent 1d6d5dcc94
commit 4546fd44ff
6 changed files with 46 additions and 0 deletions

View File

@@ -448,6 +448,20 @@ public class Trade {
}
public static void inviteTrade(Character c1, Character c2) {
if ((c1.isGM() && !c2.isGM()) && c1.gmLevel() < YamlConfig.config.server.MINIMUM_GM_LEVEL_TO_TRADE) {
c1.message("You cannot trade with non-GM characters.");
log.info(String.format("GM %s blocked from trading with %s due to GM level.", c1.getName(), c2.getName()));
cancelTrade(c1, TradeResult.NO_RESPONSE);
return;
}
if ((!c1.isGM() && c2.isGM()) && c2.gmLevel() < YamlConfig.config.server.MINIMUM_GM_LEVEL_TO_TRADE) {
c1.message("You cannot trade with this GM character.");
cancelTrade(c1, TradeResult.NO_RESPONSE);
return;
}
if (InviteCoordinator.hasInvite(InviteType.TRADE, c1.getId())) {
if (hasTradeInviteBack(c1, c2)) {
c1.message("You are already managing this player's trade invitation.");