Иконка ресурса

FREE CommandExampleCs : 1.0.0 1.0.0

Нет прав для скачивания
C#:
---
layout: forums
title: 'Array issue with command commands for python and c#'
breadcrumbs:
 - "Plugin Development": "/forums/plugin-development.105/"
 - "Rust Development": "/forums/rust-development.4/"
---
<div class="titleBar">
    <h1>
        <a href="{{ '/threads/array-issue-with-command-commands-for-python-and-c.7921/' | prepend: site.baseurl }}">Array issue with command commands for python and c#</a>
    </h1>
    <p id="pageDescription" class="muted">Discussion in '<a href="{{ '/forums/rust-development.4/' | prepend: site.baseurl }}">Rust Development</a>' started by <a class="username"
            dir="auto">BasKoning</a>, <a href="{{ '/threads/array-issue-with-command-commands-for-python-and-c.7921/' | prepend: site.baseurl }}"><span class="DateTime"
                title="Apr 22, 2015 at 2:45 PM">Apr 22, 2015</span></a>.
    </p>
</div>
<ol class="messageList" id="messageList">
    <li id="post-81451" class="message" data-author="BasKoning">
        <div class="messageUserInfo">
            <div class="messageUserBlock">
                <div class="avatarHolder">
                    <span class="helper"></span>
                    <a class="avatar Avm" data-avatarhtml="true"><img src="{{ '/assets/styles/oxide/logo.og.png' | prepend: site.baseurl }}" width="96" height="96" alt="BasKoning" /></a>
                </div>
                <h3 class="userText">
                    <a class="username" dir="auto">BasKoning</a>
                </h3>
                <span class="arrow"></span>
            </div>
        </div>
        <div class="messageInfo primaryContent">
            <div class="messageContent">
                <article>
                    <blockquote class="messageText SelectQuoteContainer ugc baseHtml">Consider these two small plugins, that demonstrate the use of console and chat commands with or without any
                        arguments.<br />
                        <br /> CommandExampleCs.cs=<br />
                        <div class="bbCodeBlock bbCodeCode">
                            <div class="type">Code:</div>
                            {% raw %}<pre>using System;namespace Oxide.Plugins
{
    [Info(&quot; Command Example CS&quot;, &quot;Bas&quot;, &quot;0.1.0&quot;, ResourceId = 99681)]
    public class CommandExampleCs : RustPlugin
    {
        [ChatCommand(&quot;checkcs&quot;)]
        void cmdChatCheckCs(BasePlayer player, string cmd, string[] args)
        {
            Console.WriteLine(string.Format(&quot;player.displayName={0}&quot;, player.displayName));
            Console.WriteLine(string.Format(&quot;player.userID{0}&quot;, player.userID));
            Console.WriteLine(string.Format(&quot;cmd={0}&quot;, cmd));
            Console.WriteLine(string.Format(&quot;Number of arguments={0}&quot;, args.Length));
            foreach(string s in args){
                Console.WriteLine( s );
            }
            Console.WriteLine(&quot;&quot;);
        }
        [ConsoleCommand(&quot;checkcs&quot;)]
        void cmdConsoleCheckCs(ConsoleSystem.Arg args)
        {
            if (args.HasArgs())
            {
                Console.WriteLine(string.Format(&quot;Number of arguments={0}&quot;, args.Args.Length));
                foreach(string s in args.Args){
                    Console.WriteLine( s );
                }
                Console.WriteLine(&quot;&quot;);
            }
            else
            {
                Console.WriteLine(string.Format(&quot;Number of arguments=0&quot;));
            }
        }
    }
}</pre>{% endraw %}
                        </div>CommandExamplePy.py=<br />
                        <div class="bbCodeBlock bbCodeCode">
                            <div class="type">Code:</div>
                            {% raw %}<pre>import Systemclass CommandExamplePy:
    def __init__(self):
        self.Title = 'Command Example Py'
        self.Author = 'Bas'
        self.Version = V(0, 1, 0)
        self.ResourceId = 44823    def Init(self):
        #works fine:
        command.AddChatCommand('checkpy', self.Plugin, 'cmdChatCheckPy')
        #but this will not compile due to an 'array index is out of range'
        #command.AddConsoleCommand('checkpy', self.Plugin,  'cmdConsoleCheckPy')    def cmdChatCheckPy(self, player, cmd, args):
        print &quot;player.displayName=&quot; + player.displayName
        print &quot;player.userID=&quot; +str(player.userID)
        print &quot;cmd=&quot; +cmd
        print &quot;number of arguments=&quot;+str(len(args))
        print str(args)    def cmdConsoleCheckPy(self, args):
        print dir(args)</pre>{% endraw %}
                        </div>The problem is: in python AddConsoleCommand seems to malfunction due to an &#039;array index is out of range&#039;?<br />
                        <br /> Or am I doing something wrong here? <div class="messageTextEndMarker">&nbsp;</div>
                    </blockquote>
                </article>
            </div>
            <div class="messageMeta ToggleTriggerAnchor">
                <div class="privateControls">
                    <span class="item muted">
                        <span class="authorEnd"><a class="username author" dir="auto">BasKoning</a>,</span>
                        <a href="{{ '/threads/array-issue-with-command-commands-for-python-and-c.7921/' | prepend: site.baseurl }}" title="Permalink" class="datePermalink"><span class="DateTime"
                                title="Apr 22, 2015 at 2:45 PM">Apr 22, 2015</span></a>
                    </span>
                </div>
                <div class="publicControls">
                    <a href="{{ '/threads/array-issue-with-command-commands-for-python-and-c.7921/' | prepend: site.baseurl }}" title="Permalink"
                        class="item muted postNumber hashPermalink OverlayTrigger" data-href="posts/81451/permalink">#1</a>
                </div>
            </div>
        </div>
    </li>
    <li id="post-81460" class="message" data-author="Hatemail">
        <div class="messageUserInfo">
            <div class="messageUserBlock">
                <div class="avatarHolder">
                    <span class="helper"></span>
                    <a class="avatar Avm" data-avatarhtml="true"><img src="{{ '/assets/styles/oxide/logo.og.png' | prepend: site.baseurl }}" width="96" height="96" alt="Hatemail" /></a>
                </div>
                <h3 class="userText">
                    <a class="username" dir="auto">Hatemail</a>
                </h3>
                <span class="arrow"></span>
            </div>
        </div>
        <div class="messageInfo primaryContent">
            <div class="messageContent">
                <article>
                    <blockquote class="messageText SelectQuoteContainer ugc baseHtml">Correct your doing something wrong, all console commands must have a parent.<br />
                        <br /> Change:<br /> command.AddConsoleCommand(&#039;checkpy&#039;, self.Plugin, &#039;cmdConsoleCheckPy&#039;)<br />
                        <br /> To:<br /> command.AddConsoleCommand(&#039;example.checkpy&#039;, self.Plugin, &#039;cmdConsoleCheckPy&#039;) <div class="messageTextEndMarker">&nbsp;</div>
                    </blockquote>
                </article>
            </div>
            <div class="messageMeta ToggleTriggerAnchor">
                <div class="privateControls">
                    <span class="item muted">
                        <span class="authorEnd"><a class="username author" dir="auto">Hatemail</a>,</span>
                        <a href="{{ '/threads/array-issue-with-command-commands-for-python-and-c.7921/#post-81460' | prepend: site.baseurl }}" title="Permalink" class="datePermalink"><span
                                class="DateTime" title="Apr 22, 2015 at 3:32 PM">Apr 22, 2015</span></a>
                    </span>
                </div>
                <div class="publicControls">
                    <a href="{{ '/threads/array-issue-with-command-commands-for-python-and-c.7921/#post-81460' | prepend: site.baseurl }}" title="Permalink"
                        class="item muted postNumber hashPermalink OverlayTrigger" data-href="posts/81460/permalink">#2</a>
                </div>
            </div>
        </div>
    </li>
    <li id="post-81466" class="message" data-author="BasKoning">
        <div class="messageUserInfo">
            <div class="messageUserBlock">
                <div class="avatarHolder">
                    <span class="helper"></span>
                    <a class="avatar Avm" data-avatarhtml="true"><img src="{{ '/assets/styles/oxide/logo.og.png' | prepend: site.baseurl }}" width="96" height="96" alt="BasKoning" /></a>
                </div>
                <h3 class="userText">
                    <a class="username" dir="auto">BasKoning</a>
                </h3>
                <span class="arrow"></span>
            </div>
        </div>
        <div class="messageInfo primaryContent">
            <div class="messageContent">
                <article>
                    <blockquote class="messageText SelectQuoteContainer ugc baseHtml">Yes, that works as in: the error is gone, but it does not work as in the dir of the args is never printed. Still
                        something is going wrong...<br />
                        <br /> I have this now:<br />
                        <div class="bbCodeBlock bbCodeCode">
                            <div class="type">Code:</div>
                            {% raw %}<pre>import Systemclass ConsoleCommandExamplePy:
    def __init__(self):
        self.Title = 'Console Command Example Py'
        self.Author = 'Bas'
        self.Version = V(0, 1, 0)
        self.ResourceId = 44823
      
    def Init(self):
        command.AddConsoleCommand('ConsoleCommandExamplePy.checkpy', self.Plugin,  'cmdConsoleCheckPy')    def cmdConsoleCheckPy(self, args):
        print 'Inside cmdConsoleCheckPy'</pre>{% endraw %}
                        </div>
                        <div class="messageTextEndMarker">&nbsp;</div>
                    </blockquote>
                </article>
            </div>
            <div class="editDate">Last edited by a moderator: <span class="DateTime" title="Apr 23, 2015 at 6:58 AM">Apr 23, 2015</span>
            </div>
            <div class="messageMeta ToggleTriggerAnchor">
                <div class="privateControls">
                    <span class="item muted">
                        <span class="authorEnd"><a class="username author" dir="auto">BasKoning</a>,</span>
                        <a href="{{ '/threads/array-issue-with-command-commands-for-python-and-c.7921/#post-81466' | prepend: site.baseurl }}" title="Permalink" class="datePermalink"><span
                                class="DateTime" title="Apr 22, 2015 at 4:09 PM">Apr 22, 2015</span></a>
                    </span>
                </div>
                <div class="publicControls">
                    <a href="{{ '/threads/array-issue-with-command-commands-for-python-and-c.7921/#post-81466' | prepend: site.baseurl }}" title="Permalink"
                        class="item muted postNumber hashPermalink OverlayTrigger" data-href="posts/81466/permalink">#3</a>
                </div>
            </div>
        </div>
    </li>
    <li id="post-81474" class="message" data-author="Hatemail">
        <div class="messageUserInfo">
            <div class="messageUserBlock">
                <div class="avatarHolder">
                    <span class="helper"></span>
                    <a class="avatar Avm" data-avatarhtml="true"><img src="{{ '/assets/styles/oxide/logo.og.png' | prepend: site.baseurl }}" width="96" height="96" alt="Hatemail" /></a>
                </div>
                <h3 class="userText">
                    <a class="username" dir="auto">Hatemail</a>
                </h3>
                <span class="arrow"></span>
            </div>
        </div>
        <div class="messageInfo primaryContent">
            <div class="messageContent">
                <article>
                    <blockquote class="messageText SelectQuoteContainer ugc baseHtml">You&#039;ll need to wait for someone who has experience with python to help you more. <div
                            class="messageTextEndMarker">&nbsp;</div>
                    </blockquote>
                </article>
            </div>
            <div class="messageMeta ToggleTriggerAnchor">
                <div class="privateControls">
                    <span class="item muted">
                        <span class="authorEnd"><a class="username author" dir="auto">Hatemail</a>,</span>
                        <a href="{{ '/threads/array-issue-with-command-commands-for-python-and-c.7921/#post-81474' | prepend: site.baseurl }}" title="Permalink" class="datePermalink"><span
                                class="DateTime" title="Apr 22, 2015 at 5:00 PM">Apr 22, 2015</span></a>
                    </span>
                </div>
                <div class="publicControls">
                    <a href="{{ '/threads/array-issue-with-command-commands-for-python-and-c.7921/#post-81474' | prepend: site.baseurl }}" title="Permalink"
                        class="item muted postNumber hashPermalink OverlayTrigger" data-href="posts/81474/permalink">#4</a>
                </div>
            </div>
        </div>
    </li>
    <li id="post-81675" class="message" data-author="Nogrod">
        <div class="messageUserInfo">
            <div class="messageUserBlock">
                <div class="avatarHolder">
                    <span class="helper"></span>
                    <a class="avatar Avm" data-avatarhtml="true"><img src="{{ '/assets/styles/oxide/logo.og.png' | prepend: site.baseurl }}" width="96" height="96" alt="Nogrod" /></a>
                </div>
                <h3 class="userText">
                    <a class="username" dir="auto">Nogrod</a>
                </h3>
                <span class="arrow"></span>
            </div>
        </div>
        <div class="messageInfo primaryContent">
            <div class="messageContent">
                <article>
                    <blockquote class="messageText SelectQuoteContainer ugc baseHtml">the parameter is from rust type ConsoleSystem+Args, so you can display with:<br />
                        <div class="bbCodeBlock bbCodeCode">
                            <div class="type">Code:</div>
                            {% raw %}<pre>def cmdConsoleCheckPy(self, arg):
    print arg.Args</pre>{% endraw %}
                        </div>and use functions like HasArgs([count]) and Get[Type](argNum) eg: arg.HasArgs(1) or arg.GetString(0) <div class="messageTextEndMarker">&nbsp;</div>
                    </blockquote>
                </article>
            </div>
            <div class="messageMeta ToggleTriggerAnchor">
                <div class="privateControls">
                    <span class="item muted">
                        <span class="authorEnd"><a class="username author" dir="auto">Nogrod</a>,</span>
                        <a href="{{ '/threads/array-issue-with-command-commands-for-python-and-c.7921/#post-81675' | prepend: site.baseurl }}" title="Permalink" class="datePermalink"><span
                                class="DateTime" title="Apr 23, 2015 at 10:37 AM">Apr 23, 2015</span></a>
                    </span>
                </div>
                <div class="publicControls">
                    <a href="{{ '/threads/array-issue-with-command-commands-for-python-and-c.7921/#post-81675' | prepend: site.baseurl }}" title="Permalink"
                        class="item muted postNumber hashPermalink OverlayTrigger" data-href="posts/81675/permalink">#5</a>
                </div>
            </div>
        </div>
    </li>
    <li id="post-82168" class="message" data-author="BasKoning">
        <div class="messageUserInfo">
            <div class="messageUserBlock">
                <div class="avatarHolder">
                    <span class="helper"></span>
                    <a class="avatar Avm" data-avatarhtml="true"><img src="{{ '/assets/styles/oxide/logo.og.png' | prepend: site.baseurl }}" width="96" height="96" alt="BasKoning" /></a>
                </div>
                <h3 class="userText">
                    <a class="username" dir="auto">BasKoning</a>
                </h3>
                <span class="arrow"></span>
            </div>
        </div>
        <div class="messageInfo primaryContent">
            <div class="messageContent">
                <article>
                    <blockquote class="messageText SelectQuoteContainer ugc baseHtml">Tx: SkinN õ.Õ&#039;.|. for the help on this<br />
                        <br /> In python, the <i>wierd </i>thing is: you have to type the complete command, including class name, in the console. Then it will work.<br /> So to have cmdConsoleCheckPy
                        triggered, you would have to type <b>PyConsole.checkpy</b> into the console.<br />
                        <br /> PyConsole.py<br />
                        <div class="bbCodeBlock bbCodeCode">
                            <div class="type">Code:</div>
                            {% raw %}<pre>class PyConsole:
    def __init__(self):
        self.Title = 'PyConsole'
        self.Author = 'Bas'
        self.Version = V(0, 1, 0)   
    def Init(self):
        command.AddConsoleCommand('PyConsole.checkpy', self.Plugin, 'cmdConsoleCheckPy')
    def cmdConsoleCheckPy(self,args):
        msg='PyConsole'
        for arg in args.Args:
            msg=msg+&quot; &quot;+arg
        print msg</pre>{% endraw %}
                        </div>But the wierd thing is: in the c# plugin I made that does the same: I only have to type the command name itself, not the classname.<br /> So I would only have to type
                        <b>checkcs </b>into the console to trigger cmdConsoleCheckCs.<br />
                        <br /> CsConsole.cs<br />
                        <div class="bbCodeBlock bbCodeCode">
                            <div class="type">Code:</div>
                            {% raw %}<pre>using System;namespace Oxide.Plugins{
    [Info(&quot;CsConsole&quot;, &quot;Bas&quot;, &quot;0.1.0&quot;)]
    public class CsConsole : RustPlugin {
        [ConsoleCommand(&quot;checkcs&quot;)]
        void cmdConsoleCheckCs(ConsoleSystem.Arg args) {
            if (args.HasArgs()) {
                Console.WriteLine(string.Format(&quot;Number of arguments={0}&quot;, args.Args.Length));
                foreach(string s in args.Args) {
                    Console.WriteLine( s );
                }
            }
            else {
                Console.WriteLine(string.Format(&quot;Number of arguments=0&quot;));
            }
            Console.WriteLine(&quot;&quot;);
        }
    }
}</pre>{% endraw %}
                        </div>
                        <div class="messageTextEndMarker">&nbsp;</div>
                    </blockquote>
                </article>
            </div>
            <div class="messageMeta ToggleTriggerAnchor">
                <div class="privateControls">
                    <span class="item muted">
                        <span class="authorEnd"><a class="username author" dir="auto">BasKoning</a>,</span>
                        <a href="{{ '/threads/array-issue-with-command-commands-for-python-and-c.7921/#post-82168' | prepend: site.baseurl }}" title="Permalink" class="datePermalink"><span
                                class="DateTime" title="Apr 24, 2015 at 7:20 PM">Apr 24, 2015</span></a>
                    </span>
                </div>
                <div class="publicControls">
                    <a href="{{ '/threads/array-issue-with-command-commands-for-python-and-c.7921/#post-82168' | prepend: site.baseurl }}" title="Permalink"
                        class="item muted postNumber hashPermalink OverlayTrigger" data-href="posts/82168/permalink">#6</a>
                </div>
            </div>
        </div>
    </li>
</ol>

Автор
15FPS
Скачиваний
0
Просмотры
1
Первый выпуск
Обновление
Оценка
0.00 звёзд 0 оценок
Сверху