本文整理汇总了C++中command_reader类的典型用法代码示例。如果您正苦于以下问题:C++ command_reader类的具体用法?C++ command_reader怎么用?C++ command_reader使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了command_reader类的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: provider_name
/*
* /wcreate -
*
* Creates a new world, and if requested, loads it into the current world
* list.
*
* Permissions:
* - command.world.wcreate
* Needed to execute the command.
*/
void
c_wcreate::execute (player *pl, command_reader& reader)
{
if (!pl->perm ("command.world.wcreate"))
return;
reader.add_option ("load", "l");
reader.add_option ("width", "w", true, true);
reader.add_option ("depth", "d", true, true);
reader.add_option ("provider", "p", true, true);
reader.add_option ("generator", "g", true, true);
reader.add_option ("seed", "s", true, true);
if (!reader.parse (this, pl))
return;
if (reader.no_args () || reader.arg_count () > 1)
{ this->show_summary (pl); return; }
//----
/*
* Parse arguments:
*/
// world name
std::string& world_name = reader.arg (0);
if (!world::is_valid_name (world_name.c_str ()))
{
pl->message ("§c * §eWorld names must be under §a32 §echaracters long and "
"may only contain alpha§f-§enumeric characters§f, §edots§f, "
"§ehyphens and underscores§f.");
return;
}
// world width
int world_width = 0;
auto opt_width = reader.opt ("width");
if (opt_width->found ())
{
auto& arg = opt_width->arg (0);
if (!arg.is_int ())
{
pl->message ("§c * §eArgument to flag §c--width §emust be an integer§f.");
return;
}
world_width = arg.as_int ();
if (world_width < 0)
world_width = 0;
}
// world depth
int world_depth = 0;
auto opt_depth = reader.opt ("depth");
if (opt_depth->found ())
{
auto& arg = opt_depth->arg (0);
if (!arg.is_int ())
{
pl->message ("§c * §eArgument to flag §c--depth §emust be an integer§f.");
return;
}
world_depth = arg.as_int ();
if (world_depth < 0)
world_depth = 0;
}
// world provider
std::string provider_name ("hw");
auto opt_prov = reader.opt ("provider");
if (opt_prov->found ())
{
auto& arg = opt_prov->arg (0);
provider_name.assign (arg.as_str ());
}
// world generator
std::string gen_name ("flatgrass");
auto opt_gen = reader.opt ("generator");
if (opt_gen->found ())
{
auto& arg = opt_gen->arg (0);
gen_name.assign (arg.as_str ());
}
// generator seed
int gen_seed = std::chrono::duration_cast<std::chrono::milliseconds> (
std::chrono::high_resolution_clock::now ().time_since_epoch ()).count ()
& 0x7FFFFFFF;
auto opt_seed = reader.opt ("seed");
if (opt_seed->found ())
{
//.........这里部分代码省略.........
开发者ID:hCraft,项目名称:hCraft,代码行数:101,代码来源:wcreate.cpp
注:本文中的command_reader类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论