Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
老鱼er
et
提交
c8c66bc3
E
et
项目概览
老鱼er
/
et
与 Fork 源项目一致
从无法访问的项目Fork
通知
10
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
E
et
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
c8c66bc3
编写于
11月 13, 2018
作者:
T
tanghai
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
重构了ConsoleComponent
上级
c282113d
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
68 addition
and
50 deletion
+68
-50
Server/Model/Component/ConsoleComponent.cs
Server/Model/Component/ConsoleComponent.cs
+36
-43
Server/Model/Component/ReplComponent.cs
Server/Model/Component/ReplComponent.cs
+32
-7
未找到文件。
Server/Model/Component/ConsoleComponent.cs
浏览文件 @
c8c66bc3
...
...
@@ -40,6 +40,41 @@ namespace ETModel
line
=
line
.
Trim
();
if
(
this
.
Mode
!=
""
)
{
bool
isExited
=
true
;
switch
(
this
.
Mode
)
{
case
ConsoleMode
.
Repl
:
{
ReplComponent
replComponent
=
this
.
GetComponent
<
ReplComponent
>();
if
(
replComponent
==
null
)
{
Console
.
WriteLine
(
$"no command:
{
line
}
!"
);
break
;
}
try
{
isExited
=
await
replComponent
.
Run
(
line
,
this
.
CancellationTokenSource
.
Token
);
}
catch
(
Exception
e
)
{
Console
.
WriteLine
(
e
);
}
break
;
}
}
if
(
isExited
)
{
this
.
Mode
=
""
;
}
continue
;
}
switch
(
line
)
{
case
"reload"
:
...
...
@@ -63,50 +98,8 @@ namespace ETModel
Console
.
WriteLine
(
e
);
}
break
;
case
"exit"
:
switch
(
this
.
Mode
)
{
case
ConsoleMode
.
Repl
:
this
.
RemoveComponent
<
ReplComponent
>();
break
;
}
this
.
Mode
=
ConsoleMode
.
None
;
break
;
case
"reset"
:
switch
(
this
.
Mode
)
{
case
ConsoleMode
.
Repl
:
this
.
RemoveComponent
<
ReplComponent
>();
this
.
AddComponent
<
ReplComponent
>();
break
;
}
break
;
default
:
switch
(
this
.
Mode
)
{
case
ConsoleMode
.
Repl
:
{
ReplComponent
replComponent
=
this
.
GetComponent
<
ReplComponent
>();
if
(
replComponent
==
null
)
{
Console
.
WriteLine
(
$"no command:
{
line
}
!"
);
break
;
}
try
{
await
replComponent
.
Run
(
line
,
this
.
CancellationTokenSource
.
Token
);
}
catch
(
Exception
e
)
{
Console
.
WriteLine
(
e
);
}
break
;
}
}
Console
.
WriteLine
(
$"no such command:
{
line
}
"
);
break
;
}
}
...
...
Server/Model/Component/ReplComponent.cs
浏览文件 @
c8c66bc3
...
...
@@ -22,15 +22,40 @@ namespace ETModel
public
ScriptOptions
ScriptOptions
;
public
ScriptState
ScriptState
;
public
async
ETTask
Run
(
string
line
,
CancellationToken
cancellationToken
)
public
async
ETTask
<
bool
>
Run
(
string
line
,
CancellationToken
cancellationToken
)
{
if
(
this
.
ScriptState
==
null
)
switch
(
line
)
{
this
.
ScriptState
=
await
CSharpScript
.
RunAsync
(
line
,
this
.
ScriptOptions
,
cancellationToken
:
cancellationToken
);
}
else
{
this
.
ScriptState
=
await
this
.
ScriptState
.
ContinueWithAsync
(
line
,
cancellationToken
:
cancellationToken
);
case
"exit"
:
{
this
.
Entity
.
RemoveComponent
<
ReplComponent
>();
return
true
;
}
case
"reset"
:
{
this
.
ScriptState
=
null
;
return
false
;
}
default
:
{
try
{
if
(
this
.
ScriptState
==
null
)
{
this
.
ScriptState
=
await
CSharpScript
.
RunAsync
(
line
,
this
.
ScriptOptions
,
cancellationToken
:
cancellationToken
);
}
else
{
this
.
ScriptState
=
await
this
.
ScriptState
.
ContinueWithAsync
(
line
,
cancellationToken
:
cancellationToken
);
}
}
catch
(
Exception
e
)
{
Console
.
WriteLine
(
e
);
}
return
false
;
}
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录