-
Notifications
You must be signed in to change notification settings - Fork 3
/
CLI.cs
96 lines (86 loc) · 2.64 KB
/
CLI.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
// Eternal Lands Bot
// Copyright (C) 2006 Artem Makhutov
// artem@makhutov.org
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
using System;
namespace cs_elbot
{
/// <summary>
/// description of CLI.
/// </summary>
public class CLI
{
private TCPWrapper TheTCPWrapper;
private BasicCommunication.MessageParser TheMessageParser;
public CLI(TCPWrapper MyTCPWrapper, BasicCommunication.MessageParser MyMessageParser)
{
this.TheTCPWrapper = MyTCPWrapper;
this.TheMessageParser = MyMessageParser;
string VersionLine = "| Version: ";
VersionLine = VersionLine.Insert(VersionLine.Length,Settings.Version);
VersionLine = VersionLine.PadRight(49);
VersionLine = VersionLine + "|";
}
public bool Interprete(string Command)
{
Command = Command.Trim();
switch (Command.ToLower())
{
case "login":
TheTCPWrapper.ReconnectToServer();
break;
case "logout":
TheTCPWrapper.DisconnectFromServer();
break;
case "quit":
TheMessageParser.FakePM("Console:\\>","#say ### GOING DOWN FOR MAINTENANCE ###");
TheMessageParser.FakePM("Console:\\>","#say #gm ### GOING DOWN FOR MAINTENANCE ###");
System.Environment.Exit(0);
break;
default:
if (Command.Length>0)
{
if (Command[0] == '#')
{
TheMessageParser.FakePM("Console:\\>",Command);
}
}
break;
}
return true;
}
public void DoLoop()
{
string ConsoleInput;
bool CLIresult=true;
// if (Settings.AutoConnect==true)
// {
// TheTCPWrapper.ReconnectToServer();
// }
TheTCPWrapper.ReconnectToServer();
string input = "";
while ((input = Console.ReadLine()) != "quit")
// while (true)
{
System.Console.ForegroundColor = System.ConsoleColor.Gray;
System.Console.Write("CLI " + Settings.Loginname +" :>");
ConsoleInput = System.Console.ReadLine();
System.Console.ResetColor();
CLIresult = Interprete(ConsoleInput);
}
}
}
}