EndyDev Read the docs
Esc

Installation

One server

  1. Put eDupeFix.jar in plugins/ and restart (not /reload).
  2. Give your staff edupefix.alerts, edupefix.history and edupefix.vault (ops have them).
  3. Hold a netherite sword in survival mode and run /edf test. You should get a CRITICAL alert, and the copy should be in /edf vault.

That’s it: SQLite needs no setup. On its first start eDupeFix creates plugins/eDupeFix/ with config.yml, the message files in lang/ and the database edupefix.db. Paper downloads HikariCP and the MariaDB driver once, into libraries/.

Discord

In Discord: Server Settings → Integrations → Webhooks → New Webhook → Copy Webhook URL. Paste it into discord.webhook in config.yml, then /edf reload. To ping a role on critical alerts, set discord.mention: "<@&ROLE_ID>". /edf test sends one, to check it arrives.

A network

Point every server at the same MySQL or MariaDB database and give each server its own server-name. Ids are then followed from server to server, as long as your inventory sync plugin (HuskSync…) carries item data, which they all do. A container on another server can’t be looked at from this one: such a copy is checked when the item turns up on that server.

config.yml
server-name: survival-1
database:
  type: mariadb
  host: 10.0.0.5
  port: 3306
  name: edupefix
  user: edupefix
  password: "change-me"

Folia

Supported, with the same jar. Each inventory is looked at from the region that owns it. Items lying on the ground can’t be looked up by id from another region, so on Folia ground copies are only compared when picked up.

Auction houses

zAuctionHouse (v4), AuctionHouse (Kiranhart) and CrazyAuctions (1.7) are picked up automatically: listing, buying and taking items back show in the history (“listed on zAuctionHouse”), and the book of accounts counts them as explained. With any other auction house eDupeFix still works: a sold item shows up as having jumped from the seller to the buyer, which is only an alert if the seller still has it.

License

The jar you download from BuiltByBit already holds your license key: there’s nothing to set. Up to a minute after startup, and every 6 hours after, the server checks it at plugins.endydev.com (your firewall must let it out on HTTPS, port 443).

  • No answer (the site is down, your host blocks it): everything keeps working for 7 days after the last successful check, and the server keeps trying every 10 minutes.
  • A key that isn’t valid (unknown, revoked, or on more servers than it allows): detection turns off, with the reason in the console. History, the alerts already saved and the vault keep working.
  • A key you got another way (not a BuiltByBit download): put it in license-key in config.yml, then /edf reload.

The check sends the key, the plugin version and a random id of the server (kept in plugins/eDupeFix/license.properties); the site sees the server’s IP. When a newer version is out, the console says so.

Updating

Replace the jar and restart. config.yml and the lang/ files keep your changes; new options take their defaults.