mirror of
https://github.com/evennia/evennia.git
synced 2026-03-29 20:17:16 +02:00
Fixed a bug in external_connections.
This commit is contained in:
parent
6e46158946
commit
90a64a3780
2 changed files with 23 additions and 24 deletions
|
|
@ -70,7 +70,7 @@ class IRC_Bot(irc.IRCClient):
|
|||
if conn.channel:
|
||||
conn.to_channel(msg)
|
||||
|
||||
def msg_irc(self, msg, from_obj=None):
|
||||
def msg_irc(self, msg, senders=None):
|
||||
"""
|
||||
Called by evennia when sending something to mapped IRC channel.
|
||||
|
||||
|
|
@ -131,7 +131,7 @@ def create_connection(channel, irc_network, irc_port, irc_channel, irc_bot_nick)
|
|||
# how the channel will be able to contact this protocol
|
||||
send_code = "from src.comms.irc import IRC_CHANNELS\n"
|
||||
send_code += "matched_ircs = [irc for irc in IRC_CHANNELS if irc.factory.key == '%s']\n" % key
|
||||
send_code += "[irc.msg_irc(message, from_obj=from_obj) for irc in matched_ircs]\n"
|
||||
send_code += "[irc.msg_irc(message, senders=[self]) for irc in matched_ircs]\n"
|
||||
conn = ExternalChannelConnection(db_channel=channel, db_external_key=key, db_external_send_code=send_code,
|
||||
db_external_config=config)
|
||||
conn.save()
|
||||
|
|
|
|||
|
|
@ -118,9 +118,8 @@ class Msg(SharedMemoryModel):
|
|||
#@sender.setter
|
||||
def __senders_set(self, value):
|
||||
"Setter. Allows for self.sender = value"
|
||||
values = make_iter(value)
|
||||
for value in values:
|
||||
obj, typ = identify_object(value)
|
||||
for val in make_iter(value):
|
||||
obj, typ = identify_object(val)
|
||||
if typ == 'player':
|
||||
self.db_sender_players.add(obj)
|
||||
elif typ == 'object':
|
||||
|
|
@ -141,11 +140,10 @@ class Msg(SharedMemoryModel):
|
|||
self.save()
|
||||
senders = property(__senders_get, __senders_set, __senders_del)
|
||||
|
||||
def remove_sender(self, obj):
|
||||
def remove_sender(self, value):
|
||||
"Remove a single sender or a list of senders"
|
||||
objs = make_iter(obj)
|
||||
for obj in objs:
|
||||
obj, typ = identify_object(obj)
|
||||
for val in make_iter(value):
|
||||
obj, typ = identify_object(val)
|
||||
if typ == 'player':
|
||||
self.db_sender_players.remove(obj)
|
||||
elif typ == 'object':
|
||||
|
|
@ -165,16 +163,17 @@ class Msg(SharedMemoryModel):
|
|||
#@receivers.setter
|
||||
def __receivers_set(self, value):
|
||||
"Setter. Allows for self.receivers = value. This appends a new receiver to the message."
|
||||
obj, typ = identify_object(value)
|
||||
if typ == 'player':
|
||||
self.db_receivers_players.add(obj)
|
||||
elif typ == 'object':
|
||||
self.db_receivers_objects.add(obj)
|
||||
elif not obj:
|
||||
return
|
||||
else:
|
||||
raise ValueError
|
||||
self.save()
|
||||
for val in make_iter(value):
|
||||
obj, typ = identify_object(val)
|
||||
if typ == 'player':
|
||||
self.db_receivers_players.add(obj)
|
||||
elif typ == 'object':
|
||||
self.db_receivers_objects.add(obj)
|
||||
elif not obj:
|
||||
return
|
||||
else:
|
||||
raise ValueError
|
||||
self.save()
|
||||
#@receivers.deleter
|
||||
def __receivers_del(self):
|
||||
"Deleter. Clears all receivers"
|
||||
|
|
@ -202,8 +201,8 @@ class Msg(SharedMemoryModel):
|
|||
#@channels.setter
|
||||
def __channels_set(self, value):
|
||||
"Setter. Allows for self.channels = value. Requires a channel to be added."
|
||||
if value:
|
||||
self.db_receivers_channels.add(value)
|
||||
for val in make_iter(value):
|
||||
self.db_receivers_channels.add(val)
|
||||
#@channels.deleter
|
||||
def __channels_del(self):
|
||||
"Deleter. Allows for del self.channels"
|
||||
|
|
@ -810,14 +809,14 @@ class ExternalChannelConnection(SharedMemoryModel):
|
|||
"Send external -> channel"
|
||||
if not from_obj:
|
||||
from_obj = self.external_key
|
||||
self.channel.msg(message, from_obj=from_obj)
|
||||
self.channel.msg(message, senders=[self])
|
||||
|
||||
def to_external(self, message, from_obj=None, from_channel=None):
|
||||
def to_external(self, message, senders=None, from_channel=None):
|
||||
"Send channel -> external"
|
||||
|
||||
# make sure we are not echoing back our own message to ourselves
|
||||
# (this would result in a nasty infinite loop)
|
||||
if from_obj == self.external_key:
|
||||
if self in make_iter(senders):#.external_key:
|
||||
return
|
||||
|
||||
try:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue