Перейти к содержимому
Mineforgian

DupePlus

A Dupe Plugin /dupe on an item, and it duplicates it.

Загрузки
24K
Подписчики
21
Обновлён
25 июня 2026 г.
Лицензия
MIT

Опубликован 20 июня 2023 г.

DupePlus Icon

GitHub bStats Issues

Features, bugs, or enhancements you would want to see added to DupePlus? Report it to the issues in our GitHub Repository!

or wanna have a peek at the issues that has been reported by the server owners that use DupePlus?

DupePlus

The best duplication plugin for your Dupe server. DupePlus is a fully modular plugin that allows you to turn off/on any feature that you desire! DupePlus also provides you with a user-friendly configuration with comments that help you understand what each section means in the YML. It will also make your survival easier just by duplicating. Just send "/dupe" in chat!

Setup Guide

1. Installation

Download the plugin from the First Version in the Featured Versions or from the Versions Tab, then click Download and upload it to the /plugins folder in your Minecraft Server Files.

2. Configuration

The config file will be placed in the /plugins/DupePlus folder in your Minecraft Server Files.

Previous config versions will be renamed to old.config.yml or deleted.

If you ever manage to break the config.yml or accidentally erase it. Then here is the default config.yml

config.yml
# DupePlus's Settings
# Message Variables:
# <item_type> = The Duplicated item
# <item_name> = The Item's Display Name
# <old_item_count> = The Item Count before dupe
# <new_item_count> = The Item Count after dupe
# <item_count> = Item Count
# <prefix> = The default prefix or the prefix you set
# <max> = The maximum
# <min> = The minimum
# <world> = The world name
# <link> = Where you can download the new version
# <currentversion> = The current version installed in the server.
# <newversion> = The new version

# Use this website to help you customize your messages
# https://webui.advntr.dev

# If you want to request a feature or notice any issues with the Plugin. Then create an issue in the GitHub Repository.
# https://github.com/meme20200/dupeplus/issues
dupe:
  # The prefix that is added before each message.
  prefix: "<green>DupePlus</green> <dark_gray>|</dark_gray>"

  # Make it false to let everyone allowed to use this command (Default: false)
  # Permission: dupeplus.dupe
  permission: false

  # Settings to change the Dupe Command into a Custom command.
  custom-command:
    # Make it false to disable the custom command, make it true to enable it. (Default: false)
    enabled: false

    # The name used to create the custom command (Default: "dupe")
    # /<name>
    name: "dupe"

  # Other ways of using /dupe
  aliases: [ "duplicate" ]

  # The message sent to the player when try to execute dupe or reloadconfig no permission (Only if the above is true) (Default: "<prefix> <dark_gray>|</dark_gray> <red>You are not allowed to use this command</red>")
  # Allowed Message Variables: <prefix>
  # Leave blank for no message
  permission-message: "<prefix> <red>You are not allowed to use this command</red>"

  # The message sent to the player when you duplicate an item. (Default: "<prefix> <dark_gray>|</dark_gray> <gray>Duped <item_name></gray>")
  # Allowed Message Variables: <prefix>, <item_type>, <item_name>, <old_item_count>, <new_item_count>
  message: "<prefix> <gray>Duped <white><item_name></gray>"

  # The message sent whenever the player tries to dupe nothing (Air) (Default: "")
  # Leave blank for no message
  duping-nothing-message: ""

  # Settings to block or allow /dupe in specific worlds.
  worlds:
    # Make it false to disable this feature.
    enabled: false

    # Mode: whitelist, blacklist (Default: blacklist)
    # whitelist will block all worlds but only allow /dupe in the worlds list.
    # blacklist will allow all worlds but block /dupe in the worlds list.
    mode: blacklist

    # If the player tries to dupe in a blocked world. (Default: "<prefix> <dark_gray>|</dark_gray> <red>The world is banned from using /dupe!</red>")
    # Allowed message variable: <prefix>, <item_type>, <item_name>, <item_count>, <world>
    # Leave blank for no message
    blocked-message: "<prefix> <red>The world is banned from using /dupe!</red>"

    # Add or remove worlds to either block (blacklist) or allow (whitelist) it from players in the world from duping.
    worlds: [ ]

  # Checks if the item has a NBT Tag of "dupenotallowed", if it has, it will not dupe the item.
  custom-nbt-item:
    # Make it false to disable the Custom NBT feature, make it true to enable it (Default: true)
    enabled: true

    # Allowed message variable: <prefix>, <item_type>, <item_name>, <item_count> (Default: "<prefix> <dark_gray>|</dark_gray> <red>The item is blocked from being duped!</red>")
    # Leave blank for no message
    blocked-message: "<prefix> <red>The item is blocked from being duped!</red>"


  # When using /dupe, in which hand will it dupe? (Default: MainHand)
  # OffHand
  # MainHand
  dupe-on: MainHand

  # Message to the sender if they try to dupe as a non-player (Default: "DupePlus | You can't do that!")
  console-message: "DupePlus | You can't do that!"

  # Settings for blacklist / whitelist
  list:
    # Make it false to disable these features, make it true to enable it (Default: false)
    enabled: false

    # Make it false to make it "whitelist", make it true to make it "blacklist" (Default: true)
    # whitelist will block all items but only allow duplicating items in the items list.
    # blacklist will allow all items but block duplicating items in the items list.
    # Enabled must be true
    blacklist: true

    # Checks Shulker Boxes when duplicating items (Default: true)
    shulkerbox: true

    # Checks Bundles when duplicating items (Default: true)
    bundle: true

    # If the player tries to dupe an item that is in the blacklist or the item is not in the whitelist (Default: "<prefix> <dark_gray>|</dark_gray> <red>The item is blocked from being duped!</red>")
    # Allowed message variable: <prefix>, <item_type>, <item_name>, <item_count>
    # Leave blank for no message
    blocked-message: "<prefix> <red>The item is blocked from being duped!</red>"

    # Add or remove items to either block (blacklist) or allow (whitelist) them from being duped, also do not include spaces. (NO: "diamond block" YES: "diamond_block")
    # Begin the item's id with minecraft: to check the item's type only, it will ignore if the item is part of a custom plugin. (Default: - minecraft:barrier)
    # Begin the item's id with itemsadder: if you want to check if the item's itemsadder id, it will not check for the namespace.


    # You can use itemsadder:* to block all ItemsAdder items from being duplicated
    items:
      - minecraft:barrier


    # Add or remove specific itemsadder namespaces to either block (blacklist) or allow (whitelist) any items that is under those namespaces from being duplicated
    itemsadder-namespaces:
      - replace_me


  # Settings for the cooldown of /dupe
  cooldown:
    # Make it false to disable the cooldown, make it true to enable it. (Default: false)
    enabled: false

    # How many seconds for the cooldowns to be. (Default: 3)
    seconds: 3

    # If the player tries to dupe while the cooldown is set. (Default: "<prefix> <dark_gray>|</dark_gray> <red>Please wait <duration>.</red>")
    # Allowed message variable: <prefix>, <duration>
    # Leave blank for no message
    wait-message: "<prefix> <red>Please wait <duration>.</red>"

    # Make it true if you want players with the permission to ignore the cooldown, make it false if you want everyone to have cooldown. (Default: true)
    # Permission: dupeplus.cooldown
    permission: true


  # Settings for this (ignore if you don't want this) players can still run /dupe
  # /dupe <times>
  times:
    # Make it false to disable this feature, make it true to enable this feature (Default: false)
    enabled: false

    # Set it to 0 to disable the times  (Default: 5) (Recommended: 5)
    # Permission to let a player/group have no maximum regardless of this option: dupeplus.times.max.unlimited
    # dupeplus.times.max.<name>
    max-values:
      pro: 10
      vip: 8
      default: 5 # Default permission or players without the permission who are using the dupe times.

    # If the player puts the value above the maximum then what's the message? (Default: "<prefix> <dark_gray>|</dark_gray> <red>This is higher than maximum! Do something lower than <max></red>")
    # Allowed message variable: <prefix>, <max>, <min>
    # Leave blank for no message
    max-message: "<prefix> <red>This is higher than maximum! Do something lower than <max></red>"

    # 0 for no minimum amount of times the player can run (Default: 0) (Recommended: 0)
    # Permission to let a player/group have no minimum regardless of this option: dupeplus.times.min.unlimited
    # It is recommended to just keep this at 0
    min: 0

    # If the player puts the value below the minimum (Default: "<prefix> <dark_gray>|</dark_gray> <red>This is lower than minimum! Do something higher than <min></red>")
    # Allowed message variable: <prefix>, <max>, <min>
    # Leave blank for no message
    min-message: "<prefix> <red>This is lower than minimum! Do something higher than <min></red>"

    # Instead of sending the dupe message for every time it duplicates, it sends it one time to stop spam. (Default: true)
    one-time-message: true

    # Make it false to let everyone allowed to use this feature. (Default: false)
    # Permission: dupeplus.times
    permission: false

  # Adds lore to the duplicated item.
  lore:
    # Enables or disables this feature. (Default: false)
    enabled: false

    # The lore added to the duplicated item. (Default: "<dark_red>*</dark_red> <red>Duplicated Item</red>")
    text: "<dark_red>*</dark_red> <red>Duplicated Item</red>"

    # The modes on how the plugin will add the lore. (Default: set)
    # append: Checks if the dupe lore exists or not, if it doesn't exist then it adds after the last lore or just adds the lore if no lore is present.
    # set: Checks if the dupe lore exists or not, if it doesn't exist then it will replace the existing lore with the dupe lore, otherwise it just ignores. (Recommended)
    mode: set

    # Make it false to always add/set the lore to the duplicated item regardless of the player's permission to use this feature or not, make it true to not add the lore if the player doesn't have the permission. (Default: false)
    # Permission: dupeplus.lore
    permission: false

  # Plays the set sound whenever you use /dupe
  # Permission: dupeplus.sound
  sound-feedback:
    # Enables or disables this feature. (Default: false)
    enabled: false

    # The Minecraft sound category used to play the sound. (Default: master)
    # Acceptable Values: master, music, record, weather, block, hostile, neutral, player, ambient, voice
    category: master

    # The sound used whenever the player uses /dupe. (Default: "minecraft:block.amethyst_block.chime")
    sound: "minecraft:block.amethyst_block.chime"

    # The volume of the sound played to a player whenever they use /dupe. (Default: 1)
    volume: 1

    # The pitch of the sound played to a player whenever they use /dupe. (Default: 1)
    pitch: 1

    # Make it false to let everyone allowed to use this feature. (Default: false)
    # Permission: dupeplus.sound
    permission: false

  # Deducts money from the player whenever they use /dupe
  # Permission: dupeplus.bypasseconomy
  economy:
    # Enables or disables this feature. (Default: false)
    # Note: You must have Vault installed and must set vault in integrations to true if you are going to use this feature.
    enabled: false

    # Whenever the player does /dupe <times>, should it deduct from the player once or every time? (Default: true)
    charge-per-dupe: true

    # The message sent to the player whenever the deduction was complete. (Can be silent)
    # Allowed Message Variables: <prefix>, <price>, <item_type>, <item_name>, <item_count>
    # Leave blank for no message
    successful-message: ""

    # The message sent to the player whenever they don't have enough currency to use /dupe.
    # Leave blank for no message
    # Allowed Message Variables: <prefix>, <price>, <item_type>, <item_name>, <item_count>
    not-enough-message: "<prefix> <red>You don't have enough currency to use /dupe!</red>"

    # The price that deducts from the player whenever they use /dupe (Default: 25)
    # Setting this to 0 will not deduct anything from the player.
    # Do not use negative numbers
    price: 25

    # Make it false to make everyone pay to use /dupe. (Default: false)
    # Permission: dupeplus.bypasseconomy
    permission: false

# The Integrations that this plugin connects with.
# Must restart server for the changes to apply (Also the plugin must already be installed)
# If you notice any issues then please create an issue in GitHub (meme20200/dupeplus)
integrations:
  # Enables ItemsAdder Integration (Default: true)
  itemsadder: true

  # Enables PlaceholderAPI Integration (Default: true)
  placeholderapi: true

  # Enables VaultAPI Integration (Required if economy feature is enabled) (Default: true)
  vault: true


# Checks for updates using the set API (Modrinth or SpigotMC),
updates:
  # Checks on startup for updates, disable if you do not wish to update DupePlus.
  checkupdate: true

  # Which Service should the Check Update use? (Default: Modrinth)
  # Modrinth
  # SpigotMC
  api: Modrinth

  notify:
    # Notify players with the permission to update the plugin to the latest version.
    player-notify: true
    # The message sent to everyone who has the permission (Default: "<prefix> <dark_gray>|</dark_gray> <white><green>DupePlus</green> is outdated, please update at: <blue><link></blue>")
    # (Permission: dupeplus.updates.notify)
    # Allowed message variable: <prefix>, <link>, <currentversion>, <newversion>
    notify-message: "<prefix> <white><green>DupePlus</green> is outdated, please update at: <blue><link></blue>"

    # Send message to the console for the server owner to update the plugin.
    console-notify: true

    # The message sent to the console (Default: "<prefix> | Update DupePlus at <link>")
    # Allowed message variable: <prefix>, <link>, <currentversion>, <newversion>
    console-notify-message: "DupePlus | Update DupePlus at <link>"

# Don't edit this
# Previous: 1.4.2
# config-version: 1.4.3
config-version: 1.4.3

Permissions

For Admins:

Permission Description
dupeplus.admin /dupeplus
dupeplus.admin.blocklist /dupeplus blocklist (Opens a GUI)
dupeplus.admin.reload /dupeplus reload (Reloads the configuration)
dupeplus.updates.notify Notified about any DupePlus Updates.
dupeplus.admin.block /dupeplus block (Blocks the item you are holding from /dupe)

For Players:

Permission Description
dupeplus.times.max.unlimited (No maximum for /dupe [times])
/dupe [times]
dupeplus.times.min.unlimited (No minimum for /dupe [times])
/dupe [times]
dupeplus.times.max.<name> (Must also have the dupeplus.times permission & must also be set in dupe.times.max-values in the config.yml)
/dupe [times]
dupeplus.dupe (dupe.permission must be set to true in the config.yml)
/dupe
dupeplus.cooldown (both dupe.cooldown.enabled & dupe.cooldown.permission must be set to true)
/dupe
dupeplus.lore (both dupe.lore.enabled & dupe.lore.permission must be set to true)
/dupe (Add/Set lore to the duplicated item's lores)
dupeplus.sound (both dupe.sound-feedback.enabled & dupe.sound-feedback.permission must be set to true)
Plays a sound to the player whenever the player uses /dupe (Sound Feedback must be enabled in the config.yml)
/dupe
dupeplus.bypasseconomy (both dupe.economy.enabled & dupe.economy.permission must be set to true)
Bypasses the costs for /dupe
/dupe

Features

Name Description Usage
Custom Command Lets you change /dupe to anything you want (e.g., /replicate, /copypaste, /<whatever you want>) /<custom command name> (You will find the custom-command section in config.yml)
Aliases Other commands to duplicate (Leave blank for no aliases) /<different name than the main dupe command> (You will find aliases in config.yml)
Custom Messages Allows you to customize the messages /dupe (You will find many configurable messages in config.yml)
Worlds Blacklist/Whitelist worlds that you can't/can do /dupe /dupe (You will find the worlds section in config.yml)
Custom NBT Item Block the exact item from being duplicated using an NBT/Custom Data Tag (<1.20.4) {dupenotallowed:true} (1.20.5+) [minecraft:custom_data={dupenotallowed:true}]
Blocklist Block items from being duplicated (e.g., bedrock, barrier) /dupeplus blocklist (You will find the blocklist list section in config.yml)
Cooldown Adds a cooldown to the dupe command /dupe (You will find the cooldown section in config.yml)
Times Allows you to duplicate the item many times /dupe <times> (You will find the times section in config.yml)
Lore Adds a lore to the duplicated item /dupe (You will find the lore section in config.yml)
Sound Feedback Plays a sound whenever the player does /dupe /dupe (You will find the sound-feedback section in config.yml)
Economy (& Vault Integration) Makes /dupe cost a specific amount of in-game currency /dupe (You will find the economy section in config.yml)
ItemsAdder Integration Supports ItemsAdder items and lets you block specific ItemsAdder items or namespaces from being duplicated. /dupe (In the list section, you can add itemsadder:<id of item> to block a specific item, itemsadder:* to block all items, or block items from a specific namespace by adding it to itemsadder-namespaces)
PlaceholderAPI Integration Supports PlaceholderAPI in messages /dupe (In all messages)
Update Checker Sends a message to the console or/and to the admins with dupeplus.updates.notify (In the updates section outside of dupe)

Planned Features for 1.5

Name Description Usage
In-game Config Editor Will let you edit the config.yml fully in-game without having to go to your file editor. /dupeplus config (GUI) /dupeplus config <section> <option> <value>
DupePlus Docs Will help you in configuring the config.yml /dupeplus docs, link will be shared with everyone once published
??? This could be a new feature from you! Can even be something to do with the existing features or the planned features ???

Note: If you want a feature to be added, then please request the feature in the GitHub Repository Issues.

Statistics

bStats

DupePlus Statistics (bStats)

DupePlus Statistics (FastStats)

Ченджлог

1.4.3Релиз26.1.1, 26.1.2, 26.2 · 25 июня 2026 г.

DupePlus 1.4.3

If you have any issues with the plugin or want to request a feature, then please report it at the DupePlus GitHub Repository Issue

20K+ Downloads! 🎉

DupePlus has come a long way to become what it is today, and it is all thanks to everyone who uses it, including the players who join the Dupe server! Thank you for using this plugin.

Bundle Checker in Bundle (Reported by Pro2021CA)

Patched an exploit where players can skip the blocklist by putting a blocked item in a bundle within a bundle

Unblocker (Sub)command

Added a new (sub)command to unblock the item that is blocked from /dupeplus block, /dupeblock, or manually adding the NBT/Item Component "dupenotallowed"

/dupeplus unblock
/dupeunblock

Sound Feedback

Added a new feature that plays a chosen sound to the player whenever they do /dupe.

Sound Feedback in config.yml
  # Plays the set sound whenever you use /dupe
  # Permission: dupeplus.sound
  sound-feedback:
    # Enables or disables this feature. (Default: false)
    enabled: true

    # The Minecraft sound category used to play the sound. (Default: master)
    # Acceptable Values: master, music, record, weather, block, hostile, neutral, player, ambient, voice
    category: master

    # The sound used whenever the player uses /dupe. (Default: "minecraft:block.amethyst_block.chime")
    sound: "minecraft:block.amethyst_block.chime"

    # The volume of the sound played to a player whenever they use /dupe. (Default: 1)
    volume: 1

    # The pitch of the sound played to a player whenever they use /dupe. (Default: 1)
    pitch: 1

    # Make it false to let everyone allowed to use this feature. (Default: false)
    # Permission: dupeplus.sound
    permission: false

Economy Feature

You need Vault & an Economy Plugin to use this feature.

Added the economy feature to DupePlus that makes it so that /dupe cost a specific in-game currency price.

Economy Feature in config.yml
  # Deducts money from the player whenever they use /dupe
  # Permission: dupeplus.bypasseconomy
  economy:
    # Enables or disables this feature. (Default: false)
    # Note: You must have Vault installed and must set vault in integrations to true if you are going to use this feature.
    enabled: true

    # Whenever the player does /dupe <times>, should it deduct from the player once or every time? (Default: true)
    charge-per-dupe: true

    # The message sent to the player whenever the deduction was complete. (Can be silent)
    # Allowed Message Variables: <prefix>, <price>, <item_type>, <item_name>, <item_count>
    # Leave blank for no message
    successful-message: ""

    # The message sent to the player whenever they don't have enough currency to use /dupe.
    # Leave blank for no message
    # Allowed Message Variables: <prefix>, <price>, <item_type>, <item_name>, <item_count>
    not-enough-message: "<prefix> <red>You don't have enough currency to use /dupe!</red>"

    # The price that deducts from the player whenever they use /dupe (Default: 25)
    # Setting this to 0 will not deduct anything from the player.
    # Do not use negative numbers
    price: 25

    # Make it false to make everyone pay to use /dupe. (Default: false)
    # Permission: dupeplus.bypasseconomy
    permission: false

@bobhenl's Issue

Fixed an issue where the /dupe would crash in newer Minecraft versions, we have moved from using NBTEditor to now using item-nbt-api.

Fixes

  • Removed the modern tag usage (1.21.2+) in Bundle Check to support 1.20 and above.
  • Implemented options in config.yml that are missing from the code.
1.4.2Релиз1.20.6, 1.21, 1.21.1 · 18 марта 2026 г.

No Bundle Support (under 1.21.2)

If you have any issues with the plugin or want to request a feature, then please report it at the DupePlus GitHub Repository Issue

If your server version is over 1.21.2 then use BUNDLES.

@Averageguyhehe's Issue

  • Bumped NBTEditor dependency to 7.20.3 (was 7.20.1)

@bobhenl's Issue

  • Fixed World message using Custom NBT Message
  • Fixed bug where duping nothing would send a message

FastStats

List

  • Fixed Blacklist shulker and bundle checks

New Commands

  • Added two new commands: "/dupeblock" and "/dupeblocklist"
  • Added new subcommand for convenience: /dupeplus issues

Permission Updates

  • Made the dupeplus.cooldown permission actually do something
  • dupeplus.blocklist -> dupeplus.admin.blocklist
  • dupeplus.block -> dupeplus.admin.block
  • dupeplus.admin.* gives all the admin permissions
1.4.2Релиз1.21.9, 1.21.10, 1.21.11 · 16 марта 2026 г.

Bundle Support

If you have any issues with the plugin or want to request a feature, then please report it at the DupePlus GitHub Repository Issue

If your server version is under 1.21.2 then use NOBUNDLES, otherwise if your server version is above or equal to 1.21.2 then use this.

@Averageguyhehe's Issue

  • Bumped NBTEditor dependency to 7.20.3 (was 7.20.1)

@bobhenl's Issue

  • Fixed World message using Custom NBT Message
  • Fixed bug where duping nothing would send a message

FastStats

Bundles

  • Added Bundle Support
  • Fixed Blacklist shulker and bundle checks

New Commands

  • Added two new commands: "/dupeblock" and "/dupeblocklist"
  • Added new subcommand for convenience: /dupeplus issues

Permission Updates

  • Made the dupeplus.cooldown permission actually do something
  • dupeplus.blocklist -> dupeplus.admin.blocklist
  • dupeplus.block -> dupeplus.admin.block
  • dupeplus.admin.* gives all the admin permissions
1.4.1Релиз1.21.9, 1.21.10, 1.21.11 · 11 декабря 2025 г.

v1.4.1

If you have any issues with the plugin or want to request a feature, then please report it at the DupePlus GitHub Repository Issue

Now doesn't break on 1.21.10 and 1.21.9

DupePlus now works on 1.21.10 and 1.21.9 without any known issues.

@RenegadeActual's issue

Custom Commands Notice

If you changed the custom command for dupe and reloaded the configuration, then players must rejoin to see the changes.

Improvement on blocklist

/dupeplus blocklist

DupePlus now has a Blocklist Menu, which allows you to add and remove items from the blocklist, and make an item undupeable. And turn off and on the whitelist/blacklist from the menu with ease.

Make your item undupeable fast

/dupeplus block

Adds the dupenotallowed tag on your item.

(small fix)

1.4.0Бета1.21.6, 1.21.7, 1.21.8 · 2 ноября 2025 г.

v1.4.0

If you have any issues with the plugin or want to request a feature, then please report it at the DupePlus GitHub Repository Issue

DupePlus will no longer support versions below 1.20

Custom Command

You can now customise the /dupe command. You can change the name of the command /<name>, and the aliases of the command (Another way of using /dupe).

@8Ad8's feature

CommandAPI

PlaceholderAPI Support

You can now use PlaceholderAPI in the customizable messages in config.yml.

PlaceholderAPI available placeholders

New change to Variables

Instead of using % for variables. You will need to use < > (for PlaceholderAPI, use the regular %).

Worlds

You can now block or allow /dupe in specific worlds.

Changes to Blacklist

You are now able to whitelist or blacklist worlds or items. Whitelist blocks everything and allows the worlds/items in the list. Blacklist does the opposite. @Sonicscream's suggestion

Bugfixes

  • Fixed an issue where duplicating items would send an error instead of the dupe message.
  • Removed the Checking Key in console. (i forgot to remove it after releasing it)

Small change

Changed com.galaxydevnetwork into net.meme20200 Turned off cooldown by default. @ziadhashimeh80-eng's issue

Added a way to list all ItemsAdder items by using itemsadder:*

1.3.0Релиз1.21.8, 1.21.9, 1.21.10 · 14 марта 2025 г.

v1.3.0

If you have any issues with the plugin or want to request a feature then please report it at the DupePlus GitHub Repository Issue

Custom NBT Item

Block items from being duplicated by adding the {"dupenotallowed":true} to the item.

1.20.5 and above

In the new change, Minecraft changed NBTs into components, and they also changed how custom tag works, it has to be in the custom_data.

Example:

/give @p minecraft:diamond_sword[minecraft:custom_data={dupenotallowed:true}]

The command gives you a diamond sword with the undupeable tag in the Component format.

1.20.4 and below

Instead of using components, you have to use NBT which is JSON formatted, instead of including the custom tag into the custom_data, you don't have to put it anywhere.

/give @p minecraft:diamond_sword{dupenotallowed:true}

The command gives you a diamond sword with the undupeable tag in the NBT format.

Cooldown Permission

Let some players/groups off the cooldown by adding the permission dupeplus.cooldown

Times Max Value

Have multiple max values for players/groups, for an example the max-value for VIP is 8.

Add vip: 8 in the max-values then give the permission dupeplus.times.max.vip to the group/player.

one-time-message

Sometimes the times can be spammy for chat, if this option is enabled then whenever you use times, it will only send the message once.

Lore

Add lore to a duplicated item to show that it's duplicated, the original item will not be affected by the lore feature.

Item Identifier

A Custom Item Identifier for blacklist, instead of TRIDENT it will be minecraft:trident, this also supports itemsadder:<id>.

ItemsAdder Support (Blacklist)

Block some ItemsAdder items from being duplicated, use itemsadder:<Item's ID>, if you want to disable itemsadder support then disable it from the integrations

New Placeholders

%dupe_item% is now replaced by %item_name%.

%raw_dupe_item% is removed.

  • %item_type%
  • %item_name%
  • %old_item_count%
  • %new_item_count%
  • %item_count%

config.yml

config.yml
# DupePlus's Settings
# Message Variables
# %item_type% = The Duplicated item
# %item_name% = The Item's Display Name
# %old_item_count% = The Item Count before dupe
# %new_item_count% = The Item Count after dupe
# %item_count% = Item Count
# %prefix% = The default prefix or the prefix you set
# %max% = The maximum
# %min% = The minimum

# Use this website to help you customize your messages
# https://webui.advntr.dev
dupe:
  # The prefix for you to use
  prefix: "<green>DupePlus</green>"

  # Make it false to let everyone allowed to use this command (Default: false)
  # Permission: dupeplus.dupe
  permission: false


  # The message sent to the player when try to execute dupe or reloadconfig no permission (Only if the above is true) (Default: "%prefix% <dark_gray>|</dark_gray> <red>You are not allowed to use this command</red>")
  # Leave blank for no message
  permission-message: "%prefix% <dark_gray>|</dark_gray> <red>You are not allowed to use this command</red>"

  # The message sent to the player when you duplicate an item. (Default: "%prefix% <dark_gray>|</dark_gray> <gray>Duped %item_name%</gray>")
  # Allowed Message Variables: %prefix%, %item_type%, %item_name%, %old_item_count%, %new_item_count%
  message: "%prefix% <dark_gray>|</dark_gray> <gray>Duped %item_name%</gray>"

  # The message sent whenever the player tries to dupe nothing (Air) (Default: "")
  # Leave blank for no message
  duping-nothing-message: ""

  # Checks if the item has a NBT Tag of "dupenotallowed", if it has, it will not dupe the item.
  custom-nbt-item:
    # Make it false to disable the Custom NBT feature, make it true to enable it (Default: true)
    enabled: true

    # Allowed message variable: %prefix%, %item_type%, %item_name%, %item_count% (Default: "%prefix% <dark_gray>|</dark_gray> <red>The item is blocked from being duped!</red>")
    # Leave blank for no message
    blocked-message: "%prefix% <dark_gray>|</dark_gray> <red>The item is blocked from being duped!</red>"


  # When using /dupe, in which hand will it dupe? (Default: MainHand)
  # OffHand
  # MainHand
  dupe-on: MainHand

  # Message to the sender if they try to dupe as a non-player (Default: "DupePlus | You can't do that!")
  console-message: "DupePlus | You can't do that!"

  # Settings for blacklist
  blacklist:
    # Make it false to disable the blacklist, make it true to enable it (Default: false)
    enabled: false
    # If the player tries to dupe an item that is in (Default: "%prefix% <dark_gray>|</dark_gray> <red>The item is blocked from being duped!</red>")
    # Allowed message variable: %prefix%, %item_type%, %item_name%, %item_count%
    # Leave blank for no message
    blocked-message: "%prefix% <dark_gray>|</dark_gray> <red>The item is blocked from being duped!</red>"
    # Add or remove items to block them from being duped, also do not include spaces. (NO: "diamond block" YES: "diamond_block")

    # Begin the item's id with minecraft: to check the item's type only, it will ignore if the item is part of a custom plugin. (Default: - minecraft:barrier)
    # Begin the item's id with itemsadder: if you want to check if the item's itemsadder id, it will not check for the namespace.
    items:
      - minecraft:barrier

  # Settings for the cooldown of /dupe
  cooldown:
    # Make it false to disable the cooldown, make it true to enable it. (Default: false)
    enabled: false

    # How many seconds for the cooldowns to be. (Default: 3)
    seconds: 3

    # If the player tries to dupe while the cooldown is set. (Default: "%prefix% <dark_gray>|</dark_gray> <red>Please wait %duration%.</red>")
    # Allowed message variable: %prefix%, %duration%
    # Leave blank for no message
    wait-message: "%prefix% <dark_gray>|</dark_gray> <red>Please wait %duration%.</red>"

    # Make it true if you want players with the permission to ignore the cooldown, make it false if you want everyone to have cooldown. (Default: false)
    # Permission: dupeplus.cooldown
    permission: true


  # Settings for this (ignore if you don't want this) players can still run /dupe
  # /dupe <times>
  times:
    # Make it false to disable this feature, make it true to enable this feature (Default: false)
    enabled: false

    # Set it to 0 to disable the times  (Default: 5) (Recommended: 5)
    # Permission to let a player/group have no maximum regardless of this option: dupeplus.times.max.unlimited
    # dupeplus.times.max.<name>
    max-values:
      pro: 10
      vip: 8
      default: 5 # Default permission or players without the permission who are using the dupe times.
    
    # If the player puts the value above the maximum then what's the message? (Default: "%prefix% <dark_gray>|</dark_gray> <red>This is higher than maximum! Do something lower than %max%</red>")
    # Allowed message variable: %prefix%, %max%, %min%
    # Leave blank for no message
    max-message: "%prefix% <dark_gray>|</dark_gray> <red>This is higher than maximum! Do something lower than %max%</red>"

    # 0 for no minimum amount of times the player can run (Default: 0) (Recommended: 0)
    # Permission to let a player/group have no minimum regardless of this option: dupeplus.times.min.unlimited
    # It is recommended to just keep this at 0
    min: 0

    # If the player puts the value below the minimum (Default: "%prefix% <dark_gray>|</dark_gray> <red>This is lower than minimum! Do something higher than %min%</red>")
    # Allowed message variable: %prefix%, %max%, %min%
    # Leave blank for no message
    min-message: "%prefix% <dark_gray>|</dark_gray> <red>This is lower than minimum! Do something higher than %min%</red>"

    # Instead of sending the dupe message for every time it duplicates, it sends it one time to stop spam. (Default: true)
    one-time-message: true

    # Make it false to let everyone allowed to use this command (Default: false)
    # Permission: dupeplus.times
    permission: false

  # Adds lore to the duplicated item.
  lore:
    # Enables or disables this feature. (Default: false)
    enabled: false

    # The lore added to the duplicated item. (Default: "<dark_red>*</dark_red> <red>Duplicated Item</red>")
    text: "<dark_red>*</dark_red> <red>Duplicated Item</red>"

    # The modes on how the plugin will add the lore. (Default: set)
    # append: Checks if the dupe lore exists or not, if it doesn't exist then it adds after the last lore or just adds the lore if no lore is present.
    # set: Checks if the dupe lore exists or not, if it doesn't exist then it will replace the existing lore with the dupe lore, otherwise it just ignores. (Recommended)
    mode: set

# The Integrations that this plugin connects with.
integrations:
  # Enables ItemsAdder Integration (Default: true)
  itemsadder: true

# Checks for updates using the set API (Modrinth or SpigotMC),
updates:
  # Checks on startup for updates, disable if you do not wish to update DupePlus.
  checkupdate: true

  # Which Service should the Check Update use? (Default: Modrinth)
  # Modrinth
  # SpigotMC
  api: Modrinth

  notify:
    # Notify players with the permission to update the plugin to the latest version.
    player-notify: true
    # The message sent to everyone who has the permission (Default: "%prefix% <dark_gray>|</dark_gray> <white><green>DupePlus</green> is outdated, please update at: <blue>%link%</blue>")
    # (Permission: dupeplus.updates.notify)
    # Allowed message variable: %prefix%, %link%, %currentversion%, %newversion%
    notify-message: "%prefix% <dark_gray>|</dark_gray> <white><green>DupePlus</green> is outdated, please update at: <blue>%link%</blue>"

    # Send message to the console for the server owner to update the plugin.
    console-notify: true

    # The message sent to the console (Default: "%prefix% | Update DupePlus at %link%")
    # Allowed message variable: %prefix%, %link%, %currentversion%, %newversion%
    console-notify-message: "%prefix% | Update DupePlus at %link%"

# Don't edit this
# Previous: 1.2
# config-version: 1.3
config-version: 1.3

Notes

As this is a SpigotMC 1.17 plugin, this will support all versions from 1.17 from 1.21.4 including newer ones, this plugin will work on all major forks of SpigotMC like PaperMC & Purpur (Fork of PaperMC)

1.2.0Релиз1.21.2, 1.21.3, 1.21.4 · 14 октября 2024 г.

DupePlus 1.2.0

config.yml

Made a large change to config.yml

config.yml
# The command's settings
# Message Variables
# %dupe_item% = The Duplicated item
# %prefix% = The default prefix or the prefix you set
# %max% = The maximum
# %min% = The minimum

# Use this website to help you customize your messages
# https://webui.advntr.dev
dupe:
  # The prefix for you to use
  prefix: "<green>DupePlus</green>"

  # Make it false to let everyone allowed to use this command (Default: false)
  # Permission: dupeplus.dupe
  permission: false

  # The message sent to the player when try to execute dupe or reloadconfig no permission (Only if the above is true) (Default: "%prefix% <dark_gray>|</dark_gray> <red>You are not allowed to use this command</red>")
  permission-message: "%prefix% <dark_gray>|</dark_gray> <red>You are not allowed to use this command</red>"

  # Leave blank for no message (Default: "%prefix% <dark_gray>|</dark_gray> <gray>Duped %dupe_item%</gray>")
  # Allowed Message Variables: %prefix%, %raw_dupe_item%, %dupe_item%
  message: "%prefix% <dark_gray>|</dark_gray> <gray>Duped %dupe_item%</gray>"

  # The message sent whenever the player tries to dupe nothing (Air) (Default: "")
  # Leave blank for no message
  duping-nothing-message: ""

  # When using /dupe, in which hand will it dupe? (Default: MainHand)
  # OffHand
  # MainHand
  dupe-on: MainHand

  # Message to the sender if they try to dupe as a non-player (Default: "DupePlus | You can't do that!")
  console-message: "DupePlus | You can't do that!"

  # Settings for blacklist
  blacklist:
    # Make it false to disable the blacklist, make it true to enable it (Default: false)
    enabled: false
    # If the player tries to dupe an item that is in (Default: "%prefix% <dark_gray>|</dark_gray> <red>The item is blocked from being duped!</red>")
    # Allowed message variable: %prefix%, %dupe_item%
    blocked-message: "%prefix% <dark_gray>|</dark_gray> <red>The item is blocked from being duped!</red>"
    # Add or remove items to block them from being duped, also do not include spaces, for an example (NO: "diamond block" YES: "diamond_block")
    items:
      - barrier

  # Settings for the cooldown of /dupe
  cooldown:
    # Make it false to disable the cooldown, make it true to enable it. (Default: false)
    enable: false
    # How many seconds for the cooldowns to be.
    seconds: 3
    # If the player tries to dupe while the cooldown is set. (Default: "%prefix% <dark_gray>|</dark_gray> <red>Please wait %duration%.</red>")
    # Allowed message variable: %prefix%, %duration%
    wait-message: "%prefix% <dark_gray>|</dark_gray> <red>Please wait %duration%.</red>"


  # Settings for this (ignore if you don't want this) players can still run /dupe
  # /dupe <times>
  times:
    # Make it false to disable this feature, make it true to enable this feature (Default: false)
    enabled: false

    # 0 for no maximum amount of times the player can run (Default: 5) (Recommended: 5)
    # Permission to let a player/group have no maximum regardless of this option: dupeplus.times.max.unlimited
    max: 5

    # If the player puts the value above the maximum then what's the message? (Default: "%prefix% <dark_gray>|</dark_gray> <red>This is higher than maximum! Do something lower than %max%</red>")
    # Allowed message variable: %prefix%, %max%, %min%
    max-message: "%prefix% <dark_gray>|</dark_gray> <red>This is higher than maximum! Do something lower than %max%</red>"

    # 0 for no minimum amount of times the player can run (Default: 0) (Recommended: 0)
    # Permission to let a player/group have no minimum regardless of this option: dupeplus.times.min.unlimited
    min: 0

    # If the player puts the value below the minimum (Default: "%prefix% <dark_gray>|</dark_gray> <red>This is lower than minimum! Do something higher than %min%</red>")
    # Allowed message variable: %prefix%, %max%, %min%
    min-message: "%prefix% <dark_gray>|</dark_gray> <red>This is lower than minimum! Do something higher than %min%</red>"

    # Make it false to let everyone allowed to use this command (Default: false)
    # Permission: dupeplus.times
    permission: false

# Checks for updates using the set API (Modrinth or SpigotMC),
updates:
  # Checks on startup for updates, disable if you do not wish to update DupePlus.
  checkupdate: true

  # Which Service should the Check Update use? (Default: Modrinth)
  # Modrinth
  # SpigotMC
  api: Modrinth

  notify:
    # Notify players with the permission to update the plugin to the latest version.
    player-notify: true
    # The message sent to everyone who has the permission (Default: "%prefix% <dark_gray>|</dark_gray> <white><green>DupePlus</green> is outdated, please update at: <blue>%link%</blue>")
    # (Permission: dupeplus.updates.notify)
    # Allowed message variable: %prefix%, %link%, %currentversion%, %newversion%
    notify-message: "%prefix% <dark_gray>|</dark_gray> <white><green>DupePlus</green> is outdated, please update at: <blue>%link%</blue>"

    # Send message to the console for the server owner to update the plugin.
    console-notify: true

    # The message sent to the console (Default: "%prefix% | Update DupePlus at %link%")
    # Allowed message variable: %prefix%, %link%, %currentversion%, %newversion%
    console-notify-message: "%prefix% | Update DupePlus at %link%"

# Don't edit this
# Previous: 1.1
# config-version: 1.2
config-version: 1.2

Update Checker

Using either the Modrinth API or the SpigotMC API, you can be sure that you are in the new version.

Cooldown

Add a cooldown to the /dupe, by default it's turned off.

Additional Updates

  • %dupe_item% is now %raw_dupe_item%, Example: %raw_dupe_item%: TRIDENT however %dupe_item% will be Trident for better clarity.
1.1.4Релиз1.20.5, 1.20.6, 1.21 · 22 июля 2024 г.

Added /dupeplus blacklist <item>, Permission for the command is dupe.admin.blacklist

Комментарии

Загружаем…