@@ -1,80 +0,0 @@
|
||||
package com.mojang.brigadier.suggestion;
|
||||
|
||||
import com.mojang.brigadier.Message;
|
||||
import com.mojang.brigadier.context.StringRange;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
|
||||
public class SuggestionsBuilder {
|
||||
private final String input;
|
||||
public int start;
|
||||
public String remaining;
|
||||
private final List<Suggestion> result = new ArrayList<>();
|
||||
|
||||
public SuggestionsBuilder(final String input, final int start) {
|
||||
this.input = input;
|
||||
this.start = start;
|
||||
this.remaining = input.substring(start);
|
||||
}
|
||||
|
||||
public String getInput() {
|
||||
return input;
|
||||
}
|
||||
|
||||
public int getStart() {
|
||||
return start;
|
||||
}
|
||||
|
||||
public String getRemaining() {
|
||||
return remaining;
|
||||
}
|
||||
|
||||
public Suggestions build() {
|
||||
return Suggestions.create(input, result);
|
||||
}
|
||||
|
||||
public CompletableFuture<Suggestions> buildFuture() {
|
||||
return CompletableFuture.completedFuture(build());
|
||||
}
|
||||
|
||||
public SuggestionsBuilder suggest(final String text) {
|
||||
if (text.equals(remaining)) {
|
||||
return this;
|
||||
}
|
||||
result.add(new Suggestion(StringRange.between(start, input.length()), text));
|
||||
return this;
|
||||
}
|
||||
|
||||
public SuggestionsBuilder suggest(final String text, final Message tooltip) {
|
||||
if (text.equals(remaining)) {
|
||||
return this;
|
||||
}
|
||||
result.add(new Suggestion(StringRange.between(start, input.length()), text, tooltip));
|
||||
return this;
|
||||
}
|
||||
|
||||
public SuggestionsBuilder suggest(final int value) {
|
||||
result.add(new IntegerSuggestion(StringRange.between(start, input.length()), value));
|
||||
return this;
|
||||
}
|
||||
|
||||
public SuggestionsBuilder suggest(final int value, final Message tooltip) {
|
||||
result.add(new IntegerSuggestion(StringRange.between(start, input.length()), value, tooltip));
|
||||
return this;
|
||||
}
|
||||
|
||||
public SuggestionsBuilder add(final SuggestionsBuilder other) {
|
||||
result.addAll(other.result);
|
||||
return this;
|
||||
}
|
||||
|
||||
public SuggestionsBuilder createOffset(final int start) {
|
||||
return new SuggestionsBuilder(input, start);
|
||||
}
|
||||
|
||||
public SuggestionsBuilder restart() {
|
||||
return new SuggestionsBuilder(input, start);
|
||||
}
|
||||
}
|
||||
@@ -882,25 +882,7 @@ public final class CraftServer implements Server {
|
||||
generator = getGenerator(name);
|
||||
}
|
||||
|
||||
Convertable converter = new WorldLoaderServer(getWorldContainer().toPath(), getWorldContainer().toPath().resolveSibling("../backups"), getHandle().getServer().dataConverterManager);
|
||||
if (converter.isConvertable(name)) {
|
||||
getLogger().info("Converting world '" + name + "'");
|
||||
converter.convert(name, new IProgressUpdate() {
|
||||
private long b = System.currentTimeMillis();
|
||||
|
||||
public void a(IChatBaseComponent ichatbasecomponent) {}
|
||||
|
||||
public void a(int i) {
|
||||
if (System.currentTimeMillis() - this.b >= 1000L) {
|
||||
this.b = System.currentTimeMillis();
|
||||
MinecraftServer.LOGGER.info("Converting... {}%", Integer.valueOf(i));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void c(IChatBaseComponent ichatbasecomponent) {}
|
||||
});
|
||||
}
|
||||
console.convertWorld(name);
|
||||
|
||||
int dimension = CraftWorld.CUSTOM_DIMENSION_OFFSET + console.worlds.size();
|
||||
boolean used = false;
|
||||
|
||||
@@ -111,6 +111,8 @@ public class Main {
|
||||
.defaultsTo(new File("commands.yml"))
|
||||
.describedAs("Yml file");
|
||||
|
||||
acceptsAll(asList("forceUpgrade"), "Whether to force a world upgrade");
|
||||
|
||||
acceptsAll(asList("nojline"), "Disables jline and emulates the vanilla console");
|
||||
|
||||
acceptsAll(asList("noconsole"), "Disables the console");
|
||||
|
||||
@@ -36,7 +36,7 @@ public class CraftBed extends CraftBlockEntityState<TileEntityBed> implements Be
|
||||
case LIGHT_BLUE_BED:
|
||||
return DyeColor.LIGHT_BLUE;
|
||||
case LIGHT_GRAY_BED:
|
||||
return DyeColor.SILVER;
|
||||
return DyeColor.LIGHT_GRAY;
|
||||
case LIME_BED:
|
||||
return DyeColor.LIME;
|
||||
case MAGENTA_BED:
|
||||
|
||||
@@ -303,6 +303,9 @@ public class CraftBlockData implements BlockData {
|
||||
register(net.minecraft.server.BlockCocoa.class, org.bukkit.craftbukkit.block.impl.CraftCocoa.class);
|
||||
register(net.minecraft.server.BlockCommand.class, org.bukkit.craftbukkit.block.impl.CraftCommand.class);
|
||||
register(net.minecraft.server.BlockCoralFan.class, org.bukkit.craftbukkit.block.impl.CraftCoralFan.class);
|
||||
register(net.minecraft.server.BlockCoralFanAbstract.class, org.bukkit.craftbukkit.block.impl.CraftCoralFanAbstract.class);
|
||||
register(net.minecraft.server.BlockCoralFanWall.class, org.bukkit.craftbukkit.block.impl.CraftCoralFanWall.class);
|
||||
register(net.minecraft.server.BlockCoralFanWallAbstract.class, org.bukkit.craftbukkit.block.impl.CraftCoralFanWallAbstract.class);
|
||||
register(net.minecraft.server.BlockCrops.class, org.bukkit.craftbukkit.block.impl.CraftCrops.class);
|
||||
register(net.minecraft.server.BlockDaylightDetector.class, org.bukkit.craftbukkit.block.impl.CraftDaylightDetector.class);
|
||||
register(net.minecraft.server.BlockDirtSnow.class, org.bukkit.craftbukkit.block.impl.CraftDirtSnow.class);
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*/
|
||||
package org.bukkit.craftbukkit.block.impl;
|
||||
|
||||
public final class CraftCoralFan extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Directional {
|
||||
public final class CraftCoralFan extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Waterlogged {
|
||||
|
||||
public CraftCoralFan() {
|
||||
super();
|
||||
@@ -13,22 +13,17 @@ public final class CraftCoralFan extends org.bukkit.craftbukkit.block.data.Craft
|
||||
super(state);
|
||||
}
|
||||
|
||||
// org.bukkit.craftbukkit.block.data.CraftDirectional
|
||||
// org.bukkit.craftbukkit.block.data.CraftWaterlogged
|
||||
|
||||
private static final net.minecraft.server.BlockStateEnum<?> FACING = getEnum(net.minecraft.server.BlockCoralFan.class, "facing");
|
||||
private static final net.minecraft.server.BlockStateBoolean WATERLOGGED = getBoolean(net.minecraft.server.BlockCoralFan.class, "waterlogged");
|
||||
|
||||
@Override
|
||||
public org.bukkit.block.BlockFace getFacing() {
|
||||
return get(FACING, org.bukkit.block.BlockFace.class);
|
||||
public boolean isWaterlogged() {
|
||||
return get(WATERLOGGED);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setFacing(org.bukkit.block.BlockFace facing) {
|
||||
set(FACING, facing);
|
||||
}
|
||||
|
||||
@Override
|
||||
public java.util.Set<org.bukkit.block.BlockFace> getFaces() {
|
||||
return getValues(FACING, org.bukkit.block.BlockFace.class);
|
||||
public void setWaterlogged(boolean waterlogged) {
|
||||
set(WATERLOGGED, waterlogged);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
/**
|
||||
* Automatically generated file, changes will be lost.
|
||||
*/
|
||||
package org.bukkit.craftbukkit.block.impl;
|
||||
|
||||
public final class CraftCoralFanAbstract extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Waterlogged {
|
||||
|
||||
public CraftCoralFanAbstract() {
|
||||
super();
|
||||
}
|
||||
|
||||
public CraftCoralFanAbstract(net.minecraft.server.IBlockData state) {
|
||||
super(state);
|
||||
}
|
||||
|
||||
// org.bukkit.craftbukkit.block.data.CraftWaterlogged
|
||||
|
||||
private static final net.minecraft.server.BlockStateBoolean WATERLOGGED = getBoolean(net.minecraft.server.BlockCoralFanAbstract.class, "waterlogged");
|
||||
|
||||
@Override
|
||||
public boolean isWaterlogged() {
|
||||
return get(WATERLOGGED);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setWaterlogged(boolean waterlogged) {
|
||||
set(WATERLOGGED, waterlogged);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
/**
|
||||
* Automatically generated file, changes will be lost.
|
||||
*/
|
||||
package org.bukkit.craftbukkit.block.impl;
|
||||
|
||||
public final class CraftCoralFanWall extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.CoralWallFan, org.bukkit.block.data.Directional, org.bukkit.block.data.Waterlogged {
|
||||
|
||||
public CraftCoralFanWall() {
|
||||
super();
|
||||
}
|
||||
|
||||
public CraftCoralFanWall(net.minecraft.server.IBlockData state) {
|
||||
super(state);
|
||||
}
|
||||
|
||||
// org.bukkit.craftbukkit.block.data.CraftDirectional
|
||||
|
||||
private static final net.minecraft.server.BlockStateEnum<?> FACING = getEnum(net.minecraft.server.BlockCoralFanWall.class, "facing");
|
||||
|
||||
@Override
|
||||
public org.bukkit.block.BlockFace getFacing() {
|
||||
return get(FACING, org.bukkit.block.BlockFace.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setFacing(org.bukkit.block.BlockFace facing) {
|
||||
set(FACING, facing);
|
||||
}
|
||||
|
||||
@Override
|
||||
public java.util.Set<org.bukkit.block.BlockFace> getFaces() {
|
||||
return getValues(FACING, org.bukkit.block.BlockFace.class);
|
||||
}
|
||||
|
||||
// org.bukkit.craftbukkit.block.data.CraftWaterlogged
|
||||
|
||||
private static final net.minecraft.server.BlockStateBoolean WATERLOGGED = getBoolean(net.minecraft.server.BlockCoralFanWall.class, "waterlogged");
|
||||
|
||||
@Override
|
||||
public boolean isWaterlogged() {
|
||||
return get(WATERLOGGED);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setWaterlogged(boolean waterlogged) {
|
||||
set(WATERLOGGED, waterlogged);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
/**
|
||||
* Automatically generated file, changes will be lost.
|
||||
*/
|
||||
package org.bukkit.craftbukkit.block.impl;
|
||||
|
||||
public final class CraftCoralFanWallAbstract extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.CoralWallFan, org.bukkit.block.data.Directional, org.bukkit.block.data.Waterlogged {
|
||||
|
||||
public CraftCoralFanWallAbstract() {
|
||||
super();
|
||||
}
|
||||
|
||||
public CraftCoralFanWallAbstract(net.minecraft.server.IBlockData state) {
|
||||
super(state);
|
||||
}
|
||||
|
||||
// org.bukkit.craftbukkit.block.data.CraftDirectional
|
||||
|
||||
private static final net.minecraft.server.BlockStateEnum<?> FACING = getEnum(net.minecraft.server.BlockCoralFanWallAbstract.class, "facing");
|
||||
|
||||
@Override
|
||||
public org.bukkit.block.BlockFace getFacing() {
|
||||
return get(FACING, org.bukkit.block.BlockFace.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setFacing(org.bukkit.block.BlockFace facing) {
|
||||
set(FACING, facing);
|
||||
}
|
||||
|
||||
@Override
|
||||
public java.util.Set<org.bukkit.block.BlockFace> getFaces() {
|
||||
return getValues(FACING, org.bukkit.block.BlockFace.class);
|
||||
}
|
||||
|
||||
// org.bukkit.craftbukkit.block.data.CraftWaterlogged
|
||||
|
||||
private static final net.minecraft.server.BlockStateBoolean WATERLOGGED = getBoolean(net.minecraft.server.BlockCoralFanWallAbstract.class, "waterlogged");
|
||||
|
||||
@Override
|
||||
public boolean isWaterlogged() {
|
||||
return get(WATERLOGGED);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setWaterlogged(boolean waterlogged) {
|
||||
set(WATERLOGGED, waterlogged);
|
||||
}
|
||||
}
|
||||
@@ -472,12 +472,12 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
|
||||
|
||||
@Override
|
||||
public boolean isSwimming() {
|
||||
return getHandle().bb();
|
||||
return getHandle().isSwimming();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setSwimming(boolean swimming) {
|
||||
getHandle().g(swimming);
|
||||
getHandle().setSwimming(swimming);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -63,7 +63,7 @@ public class CraftMetaBanner extends CraftMetaItem implements BannerMeta {
|
||||
|
||||
String baseStr = SerializableMeta.getString(map, BASE.BUKKIT, true);
|
||||
if (baseStr != null) {
|
||||
base = DyeColor.valueOf(baseStr);
|
||||
base = DyeColor.legacyValueOf(baseStr);
|
||||
}
|
||||
|
||||
Iterable<?> rawPatternList = SerializableMeta.getObject(Iterable.class, map, PATTERNS.BUKKIT, true);
|
||||
|
||||
@@ -6,6 +6,7 @@ import net.minecraft.server.ScoreboardServer;
|
||||
|
||||
import org.apache.commons.lang.Validate;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.craftbukkit.util.CraftChatMessage;
|
||||
import org.bukkit.scoreboard.DisplaySlot;
|
||||
import org.bukkit.scoreboard.Objective;
|
||||
import org.bukkit.scoreboard.Score;
|
||||
@@ -33,16 +34,15 @@ final class CraftObjective extends CraftScoreboardComponent implements Objective
|
||||
public String getDisplayName() throws IllegalStateException {
|
||||
CraftScoreboard scoreboard = checkState();
|
||||
|
||||
return objective.getDisplayName();
|
||||
return CraftChatMessage.fromComponent(objective.getDisplayName());
|
||||
}
|
||||
|
||||
public void setDisplayName(String displayName) throws IllegalStateException, IllegalArgumentException {
|
||||
Validate.notNull(displayName, "Display name cannot be null");
|
||||
Validate.isTrue(displayName.length() <= 32, "Display name '" + displayName + "' is longer than the limit of 32 characters");
|
||||
Validate.isTrue(displayName.length() <= 128, "Display name '" + displayName + "' is longer than the limit of 128 characters");
|
||||
CraftScoreboard scoreboard = checkState();
|
||||
|
||||
objective.displayName = displayName;
|
||||
((ScoreboardServer) scoreboard.board).handleObjectiveChanged(objective);
|
||||
objective.setDisplayName(CraftChatMessage.fromStringOrNull(displayName));
|
||||
}
|
||||
|
||||
public String getCriteria() throws IllegalStateException {
|
||||
|
||||
@@ -16,6 +16,8 @@ import org.bukkit.scoreboard.Team;
|
||||
import com.google.common.base.Function;
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import com.google.common.collect.Iterables;
|
||||
import net.minecraft.server.IScoreboardCriteria;
|
||||
import org.bukkit.craftbukkit.util.CraftChatMessage;
|
||||
|
||||
public final class CraftScoreboard implements org.bukkit.scoreboard.Scoreboard {
|
||||
final Scoreboard board;
|
||||
@@ -35,11 +37,11 @@ public final class CraftScoreboard implements org.bukkit.scoreboard.Scoreboard {
|
||||
Validate.notNull(criteria, "Criteria cannot be null");
|
||||
Validate.notNull(displayName, "Display name cannot be null");
|
||||
Validate.isTrue(name.length() <= 16, "The name '" + name + "' is longer than the limit of 16 characters");
|
||||
Validate.isTrue(displayName.length() <= 32, "The display name '" + displayName + "' is longer than the limit of 32 characters");
|
||||
Validate.isTrue(displayName.length() <= 128, "The display name '" + displayName + "' is longer than the limit of 128 characters");
|
||||
Validate.isTrue(board.getObjective(name) == null, "An objective of name '" + name + "' already exists");
|
||||
|
||||
CraftCriteria craftCriteria = CraftCriteria.getFromBukkit(criteria);
|
||||
ScoreboardObjective objective = board.registerObjective(name, craftCriteria.criteria, displayName);
|
||||
ScoreboardObjective objective = board.registerObjective(name, craftCriteria.criteria, CraftChatMessage.fromStringOrNull(displayName), IScoreboardCriteria.EnumScoreboardHealthDisplay.INTEGER);
|
||||
return new CraftObjective(this, objective);
|
||||
}
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@ final class CraftTeam extends CraftScoreboardComponent implements Team {
|
||||
public String getDisplayName() throws IllegalStateException {
|
||||
CraftScoreboard scoreboard = checkState();
|
||||
|
||||
return team.getDisplayName();
|
||||
return CraftChatMessage.fromComponent(team.getDisplayName());
|
||||
}
|
||||
|
||||
public void setDisplayName(String displayName) throws IllegalStateException {
|
||||
@@ -41,13 +41,13 @@ final class CraftTeam extends CraftScoreboardComponent implements Team {
|
||||
Validate.isTrue(displayName.length() <= 128, "Display name '" + displayName + "' is longer than the limit of 128 characters");
|
||||
CraftScoreboard scoreboard = checkState();
|
||||
|
||||
team.setDisplayName(displayName);
|
||||
team.setDisplayName(CraftChatMessage.fromStringOrNull(displayName));
|
||||
}
|
||||
|
||||
public String getPrefix() throws IllegalStateException {
|
||||
CraftScoreboard scoreboard = checkState();
|
||||
|
||||
return CraftChatMessage.fromComponent(team.e());
|
||||
return CraftChatMessage.fromComponent(team.getPrefix());
|
||||
}
|
||||
|
||||
public void setPrefix(String prefix) throws IllegalStateException, IllegalArgumentException {
|
||||
@@ -55,13 +55,13 @@ final class CraftTeam extends CraftScoreboardComponent implements Team {
|
||||
Validate.isTrue(prefix.length() <= 64, "Prefix '" + prefix + "' is longer than the limit of 64 characters");
|
||||
CraftScoreboard scoreboard = checkState();
|
||||
|
||||
team.a(CraftChatMessage.fromStringOrNull(prefix));
|
||||
team.setPrefix(CraftChatMessage.fromStringOrNull(prefix));
|
||||
}
|
||||
|
||||
public String getSuffix() throws IllegalStateException {
|
||||
CraftScoreboard scoreboard = checkState();
|
||||
|
||||
return CraftChatMessage.fromComponent(team.f());
|
||||
return CraftChatMessage.fromComponent(team.getPrefix());
|
||||
}
|
||||
|
||||
public void setSuffix(String suffix) throws IllegalStateException, IllegalArgumentException {
|
||||
@@ -69,7 +69,7 @@ final class CraftTeam extends CraftScoreboardComponent implements Team {
|
||||
Validate.isTrue(suffix.length() <= 64, "Suffix '" + suffix + "' is longer than the limit of 64 characters");
|
||||
CraftScoreboard scoreboard = checkState();
|
||||
|
||||
team.b(CraftChatMessage.fromStringOrNull(suffix));
|
||||
team.setSuffix(CraftChatMessage.fromStringOrNull(suffix));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -171,6 +171,16 @@ public class Commodore
|
||||
}
|
||||
}
|
||||
|
||||
if ( owner.equals( "org/bukkit/DyeColor" ) )
|
||||
{
|
||||
switch ( name )
|
||||
{
|
||||
case "SILVER":
|
||||
super.visitFieldInsn( opcode, owner, "LIGHT_GRAY", desc );
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if ( owner.equals( "org/bukkit/Particle" ) )
|
||||
{
|
||||
switch ( name )
|
||||
@@ -229,6 +239,15 @@ public class Commodore
|
||||
return;
|
||||
}
|
||||
|
||||
if ( owner.equals( "org/bukkit/DyeColor" ) )
|
||||
{
|
||||
if ( name.equals( "valueOf" ) && desc.equals( "(Ljava/lang/String;)Lorg/bukkit/DyeColor;" ) )
|
||||
{
|
||||
super.visitMethodInsn( opcode, owner, "legacyValueOf", desc, itf );
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if ( owner.equals( "org/bukkit/Material" ) )
|
||||
{
|
||||
if ( name.equals( "getMaterial" ) && desc.equals( "(I)Lorg/bukkit/Material;" ) )
|
||||
|
||||
@@ -138,7 +138,7 @@ public final class CraftMagicNumbers implements UnsafeValues {
|
||||
return CraftBlockData.fromData(getBlock(material, data));
|
||||
}
|
||||
|
||||
public static final int DATA_VERSION = 1513;
|
||||
public static final int DATA_VERSION = 1519;
|
||||
|
||||
@Override
|
||||
public int getDataVersion() {
|
||||
|
||||
@@ -87,11 +87,6 @@ public class DummyGeneratorAccess implements GeneratorAccess {
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void a(String string, PersistentBase pb) {
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public IChunkProvider getChunkProvider() {
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
|
||||
Reference in New Issue
Block a user