added 'all' options to spawn entites and fixed definition of mobcappable
This commit is contained in:
1 parent
f7cfcb4158
commit
955eb361f4
2 files changed
+18
-15
No files matched your search
@@ -98,7 +98,8 @@ public class SpawnCommand
|
||||
executes( (c) -> generalMobcaps(c.getSource()) ).
|
||||
then(argument("type", string()).
|
||||
suggests( (c, b)->suggestMatching(Arrays.stream(EntityCategory.values()).map(EntityCategory::getName), b)).
|
||||
executes( (c) -> listEntitiesOfType(c.getSource(), getString(c, "type")))));
|
||||
executes( (c) -> listEntitiesOfType(c.getSource(), getString(c, "type"), false)).
|
||||
then(literal("all").executes( (c) -> listEntitiesOfType(c.getSource(), getString(c, "type"), true)))));
|
||||
|
||||
dispatcher.register(literalargumentbuilder);
|
||||
}
|
||||
@@ -262,10 +263,10 @@ public class SpawnCommand
|
||||
return 1;
|
||||
}
|
||||
|
||||
private static int listEntitiesOfType(ServerCommandSource source, String mobtype) throws CommandSyntaxException
|
||||
private static int listEntitiesOfType(ServerCommandSource source, String mobtype, boolean all) throws CommandSyntaxException
|
||||
{
|
||||
EntityCategory cat = getCategory(mobtype);
|
||||
Messenger.send(source, SpawnReporter.printEntitiesByType(cat, source.getWorld()));
|
||||
Messenger.send(source, SpawnReporter.printEntitiesByType(cat, source.getWorld(), all));
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
@@ -186,7 +186,7 @@ public class SpawnReporter
|
||||
}
|
||||
else
|
||||
{
|
||||
return printEntitiesByType(creature_type, worldIn);
|
||||
return printEntitiesByType(creature_type, worldIn, true);
|
||||
|
||||
}
|
||||
|
||||
@@ -250,22 +250,24 @@ public class SpawnReporter
|
||||
return get_type_string(get_creature_type_from_code(str));
|
||||
}
|
||||
|
||||
public static List<BaseText> printEntitiesByType(EntityCategory cat, World worldIn) //Class<?> entityType)
|
||||
public static List<BaseText> printEntitiesByType(EntityCategory cat, World worldIn, boolean all) //Class<?> entityType)
|
||||
{
|
||||
List<BaseText> lst = new ArrayList<>();
|
||||
lst.add( Messenger.s(String.format("Loaded entities for %s class:", get_type_string(cat))));
|
||||
for (Entity entity : ((ServerWorld)worldIn).getEntities(null, (e) -> e.getType().getCategory()==cat))
|
||||
{
|
||||
if (!(entity instanceof MobEntity) || !((MobEntity)entity).isPersistent())
|
||||
{
|
||||
EntityType type = entity.getType();
|
||||
BlockPos pos = entity.getBlockPos();
|
||||
lst.add( Messenger.c(
|
||||
"w - ",
|
||||
Messenger.tp("wb",pos),
|
||||
String.format("w : %s", type.getName().getString())
|
||||
));
|
||||
}
|
||||
boolean persistent = entity instanceof MobEntity && ( ((MobEntity) entity).isPersistent() || ((MobEntity) entity).cannotDespawn());
|
||||
if (!all && persistent)
|
||||
continue;
|
||||
|
||||
EntityType type = entity.getType();
|
||||
BlockPos pos = entity.getBlockPos();
|
||||
lst.add( Messenger.c(
|
||||
"w - ",
|
||||
Messenger.tp(persistent?"gb":"wb",pos),
|
||||
String.format(persistent?"g : %s":"w : %s", type.getName().getString())
|
||||
));
|
||||
|
||||
}
|
||||
if (lst.size()==1)
|
||||
{
|
||||
|
||||
Reference in new issue
Block a user