AE2FluidCraft-Rework
103 merged pull requests.
Needs action on an existing world:
- [items disappear] #340 Major refactor replacing custom fluid GUIs with Applied Energistics 2 universal GUIs. Fluid Terminal and Fluid Pattern Terminal are now deprecated.
The Fluid Terminal, Fluid Pattern Terminal, Fluid Pattern Terminal Ex, Fluid Level Emitter, Fluid Storage Monitor, Fluid Conversion Monitor, Wireless Fluid Terminal and Fluid Discretizer no longer exist; placed parts and stored stacks will disappear. Break them and craft them away before updating, or accept the loss; the AE2 universal terminal takes over all of their jobs. Fluid cells, fluid interfaces and storage buses are untouched.
New Features
- #463 Extended TileLevelMaintainer, GuiLevelMaintainer, and supporting network packets to support lite crafting mode toggle via CPacketLevelMaintainer. - @Nana-Sakura
- Added: lite crafting mode toggle for Level Maintainer
- #456 Added client-side ME Chest texture rendering logic in FluidCellHandler.java and FCPartsTexture.java to display different access face textures based on installed cell type. - @samhaines-wustl
- Added: Fluid cell type detection and visual indicators for ME Chests, New fluid terminal texture variants
- #453 Added recipe to allow clearing Fluid Storage Bus settings via crafting in RecipeLoader.java. - @Sanduhr32
- Added: Clear recipe for Fluid Storage Bus configuration
- #447 Modified PartFluidAnnihilationPlane.java to recognize and collect stationary fluid blocks in addition to flowing ones. - @Redderpears
- Added: Stationary fluid collection for Annihilation Planes
- Fixed: Inability to collect fluids from certain sources like Blood Magic rituals
- Closes GTNH#25451
- #446 Added tab navigation event handling to GuiLevelMaintainer.java to allow keyboard traversal between input fields. - @Kogepan229
- Added: Tab key navigation in Level Maintainer GUI
- Closes GTNH#25371
- #443 Added memory card serialization support to PartFluidInterface, PartFluidP2PInterface, TileFluidInterface, and utility classes for handling dual-host settings. - @Kogepan229
- Added: Memory Card compatibility for Fluid Interface configurations
- #442 Extended TileSuperStockReplenisher with logic for full-stock mode, updated GUI and container to support mode selection and display state. - @Inphysible
- Added: Full-stock mode for Super Stock Replenisher, Mode toggle UI button, Localized strings for new mode
- #441 Modified FCBaseItemCell.java to allow fluid-filled Fluid Cells to be stored as items within Item Cells. - @Inphysible
- Added: Fluid Cell storage in Item Cells
- #430 Modified ContainerFluidPacketDecoder, TileFluidPacketDecoder, and FCSlotRestrictedInput to accept fluid output in decode operations; updated localization. - @lc-1337
- Added: Fluid output support in packet decoder
- #429 Added tooltip text to ItemFluidPacket and registered description key in NameConst and en_US localization. - @lc-1337
- Added: Fluid packet description tooltip
- #424 Introduced PartFluidFormationPlane, PartFluidAnnihilationPlane, ItemFluidFormationPlane, ItemFluidAnnihilationPlane; added textures, texture registration, and localization entries. - @lc-1337
- Added: Fluid Formation Plane part, Fluid Annihilation Plane part, Fluid plane textures, Fluid plane items
- #417 Enhanced GuiFCImgButton and GuiLevelTerminal to provide dimension-aware feedback; updated localizations in de_DE, en_US, ru_RU, and zh_CN. - @Kogepan229
- Added: Dimension-aware GUI tooltip
- #412 Updated all multipart item classes to allow OpenComputers robot placement by setting the appropriate flag. - @MarkinoTeck
- Added: OpenComputers robot placement support for multiparts
- #407 Enhanced DualityFluidInterface with generic type support, aligning with improvements made to AE2 Unofficial. - @Kogepan229
- Added: generic type support for fluid interface
- #398 Added tooltip display logic to ItemPartFluidStorageBus and updated language files in multiple locales. - @Eldrinn-Elantey
- Added: storage priority tooltip for Fluid Storage Bus
- #388 Added inverter card support in CommonProxy to allow the card to be applied to fluid cells. - @serenibyss
- Added: inverter card support for fluid cells
- #379 Extended KeybindLoader to register separate keybinds for each terminal variant and updated language file. - @iR3turnZ
- Added: Individual keybinds for each Universal Terminal type
- #364 Updated TileCertusQuartzTank drain logic and Waila data providers. - @Dream-Master
- Added: Drain from empty top tank
- #363 Extended BlockCertusQuartzTank to support IFluidContainerItem interface. - @Dream-Master
- Added: IFluidContainerItem support
- #359 Updated TileCertusQuartzTank drain logic to check lower tanks when current tank is empty. Enhanced CertusQuartzTankWailaDataProvider and Tooltip to aggregate tower fluid and capacity information. - @danyadev
- Added: Drain from empty top tank, Tower-wide Waila display
- #358 Extended BlockCertusQuartzTank to support IFluidContainerItem interface while excluding block-form containers. Fixed container handling logic to execute only server-side and properly drop items on ground when inventory is full. - @danyadev
- Added: IFluidContainerItem support for tanks, Ground dropping for full inventory
- Fixed: Empty container disappearing on full inventory, Ghost item duplication on client/server sync
- #349 Added comparator support to BlockCertusQuartzTank to read only the connected tank's fill level, not the entire column. - @danyadev
- Added: Redstone Comparator support for Certus Quartz Tank
- #332 Added GuiLevelEmitterProxy and new GuiType enum value to support opening Level Emitter GUI from Level Terminal; extended CPacketLevelTerminalCommands to handle additional operations. - @Kogepan229
- Added: Level Emitter GUI access from Level Terminal, GuiLevelEmitterProxy class
- Removed: Infinity Booster Card restrictions
- Fixed: Wireless Level Terminal icon
- #327 Extended TileLevelMaintainer to implement Memory Card serialization and deserialization methods. - @Kogepan229
- Added: Memory Card configuration support for Level Maintainer
New Content
- #386 Replaced block texture file. - @Ranzuu
Changes
- #449 Updated NEICellViewHandler.java to remove duplicate unit labels from cell storage display text. - @przemo1232
- Fixed: Redundant unit text in cell tooltips
- #444 Updated FMP-related code in OpenComputers driver, WAILA integration, GUI factories, and utility classes to work with AE2 API changes. - @Kogepan229
- Removed: Obsolete code in Util.java
- #439 Adapted GUI color handling in GuiLevelTerminal and updated AE2 dependency version to accommodate GUIColor API changes. - @Kogepan229
- #436 Removed legacy cell restriction code from FCBaseItemCell and ItemPortableFluidCell; updated AE2 Unofficial dependency version. - @lc-1337
- Removed: Legacy cell restriction code
- #435 Refactored GuiSuperStockReplenisher, ContainerSuperStockReplenisher, and TileSuperStockReplenisher to use new slot handling and switch from I/O operation logging to direct inventory counting on updates; removed BlockSuperStockReplenisher. - @lc-1337
- Removed: BlockSuperStockReplenisher class
- Fixed: Stock Replenisher reliability issues
- #428 Updated FCBaseItemCell and ItemPortableFluidCell to use new cell restriction API from AE2. - @lc-1337
- #426 Split texture registration for ItemPartFluidInterface to support separate resource pack textures for block and part variants. - @Ranzuu
- Added: Separate part texture resource
- #420 Moved storage bus config conversion logic from reference-time to load-time in PartFluidStorageBus. - @Kogepan229
- #416 Updated dependency version and added legacy stack type handling to PartFluidLevelEmitter. - @lc-1337
- Added: Legacy stack type support in PartFluidLevelEmitter
- #408 Removed cofhcore from dependencies.gradle as it is transitively provided by AE2. - @Kogepan229
- Removed: CoFHCore dependency
- #405 Modified pixel coordinates in GuiLevelTerminal for improved component positioning. - @Ranzuu
- #403 Removed cofhcore from dependencies.gradle and updated imports and method calls to use vanilla implementations instead. - @unix-supremacist
- Removed: CoFHCore dependency
- #402 Removed essentia terminal component from recipe definition in RecipeLoader. - @lc-1337
- Removed: Essentia Terminal from Ultra Terminal recipe
- #399 Updated Applied-Energistics-2-Unofficial dependency and corrected storage names in PartFluidExportBus and PartFluidImportBus. - @lc-1337
- #387 Corrected GuiLevelMaintainer FCGuiLineField layout and updated corresponding texture. - @Ranzuu
- Fixed: FCGuiLineField overflow
- #382 Updated container classes and network packets to work with AE2's GUI refactor. Updated AE2 dependency version. - @Kogepan229
- #380 Removed slot rendering workaround from GuiFluidInterface following AE2 changes. - @Kogepan229
- Removed: Slot rendering code
- #375 Refactored stack handling across multiple classes (FCBaseItemCell, monitors, parts) to adapt to AE2 Stack Type API changes. Updated dependencies.gradle and gradle.properties with newer AE2 and ThaumicEnergistics versions. - @Kogepan229
- Migration: Only affects addon mod developers using AE2 Stack Type API; rebuild any dependent addons against the updated API.
- #361 Modified WailaInit to check for WailaPlugins presence via ModAndClassUtil before registering tank tooltip handlers. - @danyadev
- Added: WailaPlugins compatibility check
- #355 Modified ItemCertusQuartzTankRender to render tank model once per call with explicit GL_CULL_FACE and GL_BLEND/GL_LIGHTING control; fixed fluid rendering after bucket placement. - @danyadev
- Fixed: Tank model bottom texture rendering, Fluid rendering after bucket placement
- #341 Modified PartFluidP2PInterface to add copy-paste functionality, improving interoperability with dual-mode P2P interfaces. - @lc-1337
- #339 Modified TileLevelMaintainer to access fluid storage capacity and amount directly, bypassing the discretizer step. - @lc-1337
- #293 Modified PartFluidExportBus, PartFluidP2PInterface, TileFluidAutoFiller, TileFluidInterface, ItemFluidPacket, and GUI components to work with AE2's native fluid implementation; removed coremod bytecode transformers that are no longer needed. - @lc-1337
- Removed: FCClassTransformer and related coremods, Bytecode transformers for CraftingCpu, CraftingGridCache, CraftingTreeNode, DualityInterface
Balance
- #392 Updated ItemAndBlockHolder configuration to increase the type capacity of the Artificial Universe Fluid Cell. - @UltraProdigy
Bug Fixes
- #464 Modified GuiMagnetFilter to re-apply oreDict value from container sync while field is not being edited, compensating for Baubles slot NBT-only changes not triggering resync. - @Eldrinn-Elantey
- Fixed: stale magnet card filter oreDict display
- #462 Added active-channel validation in DualityFluidInterface before accessing ME fluid inventory. - @Worive
- Fixed: fluid transfer through inactive dual interfaces
- Closes GTNH#21121
- #461 Modified CPacketSwitchGuis and Util to preserve the exact terminal instance across tab switches; global actions now prefer Baubles-equipped terminals over inventory terminals. - @Worive
- Fixed: terminal swapping to wrong ME network on tab switch
- Closes GTNH#19436
- #460 Applied orientation transform from ItemDropRender to ItemPacketRender with push/pop wrapper to prevent modelview leakage. - @Eldrinn-Elantey
- Fixed: fluid packet rendering orientation in item frames and holograms
- #455 Fixed search logic, hover detection, and focus management in GuiLevelTerminal.java to prevent null pointer exceptions and incorrect GUI state. - @Kogepan229
- Fixed: Level Terminal crash on fluid search, Crash on item aspect hover, Focus handling issue
- Closes GTNH#25525, GTNH#25780, GTNH#26135
- #452 Added Crafting Card upgrade detection and MultiCraftingTracker integration to fluid-side ME Interface logic in PartFluidInterface, PartFluidP2PInterface, and TileFluidInterface. - @Eldrinn-Elantey
- Added: Crafting Card support for Fluid Interfaces
- Fixed: Fluid Interfaces not crafting missing fluids with Crafting Card
- #451 Updated UltraTerminalButtons.java to sync client-side terminal mode with the authoritative server state when the terminal is reopened. - @DreamYao520
- Fixed: Invisible terminal when reopened after mode switch in Baubles
- Closes GTNH#25828
- #445 Fixed TileFluidAutoFiller.java to handle edge case where stack size is 0, preventing a null pointer or index exception. - @Kogepan229
- Fixed: Instant crash on Fluid Auto Filler connection
- Closes GTNH#25224
- #438 Fixed null pointer or index bounds issue in TileCertusQuartzTank.java when handling fluid drainage with Large Steel Fluid Cells. - @Luca-Guettinger
- Fixed: Crash when draining Certus Quartz Tank with Large Steel Fluid Cell
- Closes GTNH#24725
- #423 Added overrides to PartFluidInterface, PartFluidP2PInterface, and TileFluidInterface to prevent default TileInterface/PartInterface item config behavior from interfering with fluid handling. - @daxsc
- Fixed: Item config blocking fluid interface fluids, Fluid interface returning wrong network's fluids
- #422 Corrected DualityFluidInterface to properly track and return internal fluid contents on every query, not just once after config update. - @daxsc
- Fixed: Dual Interface internal fluids returned only once after config change
- #419 Removed redundant addCheckedInformation override in FCBaseItemBlock and related empty methods in FCBaseBlock; relies on AEBaseItemBlock's native tooltip handling. - @CaelixOrbit
- Removed: FCBaseItemBlock.addCheckedInformation override, FCBaseBlock.addCheckedInformation bridge, FCBaseBlock.addInformation stub
- Fixed: Duplicate tooltips in item stacks
- #418 Implemented getDrops override in PartFluidInterface and PartFluidP2PInterface to delegate dropping logic to the internal fluidDuality handler. - @CaelixOrbit
- Fixed: Fluid packets lost when breaking or wrenching interface parts
- #415 Added fluid readability delegates to PartFluidInterface, PartFluidP2PInterface, and TileFluidInterface to expose internal fluid contents to external storage buses. - @lc-1337
- Fixed: ME Fluid Storage Bus not recognizing fluids in Dual Interfaces
- Closes GTNH#24147
- #414 Corrected the closeInventory method in TileFluidPacketDecoder to call inventory.closeInventory() instead of inventory.openInventory(). - @CaelixOrbit
- Fixed: copy-paste error in closeInventory method
- #404 Corrected UI factory logic in multiple files to properly handle terminal state when stored in Baubles equipment slots. - @lc-1337
- Fixed: crash when opening magnet filter with terminal in Baubles
- #400 Corrected storage name references in PartFluidLevelEmitter. - @lc-1337
- Fixed: storage naming inconsistency
- #397 Fixed typos in en_US.lang localization strings. - @Yoshy2002
- Fixed: typos in localization
- #396 Updated Applied-Energistics-2-Unofficial dependency and modified TileSuperStockReplenisher item handling. - @Kogepan229
- Fixed: Stock Replenisher voiding items
- Closes GTNH#23232
- #395 Increased inventory size in TileSuperStockReplenisher to accommodate more items in transit. - @lc-1337
- Fixed: Stock Replenisher voiding items
- Closes GTNH#23232
- #394 Adjusted item handling logic in TileSuperStockReplenisher to prevent item loss. - @lc-1337
- Fixed: Stock Replenisher voiding items
- Closes GTNH#23232
- #393 Restored
FCClassTransformer,FluidCraftCore, core mod hooks, and storage registry/GUI/NEI transformers required for fluid storage bus operations. Removed only the problematic transformer that caused issues, keeping the transformers still needed until full removal in #375. - @Kogepan229- Added: bytecode transformers for fluid storage, external storage registry transformer, GUI crafting transformer, NEI transformer
- Fixed: fluid storage bus broken in daily
- Closes GTNH#23231
- #390 Added null check in TileCertusQuartzTank to prevent NullPointerException when draining high-volume fluid from a tower structure. - @danyadev
- Fixed: NPE when draining large tanks in tower configuration
- #389 Removed bytecode transformation classes (FCClassTransformer, FluidCraftCore, CoreModHooks, and associated transformers) and set usesMixins to false in gradle.properties. - @lc-1337
- Removed: FCClassTransformer, FluidCraftCore, CoreModHooks, ExternalStorageRegistryTransformer, GuiCraftingTransformer, NEITransformer
- Fixed: crash when using optimization matrix
- Closes GTNH#23003
- #385 Optimized TileCertusQuartzTank update frequency. - @lc-1337
- Fixed: Tank update spam
- #384 Updated PartFluidImportBus and PartFluidExportBus to properly handle edge cases when destination is full or unavailable, preventing server hangs and ensuring correct behavior when fluid cannot be transferred. - @hiroscho
- Fixed: Fluid Import Bus server hang, Fluid Export Bus issues
- Closes GTNH#22958
- #383 Corrected TileCertusQuartzTank to properly distinguish between simulation and actual drain operations. - @danyadev
- Fixed: Tank drain simulation performing actual drain
- Closes GTNH#22962
- #378 Updated ItemWirelessUltraTerminal and UltraTerminalButtons to ensure NBT changes are synchronized to client when terminal is in Baubles slot. - @Kogepan229
- Fixed: Universal Terminal mode switch sync in Baubles slot
- #376 Corrected TileFluidDiscretizer error handling. - @lc-1337
- Fixed: Fluid Discretizer crash
- #374 Corrected SPacketMEUpdateBuffer to properly null out world reference after packet processing, preventing memory retention. - @Alexdoru
- Fixed: World reference memory leak in network packet
- #373 Modified TileSuperStockReplenisher internal logic. - @lc-1337
- Fixed: Super Stock Replenisher behavior
- #362 Corrected FluidCellInventory partition evaluation loop to iterate over all partition slots rather than breaking at getTotalFluidTypes() (5), ensuring slots beyond the first 5 are considered for fluid distribution. - @Litten95
- Fixed: Multi-fluid storage partition slots ignored beyond index 5
- Migration: Re-partition multi-fluid storage cells if partition slots beyond the first five were not working as expected.
- #354 Extended PartFluidP2PInterface bind operation to preserve stocking configuration. - @hiroscho
- Fixed: P2P bind stocking settings not copied
- #353 Added flag synchronization to PartFluidP2PInterface memory card save/load operations. - @hiroscho
- Fixed: P2P interface desync on repeated memory card save
- #352 Added missing synchronization flag to PartFluidP2PInterface. - @hiroscho
- Fixed: P2P dual interface item duplication
- #350 Modified CertusQuartzTankWailaDataProvider to use getTankInfo directly instead of relying on NBT data timing; registered specific TileCertusQuartzTank class instead of generic TileEntity class for WAILA. - @danyadev
- Added: CertusQuartzTankWailaDataProvider
- Removed: VanillaTileWailaDataProvider, FluidInvWailaDataProvider, Util methods
- Fixed: WAILA body flickering on Certus Quartz Tank
- #348 Changed TileCertusQuartzTank syncing to use markBlockForUpdate instead of manual S35PacketUpdateTileEntity packets, and fixed updateEntity to properly trigger sync after moving fluid between tanks. Removed unnecessary packet handlers. - @danyadev
- Removed: Manual tile entity packet sending code, ChannelLoader packet registration
- Fixed: Fluid amount display when stacking tanks, Fluid rendering flickering, Server desync when placing tanks
- Closes GTNH#22181
- #342 Updated MEMonitorIFluidHandler to correctly apply blocking card filtering on world load. - @hiroscho
- Fixed: Advanced Blocking Card initialization on world load
- Closes GTNH#22144
Performance
- #459 Cached CellType enum values array in static field to avoid allocation overhead on repeated calls. - @boubou19
- #457 Cached enum array allocations in UltraTerminalButtons, ItemBaseWirelessTerminal, ItemWirelessUltraTerminal, WirelessMagnet, CPacketSwitchGuis, and UltraTerminalModes. - @boubou19
- #437 Introduced WalrusRenderer caching class to centralize walrus model loading; refactored ItemWalrusRender and RenderBlockWalrus to use shared cached model; registered renderer in RenderLoader. Requires GTNHLib PR #354. - @sisyphussy
- Added: WalrusRenderer caching class
- Removed: ClientProxy walrus model field
- Fixed: Excessive walrus render allocations, Walrus lighting at huge scales
- Closes GTNH#21332
- #431 Streamlined ContainerLevelTerminal packet construction to minimize network overhead. - @czqwq
- #421 Refactored ItemWalrusRender, RenderBlockWalrus, and ClientProxy to cache the walrus model in ClientProxy rather than loading it on every render call. - @Alexdoru
Removals
- #433 Deleted item classes (ItemFluidLevelEmitter, ItemFluidStorageMonitor, ItemFluidConversionMonitor, ItemPartFluidTerminal variants, ItemWirelessFluidTerminal), part classes (PartFluidLevelEmitter, PartFluidTerminal), recipes, and related registry entries; updated texture and localization files. - @lc-1337
- Removed: Fluid Level Emitter item and part, Fluid Storage Monitor item, Fluid Conversion Monitor item, Fluid Terminal items (standard and extended), Wireless Fluid Terminal item, Related recipes and registry entries
Internal / Refactor
- #448 Replaced direct cell type checks with IStorageCell interface usage in ContainerSuperStockReplenisher and TileSuperStockReplenisher. - @lc-1337
- #440 Consolidated color definitions from multiple GUI classes and FCGuiColors.java into ColorUtils, removed redundant localization strings for colors. - @Ranzuu
- Removed: Unlocalized color definitions from language files and FCGuiColors.java
- Fixed: Broken and inconsistent color definitions
- #434 Made WCT optional with fallback handling; removed NEI Extract Loader system and related recipe extractors; refactored ThaumicEnergistics integration and WirelessTerminalRecipe; removed unused ThE imports. - @Kogepan229
- Removed: NEIUtils class, IRecipeExtractor interface, IRecipeExtractorLegacy interface, IllegalOrderStackID class, OrderStack class, DefaultExtractorLoader class, Recipe extractor implementations (Avaritia, EnderIO, and others), ItemWirelessUltraTerminal WCT integration, Extract Loader system
- #406 Removed outdated reflection patterns from ModAndClassUtil and replaced with direct references to AE2 Unofficial methods available in rv3-beta-238+. - @danyadev
- Removed: reflection patterns, unused compatibility checks
- #377 Removed BlockFluidDiscretizer file, cleaned up item and part implementations, updated recipe loading and language files, removed unused constants. - @lc-1337
- Removed: BlockFluidDiscretizer class, Fluid Discretizer block recipes, Unused constants
- #357 Removed IPatchedTextureAtlasSprite.markNeedsAnimationUpdate() calls throughout rendering and GUI classes; removed Hodgepodge dependency version constraint. - @danyadev
- Removed: Hodgepodge dependency constraint
- #346 Extracted tank traversal logic into dedicated getTankAbove and getTankBelow methods, reducing redundant getTileEntity calls in drain, fill, and getTankInfo operations. Modified getTankInfo behavior to show fluid from current tank instead of combining all tanks above. - @danyadev
- #340 Removed multiple copy-paste GUI classes and switched to AE2's native terminal implementations; deleted fluid discretizer functionality, ExtraCells integration, and replaced inheritance with direct AE2 class extension. Updated dependencies and repositories. - @lc-1337
- Added: FluidInterfaceButtons and UltraTerminalButtons client components
- Removed: Fluid Terminal and Fluid Pattern Terminal GUIs, Copy-paste fluid GUI systems, Fluid discretizer, ExtraCells integration, Multiple custom cell inventory classes, CraftingGridCacheFluidInventoryProxyCell and related classes
- Migration: The Fluid Terminal, Fluid Pattern Terminal, Fluid Pattern Terminal Ex, Fluid Level Emitter, Fluid Storage Monitor, Fluid Conversion Monitor, Wireless Fluid Terminal and Fluid Discretizer no longer exist; placed parts and stored stacks will disappear. Break them and craft them away before updating, or accept the loss; the AE2 universal terminal takes over all of their jobs. Fluid cells, fluid interfaces and storage buses are untouched.
- #326 Removed Ae2Reflect wrapper calls throughout the codebase and replaced them with direct method calls to AE2 classes; some reflection usage retained for access control. - @NeOzay
Chores
- #450 Fixed grammatical error in en_US.lang localization file for Fluid Packet tooltip. - @ham-corp
- Fixed: Grammar in Fluid Packet tooltip
Contributors
Everyone who authored, reviewed or co-authored a change on this page, with how many of them:
@Kogepan229 (63), @lc-1337 (53), @Dream-Master (27), @danyadev (16), @UltraProdigy (8), @hiroscho (6), @Ranzuu (6), @Eldrinn-Elantey (5), @DarkShadow44 (4), @Alexdoru (3), @boubou19 (3), @CaelixOrbit (3), @Luca-Guettinger (3), @Nikolay-Sitnikov (3), @sisyphussy (3), @daxsc (2), @Inphysible (2), @koolkrafter5 (2), @PLASMAchicken (2), @Worive (2), @Algent (1), @AnsonYeung (1), @C0bra5 (1), @czqwq (1), @DreamYao520 (1), @Guvante (1), @ham-corp (1), @iR3turnZ (1), @kuba6000 (1), @Litten95 (1), @MarkinoTeck (1), @Nana-Sakura (1), @NeOzay (1), @przemo1232 (1), @Pxx500 (1), @Redderpears (1), @samhaines-wustl (1), @Sanduhr32 (1), @serenibyss (1), @slprime (1), @Spicierspace153 (1), @SuperSoupr (1), @unix-supremacist (1), @Yoshy2002 (1)