40% Off | ContainerControls | The most optimized minecraft experience | 1.8 - 1.17 v2.1.5

Fill, empty, sort, compress, fuel and close containers from within the inventory.
  1. #################################### MAIN PLUGIN PAGE ####################################
  2. Container Control permite a tus jugadores interaccionar con sus inventarios de una forma más eficiente (automatizando además tareas molestas). ¿Crees que ContainerControl es demasiado poderoso para tu servidor? No hay ningún problema, todos los controles son completamente configurables.
  3. ¿Cómo usarlo?
  4. Los controles de Container Control se ejecutan haciendo click al lado del inventario. Por ejemplo, por defecto la acción de "Robar" requiere un click derecho a la derecha de la interfaz gráfica (o GUI) mientras que la acción de "Almacenar" requiere dos. Puedes "Cerrar" haciendo click izquierdo al lado de la interfaz, puedes "Ordenar" haciendo click con la rueda del ratón (o botón central) y "Comprimir" pulsando la rueda del ratón dos veces.
  5. Los procesos como "Robar", "Almacenar", y "Combustible" se detienen automáticamente cuando cierras el inventario. De forma alternativa puedes detenerlo pulsando el botón asignado a la acción de "Cerrar". (Esto se verá mejor en los vídeos de demostración en inglés).
  6. #################################### FEATURES SECTION ####################################
  7. Características:
  8. - Controles
  9. - Cerrar
  10. + Cierra el inventario
  11. + Cancela los procesos activos (como "Almacenar", "Robar" o "Combustible")
  12. + Funciona en cualquier contenedor
  13. - Robar
  14. + Transfiere todos los objetos desde el contenedor hacia el inventario del jugador
  15. + Velocidad de transferencia configurable
  16. + Funciona en la mayoría de contenedores
  17. - Almacenar
  18. + Transfiere todos los objetos del inventario del jugador hacia el contenedor
  19. + Velocidad de transferencia configurable
  20. + Funciona en todos los contenedores de almacenamiento
  21. - Combustible
  22. + Selecciona automáticamente el mejor foco de combustible del inventario del jugador
  23. + Funciona en hornos, soporte de pociones y mesas de encantamiento
  24. + Velocidad de transferencia configurable
  25. + Es capaz de reemplazar el orden principal del combustible (punto 1)
  26. - Ordenar
  27. + Ordena el inventario
  28. + Agrupa automáticamente los objetos (stacks)
  29. + Ordena alfabéticamente los objetos
  30. + Funciona en todos los contenedores de almacenamiento
  31. - Comprimir
  32. + Comprime el inventario
  33. + Transforma los lingotes en bloques
  34. + Funciona con Carbón, Pepitas de hierro, Pepitas de oro, Lingotes de oro, Diamantes, Esmeraldas, Lapislázuli, Redstone, Bolas de Slime, Polvo de hueso y Trigo
  35. + Protección de objetos custom
  36. + Funciona en todos los contenedores de almacenamiento
  37. + Es capaz de ordenar el contenedor automáticamente una vez finaliza la acción
  38. - Cadenas
  39. - Customiza:
  40. + El tamaño de la cadena (cantidad de objetos)
  41. + Botón usado
  42. + Velocidad del movimiento de los objetos
  43. + Movimiento instantáneo opcional
  44. - Validación del estado de "Visión de inventario"
  45. - Contiene herramientas poderosas para ver interfaces custom
  46. - Bloquea inventarios en determinados mundos
  47. - Bloquea inventarios con determinados títulos
  48. - Bloquea inventarios con ciertos placeholders
  49. - Bloquea inventarios con títulos que contengan determinados colores
  50. - Bloquea el inventario si no está en una localización válida
  51. - Bloquea el inventario si no contiene un placeholder válido
  52. Próximamente:
  53. - Habilidad de usar el Bambú y las Algas secas como combustible.
  54. - Función de descomprimir
  55. - ¿Tienes sugerencias? Únete a mi discord (add to "mi discord" for your Discord URL)
  56. #################################### CONFIGURATION SECTION ####################################
  57. CONFIGURACIÓN
  58. Archivos de configuración
  59. Este plugin usa tres archivos de configuración.
  60. Éstos se generan automáticamente cuando el plugin se carga en caso de no estar creados.
  61. Los sonidos y materiales utilizan XSeries.
  62. general.yml
  63. Alternativamente puedes obtener el link del archivo aquí
  64. controls.yml
  65. Alternativamente puedes obtener el link del archivo aquí
  66. validator.yml
  67. Alternativamente puedes obtener el link del archivo aquí
  68. API para desarrolladores
  69. Container Control contiene una API para realizar eventos custom
  70. #################################### PERMISSIONS SECTION ####################################
  71. containercontrol.admin Le da al jugador acceso a todos los comandos y controles. También hay permisos individuales para cada control.
  72. Así los controles pueden ser usados como ventajas para usuarios que donan.
  73. Si quieres desactivar un control o simplemente no usarlos desabilítalos en la configuración en vez de no darle permisos a nadie. Esto aumentará la velocidad y la eficiencia del plugin.
  74. Todos los permisos excepto el de containercontrol.admin están en [true] por defecto (lo que significa que los jugadores por defecto tendrán todos los permisos excepto el de containercontrol.admin).
  75. containercontrols.admin
  76. containercontrols.close
  77. containercontrols.steal
  78. containercontrols.store
  79. containercontrols.fuel
  80. containercontrols.sort
  81. containercontrols.compress
  82. #################################### TERMS OF SERVICE SECTION ####################################
  83. Términos del servicio
  84. - Bajo ninguna circunstancia tienes permitido redistribuir este producto.
  85. - Los reembolsos no están asegurados y normalmente las peticiones no son denegadas.
  86. - Usar partes o modificar este plugin no está permitido.
  87. - Yo, el desarrollador, no soy responsable por ningún daño que este software pueda causar a tus servicios.
  88. - La versión más reciente de estos términos se aplican independientemente de la infracción.
  89. #################################### PERMISSIONS SECTION ####################################
  90. Antes de dejar una reseña de este plugin: Si tu opinión se ha deteriorado por un error o no fue capaz de superar tus expectativas contáctame por discord o envíame un MP (DM). Estoy más que agradecido de poder ayudar.
hVIMPYc.png

3yVB83u.png
xCyTqE3.png

6HwspHU.jpg
Lq24dx9.jpg


KejYAwd.jpg
swpEaOP.gif


GgrVmtQ.jpg
cw8a3Tf.jpg





XcS8kWC.png


Container Controls allows your players to interact with inventories more efficiently. Automating otherwise annoying tasks. Does a control feel a bit to overpowered for your server? No problem, all controls are completely configurable.


How to use?
Container controls are triggered by clicking next to the inventory. For example, by default Steal requires one right-click next to the gui, Store requires 2. You can Close by left-clicking next to the gui, you can Sort by middle-clicking (the middle mouse button) one and Compress by middle-clicking twice.
Processes like Steal, Store & Fuel stop automatically when you exit the inventory. Alternatively you can stop them by firing a Close control. (This is better demonstrated in the showcase videos)


Features:

  • Controls
    • Close
      • Closes inventory view
      • Alternatively cancels any active progresses
      • Works on any container
    • Steal
      • Transfer all items from the container to the players inventory
      • Configurable transfer speed
      • Works on most containers
    • Store
      • Transfer all items from the players inventory to the container
      • Configurable transfer speed
      • Works on all storage containers
    • Fuel
      • Automatically picks best fuel from the players inventory
      • Works on furnaces, brewing stands and enchanting tables
      • Configurable transfer speed
      • Is capable of overriding store's chain
    • Sort
      • Sorts an inventory
      • Automatically stacks the items
      • Arranges the items alphabetically (by enum name)
      • Works on all storage containers
    • Compress
      • Compresses an inventory
      • Turns ingots into blocks
      • Works for Coal, Iron nuggets, Iron ingots, Gold nuggets, Gold ingots, Diamonds, Emeralds, Lapis Lazuli, Redstone, Slime balls, Bone meal and Wheat
      • Custom item protection
      • Works on all storage containers
      • Is capable of sorting container automatically afterwards
  • Chains
    • Customize:
      • Chain length
      • Button used
      • Chain decay
      • Optional instant fire
  • Inventory view validation
    • Contains powerful tools to detect custom Gui's
    • Block inventories in certain worlds
    • Block inventories with certain titles
    • Block inventories with certain holders
    • Block inventories with titles containing chat colors
    • Block inventories without a valid location
    • Block inventories without a valid holder
  • Customizable messages
  • Debug settings
  • Developer API
Coming soon:
  • Ability to use Bamboo & Dried kelp blocks as fuel
  • Decompress control
  • Have any suggestions? Join my discord


ex67Gc6.png


vyTwqDF.gif
IySupgj.png


ex67Gc6.png

HtmQm6d.png
Configuration files
This plugin makes use of three configuration files.
Both automatically generate on load in case missing.
Sounds and materials make use of the XSeries


general.yml
YAML:
#   _____                           _
#  / ____|                         | |
# | |  __  ___ _ __   ___ _ __ __ _| |
# | | |_ |/ _ \ '_ \ / _ \ '__/ _` | |
# | |__| |  __/ | | |  __/ | | (_| | |
#  \_____|\___|_| |_|\___|_|  \__,_|_|
# Container Controls v2.1.0+ by Rappelr
#
# Message sent when a player doesn't have permission
no-permission-message: "&cYou have no permission to do that"
#
# Api settings
api:
  # Whether the plugin calls custom events
  # Can be used for ContainerControls API Plugins
  call-events: true
#
# Debug, dev only
# These can also be left out
debug:
  # Print the current inventory holder class
  # Used to find the names of custom holders
  print-holder-class: false
  # Prints fired controls
  print-fired-controls: false
  # Prints chain changes
  # Whenever a chain is created or when one is finalized
  # Used to debug custom controls.yml settings
  print-chain-status: false
Alternative paste link here

controls.yml
YAML:
# _____             _             _
#/  __ \           | |           | |
#| /  \/ ___  _ __ | |_ _ __ ___ | |___
#| |    / _ \| '_ \| __| '__/ _ \| / __|
#| \__/\ (_) | | | | |_| | | (_) | \__ \
# \____/\___/|_| |_|\__|_|  \___/|_|___/
# Container Controls v1.5.0+ by Rappelr
#
# This YAML file covers all control specific configurations
#
sounds:
  # Sound that plays when a control can not fire
  block_control: 'BLOCK_ANVIL_LAND'
  # Sound that plays when an entire inventory updates(SORT & COMPRESS)
  inventory_change: 'BLOCK_WOODEN_TRAPDOOR_CLOSE'
  # Sound that plays when an item switches inventories (STEAL, STORE & FUEL)
  item_move: 'ENTITY_ITEM_PICKUP'
#
controls:
  # CLOSE closes the inventory the player is currently looking at
  close:
    # Toggles whether the control is available
    enabled: true
    # The mouse-button that is used to trigger the control
    button: 'LEFT'
    # The amount of clicks required to trigger the control
    clicks: 1
  #
  # Steal takes all the items out of an inventory one by one
  steal:
    # Toggles whether the control is available
    enabled: true
    # The mouse-button that is used to trigger the control
    button: 'RIGHT'
    # The amount of clicks required to trigger the control
    clicks: 1
    # The delay in ticks between each item
    # 0 is instant, 1 is fast, 2 is normal, 3+ is slow (range: 0-8)
    transfer_speed: 2
  #
  # Store transferres all items from the player's inventory into a container
  store:
    # Toggles whether the control is available
    enabled: true
    # The mouse-button that is used to trigger the control
    button: 'RIGHT'
    # The amount of clicks required to trigger the control
    clicks: 2
    # The delay in ticks between each item
    # 0 is instant, 1 is fast, 2 is normal, 3+ is slow (range: 0-8)
    transfer_speed: 2
    # Toggles whether to include the player's hotbar items
    include_hotbar: true
  #
  # Fuel detects the inventory type and fills it accordingly with the best fuel available in the player's inventory
  # Is currently available for furnaces, brewing stands and enchanting tables
  fuel:
    # Toggles whether the control is available
    enabled: true
    # The mouse-button that is used to trigger the control
    button: 'RIGHT'
    # The amount of clicks required to trigger the control
    clicks: 2
    # The delay in ticks between each item
    # 0 is instant, 1 is fast, 2 is default, 3+ is slow (range: 0-8)
    transfer_speed: 2
  #
  # Sort stacks all items in the inventory and sorts them by name
  sort:
    # Toggles whether the control is available
    enabled: true
    # The mouse-button that is used to trigger the control
    button: 'MIDDLE'
    # The amount of clicks required to trigger the control
    clicks: 1
  #
  # Compress turns all ingots into blocks and so forth
  # Is available for Coal, Iron nuggets, Iron ingots, Gold nuggets, Gold ingots, Diamonds, 
  # Emeralds, Lapis Lazuli, Redstone, Slime balls, Bone meal and Wheat
  compress:
    # Toggles whether the control is available
    enabled: true
    # The mouse-button that is used to trigger the control
    button: 'MIDDLE'
    # The amount of clicks required to trigger the control
    clicks: 2
    # Toggles whether the inventory is automatically sorted after compressing
    sort_afterwards: true
#
chains:
  # The speed at which you have to chain-click
  decay_speed: 4
  # Toggles whether a chain fires automatically when there are no longer possibilities (recommended: true)
  auto_finalize: true
Alternative paste link here

validator.yml
YAML:
# _   _       _ _     _       _
#| | | |     | (_)   | |     | |
#| | | | __ _| |_  __| | __ _| |_ ___  _ __
#| | | |/ _` | | |/ _` |/ _` | __/ _ \| '__|
#\ \_/ / (_| | | | (_| | (_| | || (_) | |
# \___/ \__,_|_|_|\__,_|\__,_|\__\___/|_|
# Container Controls v1.5.3+ by Rappelr
#
# This YAML file covers all validator configurations
# It allows you to configure where and when you can use container controls
#
# Blocks controls from being used on inventories with specific titles
# chatcolor and case insensitive
# List format, more can be added
blocked_titles:
  - customgui
  - customgui2
# Blocks controls from being used on inventories in these specific worlds
# case insensitive
# List format, more can be added
blocked_worlds:
  - lobby
  - lobby2
# Blocks controls from being used on inventories with specific holders
# case insensitive
# List format, more can be added
blocked_holders:
  - customholder1
  - customholder2
# Blocks controls from being used on inventories with chat colors in their title
block_title_chatcolor: true
# Blocks controls from being used on inventories with an invalid location
# Used to identify custom Gui's
# Will also block enderchests as a side effect
block_invalid_holder: false
# Blocks controls from being used on player inventories (useful to block /invsee)
block_player_holder: false
# Blocks inventories with titles containing the player's name (useful for plugins like TradeMe)
block_player_names: false
Alternative paste link here

Developer API
Container Controls has built-in API functionality with custom events.

Code:
package com.rappelr;

import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin;

import com.rappelr.api.ContainerControlsAPI;
import com.rappelr.api.event.ContainerChainClickEvent;
import com.rappelr.api.event.ContainerControlFireEvent;
import com.rappelr.api.event.ContainerTransportFinishEvent;
import com.rappelr.chain.Chain;
import com.rappelr.control.StealControl;

public class ContainerControlsAPITest extends JavaPlugin implements Listener {
 
    ContainerControlsAPI api;

    @Override
    public void onEnable() {
        /**
         * returns an ContainerControlsAPI object with access
         * to the current ContainerControls instance running on the server
         * will return null if there is none
         */
        api = ContainerControlsAPI.getAPI();

        /**
         * bypasses the api.call-events value set in the ContainerControls config
         * in case it has been toggled off
         */
        api.setCallEvents(true);
  
        this.getServer().getPluginManager().registerEvents(this, this);
    }

    /**
     * ContainerControlFireEvent is emitted whenever a player fires a
     * certain control
     */
    @EventHandler
    public void onFire(ContainerControlFireEvent event) {
        if(event.getControl() instanceof StealControl
                && !event.getPlayer().getName().equals("Rappelr")) {
            event.setCancelled(true);
            event.getPlayer().sendMessage("Only Rappelr can use that!");
        }
    }

    /**
     * ContainerChainClickEvent is emitted whenever a player clicks
     * next to a container
     */
    @EventHandler
    public void onClick(ContainerChainClickEvent event) {
        /**
         * API can for example be used to check player click-chains
         */
        Chain chain = api.getChainManager().getChain(event.getPlayer());
  
        if(chain == null)
            return;
  
        if(chain.getType() == event.getClick())
            event.getPlayer().sendMessage("You clicked " + event.getClick().name() + " "
                    + (chain.length() + 1) + " times now");
        else
            event.getPlayer().sendMessage("You started a new chain");
    }


    /**
     * ContainerTransportFinishEvent is emitted whenever a transport process
     * from either a Steal, Store or Fuel control finishes
     */
    @EventHandler
    public void onFinish(ContainerTransportFinishEvent event) {
        Bukkit.broadcastMessage((event.isStopped() ? "Stopped" : "Finished")
                + " transferring from " + event.getOrigin().getHolder().getClass().getSimpleName()
                + " to " + event.getDestination().getHolder().getClass().getSimpleName());
    }
}



containercontrols.admin Gives the player access to all controls. There are also individual permissions for each control.
This way controls can be used as donator perks.
If you want to disable a control or simply don't use it disable it in the config instead of not giving anyone permissions. This improves both performance and auto-fire efficiency.
All permissions except for containercontrols.admin are [true] by default.
Code:
containercontrols.admin
containercontrols.close
containercontrols.steal
containercontrols.store
containercontrols.fuel
containercontrols.sort
containercontrols.compress

  • Under no circumstances are you permitted to redistribute this product.
  • Refunds are not assured and request will more often than not be denied.
  • Using parts from or modifying this plugin is not permitted.
  • I, the developer am not responsible for any damage this software may inflict to your services.
  • None but the most recent version of these terms are applicable.
ex67Gc6.png

Before you review this plugin, if your opinion has been deteriorated by a bug or unmet expectation, please contact me on discord or send me a DM. I'm always glad to help.

Latest updates

  1. Container Controls version 2.1.5

    Fixed Java version error
  2. Container Controls version 2.1.4

    Fixed issue where yaml resources were not deploying properly
  3. Container Controls version 2.1.3

    Updated X Resources You can now use 1.17 sounds and materials

Latest reviews

Very good plugin and good dev

Author

Rappelr

Owner
Author
Rappelr
Downloads
11
Type
Digital product
License duration
Unlimited
Price
3.99 USD
Views
1,885
First release
Last update
Rating
5.00 star(s) 1 ratings
Top
You need to upgrade!
Our dark style is reserved for our Premium members. Upgrade here.