evennia/docs/0.x/Banning.html
2023-12-20 19:10:09 +01:00

270 lines
No EOL
16 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<title>Banning &#8212; Evennia 0.9.5 documentation</title>
<link rel="stylesheet" href="_static/nature.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<script id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script>
<script src="_static/language_data.js"></script>
<script async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script type="text/x-mathjax-config">MathJax.Hub.Config({"tex2jax": {"processClass": "tex2jax_process|mathjax_process|math|output_area"}})</script>
<link rel="shortcut icon" href="_static/favicon.ico"/>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
</head><body>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">Evennia 0.9.5</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">Banning</a></li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section class="tex2jax_ignore mathjax_ignore" id="banning">
<h1>Banning<a class="headerlink" href="#banning" title="Permalink to this headline"></a></h1>
<p>Whether due to abuse, blatant breaking of your rules, or some other reason, you will eventually find
no other recourse but to kick out a particularly troublesome player. The default command set has
admin tools to handle this, primarily <code class="docutils literal notranslate"><span class="pre">ban</span></code>, <code class="docutils literal notranslate"><span class="pre">unban</span></code>, and <code class="docutils literal notranslate"><span class="pre">boot</span></code>.</p>
<section id="creating-a-ban">
<h2>Creating a ban<a class="headerlink" href="#creating-a-ban" title="Permalink to this headline"></a></h2>
<p>Say we have a troublesome player “YouSuck” - this is a person that refuses common courtesy - an
abusive
and spammy account that is clearly created by some bored internet hooligan only to cause grief. You
have tried to be nice. Now you just want this troll gone.</p>
<section id="name-ban">
<h3>Name ban<a class="headerlink" href="#name-ban" title="Permalink to this headline"></a></h3>
<p>The easiest recourse is to block the account YouSuck from ever connecting again.</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span> ban YouSuck
</pre></div>
</div>
<p>This will lock the name YouSuck (as well as yousuck and any other capitalization combination), and
next time they try to log in with this name the server will not let them!</p>
<p>You can also give a reason so you remember later why this was a good thing (the banned account will
never see this)</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span> ban YouSuck:This is just a troll.
</pre></div>
</div>
<p>If you are sure this is just a spam account, you might even consider deleting the player account
outright:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span> account/delete YouSuck
</pre></div>
</div>
<p>Generally, banning the name is the easier and safer way to stop the use of an account if you
change your mind you can always remove the block later whereas a deletion is permanent.</p>
</section>
<section id="ip-ban">
<h3>IP ban<a class="headerlink" href="#ip-ban" title="Permalink to this headline"></a></h3>
<p>Just because you block YouSucks name might not mean the trolling human behind that account gives
up. They can just create a new account YouSuckMore and be back at it. One way to make things harder
for them is to tell the server to not allow connections from their particular IP address.</p>
<p>First, when the offending account is online, check which IP address they use. This you can do with
the <code class="docutils literal notranslate"><span class="pre">who</span></code> command, which will show you something like this:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span> Account Name On for Idle Room Cmds Host
YouSuckMore 01:12 2m 22 212 237.333.0.223
</pre></div>
</div>
<p>The “Host” bit is the IP address from which the account is connecting. Use this to define the ban
instead of the name:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span> ban 237.333.0.223
</pre></div>
</div>
<p>This will stop YouSuckMore connecting from their computer. Note however that IP address might change
easily - either due to how the players Internet Service Provider operates or by the user simply
changing computers. You can make a more general ban by putting asterisks <code class="docutils literal notranslate"><span class="pre">*</span></code> as wildcards for the
groups of three digits in the address. So if you figure out that !YouSuckMore mainly connects from
237.333.0.223, 237.333.0.225, and 237.333.0.256 (only changes in their subnet), it might be an idea
to put down a ban like this to include any number in that subnet:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span> ban 237.333.0.*
</pre></div>
</div>
<p>You should combine the IP ban with a name-ban too of course, so the account YouSuckMore is truly
locked regardless of where they connect from.</p>
<p>Be careful with too general IP bans however (more asterisks above). If you are unlucky you could be
blocking out innocent players who just happen to connect from the same subnet as the offender.</p>
</section>
</section>
<section id="booting">
<h2>Booting<a class="headerlink" href="#booting" title="Permalink to this headline"></a></h2>
<p>YouSuck is not really noticing all this banning yet though - and wont until having logged out and
trying to log back in again. Lets help the troll along.</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span> boot YouSuck
</pre></div>
</div>
<p>Good riddance. You can give a reason for booting too (to be echoed to the player before getting
kicked out).</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span> boot YouSuck:Go troll somewhere else.
</pre></div>
</div>
<section id="lifting-a-ban">
<h3>Lifting a ban<a class="headerlink" href="#lifting-a-ban" title="Permalink to this headline"></a></h3>
<p>Use the <code class="docutils literal notranslate"><span class="pre">unban</span></code> (or <code class="docutils literal notranslate"><span class="pre">ban</span></code>) command without any arguments and you will see a list of all currently
active bans:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>Active bans
id name/ip date reason
1 yousuck Fri Jan 3 23:00:22 2020 This is just a Troll.
2 237.333.0.* Fri Jan 3 23:01:03 2020 YouSuck&#39;s IP.
</pre></div>
</div>
<p>Use the <code class="docutils literal notranslate"><span class="pre">id</span></code> from this list to find out which ban to lift.</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span> unban 2
Cleared ban 2: 237.333.0.*
</pre></div>
</div>
</section>
</section>
<section id="summary-of-abuse-handling-tools">
<h2>Summary of abuse-handling tools<a class="headerlink" href="#summary-of-abuse-handling-tools" title="Permalink to this headline"></a></h2>
<p>Below are other useful commands for dealing with annoying players.</p>
<ul class="simple">
<li><p><strong>who</strong> (as admin) Find the IP of a account. Note that one account can be connected to from
multiple IPs depending on what you allow in your settings.</p></li>
<li><p><strong>examine/account thomas</strong> Get all details about an account. You can also use <code class="docutils literal notranslate"><span class="pre">*thomas</span></code> to get
the account. If not given, you will get the <em>Object</em> thomas if it exists in the same location, which
is not what you want in this case.</p></li>
<li><p><strong>boot thomas</strong> Boot all sessions of the given account name.</p></li>
<li><p><strong>boot 23</strong> Boot one specific client session/IP by its unique id.</p></li>
<li><p><strong>ban</strong> List all bans (listed with ids)</p></li>
<li><p><strong>ban thomas</strong> Ban the user with the given account name</p></li>
<li><p><strong>ban/ip <code class="docutils literal notranslate"><span class="pre">134.233.2.111</span></code></strong> Ban by IP</p></li>
<li><p><strong>ban/ip <code class="docutils literal notranslate"><span class="pre">134.233.2.*</span></code></strong> Widen IP ban</p></li>
<li><p><strong>ban/ip <code class="docutils literal notranslate"><span class="pre">134.233.*.*</span></code></strong> Even wider IP ban</p></li>
<li><p><strong>unban 34</strong> Remove ban with id #34</p></li>
<li><p><strong>cboot mychannel = thomas</strong> Boot a subscriber from a channel you control</p></li>
<li><p><strong>clock mychannel = control:perm(Admin);listen:all();send:all()</strong> Fine control of access to
your channel using <a class="reference internal" href="Locks.html"><span class="doc std std-doc">lock definitions</span></a>.</p></li>
</ul>
<p>Locking a specific command (like <code class="docutils literal notranslate"><span class="pre">page</span></code>) is accomplished like so:</p>
<ol class="simple">
<li><p>Examine the source of the command. <a class="reference external" href="https://github.com/evennia/evennia/blob/master/evennia/commands/default/comms.py#L686">The default <code class="docutils literal notranslate"><span class="pre">page</span></code> command class</a> has the lock
string <strong>“cmd:not pperm(page_banned)”</strong>. This means that unless the player has the permission
“page_banned” they can use this command. You can assign any lock string to allow finer customization
in your commands. You might look for the value of an <a class="reference internal" href="Attributes.html"><span class="doc std std-doc">Attribute</span></a> or <a class="reference internal" href="Tags.html"><span class="doc std std-doc">Tag</span></a>, your
current location etc.</p></li>
<li><p><strong>perm/account thomas = page_banned</strong> Give the account the permission which causes (in this
case) the lock to fail.</p></li>
</ol>
<ul class="simple">
<li><p><strong>perm/del/account thomas = page_banned</strong> Remove the given permission</p></li>
<li><p><strong>tel thomas = jail</strong> Teleport a player to a specified location or #dbref</p></li>
<li><p><strong>type thomas = FlowerPot</strong> Turn an annoying player into a flower pot (assuming you have a
<code class="docutils literal notranslate"><span class="pre">FlowerPot</span></code> typeclass ready)</p></li>
<li><p><strong>userpassword thomas = fooBarFoo</strong> Change a users password</p></li>
<li><p><strong>account/delete thomas</strong> Delete a player account (not recommended, use <strong>ban</strong> instead)</p></li>
<li><p><strong>server</strong> Show server statistics, such as CPU load, memory usage, and how many objects are
cached</p></li>
<li><p><strong>time</strong> Gives server uptime, runtime, etc</p></li>
<li><p><strong>reload</strong> Reloads the server without disconnecting anyone</p></li>
<li><p><strong>reset</strong> Restarts the server, kicking all connections</p></li>
<li><p><strong>shutdown</strong> Stops the server cold without it auto-starting again</p></li>
<li><p><strong>py</strong> Executes raw Python code, allows for direct inspection of the database and account
objects on the fly. For advanced users.</p></li>
</ul>
<p><strong>Useful Tip:</strong> <code class="docutils literal notranslate"><span class="pre">evennia</span> <span class="pre">changepassword</span> <span class="pre">&lt;username&gt;</span></code> entered into the command prompt will reset the
password of any account, including the superuser or admin accounts. This is a feature of Django.</p>
</section>
</section>
<div class="clearer"></div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="index.html">
<img class="logo" src="_static/evennia_logo.png" alt="Logo"/>
</a></p>
<div id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script>$('#searchbox').show(0);</script>
<p><h3><a href="index.html">Table of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">Banning</a><ul>
<li><a class="reference internal" href="#creating-a-ban">Creating a ban</a><ul>
<li><a class="reference internal" href="#name-ban">Name ban</a></li>
<li><a class="reference internal" href="#ip-ban">IP ban</a></li>
</ul>
</li>
<li><a class="reference internal" href="#booting">Booting</a><ul>
<li><a class="reference internal" href="#lifting-a-ban">Lifting a ban</a></li>
</ul>
</li>
<li><a class="reference internal" href="#summary-of-abuse-handling-tools">Summary of abuse-handling tools</a></li>
</ul>
</li>
</ul>
<div role="note" aria-label="source link">
<!--h3>This Page</h3-->
<ul class="this-page-menu">
<li><a href="_sources/Banning.md.txt"
rel="nofollow">Show Page Source</a></li>
</ul>
</div><h3>Links</h3>
<ul>
<li><a href="https://www.evennia.com">Home page</a> </li>
<li><a href="https://github.com/evennia/evennia">Evennia Github</a> </li>
<li><a href="http://games.evennia.com">Game Index</a> </li>
<li><a href="http://webchat.freenode.net/?channels=evennia&uio=MT1mYWxzZSY5PXRydWUmMTE9MTk1JjEyPXRydWUbb">IRC</a> -
<a href="https://discord.gg/NecFePw">Discord</a> -
<a href="https://groups.google.com/forum/#%21forum/evennia">Forums</a>
</li>
<li><a href="http://evennia.blogspot.com/">Evennia Dev blog</a> </li>
</ul>
<h3>Versions</h3>
<ul>
<li><a href="../1.0-dev/index.html">1.0-dev (develop branch)</a></li>
<li><a href="Banning.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">Evennia 0.9.5</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">Banning</a></li>
</ul>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
</div>
</body>
</html>