PluginBugs / Issues-ItemsAdder

Repository used to keep track of issues of my plugin ItemsAdder
https://itemsadder.devs.beer
54 stars 21 forks source link

iareload/iazip refuses to run after any yml issues #2021

Closed purejosh closed 2 years ago

purejosh commented 2 years ago

Terms

Discord tag (optional)

purejosh#2047

What happened?

If I mess up a config in a yml somewhere (which is pretty easy to do) and I use iareload or iazip, it tells me that there was an issue. So, I go and fix that issue. Now, after I've resolved the issues, I am unable to run iareload/iazip again, and the only option I can find is to reload the entire server.

This has been an issue for quite some time, so I apologize if this has either already been fixed and I can't find the answer, or if this is impossible and you've closed many githubs for that reason, but it would be very helpful if there was some type of master/core reload that actually reloaded the entire plugin from a deeper level than just reloading the configs. Some way for us to reset the issue where trying to iareload when there's a yml issue causes a total lockup of the plugin and requires a server restart.

I run a public server with this plugin, and while it adds a lot of features, it does come with the downside that I'm terrified to even issue a simple patch fix live, due to that a simple mistake can force the plugin to go unresponsive to iareload and require a restart. If there's any fixes or advice that you have for getting around the iareload lockup, I would appreciate it.

Steps to reproduce the issue

In a stable, normal environment, make a mistake in a yml file and save it. Run iareload, observe that it fails and the console will very nicely show you where. Fix the issue, save the file, and run iareload again. Observe that the reload fails, as itemsadder thinks the last reload hasn't finished.

Server version

This server is running Paper version git-Paper-111 (MC: 1.19.1) (Implementing API version 1.19.1-R0.1-SNAPSHOT) (Git: 02831e3) You are running the latest version Previous version: git-Paper-387 (MC: 1.18.2

ItemsAdder Version

3.2.3-R9

ProtocolLib Version

5.0.0-SNAPSHOT-b587

LoneLibs Version

1.0.20

LightAPI Version (optional)

No response

LibsDisguises Version (optional)

No response

FULL server log

No response

Error (optional)

No response

ItemsAdder config.yml

metrics: true
update-checker: true
disable-plugin-loading-messages_DONT_ASK_ME_FOR_SUPPORT_IF_YOU_SET_TRUE__THANKS: false
resource-pack:
  hosting:
    no-host:
      enabled: false
    auto-external-host:
      enabled: false
    self-host:
      enabled: true
      server-ip: 192.34.113.4
      pack-port: 32103
    external-host:
      enabled: false
      url: ''
      skip-url-file-type-check___DONT_ASK_HELP_IF_SET_TRUE: false
  apply-on-join: true
  kick-player-on-decline: false
  kick-player-on-fail: false
  delay-ticks: 1
  notify-other-plugins-interfering: true
  title:
    enabled: true
  protect-player:
    black-screen: true
    hide-hud: true
    cancel-movement: true
    lock-player: true
  command:
    usage-cooldown-seconds: 60
  custom-font:
    enabled: false
    name: ipaexg.ttf
    shift: '[0,0]'
    size: 11.0
    oversample: 2.0
  thin-font:
    enabled: false
  zip:
    protect-file-from-unzip:
      enabled: true
      extreme: true
    overwrite-vanilla-models: true
    overwrite-vanilla-lang-json: false
    fix_transparent_noteblocks__disable-for-more-performance: false
    ignore-files-ext:
    - db
    - yml
    - xcf
    - html
    compress-png-files: true
    compress-json-files: true
    generate-custom-armors-textures:
      vanilla_1_17: true
      optifine: true
    disable-overwrite-leather-armor-layers-textures: false
  items:
    CustomModelData-starting-value:
      ALL: 10000
      DIAMOND: 11000
config_files:
  lang: en
  dictionaries-lang: en
  extract-default-resources: false
  extract-default-configs: false
  legacy_pack: false
blocks:
  light-api: true
  fix-glitched-blocks:
    enabled: true
    only-new-chunks: false
  cancel-break-wrong-tool:
    enabled: true
    send-actionbar: true
  campfire:
    unlit-on-place: true
    allow-any-item: true
  disable-REAL: true
  disable-REAL_TRANSPARENT: false
  disable-REAL_NOTE: false
  disable-REAL_WIRE: false
  disable-FIRE: false
  fix-liquids-flow: true
  fix-floating-blocks: true
items:
  fix-show-attack-and-damage-as-lore: true
  give_death_location_maps: true
  hide-custom-durability-lore: true
liquids:
  enabled: true
huds:
  enabled: true
mobs:
  disable-MOB-behaviour__DISABLE_AT_YOUR_OWN_RISK: false
font_images:
  chat:
    enabled: true
    doublecheck-permission__disable-for-more-performance: false
    add-hover-suggestion: true
  command:
    enabled: true
    commandblocks: true
    excluded:
    - home
    - sethome
    - tpa
  sign:
    enabled: true
  book:
    enabled: true
  anvil:
    enabled: true
  inventory-title:
    enabled: true
  vault-prefix-suffix:
    enabled: true
    update-every-ticks: 1200
  scoreboard-teams:
    enabled: false
    update-every-ticks: 3600
  player-display-name:
    enabled: true
    update-every-ticks: 1200
  replace-in-customitems-name-and-lore: true
effects:
  hide-scoreboard-numbers: false
  text-effects:
    enabled: true
    replace-in-customitems-name-and-lore: true
    chat:
      enabled: true
    sign:
      enabled: true
    book:
      enabled: true
    anvil:
      enabled: true
entities:
  max-furniture-vehicles-per-chunk: 70
  allow-removing-old-furnitures_2_3_11: false
  custom-entitites:
    enabled: true
    emotes: true
    interval-rendering-packets-ticks: 1
    optimized-packets: true
recipes:
  hide-vanilla-unrecognized-recipe-errors: true
  custom-recipes:
    unlock:
      all-on-join: false
      on-pickup:
        any: false
        ingredients: true
  remove-vanilla-recipes:
    enabled: false
    list:
      DIAMOND_SWORD: false
      IRON_INGOT: false
  fix-packet-too-large-kick: false
debug:
  items:
    log-files-loading: false
    log-items-loading: false
    log-items-loading-disabled: false
    log-font-images-loading: false
    log-huds-loading: false
    log-attribute-modifiers-loading: false
    log-warnings: false
    log-loots-loading: false
    log-loots-loading-disabled: false
    log-armors-loading: true
  recipes:
    log-recipes-loading: false
    log-recipes-loading-disabled: false
    log-recipes-removed-vanilla: false
    log-fix-packet-too-large: false
    log-recipes-unknown-item: false
  resource-pack:
    log-extract-default-resources: false
    log-not-extract-default-resources-already-exist: false
  blocks:
    log-save: false
    log-save-on-unload: false
    log-mined-unknown-blocks: true
  worlds-populators:
    log-loading: false
    log-loading-disabled: false
    log-loading-no-populators: false
    log-loading-no-world: true
    log-generation: false
  trees-populators:
    log-loading: false
    log-loading-disabled: false
    log-loading-no-populators: false
    log-loading-no-world: true
    log-generation: false
  surface-decorators:
    log-loading: false
    log-loading-disabled: false
    log-loading-no-decorators: false
    log-loading-no-world: true
    log-generation: false
  player-stats:
    log-save: false
  performance:
    loading-ms: true
  huds:
    log-triggers: false
  other:
    log-dictionaries-loading: false
    log-liquids-loading: false
    log-minecraft_lang_overwrite-loading: false
  categories:
    log-total-loaded: true
    log-single-loaded: false
    log-single-loaded-overwrite: false
    log-single-skip: false
    log-icon-failed-load: false
  entities:
    log-files-loading: false
    log-entities-loading: false
    log-entities-loading-disabled: false
  cave-decorators:
    log-loading: false
    log-loading-disabled: false
    log-loading-no-decorators: false
    log-loading-no-world: true
    log-generation: false
loots:
  allow-loots-drop-from-spawners-using-silk-touch: false
chat-preview: false

Problematic items yml configuration file (optional)

No response

Other files, you can drag and drop them here to upload. (optional)

No response

Screenshots/Videos (you can drag and drop files or paste links)

No response

LoneDev6 commented 2 years ago

Can you share a log of when the issue occurred?

purejosh commented 2 years ago

Yeah, let me try and find one. Sorry for the delays.

purejosh commented 2 years ago

2022-10-15-2.log

Here is a truncated log showing a failed reload (I commented out a part of a YML that was important), and the errors show the reason why. I fixed the comment, saved the YML, and reloaded again, and that's where we're stuck. It thinks it's still reloading.

LoneDev6 commented 2 years ago

The issue is that uncaught errors cannot allow a safe reload of the plugin, that's why it gets stuck. In the next update I'll catch malformed files and continue loading anyway, this should mitigate most stuck situations.