Merge remote-tracking branch 'upstream/chunks' into chunks

# Conflicts:
#	connector/src/main/java/org/geysermc/connector/utils/ChunkUtils.java
This commit is contained in:
SupremeMortal 2019-09-13 10:15:43 +01:00
commit d8388d0315
No known key found for this signature in database
GPG key ID: DDBB25F8EE4FA29A
14 changed files with 190 additions and 13 deletions

View file

@ -91,6 +91,7 @@ public class GeyserConnector implements Connector {
}
private GeyserConnector() {
System.out.println(UUID.randomUUID().toString());
//Metric
if(!(System.console() == null) && System.getProperty("os.name", "Windows 10").toLowerCase().contains("windows")) {
AnsiConsole.systemInstall();

View file

@ -37,6 +37,6 @@ public class RemoteConfiguration {
private String motd1;
private String motd2;
@JsonProperty("online-mode")
private boolean onlineMode;
@JsonProperty("auth-type")
private String authType;
}

View file

@ -119,7 +119,7 @@ public class GeyserSession implements PlayerSession, Player {
startGame();
this.remoteServer = remoteServer;
if (!connector.getConfig().getRemote().isOnlineMode()) {
if (!(connector.getConfig().getRemote().getAuthType().hashCode() == "online".hashCode())) {
connector.getLogger().info("Attempting to login using offline mode... authentication is disabled.");
authenticate(authenticationData.getName());
}

View file

@ -37,4 +37,14 @@ public class BedrockItem {
private String identifier;
private int id;
private int data;
@Override
public int hashCode() {
return id << 4 | data;
}
@Override
public boolean equals(Object obj) {
return obj == this || (obj instanceof BedrockItem && ((BedrockItem) obj).id == this.id && ((BedrockItem) obj).identifier.equals(this.identifier) && ((BedrockItem) obj).data == this.data);
}
}

View file

@ -97,9 +97,9 @@ public class ItemTranslator {
}
public BedrockItem getBedrockBlock(BlockState state) {
BedrockItem bedrockItem = Remapper.BLOCK_REMAPPER.convertToBedrock(new ItemStack(state.getId()));
BedrockItem bedrockItem = Remapper.BLOCK_REMAPPER.convertToBedrockB(new ItemStack(state.getId()));
if (bedrockItem == null) {
//GeyserLogger.DEFAULT.debug("Missing mapping for java item " + state.getId());
// GeyserLogger.DEFAULT.debug("Missing mapping for java block " + state.getId());
return BedrockItem.AIR;
}

View file

@ -39,7 +39,7 @@ public class JavaItem {
@Override
public int hashCode() {
return id & identifier.hashCode();
return id;
}
@Override

View file

@ -107,6 +107,19 @@ public class Remapper {
return null;
}
public BedrockItem convertToBedrockB(ItemStack block) {
for (Map.Entry<String, JavaItem> javaItem : Toolbox.JAVA_BLOCKS.entrySet()) {
if (javaItem.getValue().getId() != block.getId())
continue;
return javaToBedrock.get(javaItem.getValue());
}
return null;
}
private static String getBedrockIdentifier(String javaIdentifier) {
javaIdentifier = javaIdentifier.toLowerCase();
javaIdentifier = javaIdentifier.replace("terracotta", "stained_hardened_clay");

View file

@ -31,15 +31,13 @@ public class Toolbox {
Map<String, BedrockItem> bedrockBlocks = new HashMap<>();
Map<String, BedrockItem> bedrockItems = new HashMap<>();
for (Map<String, Object> e : entries) {
BedrockItem bedrockItem = new BedrockItem((String) e.get("name"), (int) e.get("id"), (int) e.get("data"));
bedrockBlocks.put(bedrockItem.getIdentifier(), bedrockItem);
bedrockItems.put(bedrockItem.getIdentifier() + ":" + bedrockItem.getData(), bedrockItem);
}
ByteBuf b = Unpooled.buffer();
VarInts.writeUnsignedInt(b, entries.size());
for (Map<String, Object> e : entries) {
BedrockItem bedrockItem = new BedrockItem((String) e.get("name"), (int) e.get("id"), (int) e.get("data"));
bedrockItems.put(bedrockItem.getIdentifier() + ":" + bedrockItem.getData(), bedrockItem);
bedrockBlocks.put(bedrockItem.getIdentifier() + ":" + bedrockItem.getData(), bedrockItem);
GlobalBlockPalette.registerMapping((int) e.get("id") << 4 | (int) e.get("data"));
BedrockUtils.writeString(b, (String) e.get("name"));
b.writeShortLE((int) e.get("data"));

View file

@ -19,7 +19,9 @@ remote:
address: 127.0.0.1
# The port of the remote (Java Edition) server
port: 25565
online-mode: false
# Authentication type. Can be offline, online, or hybrid (see the wiki).
auth-type: offline
## the Xbox/MCPE username is the key for the Java server auth-info
## this allows automatic configuration/login to the remote Java server