diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/lua/GenerateLuaUtils.java b/protocol/src/main/java/com/zfoo/protocol/serializer/lua/GenerateLuaUtils.java index a4566562..02d50510 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/lua/GenerateLuaUtils.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/lua/GenerateLuaUtils.java @@ -89,12 +89,7 @@ public abstract class GenerateLuaUtils { // All protocol files are generated in a single protocol file. public static void createProtocolManagerInOneFile(List protocolList) throws IOException { - var list = List.of("lua/ByteBuffer.lua", "lua/Long.lua"); - for (var fileName : list) { - var fileInputStream = ClassUtils.getFileFromClassPath(fileName); - var createFile = new File(StringUtils.format("{}/{}", protocolOutputRootPath, StringUtils.substringAfterFirst(fileName, "lua/"))); - FileUtils.writeInputStreamToFile(createFile, fileInputStream); - } + createTemplateFile(); // 生成Protocol.lua文件 var protocolManagerTemplate = ClassUtils.getFileFromClassPathToString("lua-one/ProtocolManagerTemplate.lua"); @@ -178,12 +173,7 @@ public abstract class GenerateLuaUtils { } public static void createProtocolManager(List protocolList) throws IOException { - var list = List.of("lua/ByteBuffer.lua", "lua/Long.lua"); - for (var fileName : list) { - var fileInputStream = ClassUtils.getFileFromClassPath(fileName); - var createFile = new File(StringUtils.format("{}/{}", protocolOutputRootPath, StringUtils.substringAfterFirst(fileName, "lua/"))); - FileUtils.writeInputStreamToFile(createFile, fileInputStream); - } + createTemplateFile(); // 生成Protocol.lua文件 var protocolManagerTemplate = ClassUtils.getFileFromClassPathToString("lua/ProtocolManagerTemplate.lua"); @@ -208,6 +198,20 @@ public abstract class GenerateLuaUtils { logger.info("Generated Lua protocol manager file:[{}] is in path:[{}]", file.getName(), file.getAbsolutePath()); } + private static void createTemplateFile() throws IOException { + var list = List.of("lua/Long.lua"); + for (var fileName : list) { + var fileInputStream = ClassUtils.getFileFromClassPath(fileName); + var createFile = new File(StringUtils.format("{}/{}", protocolOutputRootPath, StringUtils.substringAfterFirst(fileName, "lua/"))); + FileUtils.writeInputStreamToFile(createFile, fileInputStream); + } + + var byteBufferFileName = "lua/ByteBuffer.lua"; + var byteBufferTemplate = ClassUtils.getFileFromClassPathToString(byteBufferFileName); + var byteBufferFile = new File(StringUtils.format("{}/{}", protocolOutputRootPath, StringUtils.substringAfterFirst(byteBufferFileName, "lua/"))); + FileUtils.writeStringToFile(byteBufferFile, StringUtils.format(byteBufferTemplate, protocolOutputRootPath), false); + } + public static void createLuaProtocolFile(ProtocolRegistration registration) { // 初始化index GenerateProtocolFile.index.set(0); diff --git a/protocol/src/main/resources/lua/ByteBuffer.lua b/protocol/src/main/resources/lua/ByteBuffer.lua index 9bfb67e4..f187c710 100644 --- a/protocol/src/main/resources/lua/ByteBuffer.lua +++ b/protocol/src/main/resources/lua/ByteBuffer.lua @@ -5,7 +5,7 @@ --右移操作>>是无符号右移 --local Long = require("Long") -local ProtocolManager = require("zfoolua.ProtocolManager") +local ProtocolManager = require("{}.ProtocolManager") local maxInt = 2147483647 local minInt = -2147483648