From 854f4d49407e45d67dd5754afd21a7e59970ca5b Mon Sep 17 00:00:00 2001 From: Joseph Burton Date: Sun, 3 May 2020 21:06:38 +0100 Subject: Multiplayer support (#221) * First pass on multiplayer * Apply review suggestions * Dedicated Enigma server * Don't jump to references when other users do stuff * Better UI + translations * french translation * Apply review suggestions * Document the protocol * Fix most issues with scrolling. * Apply review suggestions * Fix zip hash issues + add a bit more logging * Optimize zip hash * Fix a couple of login bugs * Add message log and user list * Make Message an abstract class * Make status bar work, add chat box * Hide message log/users list when not connected * Fix status bar not resetting entirely * Run stop server task on server thread to prevent multithreading race conditions * Add c2s message to packet id list * Fix message scroll bar not scrolling to the end * Formatting * User list size -> ushort * Combine contains and remove check * Check removal before sending packet * Add password to login packet * Fix the GUI closing the rename text field when someone else renames something * Update fr_fr.json * oups * Make connection/server create dialogs not useless if it fails once * Refactor UI state updating * Fix imports * Fix Collab menu * Fix NPE when rename not allowed * Make the log file a configurable option * Don't use modified UTF * Update fr_fr.json * Bump version to 0.15.4 * Apparently I can't spell neither words nor semantic versions Co-authored-by: Yanis48 Co-authored-by: 2xsaiko --- src/main/java/cuchaz/enigma/EnigmaProject.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'src/main/java/cuchaz/enigma/EnigmaProject.java') diff --git a/src/main/java/cuchaz/enigma/EnigmaProject.java b/src/main/java/cuchaz/enigma/EnigmaProject.java index 852bfc4..b345fb3 100644 --- a/src/main/java/cuchaz/enigma/EnigmaProject.java +++ b/src/main/java/cuchaz/enigma/EnigmaProject.java @@ -1,12 +1,14 @@ package cuchaz.enigma; import com.google.common.base.Functions; +import com.google.common.base.Preconditions; import cuchaz.enigma.analysis.ClassCache; import cuchaz.enigma.analysis.EntryReference; import cuchaz.enigma.analysis.index.JarIndex; import cuchaz.enigma.api.service.NameProposalService; import cuchaz.enigma.bytecode.translators.SourceFixVisitor; import cuchaz.enigma.bytecode.translators.TranslationClassVisitor; +import cuchaz.enigma.network.EnigmaServer; import cuchaz.enigma.source.*; import cuchaz.enigma.translation.Translator; import cuchaz.enigma.translation.mapping.*; @@ -39,13 +41,16 @@ public class EnigmaProject { private final ClassCache classCache; private final JarIndex jarIndex; + private final byte[] jarChecksum; private EntryRemapper mapper; - public EnigmaProject(Enigma enigma, ClassCache classCache, JarIndex jarIndex) { + public EnigmaProject(Enigma enigma, ClassCache classCache, JarIndex jarIndex, byte[] jarChecksum) { + Preconditions.checkArgument(jarChecksum.length == EnigmaServer.CHECKSUM_SIZE); this.enigma = enigma; this.classCache = classCache; this.jarIndex = jarIndex; + this.jarChecksum = jarChecksum; this.mapper = EntryRemapper.empty(jarIndex); } @@ -70,6 +75,10 @@ public class EnigmaProject { return jarIndex; } + public byte[] getJarChecksum() { + return jarChecksum; + } + public EntryRemapper getMapper() { return mapper; } -- cgit v1.2.3