Jump to content

Jab

Member
  • Posts

    487
  • Joined

  • Last visited

Everything posted by Jab

  1. Working on the permissions system / plug-in for ZIRC has really taken a lot of time. This is currently what I'm working on. It will behave like a permissions node system, where a given context (E.G: "zirc.core.ban"), will be permitted if the context proceeding it ("zirc.core"), is defined for either a user, group, or parent group assigned. This will remove the player / admin issues, where moderators and lower-staff can have limited commands, to help with abuse, or other issues. This opens up the ability for trusted players, and donator groups. Don't forget that permissions checks can also extend beyond commands. zirc.interfaces.PermissionHandler is the interface to setup your own Permissions system. Simply register(handler); the instance in a module, and it will be fired whenever a module asks if a player has a permission. Once permissions is done, I'll prep a new build release for ZIRC. This is a major component that I see as top priority.
  2. For ModelLoader (Which is aesthetic), that's just going to be a client-side java mod. ZIRC is a server-side mod, without the need to modify the client's java files. However, there is a ZIRC extension mod on the workshop that will need to be subscribed and used for the server, in order to properly display the chat. As for documentation, it's a lot to do myself, and I plan to do it, just not so much right now because of the amount things I need to do first.
  3. While I'm working on organizing and solidifying the core, here's 2 things I plan on doing before the next release: Permissions. This will be where group permission groups and single user permission definitions can be made. I am currently debating on doing this as a SQLite database. ZIRC-Client-Lua API. This will be for ZIRC modules to be able to communicate with the client mods available through the workshop. Mods with GUIs or other events client-side could become controllable through this medium. I also integrated the global mute plugin as part of the core, and merged SettingsModule to Module, handling settings files with a implementable ModuleSettingsHandler interface.
  4. Not sure then. Make sure modelloader is installed on your client too. That's the only way it will work.
  5. Wouldn't hurt to. Not sure how your other mods call ModelLoader.
  6. Forgot to mention not to use the mod extension for multiplayer. It is currently not working for reasons. Just install the PZ Mods folder.
  7. validate your game files on steam first, then put in modelloader.
  8. The ZIRC Core, along with the modules: Factions, IRC Bot, and Global-Mute are now available as open source. All of the modules and the core do not expose or publicly share Java source files decompiled from the original game, only Java .class compiled files that are distributed along with the release of ZIRC. The source is avaliable here: https://atlassian.ecs-server.net/stash/projects/ZIRC You can study the modules on how to work on your own plug-ins for now. I will be spending time cleaning up the code as I move forward to write more utilities for ZIRC and ZIRC modules. ZIRC projects are organized in Eclipse projects; there is one workspace, with each project as a git repository. In order to compile ZIRC and ZIRC modules, you must add a variable (Or external class folder), and link to the "Project Zomboid Dedicated Server/java" folder, followed by linking to the zirc-core's bin, and lib folders. To create a plug-in, create a project like one of the 3 shown, create a class that extends Module, SQLModule, or SettingsModule (Will either convert to interface, or integrate directly into Module). When you are done, make sure to have a plugin.txt file that points to your module. E.G: "module:zirc.modules.MyModule". Export the project as a JAR file, and place in your "Zomboid/Server/ZIRC/plugins/" folder. Add this plugin (the name of the JAR file), in the ZIRC.ini file in "Zomboid/Server/ZIRC.ini", delimited by commas.
  9. ZIRC Update V2.01: Modified Events to be identified with Strings, rather than a Enumeration, in order for custom Events by third-parties to be handled in the future. E.G: FactionDisbandEvent Created a JAR classloader to load in Jar files at runtime for modules, as plugins. Requires a plugin.txt file specifying the module class to be loaded. IRC-BOT module ignores PVPAttackEvent. Cleaned up various areas of code. I will also be creating documentation and tutorials on how to write plugins for modules. I will also be adding more utilities, like sending packets of information wrapped in chat packets, and accessed through lua via ZIRC extension, so ZIRC plugins / modules can communicate with workshop mods. I am also looking at fake player instances that can be controlled by modules, and item transfer methods to make things easier.
  10. I am currently loading my modules for ZIRC as jar plugins. I have a couple bugs to fix, then I will release the next version, probably with a future guide and steps how to write modules for ZIRC.
  11. Right now, the memory trend you mention is right (besides freeing up memory with native memory handling with the JVM (non-ZNET & RakNet stuff), however, before then, the memory footprint was linearly getting worse. the server had to be restarted a few times a day, and i've seen it try to cap 32gb with little to no reason, even with a stable population. I ran some analytics I coded into ZIRC to see what was going on, after messing around with JMap a bit. When I post a bug report, I'll be sure to include it.
  12. Sure thing! It seems like I actually fixed a memory leak. Terminus (The test server for ZIRC), has been up all day with way less memory footprints.
  13. I wanted to do some more testing to make sure that this is absolutely a memory leak. I am also not too sure how to tell TIS properly. Would be cool to know if there's a proper way to report it.
  14. Jab

    Hydrocraft Mod

    ------------------------------------------------------------- attempted index: removeFromGround of non-table: null ----------------------------------------- STACK TRACE ----------------------------------------- function: onDestroy -- file: HCBarricade.lua line # 53 java.lang.RuntimeException: attempted index: removeFromGround of non-table: null at se.krka.kahlua.vm.KahluaThread.tableget(KahluaThread.java:1549) at se.krka.kahlua.vm.KahluaThread.luaMainloop(KahluaThread.java:623) at se.krka.kahlua.vm.KahluaThread.call(KahluaThread.java:163) at se.krka.kahlua.vm.KahluaThread.pcall(KahluaThread.java:1727) at se.krka.kahlua.vm.KahluaThread.pcallvoid(KahluaThread.java:1672) at se.krka.kahlua.integration.LuaCaller.pcallvoid(LuaCaller.java:53) at se.krka.kahlua.integration.LuaCaller.protectedCallVoid(LuaCaller.java :81) at zombie.Lua.Event.trigger(Event.java:28) at zombie.Lua.LuaEventManager.triggerEvent(LuaEventManager.java:107) at zombie.iso.objects.IsoThumpable.Thump(IsoThumpable.java:874) at zombie.ai.states.ThumpState.execute(ThumpState.java:127) at zombie.ai.StateMachine.update(StateMachine.java:130) at zombie.characters.IsoGameCharacter.update(IsoGameCharacter.java:5870) at zombie.characters.IsoZombie.update(IsoZombie.java:1805) at zombie.iso.IsoCell.ProcessObjects(IsoCell.java:1336) at zombie.iso.IsoCell.update(IsoCell.java:5165) at zombie.iso.IsoWorld.update(IsoWorld.java:2497) at zombie.gameStates.IngameState.update(IngameState.java:1249) at zombie.network.GameServer.main(GameServer.java:638) ----------------------------------------- STACK TRACE ----------------------------------------- function: onDestroy -- file: HCBarricade.lua line # 53 Not sure if you already have this error taken care of. Spams my server console periodically, and actually got me aware of a memory leak issue I patched.
  15. After some extensive memory analysis, I have created a couple patches to the game's java files that may fix a potential memory leak where lua event triggers error and cause objects to not be garbage collected, stacking up over time and causing memory to build up. I'll throw it on the next update to ZIRC soon.
  16. You had a flipped x-axis problem too? xD haha that was annoying when doing the scripts.
  17. ZIRC Update V2.00: Rewritten engine to support a wide variety of modular benefits. Added ZIRC Events. These are events that represent in-game server events, such as DeathEvent, PVPKillEvent, ChatEvent, etc. Added ZIRC Log Listeners. These are useful when needing to Log, or transmit logged events (Example: IRC). Added ZIRC Modules. These will become more useful when Jar classloading is implemented. This organizes components loaded and used by ZIRC. Added ZIRC Command Listeners. These are for Command Events, and are implemented to organize tooltip messages, command registration, and command execution. Added ZIRC Player Wrapper class, to handle UdpConnection and IsoPlayer instances simultaneously, without having to juggle them both, to retrieve common information, such as admin rights, and usernames. Added ZIRC module super-class 'SQLModule', to aid in modules requiring SQLite access to the servertest.db. (Other files can also be used with SQLModule!). Added ZIRC module 'ModuleIRC', which is a re-write of handling and loading a IRC Bot instance for server moderation purposes. Added ZIRC module 'ModuleFactions', which is a re-write of handling and managing factions on the server. Added ZIRC module 'VanillaModule' which is a re-organization and partial re-writing of the way commands, and logging are handled. Added ZIRC module 'ModuleMonitorGlobals', which is used to dump memory size and item count of commonly & heavily used Map collections across Project Zomboid, to detect memory leaks. This module will be developed more over time, depending on memory leaks, or other globally-relative issues in the future. Added ZIRC EventListener 'ChatListener' which is a ZIRC listener for chat handling, and chat message dispatching. This helps organize and keep things clean. Added ZIRC EventListener 'DeathListener' which is a ZIRC listener for death handling, and PVP kill events. Added ZIRC EventListener 'ZIRCCommandListener', which is used for handling ZIRC-crafted commands, and re-written commands from the vanilla server. Added ZIRC LogListener for the IRC Bot, for transmission of logged events. Modified Log events to be more proper english. Removed commands '/banuser', '/banip', and '/banid'. Added commands '/ban', and '/unban'. This is to unify ban management commands. Added command '/reload', which performs '/reloadoptions' and re-initializes ZIRC. Added command '/muteglobal', which mutes global chat for a player. This is permenant, until the player types '/muteglobal' again. The player is notified every time they log on. Added Event 'ChatEvent' for chat events. Added Event 'CommandEvent' for command events. Added Event 'ConnectEvent' for connection events. Added Event 'DeathEvent' for player death events (non-pvp). (May be duplicate instances when fired. Looking into it. Using a event timestamp to remedy this for now) Added Event 'PVPKillEvent' for player PVP death events. (May be duplicate instances when fired. Looking into it. Using a event timestamp to remedy this for now) Added Event 'PVPAttackEvent' for player PVP attack events. (Will be implemented in the next version) Added Event 'LogEvent', used for passing log events through ZIRC's Log Listeners. Added Event 'LuaEvent', which will be implemented possibly in the next version, and will be used as a proxy for Lua events. Changed command '/startzirc' and '/stopzirc' to '/irc [start|stop]' for organization and consistency. Re-written /help to be server-sided. This helps with the addition of new commands. /ban: Bans a player. Flags: -s: SteamID flag (No ID required, but must be online!) ex: /ban -U "username\" -s -S: SteamID flag (ID required!) ex: /ban -S "11330" -U: Username flag (Required unless "-S" or "-I") ex: /ban -U "username" -i: IP flag (No IP required, but must be online!) -I: IP flag (IP required!) ex: /ban -I "127.0.0.1" (Note: without -U given, To undo this ban, the IP will be manditory as an argument!) /unban: Unbans a player. Flags: -U: Username flag (Required!) ex: /unban -U "username" -S: SteamID flag (ID required!) ex: /unban -S "11330" -I: IP flag (IP required!) ex: /unban -I "127.0.0.1"
  18. You'd probably become a god here if you did taco bell.
  19. When build 34 is released fully to the public.
  20. Okay so, I just did a big push of code last night, and now I am testing what is currently done. The Module system seems stable, with a few things possibly missing, beyond adding more Event types for EventListeners. Although the classloading jar stuff isn't here yet, the engine is essentially prepped for it when I get to it, which means opening up ZIRC for third-party modules. I will also be looking at heavily improving the way module config files work, before any third-party modules become a thing. Be sure to look for a update / change log in the coming 48 hours or so.
  21. Neat. I'm new to advanced encoding techniques. I might stumble a bit when I start looking into it.
  22. Tommyguns uses his own model modification atm, iirc. He's looking to migrate to ModelLoader, last I spoke to him.
  23. Been thinking about it. I'll have to look and see how TIS does it, however, I see it as an important feature to add.
  24. So far, I've successfully converted all the zirc code into a new engine that supports modules. I've also worked on ZIRC events, which are fantastic. There are LogListener, CommandListener, and EventListener interfaces for modules to register and use. The transfer of the vanilla commands are still being debugged, and is holding back the next release, with a couple more planned features to add in for staff management.
×
×
  • Create New...