Update TraceCommand.showCommand by -ticks as option
Alle Prüfungen waren erfolgreich
SteamWarCI Build successful
Alle Prüfungen waren erfolgreich
SteamWarCI Build successful
Signed-off-by: yoyosource <yoyosource@nidido.de>
Dieser Commit ist enthalten in:
Ursprung
0d440994cb
Commit
8256c1fa7a
@ -40,7 +40,11 @@ class TraceEntity_15 extends BaseEntity_15 implements AbstractTraceEntity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void display(Player player, boolean exploded) {
|
public void display(Player player, boolean exploded, int ticks) {
|
||||||
|
if (ticks != -1) {
|
||||||
|
this.setCustomNameVisible(true);
|
||||||
|
this.setCustomName(new ChatComponentText(ticks + ""));
|
||||||
|
}
|
||||||
if (!this.exploded && exploded) {
|
if (!this.exploded && exploded) {
|
||||||
this.setCustomNameVisible(true);
|
this.setCustomNameVisible(true);
|
||||||
this.setCustomName(new ChatComponentText("Bumm"));
|
this.setCustomName(new ChatComponentText("Bumm"));
|
||||||
|
@ -24,7 +24,7 @@ import org.bukkit.entity.Player;
|
|||||||
|
|
||||||
public interface AbstractTraceEntity extends AbstractEntity {
|
public interface AbstractTraceEntity extends AbstractEntity {
|
||||||
|
|
||||||
void display(Player player, boolean exploded);
|
void display(Player player, boolean exploded, int ticks);
|
||||||
|
|
||||||
boolean hide(Player player, boolean always);
|
boolean hide(Player player, boolean always);
|
||||||
}
|
}
|
||||||
|
@ -62,6 +62,7 @@ public class TraceCommand extends SWCommand {
|
|||||||
showModeParameterTypeListMap.put(ShowModeParameterType.INTERPOLATE_XZ, Arrays.asList("-interpolatex", "-interpolate-x", "-interpolate_x", "-x", "-interpolatez", "-interpolate-z", "-interpolate_z", "-z", "-interpolatexz", "-interpolate-xz", "-interpolate_xz", "-xz"));
|
showModeParameterTypeListMap.put(ShowModeParameterType.INTERPOLATE_XZ, Arrays.asList("-interpolatex", "-interpolate-x", "-interpolate_x", "-x", "-interpolatez", "-interpolate-z", "-interpolate_z", "-z", "-interpolatexz", "-interpolate-xz", "-interpolate_xz", "-xz"));
|
||||||
showModeParameterTypeListMap.put(ShowModeParameterType.ADVANCED, Arrays.asList("-advanced", "-a"));
|
showModeParameterTypeListMap.put(ShowModeParameterType.ADVANCED, Arrays.asList("-advanced", "-a"));
|
||||||
showModeParameterTypeListMap.put(ShowModeParameterType.EXPLODE, Arrays.asList("-explode", "-explodeonly"));
|
showModeParameterTypeListMap.put(ShowModeParameterType.EXPLODE, Arrays.asList("-explode", "-explodeonly"));
|
||||||
|
showModeParameterTypeListMap.put(ShowModeParameterType.TICKS, Arrays.asList("-ticks", "-t"));
|
||||||
|
|
||||||
Map<String, ShowModeParameterType> showModeParameterTypesMap = new HashMap<>();
|
Map<String, ShowModeParameterType> showModeParameterTypesMap = new HashMap<>();
|
||||||
showModeParameterTypeListMap.forEach((k, v) -> v.forEach(s -> showModeParameterTypesMap.put(s, k)));
|
showModeParameterTypeListMap.forEach((k, v) -> v.forEach(s -> showModeParameterTypesMap.put(s, k)));
|
||||||
@ -75,12 +76,23 @@ public class TraceCommand extends SWCommand {
|
|||||||
@Override
|
@Override
|
||||||
public List<String> tabCompletes(CommandSender commandSender, String[] strings, String s) {
|
public List<String> tabCompletes(CommandSender commandSender, String[] strings, String s) {
|
||||||
Set<ShowModeParameterType> showModeParameterTypeSet = new HashSet<>();
|
Set<ShowModeParameterType> showModeParameterTypeSet = new HashSet<>();
|
||||||
|
boolean allowTicks = true;
|
||||||
for (String previousArgument : strings) {
|
for (String previousArgument : strings) {
|
||||||
|
try {
|
||||||
|
ShowModeType showModeType = ShowModeType.valueOf(previousArgument.toUpperCase());
|
||||||
|
allowTicks &= showModeType.allowTicks;
|
||||||
|
} catch (IllegalArgumentException ignored) {
|
||||||
|
// Ignored
|
||||||
|
}
|
||||||
showModeParameterTypeSet.add(showModeParameterTypesMap.get(previousArgument));
|
showModeParameterTypeSet.add(showModeParameterTypesMap.get(previousArgument));
|
||||||
}
|
}
|
||||||
showModeParameterTypeSet.remove(null);
|
showModeParameterTypeSet.remove(null);
|
||||||
List<String> tabCompletes = new ArrayList<>();
|
List<String> tabCompletes = new ArrayList<>();
|
||||||
for (ShowModeParameterType showModeParameterType : showModeParameterTypeListMap.keySet()) {
|
for (ShowModeParameterType showModeParameterType : showModeParameterTypeListMap.keySet()) {
|
||||||
|
if (showModeParameterType == ShowModeParameterType.TICKS && !allowTicks) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if ((showModeParameterTypeSet.contains(ShowModeParameterType.INTERPOLATE_XZ) || showModeParameterTypeSet.contains(ShowModeParameterType.INTERPOLATE_Y)) && showModeParameterType == ShowModeParameterType.ADVANCED) {
|
if ((showModeParameterTypeSet.contains(ShowModeParameterType.INTERPOLATE_XZ) || showModeParameterTypeSet.contains(ShowModeParameterType.INTERPOLATE_Y)) && showModeParameterType == ShowModeParameterType.ADVANCED) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -312,12 +324,13 @@ public class TraceCommand extends SWCommand {
|
|||||||
|
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
private enum ShowModeType {
|
private enum ShowModeType {
|
||||||
ENTITY(TraceEntityShowMode::new),
|
ENTITY(TraceEntityShowMode::new, true),
|
||||||
RAW(RawEntityShowMode::new),
|
RAW(RawEntityShowMode::new, true),
|
||||||
PARTICLE(ParticleShowMode::new),
|
PARTICLE(ParticleShowMode::new, false),
|
||||||
BLOCK(BlockShowMode::new);
|
BLOCK(BlockShowMode::new, false);
|
||||||
|
|
||||||
private BiFunction<Player, ShowModeParameter, ShowMode<TNTPosition>> showModeBiFunction;
|
private BiFunction<Player, ShowModeParameter, ShowMode<TNTPosition>> showModeBiFunction;
|
||||||
|
private boolean allowTicks;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Register({"show", "gui"})
|
@Register({"show", "gui"})
|
||||||
|
@ -31,4 +31,5 @@ public class ShowModeParameter {
|
|||||||
private boolean interpolate_Y = false;
|
private boolean interpolate_Y = false;
|
||||||
private boolean interpolate_XZ = false;
|
private boolean interpolate_XZ = false;
|
||||||
private boolean explodeOnly = false;
|
private boolean explodeOnly = false;
|
||||||
|
private boolean ticks = false;
|
||||||
}
|
}
|
||||||
|
@ -30,7 +30,8 @@ public enum ShowModeParameterType {
|
|||||||
showModeParameter.setInterpolate_Y(true);
|
showModeParameter.setInterpolate_Y(true);
|
||||||
showModeParameter.setInterpolate_XZ(true);
|
showModeParameter.setInterpolate_XZ(true);
|
||||||
}),
|
}),
|
||||||
EXPLODE(showModeParameter -> showModeParameter.setExplodeOnly(true));
|
EXPLODE(showModeParameter -> showModeParameter.setExplodeOnly(true)),
|
||||||
|
TICKS(showModeParameter -> showModeParameter.setTicks(true));
|
||||||
|
|
||||||
private final Consumer<ShowModeParameter> showModeParameterConsumer;
|
private final Consumer<ShowModeParameter> showModeParameterConsumer;
|
||||||
|
|
||||||
@ -41,5 +42,4 @@ public enum ShowModeParameterType {
|
|||||||
ShowModeParameterType(Consumer<ShowModeParameter> showModeParameterConsumer) {
|
ShowModeParameterType(Consumer<ShowModeParameter> showModeParameterConsumer) {
|
||||||
this.showModeParameterConsumer = showModeParameterConsumer;
|
this.showModeParameterConsumer = showModeParameterConsumer;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -57,7 +57,7 @@ public abstract class FactoredEntityShowMode implements ShowMode<TNTPosition> {
|
|||||||
}
|
}
|
||||||
RoundedPosition roundedPosition = new RoundedPosition(position, factor);
|
RoundedPosition roundedPosition = new RoundedPosition(position, factor);
|
||||||
AbstractTraceEntity entity = tntEntityMap.computeIfAbsent(roundedPosition, pos -> createEntity(player, position.getLocation(), true));
|
AbstractTraceEntity entity = tntEntityMap.computeIfAbsent(roundedPosition, pos -> createEntity(player, position.getLocation(), true));
|
||||||
entity.display(player, position.isExploded());
|
entity.display(player, position.isExploded(), showModeParameter.isTicks() ? position.getFuseTicks() : 0);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!showModeParameter.isWater() && position.isExploded() && checkWater(position.getLocation())) {
|
if (!showModeParameter.isWater() && position.isExploded() && checkWater(position.getLocation())) {
|
||||||
@ -81,12 +81,12 @@ public abstract class FactoredEntityShowMode implements ShowMode<TNTPosition> {
|
|||||||
|
|
||||||
RoundedPosition roundedPosition = new RoundedPosition(position, factor);
|
RoundedPosition roundedPosition = new RoundedPosition(position, factor);
|
||||||
AbstractTraceEntity entity = tntEntityMap.computeIfAbsent(roundedPosition, pos -> createEntity(player, position.getLocation(), true));
|
AbstractTraceEntity entity = tntEntityMap.computeIfAbsent(roundedPosition, pos -> createEntity(player, position.getLocation(), true));
|
||||||
entity.display(player, position.isExploded());
|
entity.display(player, position.isExploded(), showModeParameter.isTicks() ? position.getFuseTicks() : 0);
|
||||||
|
|
||||||
applyOnPosition(position, updatePointPosition -> {
|
applyOnPosition(position, updatePointPosition -> {
|
||||||
updateEntityMap.computeIfAbsent(new RoundedPosition(updatePointPosition, factor), pos -> {
|
updateEntityMap.computeIfAbsent(new RoundedPosition(updatePointPosition, factor), pos -> {
|
||||||
return createEntity(player, updatePointPosition, false);
|
return createEntity(player, updatePointPosition, false);
|
||||||
}).display(player, false);
|
}).display(player, false, showModeParameter.isTicks() ? position.getFuseTicks() : 0);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
In neuem Issue referenzieren
Einen Benutzer sperren