Updated HTML docs

This commit is contained in:
Evennia docbuilder action 2022-07-24 06:52:16 +00:00
parent 4e3201f293
commit e41f2ff6b2
71 changed files with 382 additions and 267 deletions

View file

@ -645,7 +645,7 @@
<span class="k">if</span> <span class="s2">&quot;drop&quot;</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">switches</span><span class="p">:</span>
<span class="k">if</span> <span class="n">caller</span><span class="o">.</span><span class="n">location</span><span class="p">:</span>
<span class="n">obj</span><span class="o">.</span><span class="n">home</span> <span class="o">=</span> <span class="n">caller</span><span class="o">.</span><span class="n">location</span>
<span class="n">obj</span><span class="o">.</span><span class="n">move_to</span><span class="p">(</span><span class="n">caller</span><span class="o">.</span><span class="n">location</span><span class="p">,</span> <span class="n">quiet</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
<span class="n">obj</span><span class="o">.</span><span class="n">move_to</span><span class="p">(</span><span class="n">caller</span><span class="o">.</span><span class="n">location</span><span class="p">,</span> <span class="n">quiet</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">move_type</span><span class="o">=</span><span class="s2">&quot;drop&quot;</span><span class="p">)</span>
<span class="k">if</span> <span class="n">string</span><span class="p">:</span>
<span class="n">caller</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="n">string</span><span class="p">)</span></div></div>
@ -1035,7 +1035,7 @@
<span class="p">)</span>
<span class="n">caller</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">%s%s%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">room_string</span><span class="p">,</span> <span class="n">exit_to_string</span><span class="p">,</span> <span class="n">exit_back_string</span><span class="p">))</span>
<span class="k">if</span> <span class="n">new_room</span> <span class="ow">and</span> <span class="s2">&quot;teleport&quot;</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">switches</span><span class="p">:</span>
<span class="n">caller</span><span class="o">.</span><span class="n">move_to</span><span class="p">(</span><span class="n">new_room</span><span class="p">)</span></div></div>
<span class="n">caller</span><span class="o">.</span><span class="n">move_to</span><span class="p">(</span><span class="n">new_room</span><span class="p">,</span> <span class="n">move_type</span><span class="o">=</span><span class="s2">&quot;teleport&quot;</span><span class="p">)</span></div></div>
<div class="viewcode-block" id="CmdTunnel"><a class="viewcode-back" href="../../../../api/evennia.commands.default.building.html#evennia.commands.default.building.CmdTunnel">[docs]</a><span class="k">class</span> <span class="nc">CmdTunnel</span><span class="p">(</span><span class="n">COMMAND_DEFAULT_CLASS</span><span class="p">):</span>
@ -3751,6 +3751,7 @@
<span class="n">quiet</span><span class="o">=</span><span class="s2">&quot;quiet&quot;</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">switches</span><span class="p">,</span>
<span class="n">emit_to_obj</span><span class="o">=</span><span class="n">caller</span><span class="p">,</span>
<span class="n">use_destination</span><span class="o">=</span><span class="s2">&quot;intoexit&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">switches</span><span class="p">,</span>
<span class="n">move_type</span><span class="o">=</span><span class="s2">&quot;teleport&quot;</span>
<span class="p">):</span>
<span class="k">if</span> <span class="n">obj_to_teleport</span> <span class="o">==</span> <span class="n">caller</span><span class="p">:</span>

View file

@ -91,7 +91,7 @@
<span class="n">caller</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="s2">&quot;You are already home!&quot;</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">caller</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="s2">&quot;There&#39;s no place like home ...&quot;</span><span class="p">)</span>
<span class="n">caller</span><span class="o">.</span><span class="n">move_to</span><span class="p">(</span><span class="n">home</span><span class="p">)</span></div></div>
<span class="n">caller</span><span class="o">.</span><span class="n">move_to</span><span class="p">(</span><span class="n">home</span><span class="p">,</span> <span class="n">move_type</span><span class="o">=</span><span class="s2">&quot;teleport&quot;</span><span class="p">)</span></div></div>
<div class="viewcode-block" id="CmdLook"><a class="viewcode-back" href="../../../../api/evennia.commands.default.general.html#evennia.commands.default.general.CmdLook">[docs]</a><span class="k">class</span> <span class="nc">CmdLook</span><span class="p">(</span><span class="n">COMMAND_DEFAULT_CLASS</span><span class="p">):</span>
@ -476,7 +476,7 @@
<span class="k">if</span> <span class="ow">not</span> <span class="n">obj</span><span class="o">.</span><span class="n">at_pre_get</span><span class="p">(</span><span class="n">caller</span><span class="p">):</span>
<span class="k">return</span>
<span class="n">success</span> <span class="o">=</span> <span class="n">obj</span><span class="o">.</span><span class="n">move_to</span><span class="p">(</span><span class="n">caller</span><span class="p">,</span> <span class="n">quiet</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
<span class="n">success</span> <span class="o">=</span> <span class="n">obj</span><span class="o">.</span><span class="n">move_to</span><span class="p">(</span><span class="n">caller</span><span class="p">,</span> <span class="n">quiet</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">move_type</span><span class="o">=</span><span class="s2">&quot;get&quot;</span><span class="p">)</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">success</span><span class="p">:</span>
<span class="n">caller</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="s2">&quot;This can&#39;t be picked up.&quot;</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
@ -526,7 +526,7 @@
<span class="k">if</span> <span class="ow">not</span> <span class="n">obj</span><span class="o">.</span><span class="n">at_pre_drop</span><span class="p">(</span><span class="n">caller</span><span class="p">):</span>
<span class="k">return</span>
<span class="n">success</span> <span class="o">=</span> <span class="n">obj</span><span class="o">.</span><span class="n">move_to</span><span class="p">(</span><span class="n">caller</span><span class="o">.</span><span class="n">location</span><span class="p">,</span> <span class="n">quiet</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
<span class="n">success</span> <span class="o">=</span> <span class="n">obj</span><span class="o">.</span><span class="n">move_to</span><span class="p">(</span><span class="n">caller</span><span class="o">.</span><span class="n">location</span><span class="p">,</span> <span class="n">quiet</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">move_type</span><span class="o">=</span><span class="s2">&quot;drop&quot;</span><span class="p">)</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">success</span><span class="p">:</span>
<span class="n">caller</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="s2">&quot;This couldn&#39;t be dropped.&quot;</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
@ -580,7 +580,7 @@
<span class="k">return</span>
<span class="c1"># give object</span>
<span class="n">success</span> <span class="o">=</span> <span class="n">to_give</span><span class="o">.</span><span class="n">move_to</span><span class="p">(</span><span class="n">target</span><span class="p">,</span> <span class="n">quiet</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
<span class="n">success</span> <span class="o">=</span> <span class="n">to_give</span><span class="o">.</span><span class="n">move_to</span><span class="p">(</span><span class="n">target</span><span class="p">,</span> <span class="n">quiet</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">move_type</span><span class="o">=</span><span class="s2">&quot;get&quot;</span><span class="p">)</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">success</span><span class="p">:</span>
<span class="n">caller</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="s2">&quot;This could not be given.&quot;</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>

View file

@ -278,7 +278,7 @@
<span class="c1"># manually call move hooks</span>
<span class="bp">self</span><span class="o">.</span><span class="n">room</span><span class="o">.</span><span class="n">msg_room</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">caller</span><span class="p">,</span> <span class="sa">f</span><span class="s2">&quot;|r</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">caller</span><span class="o">.</span><span class="n">key</span><span class="si">}</span><span class="s2"> gave up and was whisked away!|n&quot;</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">room</span><span class="o">.</span><span class="n">at_object_leave</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">caller</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">caller</span><span class="o">.</span><span class="n">home</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">caller</span><span class="o">.</span><span class="n">move_to</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">caller</span><span class="o">.</span><span class="n">home</span><span class="p">,</span> <span class="n">quiet</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">move_hooks</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">caller</span><span class="o">.</span><span class="n">move_to</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">caller</span><span class="o">.</span><span class="n">home</span><span class="p">,</span> <span class="n">quiet</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">move_hooks</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">move_type</span><span class="o">=</span><span class="s2">&quot;teleport&quot;</span><span class="p">)</span>
<span class="c1"># back to menu</span>
<span class="n">run_evscaperoom_menu</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">caller</span><span class="p">)</span>

View file

@ -227,7 +227,7 @@
<span class="c1"># Evennia hooks</span>
<div class="viewcode-block" id="EvscapeRoom.at_object_receive"><a class="viewcode-back" href="../../../../../api/evennia.contrib.full_systems.evscaperoom.room.html#evennia.contrib.full_systems.evscaperoom.room.EvscapeRoom.at_object_receive">[docs]</a> <span class="k">def</span> <span class="nf">at_object_receive</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">moved_obj</span><span class="p">,</span> <span class="n">source_location</span><span class="p">):</span>
<div class="viewcode-block" id="EvscapeRoom.at_object_receive"><a class="viewcode-back" href="../../../../../api/evennia.contrib.full_systems.evscaperoom.room.html#evennia.contrib.full_systems.evscaperoom.room.EvscapeRoom.at_object_receive">[docs]</a> <span class="k">def</span> <span class="nf">at_object_receive</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">moved_obj</span><span class="p">,</span> <span class="n">source_location</span><span class="p">,</span> <span class="n">move_type</span><span class="o">=</span><span class="s2">&quot;move&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Called when an object arrives in the room. This can be used to</span>
<span class="sd"> sum up the situation, set tags etc.</span>
@ -237,7 +237,7 @@
<span class="bp">self</span><span class="o">.</span><span class="n">log</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;JOIN: </span><span class="si">{</span><span class="n">moved_obj</span><span class="si">}</span><span class="s2"> joined room&quot;</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">state</span><span class="o">.</span><span class="n">character_enters</span><span class="p">(</span><span class="n">moved_obj</span><span class="p">)</span></div>
<div class="viewcode-block" id="EvscapeRoom.at_object_leave"><a class="viewcode-back" href="../../../../../api/evennia.contrib.full_systems.evscaperoom.room.html#evennia.contrib.full_systems.evscaperoom.room.EvscapeRoom.at_object_leave">[docs]</a> <span class="k">def</span> <span class="nf">at_object_leave</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">moved_obj</span><span class="p">,</span> <span class="n">target_location</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<div class="viewcode-block" id="EvscapeRoom.at_object_leave"><a class="viewcode-back" href="../../../../../api/evennia.contrib.full_systems.evscaperoom.room.html#evennia.contrib.full_systems.evscaperoom.room.EvscapeRoom.at_object_leave">[docs]</a> <span class="k">def</span> <span class="nf">at_object_leave</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">moved_obj</span><span class="p">,</span> <span class="n">target_location</span><span class="p">,</span> <span class="n">move_type</span><span class="o">=</span><span class="s2">&quot;move&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Called when an object leaves the room; if this is a Character we need</span>
<span class="sd"> to clean them up and move them to the menu state.</span>

View file

@ -653,7 +653,7 @@
<span class="k">if</span> <span class="n">obj</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">worn</span><span class="p">:</span>
<span class="n">obj</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">caller</span><span class="p">,</span> <span class="n">quiet</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
<span class="n">obj</span><span class="o">.</span><span class="n">move_to</span><span class="p">(</span><span class="n">caller</span><span class="o">.</span><span class="n">location</span><span class="p">,</span> <span class="n">quiet</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
<span class="n">obj</span><span class="o">.</span><span class="n">move_to</span><span class="p">(</span><span class="n">caller</span><span class="o">.</span><span class="n">location</span><span class="p">,</span> <span class="n">quiet</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">move_type</span><span class="o">=</span><span class="s2">&quot;drop&quot;</span><span class="p">)</span>
<span class="n">caller</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="s2">&quot;You drop </span><span class="si">%s</span><span class="s2">.&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">obj</span><span class="o">.</span><span class="n">name</span><span class="p">,))</span>
<span class="n">caller</span><span class="o">.</span><span class="n">location</span><span class="o">.</span><span class="n">msg_contents</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">%s</span><span class="s2"> drops </span><span class="si">%s</span><span class="s2">.&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">caller</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="n">obj</span><span class="o">.</span><span class="n">name</span><span class="p">),</span> <span class="n">exclude</span><span class="o">=</span><span class="n">caller</span><span class="p">)</span>
<span class="c1"># Call the object script&#39;s at_drop() method.</span>
@ -706,10 +706,10 @@
<span class="c1"># Remove clothes if they&#39;re given.</span>
<span class="k">if</span> <span class="n">to_give</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">worn</span><span class="p">:</span>
<span class="n">to_give</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">caller</span><span class="p">)</span>
<span class="n">to_give</span><span class="o">.</span><span class="n">move_to</span><span class="p">(</span><span class="n">caller</span><span class="o">.</span><span class="n">location</span><span class="p">,</span> <span class="n">quiet</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
<span class="n">to_give</span><span class="o">.</span><span class="n">move_to</span><span class="p">(</span><span class="n">caller</span><span class="o">.</span><span class="n">location</span><span class="p">,</span> <span class="n">quiet</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">move_type</span><span class="o">=</span><span class="s2">&quot;remove&quot;</span><span class="p">)</span>
<span class="c1"># give object</span>
<span class="n">caller</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="s2">&quot;You give </span><span class="si">%s</span><span class="s2"> to </span><span class="si">%s</span><span class="s2">.&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">to_give</span><span class="o">.</span><span class="n">key</span><span class="p">,</span> <span class="n">target</span><span class="o">.</span><span class="n">key</span><span class="p">))</span>
<span class="n">to_give</span><span class="o">.</span><span class="n">move_to</span><span class="p">(</span><span class="n">target</span><span class="p">,</span> <span class="n">quiet</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
<span class="n">to_give</span><span class="o">.</span><span class="n">move_to</span><span class="p">(</span><span class="n">target</span><span class="p">,</span> <span class="n">quiet</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">move_type</span><span class="o">=</span><span class="s2">&quot;give&quot;</span><span class="p">)</span>
<span class="n">target</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">%s</span><span class="s2"> gives you </span><span class="si">%s</span><span class="s2">.&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">caller</span><span class="o">.</span><span class="n">key</span><span class="p">,</span> <span class="n">to_give</span><span class="o">.</span><span class="n">key</span><span class="p">))</span>
<span class="c1"># Call the object script&#39;s at_give() method.</span>
<span class="n">to_give</span><span class="o">.</span><span class="n">at_give</span><span class="p">(</span><span class="n">caller</span><span class="p">,</span> <span class="n">target</span><span class="p">)</span></div></div>

View file

@ -124,7 +124,7 @@
<span class="k">def</span> <span class="nf">move_callback</span><span class="p">():</span>
<span class="s2">&quot;This callback will be called by utils.delay after move_delay seconds.&quot;</span>
<span class="n">source_location</span> <span class="o">=</span> <span class="n">traversing_object</span><span class="o">.</span><span class="n">location</span>
<span class="k">if</span> <span class="n">traversing_object</span><span class="o">.</span><span class="n">move_to</span><span class="p">(</span><span class="n">target_location</span><span class="p">):</span>
<span class="k">if</span> <span class="n">traversing_object</span><span class="o">.</span><span class="n">move_to</span><span class="p">(</span><span class="n">target_location</span><span class="p">,</span> <span class="n">move_type</span><span class="o">=</span><span class="s2">&quot;traverse&quot;</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">at_post_traverse</span><span class="p">(</span><span class="n">traversing_object</span><span class="p">,</span> <span class="n">source_location</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">err_traverse</span><span class="p">:</span>

View file

@ -580,7 +580,7 @@
<span class="c1"># This object wasn&#39;t in the wilderness yet. Let&#39;s add it.</span>
<span class="n">itemcoords</span><span class="p">[</span><span class="n">moved_obj</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">coordinates</span></div>
<div class="viewcode-block" id="WildernessRoom.at_object_leave"><a class="viewcode-back" href="../../../../../api/evennia.contrib.grid.wilderness.wilderness.html#evennia.contrib.grid.wilderness.wilderness.WildernessRoom.at_object_leave">[docs]</a> <span class="k">def</span> <span class="nf">at_object_leave</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">moved_obj</span><span class="p">,</span> <span class="n">target_location</span><span class="p">):</span>
<div class="viewcode-block" id="WildernessRoom.at_object_leave"><a class="viewcode-back" href="../../../../../api/evennia.contrib.grid.wilderness.wilderness.html#evennia.contrib.grid.wilderness.wilderness.WildernessRoom.at_object_leave">[docs]</a> <span class="k">def</span> <span class="nf">at_object_leave</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">moved_obj</span><span class="p">,</span> <span class="n">target_location</span><span class="p">,</span> <span class="n">move_type</span><span class="o">=</span><span class="s2">&quot;move&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Called just before an object leaves from inside this object. This is a</span>
<span class="sd"> default Evennia hook.</span>

View file

@ -244,7 +244,7 @@
<span class="n">_RE_REF</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="sa">r</span><span class="s2">&quot;\{+\#([0-9]+[\^\~tv]{0,1})\}+&quot;</span><span class="p">)</span>
<span class="c1"># This regex is used to quickly reference one self in an emote.</span>
<span class="n">_RE_SELF_REF</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="sa">r</span><span class="s2">&quot;/me|@&quot;</span><span class="p">,</span> <span class="n">_RE_FLAGS</span><span class="p">)</span>
<span class="n">_RE_SELF_REF</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="sa">r</span><span class="s2">&quot;(/me|@)(?=\W+)&quot;</span><span class="p">,</span> <span class="n">_RE_FLAGS</span><span class="p">)</span>
<span class="c1"># regex for non-alphanumberic end of a string</span>
<span class="n">_RE_CHAREND</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="sa">r</span><span class="s2">&quot;\W+$&quot;</span><span class="p">,</span> <span class="n">_RE_FLAGS</span><span class="p">)</span>
@ -277,6 +277,26 @@
<div class="viewcode-block" id="LanguageError"><a class="viewcode-back" href="../../../../../api/evennia.contrib.rpg.rpsystem.rpsystem.html#evennia.contrib.rpg.rpsystem.rpsystem.LanguageError">[docs]</a><span class="k">class</span> <span class="nc">LanguageError</span><span class="p">(</span><span class="ne">Exception</span><span class="p">):</span>
<span class="k">pass</span></div>
<span class="k">def</span> <span class="nf">_get_case_ref</span><span class="p">(</span><span class="n">string</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Helper function which parses capitalization and</span>
<span class="sd"> returns the appropriate case-ref character for emotes.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="c1"># default to retaining the original case</span>
<span class="n">case</span> <span class="o">=</span> <span class="s2">&quot;~&quot;</span>
<span class="c1"># internal flags for the case used for the original /query</span>
<span class="c1"># - t for titled input (like /Name)</span>
<span class="c1"># - ^ for all upercase input (like /NAME)</span>
<span class="c1"># - v for lower-case input (like /name)</span>
<span class="c1"># - ~ for mixed case input (like /nAmE)</span>
<span class="k">if</span> <span class="n">string</span><span class="o">.</span><span class="n">istitle</span><span class="p">():</span>
<span class="n">case</span> <span class="o">=</span> <span class="s2">&quot;t&quot;</span>
<span class="k">elif</span> <span class="n">string</span><span class="o">.</span><span class="n">isupper</span><span class="p">():</span>
<span class="n">case</span> <span class="o">=</span> <span class="s2">&quot;^&quot;</span>
<span class="k">elif</span> <span class="n">string</span><span class="o">.</span><span class="n">islower</span><span class="p">():</span>
<span class="n">case</span> <span class="o">=</span> <span class="s2">&quot;v&quot;</span>
<span class="k">return</span> <span class="n">case</span>
<span class="c1"># emoting mechanisms</span>
<div class="viewcode-block" id="parse_language"><a class="viewcode-back" href="../../../../../api/evennia.contrib.rpg.rpsystem.rpsystem.html#evennia.contrib.rpg.rpsystem.rpsystem.parse_language">[docs]</a><span class="k">def</span> <span class="nf">parse_language</span><span class="p">(</span><span class="n">speaker</span><span class="p">,</span> <span class="n">emote</span><span class="p">):</span>
@ -381,7 +401,7 @@
<span class="sd"> &quot;&quot;&quot;</span>
<span class="c1"># build a list of candidates with all possible referrable names</span>
<span class="c1"># include &#39;me&#39; keyword for self-ref</span>
<span class="n">candidate_map</span> <span class="o">=</span> <span class="p">[(</span><span class="n">sender</span><span class="p">,</span> <span class="s2">&quot;me&quot;</span><span class="p">)]</span>
<span class="n">candidate_map</span> <span class="o">=</span> <span class="p">[]</span>
<span class="k">for</span> <span class="n">obj</span> <span class="ow">in</span> <span class="n">candidates</span><span class="p">:</span>
<span class="c1"># check if sender has any recogs for obj and add</span>
<span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">sender</span><span class="p">,</span> <span class="s2">&quot;recog&quot;</span><span class="p">):</span>
@ -407,6 +427,15 @@
<span class="n">errors</span> <span class="o">=</span> <span class="p">[]</span>
<span class="n">obj</span> <span class="o">=</span> <span class="kc">None</span>
<span class="n">nmatches</span> <span class="o">=</span> <span class="mi">0</span>
<span class="c1"># first, find and replace any self-refs</span>
<span class="k">for</span> <span class="n">self_match</span> <span class="ow">in</span> <span class="nb">list</span><span class="p">(</span><span class="n">_RE_SELF_REF</span><span class="o">.</span><span class="n">finditer</span><span class="p">(</span><span class="n">string</span><span class="p">)):</span>
<span class="n">matched</span> <span class="o">=</span> <span class="n">self_match</span><span class="o">.</span><span class="n">group</span><span class="p">()</span>
<span class="n">case</span> <span class="o">=</span> <span class="n">_get_case_ref</span><span class="p">(</span><span class="n">matched</span><span class="o">.</span><span class="n">lstrip</span><span class="p">(</span><span class="n">_PREFIX</span><span class="p">))</span> <span class="k">if</span> <span class="n">case_sensitive</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
<span class="n">key</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;#</span><span class="si">{</span><span class="n">sender</span><span class="o">.</span><span class="n">id</span><span class="si">}{</span><span class="n">case</span><span class="si">}</span><span class="s2">&quot;</span>
<span class="c1"># replaced with ref</span>
<span class="n">string</span> <span class="o">=</span> <span class="n">_RE_SELF_REF</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="se">{{</span><span class="si">{</span><span class="n">key</span><span class="si">}</span><span class="se">}}</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">string</span><span class="p">,</span> <span class="n">count</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
<span class="n">mapping</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">sender</span>
<span class="k">for</span> <span class="n">marker_match</span> <span class="ow">in</span> <span class="nb">reversed</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="n">_RE_OBJ_REF_START</span><span class="o">.</span><span class="n">finditer</span><span class="p">(</span><span class="n">string</span><span class="p">))):</span>
<span class="c1"># we scan backwards so we can replace in-situ without messing</span>
<span class="c1"># up later occurrences. Given a marker match, query from</span>
@ -498,24 +527,9 @@
<span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">_EMOTE_NOMATCH_ERROR</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">ref</span><span class="o">=</span><span class="n">marker_match</span><span class="o">.</span><span class="n">group</span><span class="p">()))</span>
<span class="k">elif</span> <span class="n">nmatches</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
<span class="c1"># a unique match - parse into intermediary representation</span>
<span class="n">case</span> <span class="o">=</span> <span class="s2">&quot;~&quot;</span> <span class="c1"># retain original case of sdesc</span>
<span class="k">if</span> <span class="n">case_sensitive</span><span class="p">:</span>
<span class="c1"># case sensitive mode</span>
<span class="c1"># internal flags for the case used for the original /query</span>
<span class="c1"># - t for titled input (like /Name)</span>
<span class="c1"># - ^ for all upercase input (like /NAME)</span>
<span class="c1"># - v for lower-case input (like /name)</span>
<span class="c1"># - ~ for mixed case input (like /nAmE)</span>
<span class="n">matchtext</span> <span class="o">=</span> <span class="n">marker_match</span><span class="o">.</span><span class="n">group</span><span class="p">()</span><span class="o">.</span><span class="n">lstrip</span><span class="p">(</span><span class="n">_PREFIX</span><span class="p">)</span>
<span class="k">if</span> <span class="n">matchtext</span><span class="o">.</span><span class="n">istitle</span><span class="p">():</span>
<span class="n">case</span> <span class="o">=</span> <span class="s2">&quot;t&quot;</span>
<span class="k">elif</span> <span class="n">matchtext</span><span class="o">.</span><span class="n">isupper</span><span class="p">():</span>
<span class="n">case</span> <span class="o">=</span> <span class="s2">&quot;^&quot;</span>
<span class="k">elif</span> <span class="n">matchtext</span><span class="o">.</span><span class="n">islower</span><span class="p">():</span>
<span class="n">case</span> <span class="o">=</span> <span class="s2">&quot;v&quot;</span>
<span class="n">key</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;#</span><span class="si">{</span><span class="n">obj</span><span class="o">.</span><span class="n">id</span><span class="si">}{</span><span class="n">case</span><span class="si">}</span><span class="s2">&quot;</span>
<span class="n">case</span> <span class="o">=</span> <span class="n">_get_case_ref</span><span class="p">(</span><span class="n">marker_match</span><span class="o">.</span><span class="n">group</span><span class="p">())</span> <span class="k">if</span> <span class="n">case_sensitive</span> <span class="k">else</span> <span class="s2">&quot;&quot;</span>
<span class="c1"># recombine emote with matched text replaced by ref</span>
<span class="n">key</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;#</span><span class="si">{</span><span class="n">obj</span><span class="o">.</span><span class="n">id</span><span class="si">}{</span><span class="n">case</span><span class="si">}</span><span class="s2">&quot;</span>
<span class="n">string</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">head</span><span class="si">}</span><span class="se">{{</span><span class="si">{</span><span class="n">key</span><span class="si">}</span><span class="se">}}</span><span class="si">{</span><span class="n">tail</span><span class="si">}</span><span class="s2">&quot;</span>
<span class="n">mapping</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">obj</span>

View file

@ -139,6 +139,7 @@
<span class="n">recog10</span> <span class="o">=</span> <span class="s2">&quot;Mr Sender&quot;</span>
<span class="n">emote</span> <span class="o">=</span> <span class="s1">&#39;With a flair, /me looks at /first and /colliding sdesc-guy. She says &quot;This is a test.&quot;&#39;</span>
<span class="n">case_emote</span> <span class="o">=</span> <span class="s2">&quot;/Me looks at /first. Then, /me looks at /FIRST, /First and /Colliding twice.&quot;</span>
<span class="n">poss_emote</span> <span class="o">=</span> <span class="s2">&quot;/Me frowns at /first for trying to steal /me&#39;s test.&quot;</span>
<div class="viewcode-block" id="TestRPSystem"><a class="viewcode-back" href="../../../../../api/evennia.contrib.rpg.rpsystem.tests.html#evennia.contrib.rpg.rpsystem.tests.TestRPSystem">[docs]</a><span class="k">class</span> <span class="nc">TestRPSystem</span><span class="p">(</span><span class="n">BaseEvenniaTest</span><span class="p">):</span>
@ -182,18 +183,21 @@
<span class="p">),</span>
<span class="p">)</span></div>
<div class="viewcode-block" id="TestRPSystem.parse_sdescs_and_recogs"><a class="viewcode-back" href="../../../../../api/evennia.contrib.rpg.rpsystem.tests.html#evennia.contrib.rpg.rpsystem.tests.TestRPSystem.parse_sdescs_and_recogs">[docs]</a> <span class="k">def</span> <span class="nf">parse_sdescs_and_recogs</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<div class="viewcode-block" id="TestRPSystem.test_parse_sdescs_and_recogs"><a class="viewcode-back" href="../../../../../api/evennia.contrib.rpg.rpsystem.tests.html#evennia.contrib.rpg.rpsystem.tests.TestRPSystem.test_parse_sdescs_and_recogs">[docs]</a> <span class="k">def</span> <span class="nf">test_parse_sdescs_and_recogs</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="n">speaker</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">speaker</span>
<span class="n">speaker</span><span class="o">.</span><span class="n">sdesc</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">sdesc0</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">receiver1</span><span class="o">.</span><span class="n">sdesc</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">sdesc1</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">receiver2</span><span class="o">.</span><span class="n">sdesc</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">sdesc2</span><span class="p">)</span>
<span class="n">id0</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;#</span><span class="si">{</span><span class="n">speaker</span><span class="o">.</span><span class="n">id</span><span class="si">}</span><span class="s2">&quot;</span>
<span class="n">id1</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;#</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">receiver1</span><span class="o">.</span><span class="n">id</span><span class="si">}</span><span class="s2">&quot;</span>
<span class="n">id2</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;#</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">receiver2</span><span class="o">.</span><span class="n">id</span><span class="si">}</span><span class="s2">&quot;</span>
<span class="n">candidates</span> <span class="o">=</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">receiver1</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">receiver2</span><span class="p">)</span>
<span class="n">result</span> <span class="o">=</span> <span class="p">(</span>
<span class="s1">&#39;With a flair, {#9} looks at {#10} and {#11}. She says &quot;This is a test.&quot;&#39;</span><span class="p">,</span>
<span class="s1">&#39;With a flair, {&#39;</span><span class="o">+</span><span class="n">id0</span><span class="o">+</span><span class="s1">&#39;} looks at {&#39;</span><span class="o">+</span><span class="n">id1</span><span class="o">+</span><span class="s1">&#39;} and {&#39;</span><span class="o">+</span><span class="n">id2</span><span class="o">+</span><span class="s1">&#39;}. She says &quot;This is a test.&quot;&#39;</span><span class="p">,</span>
<span class="p">{</span>
<span class="s2">&quot;#11&quot;</span><span class="p">:</span> <span class="s2">&quot;Another nice colliding sdesc-guy for tests&quot;</span><span class="p">,</span>
<span class="s2">&quot;#10&quot;</span><span class="p">:</span> <span class="s2">&quot;The first receiver of emotes.&quot;</span><span class="p">,</span>
<span class="s2">&quot;#9&quot;</span><span class="p">:</span> <span class="s2">&quot;A nice sender of emotes&quot;</span><span class="p">,</span>
<span class="n">id2</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">receiver2</span><span class="p">,</span>
<span class="n">id1</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">receiver1</span><span class="p">,</span>
<span class="n">id0</span><span class="p">:</span> <span class="n">speaker</span><span class="p">,</span>
<span class="p">},</span>
<span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">assertEqual</span><span class="p">(</span>
@ -206,6 +210,27 @@
<span class="n">result</span><span class="p">,</span>
<span class="p">)</span></div>
<div class="viewcode-block" id="TestRPSystem.test_possessive_selfref"><a class="viewcode-back" href="../../../../../api/evennia.contrib.rpg.rpsystem.tests.html#evennia.contrib.rpg.rpsystem.tests.TestRPSystem.test_possessive_selfref">[docs]</a> <span class="k">def</span> <span class="nf">test_possessive_selfref</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="n">speaker</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">speaker</span>
<span class="n">speaker</span><span class="o">.</span><span class="n">sdesc</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">sdesc0</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">receiver1</span><span class="o">.</span><span class="n">sdesc</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">sdesc1</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">receiver2</span><span class="o">.</span><span class="n">sdesc</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">sdesc2</span><span class="p">)</span>
<span class="n">id0</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;#</span><span class="si">{</span><span class="n">speaker</span><span class="o">.</span><span class="n">id</span><span class="si">}</span><span class="s2">&quot;</span>
<span class="n">id1</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;#</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">receiver1</span><span class="o">.</span><span class="n">id</span><span class="si">}</span><span class="s2">&quot;</span>
<span class="n">id2</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;#</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">receiver2</span><span class="o">.</span><span class="n">id</span><span class="si">}</span><span class="s2">&quot;</span>
<span class="n">candidates</span> <span class="o">=</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">receiver1</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">receiver2</span><span class="p">)</span>
<span class="n">result</span> <span class="o">=</span> <span class="p">(</span>
<span class="s2">&quot;{&quot;</span><span class="o">+</span><span class="n">id0</span><span class="o">+</span><span class="s2">&quot;} frowns at {&quot;</span><span class="o">+</span><span class="n">id1</span><span class="o">+</span><span class="s2">&quot;} for trying to steal {&quot;</span><span class="o">+</span><span class="n">id0</span><span class="o">+</span><span class="s2">&quot;}&#39;s test.&quot;</span><span class="p">,</span>
<span class="p">{</span>
<span class="n">id1</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">receiver1</span><span class="p">,</span>
<span class="n">id0</span><span class="p">:</span> <span class="n">speaker</span><span class="p">,</span>
<span class="p">},</span>
<span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">assertEqual</span><span class="p">(</span>
<span class="n">rpsystem</span><span class="o">.</span><span class="n">parse_sdescs_and_recogs</span><span class="p">(</span><span class="n">speaker</span><span class="p">,</span> <span class="n">candidates</span><span class="p">,</span> <span class="n">poss_emote</span><span class="p">,</span> <span class="n">case_sensitive</span><span class="o">=</span><span class="kc">False</span><span class="p">),</span>
<span class="n">result</span><span class="p">,</span>
<span class="p">)</span></div>
<div class="viewcode-block" id="TestRPSystem.test_get_sdesc"><a class="viewcode-back" href="../../../../../api/evennia.contrib.rpg.rpsystem.tests.html#evennia.contrib.rpg.rpsystem.tests.TestRPSystem.test_get_sdesc">[docs]</a> <span class="k">def</span> <span class="nf">test_get_sdesc</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="n">looker</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">speaker</span> <span class="c1"># Sender</span>
<span class="n">target</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">receiver1</span> <span class="c1"># Receiver1</span>

View file

@ -267,7 +267,7 @@
<span class="p">)</span>
<span class="k">return</span>
<span class="bp">self</span><span class="o">.</span><span class="n">caller</span><span class="o">.</span><span class="n">move_to</span><span class="p">(</span><span class="n">outro_room</span><span class="p">)</span></div></div>
<span class="bp">self</span><span class="o">.</span><span class="n">caller</span><span class="o">.</span><span class="n">move_to</span><span class="p">(</span><span class="n">outro_room</span><span class="p">,</span> <span class="n">move_type</span><span class="o">=</span><span class="s2">&quot;teleport&quot;</span><span class="p">)</span></div></div>
<div class="viewcode-block" id="TutorialRoomCmdSet"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.tutorial_world.rooms.html#evennia.contrib.tutorials.tutorial_world.rooms.TutorialRoomCmdSet">[docs]</a><span class="k">class</span> <span class="nc">TutorialRoomCmdSet</span><span class="p">(</span><span class="n">CmdSet</span><span class="p">):</span>
@ -301,7 +301,7 @@
<span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">cmdset</span><span class="o">.</span><span class="n">add_default</span><span class="p">(</span><span class="n">TutorialRoomCmdSet</span><span class="p">)</span></div>
<div class="viewcode-block" id="TutorialRoom.at_object_receive"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.tutorial_world.rooms.html#evennia.contrib.tutorials.tutorial_world.rooms.TutorialRoom.at_object_receive">[docs]</a> <span class="k">def</span> <span class="nf">at_object_receive</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">new_arrival</span><span class="p">,</span> <span class="n">source_location</span><span class="p">):</span>
<div class="viewcode-block" id="TutorialRoom.at_object_receive"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.tutorial_world.rooms.html#evennia.contrib.tutorials.tutorial_world.rooms.TutorialRoom.at_object_receive">[docs]</a> <span class="k">def</span> <span class="nf">at_object_receive</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">new_arrival</span><span class="p">,</span> <span class="n">source_location</span><span class="p">,</span> <span class="n">move_type</span><span class="o">=</span><span class="s2">&quot;move&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> When an object enter a tutorial room we tell other objects in</span>
<span class="sd"> the room about it by trying to call a hook on them. The Mob object</span>
@ -493,7 +493,7 @@
<span class="s2">&quot;the account.&quot;</span>
<span class="p">)</span></div>
<div class="viewcode-block" id="IntroRoom.at_object_receive"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.tutorial_world.rooms.html#evennia.contrib.tutorials.tutorial_world.rooms.IntroRoom.at_object_receive">[docs]</a> <span class="k">def</span> <span class="nf">at_object_receive</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">character</span><span class="p">,</span> <span class="n">source_location</span><span class="p">):</span>
<div class="viewcode-block" id="IntroRoom.at_object_receive"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.tutorial_world.rooms.html#evennia.contrib.tutorials.tutorial_world.rooms.IntroRoom.at_object_receive">[docs]</a> <span class="k">def</span> <span class="nf">at_object_receive</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">character</span><span class="p">,</span> <span class="n">source_location</span><span class="p">,</span> <span class="n">move_type</span><span class="o">=</span><span class="s2">&quot;move&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Assign properties on characters</span>
<span class="sd"> &quot;&quot;&quot;</span>
@ -565,7 +565,7 @@
<span class="c1"># Move to the east room.</span>
<span class="n">eexit</span> <span class="o">=</span> <span class="n">search_object</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">obj</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">east_exit</span><span class="p">)</span>
<span class="k">if</span> <span class="n">eexit</span><span class="p">:</span>
<span class="n">caller</span><span class="o">.</span><span class="n">move_to</span><span class="p">(</span><span class="n">eexit</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
<span class="n">caller</span><span class="o">.</span><span class="n">move_to</span><span class="p">(</span><span class="n">eexit</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">move_type</span><span class="o">=</span><span class="s2">&quot;traverse&quot;</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">caller</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="s2">&quot;No east exit was found for this room. Contact an admin.&quot;</span><span class="p">)</span>
<span class="k">return</span>
@ -612,7 +612,7 @@
<span class="c1"># Move to the west room.</span>
<span class="n">wexit</span> <span class="o">=</span> <span class="n">search_object</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">obj</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">west_exit</span><span class="p">)</span>
<span class="k">if</span> <span class="n">wexit</span><span class="p">:</span>
<span class="n">caller</span><span class="o">.</span><span class="n">move_to</span><span class="p">(</span><span class="n">wexit</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
<span class="n">caller</span><span class="o">.</span><span class="n">move_to</span><span class="p">(</span><span class="n">wexit</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">move_type</span><span class="o">=</span><span class="s2">&quot;traverse&quot;</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">caller</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="s2">&quot;No west exit was found for this room. Contact an admin.&quot;</span><span class="p">)</span>
<span class="k">return</span>
@ -700,7 +700,7 @@
<span class="n">fall_exit</span> <span class="o">=</span> <span class="n">search_object</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">obj</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">fall_exit</span><span class="p">)</span>
<span class="k">if</span> <span class="n">fall_exit</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">caller</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="s2">&quot;|r</span><span class="si">%s</span><span class="s2">|n&quot;</span> <span class="o">%</span> <span class="n">FALL_MESSAGE</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">caller</span><span class="o">.</span><span class="n">move_to</span><span class="p">(</span><span class="n">fall_exit</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">quiet</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">caller</span><span class="o">.</span><span class="n">move_to</span><span class="p">(</span><span class="n">fall_exit</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">quiet</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">move_type</span><span class="o">=</span><span class="s2">&quot;fall&quot;</span><span class="p">)</span>
<span class="c1"># inform others on the bridge</span>
<span class="bp">self</span><span class="o">.</span><span class="n">obj</span><span class="o">.</span><span class="n">msg_contents</span><span class="p">(</span>
<span class="s2">&quot;A plank gives way under </span><span class="si">%s</span><span class="s2">&#39;s feet and &quot;</span>
@ -812,7 +812,7 @@
<span class="c1"># send a message most of the time</span>
<span class="bp">self</span><span class="o">.</span><span class="n">msg_contents</span><span class="p">(</span><span class="s2">&quot;|w</span><span class="si">%s</span><span class="s2">|n&quot;</span> <span class="o">%</span> <span class="n">random</span><span class="o">.</span><span class="n">choice</span><span class="p">(</span><span class="n">BRIDGE_WEATHER</span><span class="p">))</span></div>
<div class="viewcode-block" id="BridgeRoom.at_object_receive"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.tutorial_world.rooms.html#evennia.contrib.tutorials.tutorial_world.rooms.BridgeRoom.at_object_receive">[docs]</a> <span class="k">def</span> <span class="nf">at_object_receive</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">character</span><span class="p">,</span> <span class="n">source_location</span><span class="p">):</span>
<div class="viewcode-block" id="BridgeRoom.at_object_receive"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.tutorial_world.rooms.html#evennia.contrib.tutorials.tutorial_world.rooms.BridgeRoom.at_object_receive">[docs]</a> <span class="k">def</span> <span class="nf">at_object_receive</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">character</span><span class="p">,</span> <span class="n">source_location</span><span class="p">,</span> <span class="n">move_type</span><span class="o">=</span><span class="s2">&quot;move&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> This hook is called by the engine whenever the player is moved</span>
<span class="sd"> into this room.</span>
@ -838,7 +838,7 @@
<span class="n">character</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">tutorial_bridge_position</span> <span class="o">=</span> <span class="mi">0</span>
<span class="n">character</span><span class="o">.</span><span class="n">execute_cmd</span><span class="p">(</span><span class="s2">&quot;look&quot;</span><span class="p">)</span></div>
<div class="viewcode-block" id="BridgeRoom.at_object_leave"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.tutorial_world.rooms.html#evennia.contrib.tutorials.tutorial_world.rooms.BridgeRoom.at_object_leave">[docs]</a> <span class="k">def</span> <span class="nf">at_object_leave</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">character</span><span class="p">,</span> <span class="n">target_location</span><span class="p">):</span>
<div class="viewcode-block" id="BridgeRoom.at_object_leave"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.tutorial_world.rooms.html#evennia.contrib.tutorials.tutorial_world.rooms.BridgeRoom.at_object_leave">[docs]</a> <span class="k">def</span> <span class="nf">at_object_leave</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">character</span><span class="p">,</span> <span class="n">target_location</span><span class="p">,</span> <span class="n">move_type</span><span class="o">=</span><span class="s2">&quot;move&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> This is triggered when the player leaves the bridge room.</span>
<span class="sd"> &quot;&quot;&quot;</span>
@ -1080,7 +1080,7 @@
<span class="c1"># put players in darkness</span>
<span class="n">char</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="s2">&quot;The room is completely dark.&quot;</span><span class="p">)</span></div>
<div class="viewcode-block" id="DarkRoom.at_object_receive"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.tutorial_world.rooms.html#evennia.contrib.tutorials.tutorial_world.rooms.DarkRoom.at_object_receive">[docs]</a> <span class="k">def</span> <span class="nf">at_object_receive</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">obj</span><span class="p">,</span> <span class="n">source_location</span><span class="p">):</span>
<div class="viewcode-block" id="DarkRoom.at_object_receive"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.tutorial_world.rooms.html#evennia.contrib.tutorials.tutorial_world.rooms.DarkRoom.at_object_receive">[docs]</a> <span class="k">def</span> <span class="nf">at_object_receive</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">obj</span><span class="p">,</span> <span class="n">source_location</span><span class="p">,</span> <span class="n">move_type</span><span class="o">=</span><span class="s2">&quot;move&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Called when an object enters the room.</span>
<span class="sd"> &quot;&quot;&quot;</span>
@ -1090,7 +1090,7 @@
<span class="c1"># in case the new guy carries light with them</span>
<span class="bp">self</span><span class="o">.</span><span class="n">check_light_state</span><span class="p">()</span></div>
<div class="viewcode-block" id="DarkRoom.at_object_leave"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.tutorial_world.rooms.html#evennia.contrib.tutorials.tutorial_world.rooms.DarkRoom.at_object_leave">[docs]</a> <span class="k">def</span> <span class="nf">at_object_leave</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">obj</span><span class="p">,</span> <span class="n">target_location</span><span class="p">):</span>
<div class="viewcode-block" id="DarkRoom.at_object_leave"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.tutorial_world.rooms.html#evennia.contrib.tutorials.tutorial_world.rooms.DarkRoom.at_object_leave">[docs]</a> <span class="k">def</span> <span class="nf">at_object_leave</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">obj</span><span class="p">,</span> <span class="n">target_location</span><span class="p">,</span> <span class="n">move_type</span><span class="o">=</span><span class="s2">&quot;move&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> In case people leave with the light, we make sure to clear the</span>
<span class="sd"> DarkCmdSet if necessary. This also works if they are</span>
@ -1145,7 +1145,7 @@
<span class="bp">self</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">failure_teleport_msg</span> <span class="o">=</span> <span class="s2">&quot;You fail!&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">failure_teleport_to</span> <span class="o">=</span> <span class="s2">&quot;dark cell&quot;</span></div>
<div class="viewcode-block" id="TeleportRoom.at_object_receive"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.tutorial_world.rooms.html#evennia.contrib.tutorials.tutorial_world.rooms.TeleportRoom.at_object_receive">[docs]</a> <span class="k">def</span> <span class="nf">at_object_receive</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">character</span><span class="p">,</span> <span class="n">source_location</span><span class="p">):</span>
<div class="viewcode-block" id="TeleportRoom.at_object_receive"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.tutorial_world.rooms.html#evennia.contrib.tutorials.tutorial_world.rooms.TeleportRoom.at_object_receive">[docs]</a> <span class="k">def</span> <span class="nf">at_object_receive</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">character</span><span class="p">,</span> <span class="n">source_location</span><span class="p">,</span> <span class="n">move_type</span><span class="o">=</span><span class="s2">&quot;move&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> This hook is called by the engine whenever the player is moved into</span>
<span class="sd"> this room.</span>
@ -1172,7 +1172,7 @@
<span class="k">else</span><span class="p">:</span>
<span class="n">character</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">failure_teleport_msg</span><span class="p">)</span>
<span class="c1"># teleport quietly to the new place</span>
<span class="n">character</span><span class="o">.</span><span class="n">move_to</span><span class="p">(</span><span class="n">results</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">quiet</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">move_hooks</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
<span class="n">character</span><span class="o">.</span><span class="n">move_to</span><span class="p">(</span><span class="n">results</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">quiet</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">move_hooks</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">move_type</span><span class="o">=</span><span class="s2">&quot;teleport&quot;</span><span class="p">)</span>
<span class="c1"># we have to call this manually since we turn off move_hooks</span>
<span class="c1"># - this is necessary to make the target dark room aware of an</span>
<span class="c1"># already carried light.</span>
@ -1209,7 +1209,7 @@
<span class="s2">&quot;character.&quot;</span>
<span class="p">)</span></div>
<div class="viewcode-block" id="OutroRoom.at_object_receive"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.tutorial_world.rooms.html#evennia.contrib.tutorials.tutorial_world.rooms.OutroRoom.at_object_receive">[docs]</a> <span class="k">def</span> <span class="nf">at_object_receive</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">character</span><span class="p">,</span> <span class="n">source_location</span><span class="p">):</span>
<div class="viewcode-block" id="OutroRoom.at_object_receive"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.tutorial_world.rooms.html#evennia.contrib.tutorials.tutorial_world.rooms.OutroRoom.at_object_receive">[docs]</a> <span class="k">def</span> <span class="nf">at_object_receive</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">character</span><span class="p">,</span> <span class="n">source_location</span><span class="p">,</span> <span class="n">move_type</span><span class="o">=</span><span class="s2">&quot;move&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Do cleanup.</span>
<span class="sd"> &quot;&quot;&quot;</span>
@ -1225,7 +1225,7 @@
<span class="n">obj</span><span class="o">.</span><span class="n">delete</span><span class="p">()</span>
<span class="n">character</span><span class="o">.</span><span class="n">tags</span><span class="o">.</span><span class="n">clear</span><span class="p">(</span><span class="n">category</span><span class="o">=</span><span class="s2">&quot;tutorial_world&quot;</span><span class="p">)</span></div>
<div class="viewcode-block" id="OutroRoom.at_object_leave"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.tutorial_world.rooms.html#evennia.contrib.tutorials.tutorial_world.rooms.OutroRoom.at_object_leave">[docs]</a> <span class="k">def</span> <span class="nf">at_object_leave</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">character</span><span class="p">,</span> <span class="n">destination</span><span class="p">):</span>
<div class="viewcode-block" id="OutroRoom.at_object_leave"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.tutorial_world.rooms.html#evennia.contrib.tutorials.tutorial_world.rooms.OutroRoom.at_object_leave">[docs]</a> <span class="k">def</span> <span class="nf">at_object_leave</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">character</span><span class="p">,</span> <span class="n">destination</span><span class="p">,</span> <span class="n">move_type</span><span class="o">=</span><span class="s2">&quot;move&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<span class="k">if</span> <span class="n">character</span><span class="o">.</span><span class="n">account</span><span class="p">:</span>
<span class="n">character</span><span class="o">.</span><span class="n">account</span><span class="o">.</span><span class="n">execute_cmd</span><span class="p">(</span><span class="s2">&quot;unquell&quot;</span><span class="p">)</span></div></div>
</pre></div>

View file

@ -202,7 +202,7 @@
<div class="viewcode-block" id="TestTutorialWorldRooms.test_bridgeroom"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.tutorial_world.tests.html#evennia.contrib.tutorials.tutorial_world.tests.TestTutorialWorldRooms.test_bridgeroom">[docs]</a> <span class="k">def</span> <span class="nf">test_bridgeroom</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="n">room</span> <span class="o">=</span> <span class="n">create_object</span><span class="p">(</span><span class="n">tutrooms</span><span class="o">.</span><span class="n">BridgeRoom</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="s2">&quot;bridgeroom&quot;</span><span class="p">)</span>
<span class="n">room</span><span class="o">.</span><span class="n">update_weather</span><span class="p">()</span>
<span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="o">.</span><span class="n">move_to</span><span class="p">(</span><span class="n">room</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="o">.</span><span class="n">move_to</span><span class="p">(</span><span class="n">room</span><span class="p">,</span> <span class="n">move_type</span><span class="o">=</span><span class="s2">&quot;teleport&quot;</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span>
<span class="n">tutrooms</span><span class="o">.</span><span class="n">CmdBridgeHelp</span><span class="p">(),</span>
<span class="s2">&quot;&quot;</span><span class="p">,</span>
@ -223,7 +223,7 @@
<div class="viewcode-block" id="TestTutorialWorldRooms.test_darkroom"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.tutorial_world.tests.html#evennia.contrib.tutorials.tutorial_world.tests.TestTutorialWorldRooms.test_darkroom">[docs]</a> <span class="k">def</span> <span class="nf">test_darkroom</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="n">room</span> <span class="o">=</span> <span class="n">create_object</span><span class="p">(</span><span class="n">tutrooms</span><span class="o">.</span><span class="n">DarkRoom</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="s2">&quot;darkroom&quot;</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="o">.</span><span class="n">move_to</span><span class="p">(</span><span class="n">room</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">char1</span><span class="o">.</span><span class="n">move_to</span><span class="p">(</span><span class="n">room</span><span class="p">,</span> <span class="n">move_type</span><span class="o">=</span><span class="s2">&quot;teleport&quot;</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">call</span><span class="p">(</span><span class="n">tutrooms</span><span class="o">.</span><span class="n">CmdDarkHelp</span><span class="p">(),</span> <span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="s2">&quot;Can&#39;t help you until&quot;</span><span class="p">)</span></div>
<div class="viewcode-block" id="TestTutorialWorldRooms.test_teleportroom"><a class="viewcode-back" href="../../../../../api/evennia.contrib.tutorials.tutorial_world.tests.html#evennia.contrib.tutorials.tutorial_world.tests.TestTutorialWorldRooms.test_teleportroom">[docs]</a> <span class="k">def</span> <span class="nf">test_teleportroom</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>

View file

@ -878,6 +878,7 @@
<span class="n">use_destination</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
<span class="n">to_none</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
<span class="n">move_hooks</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
<span class="n">move_type</span><span class="o">=</span><span class="s2">&quot;move&quot;</span><span class="p">,</span>
<span class="o">**</span><span class="n">kwargs</span><span class="p">,</span>
<span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span>
@ -899,6 +900,11 @@
<span class="sd"> move_hooks (bool): If False, turn off the calling of move-related hooks</span>
<span class="sd"> (at_pre/post_move etc) with quiet=True, this is as quiet a move</span>
<span class="sd"> as can be done.</span>
<span class="sd"> move_type (str): The &quot;kind of move&quot; being performed, such as &quot;teleport&quot;, &quot;traverse&quot;,</span>
<span class="sd"> &quot;get&quot;, &quot;give&quot;, or &quot;drop&quot;. The value can be arbitrary. By default, it only affects</span>
<span class="sd"> the text message generated by announce_move_to and announce_move_from by defining</span>
<span class="sd"> their {&quot;type&quot;: move_type} for outgoing text. This can be used for altering</span>
<span class="sd"> messages and/or overloaded hook behaviors.</span>
<span class="sd"> Keyword Args:</span>
<span class="sd"> Passed on to announce_move_to and announce_move_from hooks.</span>
@ -948,7 +954,7 @@
<span class="c1"># Before the move, call eventual pre-commands.</span>
<span class="k">if</span> <span class="n">move_hooks</span><span class="p">:</span>
<span class="k">try</span><span class="p">:</span>
<span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">at_pre_move</span><span class="p">(</span><span class="n">destination</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">at_pre_move</span><span class="p">(</span><span class="n">destination</span><span class="p">,</span> <span class="n">move_type</span><span class="o">=</span><span class="n">move_type</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<span class="k">return</span> <span class="kc">False</span>
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">err</span><span class="p">:</span>
<span class="n">logerr</span><span class="p">(</span><span class="n">errtxt</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">err</span><span class="o">=</span><span class="s2">&quot;at_pre_move()&quot;</span><span class="p">),</span> <span class="n">err</span><span class="p">)</span>
@ -960,7 +966,7 @@
<span class="c1"># Call hook on source location</span>
<span class="k">if</span> <span class="n">move_hooks</span> <span class="ow">and</span> <span class="n">source_location</span><span class="p">:</span>
<span class="k">try</span><span class="p">:</span>
<span class="n">source_location</span><span class="o">.</span><span class="n">at_object_leave</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">destination</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
<span class="n">source_location</span><span class="o">.</span><span class="n">at_object_leave</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">destination</span><span class="p">,</span> <span class="n">move_type</span><span class="o">=</span><span class="n">move_type</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">err</span><span class="p">:</span>
<span class="n">logerr</span><span class="p">(</span><span class="n">errtxt</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">err</span><span class="o">=</span><span class="s2">&quot;at_object_leave()&quot;</span><span class="p">),</span> <span class="n">err</span><span class="p">)</span>
<span class="k">return</span> <span class="kc">False</span>
@ -968,7 +974,7 @@
<span class="k">if</span> <span class="ow">not</span> <span class="n">quiet</span><span class="p">:</span>
<span class="c1"># tell the old room we are leaving</span>
<span class="k">try</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">announce_move_from</span><span class="p">(</span><span class="n">destination</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">announce_move_from</span><span class="p">(</span><span class="n">destination</span><span class="p">,</span> <span class="n">move_type</span><span class="o">=</span><span class="n">move_type</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">err</span><span class="p">:</span>
<span class="n">logerr</span><span class="p">(</span><span class="n">errtxt</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">err</span><span class="o">=</span><span class="s2">&quot;announce_move_from()&quot;</span><span class="p">),</span> <span class="n">err</span><span class="p">)</span>
<span class="k">return</span> <span class="kc">False</span>
@ -983,7 +989,7 @@
<span class="k">if</span> <span class="ow">not</span> <span class="n">quiet</span><span class="p">:</span>
<span class="c1"># Tell the new room we are there.</span>
<span class="k">try</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">announce_move_to</span><span class="p">(</span><span class="n">source_location</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">announce_move_to</span><span class="p">(</span><span class="n">source_location</span><span class="p">,</span> <span class="n">move_type</span><span class="o">=</span><span class="n">move_type</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">err</span><span class="p">:</span>
<span class="n">logerr</span><span class="p">(</span><span class="n">errtxt</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">err</span><span class="o">=</span><span class="s2">&quot;announce_move_to()&quot;</span><span class="p">),</span> <span class="n">err</span><span class="p">)</span>
<span class="k">return</span> <span class="kc">False</span>
@ -992,7 +998,7 @@
<span class="c1"># Perform eventual extra commands on the receiving location</span>
<span class="c1"># (the object has already arrived at this point)</span>
<span class="k">try</span><span class="p">:</span>
<span class="n">destination</span><span class="o">.</span><span class="n">at_object_receive</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">source_location</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
<span class="n">destination</span><span class="o">.</span><span class="n">at_object_receive</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">source_location</span><span class="p">,</span> <span class="n">move_type</span><span class="o">=</span><span class="n">move_type</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">err</span><span class="p">:</span>
<span class="n">logerr</span><span class="p">(</span><span class="n">errtxt</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">err</span><span class="o">=</span><span class="s2">&quot;at_object_receive()&quot;</span><span class="p">),</span> <span class="n">err</span><span class="p">)</span>
<span class="k">return</span> <span class="kc">False</span>
@ -1001,7 +1007,7 @@
<span class="c1"># (usually calling &#39;look&#39;)</span>
<span class="k">if</span> <span class="n">move_hooks</span><span class="p">:</span>
<span class="k">try</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">at_post_move</span><span class="p">(</span><span class="n">source_location</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">at_post_move</span><span class="p">(</span><span class="n">source_location</span><span class="p">,</span> <span class="n">move_type</span><span class="o">=</span><span class="n">move_type</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">err</span><span class="p">:</span>
<span class="n">logerr</span><span class="p">(</span><span class="n">errtxt</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">err</span><span class="o">=</span><span class="s2">&quot;at_post_move&quot;</span><span class="p">),</span> <span class="n">err</span><span class="p">)</span>
<span class="k">return</span> <span class="kc">False</span>
@ -1062,7 +1068,7 @@
<span class="c1"># Famous last words: The account should never see this.</span>
<span class="n">string</span> <span class="o">=</span> <span class="s2">&quot;This place should not exist ... contact an admin.&quot;</span>
<span class="n">obj</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="n">string</span><span class="p">))</span>
<span class="n">obj</span><span class="o">.</span><span class="n">move_to</span><span class="p">(</span><span class="n">home</span><span class="p">)</span></div>
<span class="n">obj</span><span class="o">.</span><span class="n">move_to</span><span class="p">(</span><span class="n">home</span><span class="p">,</span> <span class="n">move_type</span><span class="o">=</span><span class="s2">&quot;teleport&quot;</span><span class="p">)</span></div>
<div class="viewcode-block" id="DefaultObject.create"><a class="viewcode-back" href="../../../api/evennia.objects.objects.html#evennia.objects.objects.DefaultObject.create">[docs]</a> <span class="nd">@classmethod</span>
<span class="k">def</span> <span class="nf">create</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">account</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
@ -1514,13 +1520,17 @@
<span class="c1"># hooks called when moving the object</span>
<div class="viewcode-block" id="DefaultObject.at_pre_move"><a class="viewcode-back" href="../../../api/evennia.objects.objects.html#evennia.objects.objects.DefaultObject.at_pre_move">[docs]</a> <span class="k">def</span> <span class="nf">at_pre_move</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">destination</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<div class="viewcode-block" id="DefaultObject.at_pre_move"><a class="viewcode-back" href="../../../api/evennia.objects.objects.html#evennia.objects.objects.DefaultObject.at_pre_move">[docs]</a> <span class="k">def</span> <span class="nf">at_pre_move</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">destination</span><span class="p">,</span> <span class="n">move_type</span><span class="o">=</span><span class="s2">&quot;move&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Called just before starting to move this object to</span>
<span class="sd"> destination.</span>
<span class="sd"> Args:</span>
<span class="sd"> destination (Object): The object we are moving to</span>
<span class="sd"> move_type (str): The type of move. &quot;give&quot;, &quot;traverse&quot;, etc.</span>
<span class="sd"> This is an arbitrary string provided to obj.move_to().</span>
<span class="sd"> Useful for altering messages or altering logic depending</span>
<span class="sd"> on the kind of movement.</span>
<span class="sd"> **kwargs (dict): Arbitrary, optional arguments for users</span>
<span class="sd"> overriding the call (unused by default).</span>
@ -1538,7 +1548,7 @@
<span class="c1"># deprecated alias</span>
<span class="n">at_before_move</span> <span class="o">=</span> <span class="n">at_pre_move</span>
<div class="viewcode-block" id="DefaultObject.announce_move_from"><a class="viewcode-back" href="../../../api/evennia.objects.objects.html#evennia.objects.objects.DefaultObject.announce_move_from">[docs]</a> <span class="k">def</span> <span class="nf">announce_move_from</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">destination</span><span class="p">,</span> <span class="n">msg</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">mapping</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<div class="viewcode-block" id="DefaultObject.announce_move_from"><a class="viewcode-back" href="../../../api/evennia.objects.objects.html#evennia.objects.objects.DefaultObject.announce_move_from">[docs]</a> <span class="k">def</span> <span class="nf">announce_move_from</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">destination</span><span class="p">,</span> <span class="n">msg</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">mapping</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">move_type</span><span class="o">=</span><span class="s2">&quot;move&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Called if the move is to be announced. This is</span>
<span class="sd"> called while we are still standing in the old</span>
@ -1548,6 +1558,10 @@
<span class="sd"> destination (Object): The place we are going to.</span>
<span class="sd"> msg (str, optional): a replacement message.</span>
<span class="sd"> mapping (dict, optional): additional mapping objects.</span>
<span class="sd"> move_type (str): The type of move. &quot;give&quot;, &quot;traverse&quot;, etc.</span>
<span class="sd"> This is an arbitrary string provided to obj.move_to().</span>
<span class="sd"> Useful for altering messages or altering logic depending</span>
<span class="sd"> on the kind of movement.</span>
<span class="sd"> **kwargs (dict): Arbitrary, optional arguments for users</span>
<span class="sd"> overriding the call (unused by default).</span>
@ -1583,9 +1597,9 @@
<span class="p">}</span>
<span class="p">)</span>
<span class="n">location</span><span class="o">.</span><span class="n">msg_contents</span><span class="p">(</span><span class="n">string</span><span class="p">,</span> <span class="n">exclude</span><span class="o">=</span><span class="p">(</span><span class="bp">self</span><span class="p">,),</span> <span class="n">from_obj</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">mapping</span><span class="o">=</span><span class="n">mapping</span><span class="p">)</span></div>
<span class="n">location</span><span class="o">.</span><span class="n">msg_contents</span><span class="p">((</span><span class="n">string</span><span class="p">,</span> <span class="p">{</span><span class="s2">&quot;type&quot;</span><span class="p">:</span> <span class="n">move_type</span><span class="p">}),</span> <span class="n">exclude</span><span class="o">=</span><span class="p">(</span><span class="bp">self</span><span class="p">,),</span> <span class="n">from_obj</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">mapping</span><span class="o">=</span><span class="n">mapping</span><span class="p">)</span></div>
<div class="viewcode-block" id="DefaultObject.announce_move_to"><a class="viewcode-back" href="../../../api/evennia.objects.objects.html#evennia.objects.objects.DefaultObject.announce_move_to">[docs]</a> <span class="k">def</span> <span class="nf">announce_move_to</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">source_location</span><span class="p">,</span> <span class="n">msg</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">mapping</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<div class="viewcode-block" id="DefaultObject.announce_move_to"><a class="viewcode-back" href="../../../api/evennia.objects.objects.html#evennia.objects.objects.DefaultObject.announce_move_to">[docs]</a> <span class="k">def</span> <span class="nf">announce_move_to</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">source_location</span><span class="p">,</span> <span class="n">msg</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">mapping</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">move_type</span><span class="o">=</span><span class="s2">&quot;move&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Called after the move if the move was not quiet. At this point</span>
<span class="sd"> we are standing in the new location.</span>
@ -1594,6 +1608,10 @@
<span class="sd"> source_location (Object): The place we came from</span>
<span class="sd"> msg (str, optional): the replacement message if location.</span>
<span class="sd"> mapping (dict, optional): additional mapping objects.</span>
<span class="sd"> move_type (str): The type of move. &quot;give&quot;, &quot;traverse&quot;, etc.</span>
<span class="sd"> This is an arbitrary string provided to obj.move_to().</span>
<span class="sd"> Useful for altering messages or altering logic depending</span>
<span class="sd"> on the kind of movement.</span>
<span class="sd"> **kwargs (dict): Arbitrary, optional arguments for users</span>
<span class="sd"> overriding the call (unused by default).</span>
@ -1647,9 +1665,9 @@
<span class="p">}</span>
<span class="p">)</span>
<span class="n">destination</span><span class="o">.</span><span class="n">msg_contents</span><span class="p">(</span><span class="n">string</span><span class="p">,</span> <span class="n">exclude</span><span class="o">=</span><span class="p">(</span><span class="bp">self</span><span class="p">,),</span> <span class="n">from_obj</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">mapping</span><span class="o">=</span><span class="n">mapping</span><span class="p">)</span></div>
<span class="n">destination</span><span class="o">.</span><span class="n">msg_contents</span><span class="p">((</span><span class="n">string</span><span class="p">,</span> <span class="p">{</span><span class="s2">&quot;type&quot;</span><span class="p">:</span> <span class="n">move_type</span><span class="p">}),</span> <span class="n">exclude</span><span class="o">=</span><span class="p">(</span><span class="bp">self</span><span class="p">,),</span> <span class="n">from_obj</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">mapping</span><span class="o">=</span><span class="n">mapping</span><span class="p">)</span></div>
<div class="viewcode-block" id="DefaultObject.at_post_move"><a class="viewcode-back" href="../../../api/evennia.objects.objects.html#evennia.objects.objects.DefaultObject.at_post_move">[docs]</a> <span class="k">def</span> <span class="nf">at_post_move</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">source_location</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<div class="viewcode-block" id="DefaultObject.at_post_move"><a class="viewcode-back" href="../../../api/evennia.objects.objects.html#evennia.objects.objects.DefaultObject.at_post_move">[docs]</a> <span class="k">def</span> <span class="nf">at_post_move</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">source_location</span><span class="p">,</span> <span class="n">move_type</span><span class="o">=</span><span class="s2">&quot;move&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Called after move has completed, regardless of quiet mode or</span>
<span class="sd"> not. Allows changes to the object due to the location it is</span>
@ -1657,6 +1675,10 @@
<span class="sd"> Args:</span>
<span class="sd"> source_location (Object): Wwhere we came from. This may be `None`.</span>
<span class="sd"> move_type (str): The type of move. &quot;give&quot;, &quot;traverse&quot;, etc.</span>
<span class="sd"> This is an arbitrary string provided to obj.move_to().</span>
<span class="sd"> Useful for altering messages or altering logic depending</span>
<span class="sd"> on the kind of movement.</span>
<span class="sd"> **kwargs (dict): Arbitrary, optional arguments for users</span>
<span class="sd"> overriding the call (unused by default).</span>
@ -1666,20 +1688,24 @@
<span class="c1"># deprecated</span>
<span class="n">at_after_move</span> <span class="o">=</span> <span class="n">at_post_move</span>
<div class="viewcode-block" id="DefaultObject.at_object_leave"><a class="viewcode-back" href="../../../api/evennia.objects.objects.html#evennia.objects.objects.DefaultObject.at_object_leave">[docs]</a> <span class="k">def</span> <span class="nf">at_object_leave</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">moved_obj</span><span class="p">,</span> <span class="n">target_location</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<div class="viewcode-block" id="DefaultObject.at_object_leave"><a class="viewcode-back" href="../../../api/evennia.objects.objects.html#evennia.objects.objects.DefaultObject.at_object_leave">[docs]</a> <span class="k">def</span> <span class="nf">at_object_leave</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">moved_obj</span><span class="p">,</span> <span class="n">target_location</span><span class="p">,</span> <span class="n">move_type</span><span class="o">=</span><span class="s2">&quot;move&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Called just before an object leaves from inside this object</span>
<span class="sd"> Args:</span>
<span class="sd"> moved_obj (Object): The object leaving</span>
<span class="sd"> target_location (Object): Where `moved_obj` is going.</span>
<span class="sd"> move_type (str): The type of move. &quot;give&quot;, &quot;traverse&quot;, etc.</span>
<span class="sd"> This is an arbitrary string provided to obj.move_to().</span>
<span class="sd"> Useful for altering messages or altering logic depending</span>
<span class="sd"> on the kind of movement.</span>
<span class="sd"> **kwargs (dict): Arbitrary, optional arguments for users</span>
<span class="sd"> overriding the call (unused by default).</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">pass</span></div>
<div class="viewcode-block" id="DefaultObject.at_object_receive"><a class="viewcode-back" href="../../../api/evennia.objects.objects.html#evennia.objects.objects.DefaultObject.at_object_receive">[docs]</a> <span class="k">def</span> <span class="nf">at_object_receive</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">moved_obj</span><span class="p">,</span> <span class="n">source_location</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<div class="viewcode-block" id="DefaultObject.at_object_receive"><a class="viewcode-back" href="../../../api/evennia.objects.objects.html#evennia.objects.objects.DefaultObject.at_object_receive">[docs]</a> <span class="k">def</span> <span class="nf">at_object_receive</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">moved_obj</span><span class="p">,</span> <span class="n">source_location</span><span class="p">,</span> <span class="n">move_type</span><span class="o">=</span><span class="s2">&quot;move&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Called after an object has been moved into this object.</span>
@ -1687,6 +1713,10 @@
<span class="sd"> moved_obj (Object): The object moved into this one</span>
<span class="sd"> source_location (Object): Where `moved_object` came from.</span>
<span class="sd"> Note that this could be `None`.</span>
<span class="sd"> move_type (str): The type of move. &quot;give&quot;, &quot;traverse&quot;, etc.</span>
<span class="sd"> This is an arbitrary string provided to obj.move_to().</span>
<span class="sd"> Useful for altering messages or altering logic depending</span>
<span class="sd"> on the kind of movement.</span>
<span class="sd"> **kwargs (dict): Arbitrary, optional arguments for users</span>
<span class="sd"> overriding the call (unused by default).</span>
@ -2423,7 +2453,7 @@
<span class="c1"># add the default cmdset</span>
<span class="bp">self</span><span class="o">.</span><span class="n">cmdset</span><span class="o">.</span><span class="n">add_default</span><span class="p">(</span><span class="n">settings</span><span class="o">.</span><span class="n">CMDSET_CHARACTER</span><span class="p">,</span> <span class="n">persistent</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span></div>
<div class="viewcode-block" id="DefaultCharacter.at_post_move"><a class="viewcode-back" href="../../../api/evennia.objects.objects.html#evennia.objects.objects.DefaultCharacter.at_post_move">[docs]</a> <span class="k">def</span> <span class="nf">at_post_move</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">source_location</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<div class="viewcode-block" id="DefaultCharacter.at_post_move"><a class="viewcode-back" href="../../../api/evennia.objects.objects.html#evennia.objects.objects.DefaultCharacter.at_post_move">[docs]</a> <span class="k">def</span> <span class="nf">at_post_move</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">source_location</span><span class="p">,</span> <span class="n">move_type</span><span class="o">=</span><span class="s2">&quot;move&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> We make sure to look around after a move.</span>
@ -2690,9 +2720,9 @@
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">obj</span><span class="o">.</span><span class="n">destination</span><span class="p">:</span>
<span class="k">return</span> <span class="s2">&quot; (exit to </span><span class="si">%s</span><span class="s2">)&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">obj</span><span class="o">.</span><span class="n">destination</span><span class="o">.</span><span class="n">get_display_name</span><span class="p">(</span><span class="n">caller</span><span class="p">)</span>
<span class="k">return</span> <span class="s2">&quot; (exit to </span><span class="si">%s</span><span class="s2">)&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">obj</span><span class="o">.</span><span class="n">destination</span><span class="o">.</span><span class="n">get_display_name</span><span class="p">(</span><span class="n">caller</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="k">return</span> <span class="s2">&quot; (</span><span class="si">%s</span><span class="s2">)&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">obj</span><span class="o">.</span><span class="n">get_display_name</span><span class="p">(</span><span class="n">caller</span><span class="p">)</span></div></div>
<span class="k">return</span> <span class="s2">&quot; (</span><span class="si">%s</span><span class="s2">)&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">obj</span><span class="o">.</span><span class="n">get_display_name</span><span class="p">(</span><span class="n">caller</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span></div></div>
<span class="c1">#</span>
@ -2901,7 +2931,7 @@
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">source_location</span> <span class="o">=</span> <span class="n">traversing_object</span><span class="o">.</span><span class="n">location</span>
<span class="k">if</span> <span class="n">traversing_object</span><span class="o">.</span><span class="n">move_to</span><span class="p">(</span><span class="n">target_location</span><span class="p">):</span>
<span class="k">if</span> <span class="n">traversing_object</span><span class="o">.</span><span class="n">move_to</span><span class="p">(</span><span class="n">target_location</span><span class="p">,</span> <span class="n">move_type</span><span class="o">=</span><span class="s2">&quot;traverse&quot;</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">at_post_traverse</span><span class="p">(</span><span class="n">traversing_object</span><span class="p">,</span> <span class="n">source_location</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">err_traverse</span><span class="p">:</span>

View file

@ -46,7 +46,6 @@
<span class="sd">&quot;&quot;&quot;</span>
<span class="kn">import</span> <span class="nn">urllib.request</span><span class="o">,</span> <span class="nn">urllib.parse</span><span class="o">,</span> <span class="nn">urllib.error</span>
<span class="kn">import</span> <span class="nn">platform</span>
<span class="kn">import</span> <span class="nn">warnings</span>
<span class="kn">import</span> <span class="nn">django</span>
<span class="kn">from</span> <span class="nn">django.conf</span> <span class="kn">import</span> <span class="n">settings</span>