diff --git a/evennia/comms/migrations/0011_auto_20170217_2039.py b/evennia/comms/migrations/0011_auto_20170217_2039.py new file mode 100644 index 0000000000..b13e6dcec0 --- /dev/null +++ b/evennia/comms/migrations/0011_auto_20170217_2039.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.11 on 2017-02-17 20:39 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('scripts', '0007_auto_20150403_2339'), + ('comms', '0010_auto_20161206_1912'), + ] + + operations = [ + migrations.AddField( + model_name='msg', + name='db_receivers_scripts', + field=models.ManyToManyField(blank=True, help_text=b'script_receivers', null=True, related_name='receiver_script_set', to='scripts.ScriptDB'), + ), + migrations.AddField( + model_name='msg', + name='db_sender_scripts', + field=models.ManyToManyField(blank=True, db_index=True, null=True, related_name='sender_script_set', to='scripts.ScriptDB', verbose_name=b'sender(script)'), + ), + ] diff --git a/evennia/comms/models.py b/evennia/comms/models.py index ce5f3d739c..2a2c59ed87 100644 --- a/evennia/comms/models.py +++ b/evennia/comms/models.py @@ -55,9 +55,11 @@ class Msg(SharedMemoryModel): - db_sender_players: Player senders - db_sender_objects: Object senders + - db_sender_scripts: Script senders - db_sender_external: External senders (defined as string names) - db_receivers_players: Receiving players - db_receivers_objects: Receiving objects + - db_receivers_scripts: Receiveing scripts - db_receivers_channels: Receiving channels - db_header: Header text - db_message: The actual message text @@ -82,6 +84,8 @@ class Msg(SharedMemoryModel): null=True, blank=True, verbose_name='sender(player)', db_index=True) db_sender_objects = models.ManyToManyField("objects.ObjectDB", related_name='sender_object_set', null=True, blank=True, verbose_name='sender(object)', db_index=True) + db_sender_scripts = models.ManyToManyField("scripts.ScriptDB", related_name='sender_script_set', + null=True, blank=True, verbose_name='sender(script)', db_index=True) db_sender_external = models.CharField('external sender', max_length=255, null=True, blank=True, db_index=True, help_text="identifier for external sender, for example a sender over an " "IRC connection (i.e. someone who doesn't have an exixtence in-game).") @@ -92,6 +96,8 @@ class Msg(SharedMemoryModel): null=True, blank=True, help_text="player receivers") db_receivers_objects = models.ManyToManyField('objects.ObjectDB', related_name='receiver_object_set', null=True, blank=True, help_text="object receivers") + db_receivers_scripts = models.ManyToManyField('scripts.ScriptDB', related_name='receiver_script_set', + null=True, blank=True, help_text="script_receivers") db_receivers_channels = models.ManyToManyField("ChannelDB", related_name='channel_set', null=True, blank=True, help_text="channel recievers") @@ -148,6 +154,7 @@ class Msg(SharedMemoryModel): "Getter. Allows for value = self.sender" return list(self.db_sender_players.all()) + \ list(self.db_sender_objects.all()) + \ + list(self.db_sender_scripts.all()) + \ self.extra_senders #@sender.setter @@ -168,12 +175,15 @@ class Msg(SharedMemoryModel): self.db_sender_objects.add(sender) elif clsname == "PlayerDB": self.db_sender_players.add(sender) + elif clsname == "ScriptDB": + self.db_sender_scripts.add(sender) #@sender.deleter def __senders_del(self): "Deleter. Clears all senders" self.db_sender_players.clear() self.db_sender_objects.clear() + self.db_sender_scripts.clear() self.db_sender_external = "" self.extra_senders = [] self.save() @@ -200,15 +210,20 @@ class Msg(SharedMemoryModel): self.db_sender_objects.remove(sender) elif clsname == "PlayerDB": self.db_sender_players.remove(sender) + elif clsname == "ScriptDB": + self.db_sender_players.remove(sender) # receivers property #@property def __receivers_get(self): """ Getter. Allows for value = self.receivers. - Returns three lists of receivers: players, objects and channels. + Returns four lists of receivers: players, objects, scripts and channels. """ - return list(self.db_receivers_players.all()) + list(self.db_receivers_objects.all()) + return list(self.db_receivers_players.all()) + \ + list(self.db_receivers_objects.all()) + \ + list(self.db_receivers_scripts.all()) + \ + list(self.db_receivers_channels.all()) #@receivers.setter def __receivers_set(self, receivers): @@ -226,12 +241,19 @@ class Msg(SharedMemoryModel): self.db_receivers_objects.add(receiver) elif clsname == "PlayerDB": self.db_receivers_players.add(receiver) + elif clsname == "ScriptDB": + self.db_receivers_scripts.add(receiver) + elif clsname == "ChannelDB": + self.db_receivers_channels.add(receiver) + #@receivers.deleter def __receivers_del(self): "Deleter. Clears all receivers" self.db_receivers_players.clear() self.db_receivers_objects.clear() + self.db_receivers_scripts.clear() + self.db_receivers_channels.clear() self.save() receivers = property(__receivers_get, __receivers_set, __receivers_del) @@ -240,7 +262,7 @@ class Msg(SharedMemoryModel): Remove a single receiver or a list of receivers. Args: - receivers (Player, Object, Channel or list): Receiver to remove. + receivers (Player, Object, Script, Channel or list): Receiver to remove. """ for receiver in make_iter(receivers): @@ -253,6 +275,10 @@ class Msg(SharedMemoryModel): self.db_receivers_objects.remove(receiver) elif clsname == "PlayerDB": self.db_receivers_players.remove(receiver) + elif clsname == "ScriptDB": + self.db_receivers_scripts.remove(receiver) + elif clsname == "ChannelDB": + self.db_receivers_channels.remove(receiver) # channels property #@property