LogicGates [1.16 - 1.21] | Redstone logic gates in one block! icon

LogicGates [1.16 - 1.21] | Redstone logic gates in one block! -----

Forget about giant Redstone logic gates. All logic gates in one block!




Using the oneTick config setting you can specify whether the gateway should update every default 2 ticks (more stable) or 1 tick (faster).
----------, Feb 21, 2025

Using the oneTick config setting you can specify whether the gateway should update every default 2 ticks (more stable) or 1 tick (faster).
----------, Feb 21, 2025

This update introduces integration with WorldEdit to ensure that the original properties of logic gates created with the plugin are not lost during editing operations performed with WorldEdit.



Key changes:
  • During WorldEdit operations, logic gates are temporarily converted into chests containing gate data (e.g., direction, state, interval) stored in a book (WRITABLE_BOOK). This prevents the loss of original data during WorldEdit operations.
  • After the WorldEdit operations are completed, the chests are converted back into logic gates, preserving their original properties by retrieving values from the book.
  • The integration listens for WorldEdit events (e.g., EditSessionEvent) to track changes and respond accordingly.
  • Gate restoration is performed in batches, which improves performance and minimizes server load.
  • Gate data is serialized into JSON format and stored in the book using the Gson library.
We can copy our complex systems using WorldEdit and they will retain their original properties. In earlier versions of the plugin, for example, the direction of the gate, the output state, the TIMER interval, the threeInput state — were not copied!

In this version, we can now create WorldEdit schematics and paste them without any problems, copy and paste selections, or use //stack and many more!

https://logicgates.bednarskiwsieci.pl/docs/integrations/worldedit-integration
----------, Feb 17, 2025

Since version 1.2.0 of the plugin, a way to change the input direction of the NOT gate has been added. To do this, configure the notGateInputPosition key in the config.yml file. You can set the value to default or opposite. The default value (default) sets the input position of the gate according to the old method. When changed to opposite, the input of the NOT gate will be reversed relative to the output of the gate (opposite). This is very useful when we want to build a layout that is kept in one line.

# Define the position of the input for NOT gate
# Options: default, opposite
notGateInputPosition: opposite

----------, Feb 12, 2025

Last pull request enhances the integration with the WorldEdit plugin by improving the check for its existence. The changes ensure that if WorldEdit is not installed, the WorldEdit class is not loaded, thereby preventing any ClassNotFound exceptions. This results in a more stable and robust application, especially in environments where the WorldEdit plugin might not be present.

Fixed issue #6 https://github.com/piotrmaciejbednarski/LogicGates/issues/6
----------, Feb 12, 2025

Last pull request enhances the integration with the WorldEdit plugin by improving the check for its existence. The changes ensure that if WorldEdit is not installed, the WorldEdit class is not loaded, thereby preventing any ClassNotFound exceptions. This results in a more stable and robust application, especially in environments where the WorldEdit plugin might not be present.

Fixed issue #6 https://github.com/piotrmaciejbednarski/LogicGates/issues/6
----------, Feb 12, 2025

New features
  • Added the legacyMode variable to the GateUpdater class, which controls whether the system uses the legacy method for updating block states (REDSTONE_BLOCK or Material.AIR) or the modern method (GateUtils.setRedstonePower).
  • Added legacyMode configuration in the config.yml file with a corresponding comment explaining its functionality.
  • Updated messages.yml file.
  • Added a Sound.BLOCK_NOTE_BLOCK_PLING when a gate block is interacted with.
  • Added support for Material.TARGET block on output.
Changed
  • Improved the setRedstonePower function in the Bukkit plugin to make it safer. Added synchronization, improved exception handling.
  • Corrected the UpdateChecker class to use proper format specifiers in String.format.
Fixed
  • Fixed the java.util.UnknownFormatConversionException: Conversion = 'l' error in the UpdateChecker class.
  • Fixed issues in the messages.yml file related to incorrect format specifiers.
----------, Feb 9, 2025

Changes in version 1.1.7:
  • Updated `com.gradleup.shadow`: The com.gradleup.shadow plugin has been updated to the latest version. The hard-coded version of the plugin has also been removed, which will make future updates easier.
  • Migrated to PaperMC-API: The project has been migrated from Spigot-API to PaperMC-API. This change should provide benefits in terms of improved performance and access to new features offered by PaperMC.
  • Package name change: The package name has been changed from `com.piotrbednarski` to `pl.bednarskiwsieci`.
----------, Feb 8, 2025

This update addresses the issue of increased JAR size after adding the shadowJar plugin by changing the Gson dependency to compileOnly. This change ensures that Gson is available during compilation but is not included in the final JAR, thus reducing the overall size.
----------, Feb 8, 2025

Added integration with bStats for tracking plugin usage statistics.
https://bstats.org/plugin/bukkit/LogicGates/24700
----------, Feb 8, 2025

The plugin has been completely redesigned, expanding with new features and fixing many bugs.
  • Updated Documentation Link:
    The documentation link has been updated to point to the latest version of the plugin documentation, ensuring users have access to the most current information.

  • Documentation Relocation:
    The plugin’s documentation has been removed from the current project repository and transferred to a dedicated new repository, allowing for easier management and access.

  • File Rename - gates.yml to config.yml:
    The file previously named gates.yml has been renamed to config.yml to better reflect its role in configuration and to standardize file naming conventions across the plugin.

  • Gate Data Migration:
    The data for gates has been extracted from the old gates.yml file and is now stored in a new JSON format file, gates.json. This change improves data management and provides greater flexibility for future updates.

  • Translation Optimization:
    The number of translations in messages.yml has been reduced to streamline the configuration and improve the performance of language handling.

  • WorldEdit Integration Added:
    The plugin now includes integration with WorldEdit, allowing users to create and manipulate gates in a more intuitive and efficient manner.

  • Three-Input Logic Gates:
    Support for logic gates with three inputs has been added, expanding the plugin's functionality and offering more complex gate configurations.

  • Automatic Update Checking:
    The plugin now includes an automatic update checking feature, ensuring that users are notified when a new version of the plugin is available, making it easier to stay up-to-date.

  • Improved give Command with GUI Interface:
    The previous manual entry for block types in the /give command has been replaced with an easy-to-use graphical user interface (GUI), enhancing user experience and reducing errors.

  • Default Gate Direction Aligned to Player’s Facing Direction:
    When a gate is placed, its default direction is now aligned with the direction the player is facing, ensuring more intuitive placement.

  • Carpet Block Gate Return to Inventory:
    When a carpet block gate is destroyed, the gate is now returned to the player's inventory, preventing item loss and improving usability.

  • Magic Wand for Gate Rotation:
    The rotation of gates can now be controlled through a "magic wand" item, replacing the previous command-based rotation, which enhances the gameplay experience.

  • Gate State Update Queue Mechanism:
    A queuing mechanism for gate state updates has been implemented using ConcurrentLinkedQueue and ConcurrentHashMap. This allows for more efficient processing of state changes, especially on high-traffic servers.

  • Synchronization with Server Tick Rate:
    Updates to gate states are now synchronized with the server's tick rate, ensuring that state changes occur at the correct intervals and improving performance.

  • State Change Verification for Efficiency:
    A verification system has been added to check if the state of a gate has changed since the last update. This reduces unnecessary operations, leading to more efficient processing.

  • Code Optimization and Bug Fixes:
    The overall code has been optimized for better performance, and numerous bugs have been fixed, ensuring a more stable and reliable plugin.
----------, Feb 5, 2025

Version 1.1.4 has just been released, along with online documentation and the source code on GitHub. The new version includes:
  • Debug mode
  • Configurable carpet settings via config
  • Reduced the number of keys in messages.yml, adding links to the documentation in some places
  • Ability to change the cooldown of TIMERS
  • Improved configuration loading module
  • Modified redstone state update mechanism and gate input state retrieval
  • Many fixed errors and bugs
Check online documentation
https://piotrmaciejbednarski.github.io/logicgates-docs/

Source code
https://github.com/piotrmaciejbednarski/LogicGates/
----------, Feb 3, 2025

Added a compatibility mode with default redstone logic. It can be set via the plugin configuration under the key "redstoneCompatibility". If set to 'true', compatibility is enabled. By default, it is disabled.

Command usage: /logicgates redstonecompatibility <on|off>
Required permissions: logicgates.admin

In redstone compatibility mode, the plugin attempts to not only observe the power state of the block at the input of the logic gate but also to observe the direction of the block on the input wall of the gate.

For example:
In redstone compatibility mode:
  • You cannot power the gate's input by placing a redstone torch next to it; the torch must be placed directly on the gate's wall.
  • You cannot power the gate's input by placing a redstone circuit; the redstone must directly point to the gate's wall.
  • You cannot power the gate's input by placing a repeater; it must directly point to the gate's wall.
Disabling redstone compatibility mode often allows for minimizing mechanisms, but these are not standard redstone behaviors in Minecraft.

Additionally:
  • Added support for REDSTONE_BLOCK at the gate's input.
  • Added a comparator to the invalid_output_material list.
  • The gate's input can be powered by an activated REDSTONE_LAMP (breaks redstone rules).
  • The gate's output can now directly connect to DOOR, TRAPDOOR, FENCE_GATE (opens/closes), REDSTONE_LAMP (powers), FURNACE, CAMPFIRE (changes ignition state), PISTON (buggy behavior).
The following keys were added to messages.yml:
  • redstonecompatibility_usage
  • redstonecompatibility_enabled
  • redstonecompatibility_disabled
  • redstonecompatibility_invalid_state
----------, Feb 1, 2025

In version 1.1.2, a new gate called "Timer" was added, which sends a signal every 1 second. It can be created using a brown carpet.

Particle rendering has been optimized to only display when a player is nearby (default: 16 blocks). This can be adjusted via the 'particlesViewDistance' value in the config.

A new command, /logicgates debug, has been added. When a player is within 16 blocks, it provides live updates on gate changes.

Bug fixes have been implemented.
----------, Jan 30, 2025

This version 1.1.1 introduces player permissions for commands and logic gate interactions. I also added a message for players when a gate is removed ( gate_removed key in messages.yml)

Permissions:
  • logicgates.place – Placing glass (gates) and carpets.
  • logicgates.break – Breaking gates.
Commands:
  • logicgates.rotate – Using /logicgates rotate.
  • logicgates.inspect – Using /logicgates inspect.
  • logicgates.admin – Admin commands (e.g., changing the language).
Interactions:
  • Permission checks when attempting to rotate or inspect gates.
----------, Jan 30, 2025

Changelog – LogicGates 1.1

New Features:
  • Full Plugin Translation: The entire plugin has been translated, with built-in support for English, Polish, Spanish, and German.
  • Custom Language Support: Users can add their own translations and set them via the gates.yml config file or using the command:
    /logicgates language [language_code]

  • Invalid Output Material Detection:
    • A new mechanism detects unsupported or problematic materials placed at the gate output.
    • If a player places any of the following materials, they will receive a warning message:
      • Material.REDSTONE_WIRE
      • Material.REPEATER
      • Material.REDSTONE_TORCH
      • Material.REDSTONE_LAMP
      • Material.REDSTONE_WALL_TORCH
    • The warning message (configurable via translations under the invalid_output_material key) defaults to:
      "&cInvalid material detected at the gate output! Using redstone, repeater, or redstone torch may not work or cause malfunctions. Use a button, lever, or observer instead."
Improvements:
  • Redstone Torch Input Support:
    • Players can now use redstone torches as gate inputs by placing them next to or directly on the gate's input wall.
    • This enables more compact circuits and the ability to set constant input values.
  • Input Material Detection Fixes:
    • Improved detection of materials used at gate inputs, reducing unexpected errors.
Bug Fixes:
  • Fixed minor issues and improved stability.
✅ The latest version is now available for download!
----------, Jan 30, 2025

Resource Information
Author:
----------
Total Downloads: 509
First Release: Jan 29, 2025
Last Update: Feb 21, 2025
Category: ---------------
All-Time Rating:
2 ratings
Find more info at logicgates.bednarskiwsieci.pl...
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings