public static void HandleExchangeRequestOnTaxCollectorMessage(WorldClient client, ExchangeRequestOnTaxCollectorMessage message) { if (client.Character.Guild == null) { return; } var taxCollectorNpc = client.Character.Map.TaxCollector; if (taxCollectorNpc == null) { return; } var guildMember = client.Character.GuildMember; if (!taxCollectorNpc.IsTaxCollectorOwner(guildMember)) { client.Send(new TaxCollectorErrorMessage((sbyte)TaxCollectorErrorReasonEnum.TAX_COLLECTOR_NOT_OWNED)); return; } if (!((string.Equals(taxCollectorNpc.Record.CallerName, client.Character.Name) && guildMember.HasRight(GuildRightsBitEnum.GUILD_RIGHT_COLLECT_MY_TAX_COLLECTOR)) || guildMember.HasRight(GuildRightsBitEnum.GUILD_RIGHT_COLLECT))) { client.Send(new TaxCollectorErrorMessage((sbyte)TaxCollectorErrorReasonEnum.TAX_COLLECTOR_NO_RIGHTS)); return; } if (taxCollectorNpc.IsBusy()) { return; } var exchange = new TaxCollectorExchange(taxCollectorNpc, client.Character); exchange.Open(); }