PhantomSpawnControl [1.13.X - 1.20.X] icon

PhantomSpawnControl [1.13.X - 1.20.X] -----

Fully control phantom spawning. Custom Spawn Algorithm, Stats and LootTables!




Changelog v4.18.1:

#Changed: updated commons code to v1.11.2.

You will only need Java 17 or higher to run this version.


Best regards
Alex_qp
----------, May 30, 2024

Changelog v4.18.0:

#Fixed: plugin was still broken when using PaperMC.

Sorry I forgot to remove a debug message.

Best regards,
Alex_qp
----------, May 30, 2024

Changelog v4.17.0:

#Fixed: plugin was broken when using PaperMC.

Best regards,
Alex_qp
----------, May 29, 2024

Changelog v4.16.0:

#Added: official support for MC 1.20.6.

#Changed: updated commons code to v1.11.1.

#Fixed: Using an empty prefix still resulted in a space in front.

You will need to run the plugin with Java 21 or higher.


Best regards
Alex_qp
----------, May 28, 2024

Changelog v4.15.0:

#Added: support for hexcode for messages sent by the toggle command.

#Changed: leaving messages.cmd.prefix empty will now remove the prefix. Using "default" will result in the default prefix.

You will need to run the plugin with Java 16 or higher.


Best regards
Alex_qp
----------, Mar 28, 2024

Changelog v4.14.0:

#Fixed: ClassCastException when calculating PhantomStats for MC 1.20.2.


By switching back to the Bukkit Consumer I reintroduced the ClassCastException. However, now everything should be working as expected while remaining backwards compatibility. Sorry for any inconveniences.


Best regards
Alex_qp

PS: Thanks again to @paulravensky for reporting the bug.
----------, Oct 22, 2023

Changelog v4.14.0:

#Fixed: ClassCastException when calculating PhantomStats for MC 1.20.2.


By switching back to the Bukkit Consumer I reintroduced the ClassCastException. However, now everything should be working as expected while remaining backwards compatibility. Sorry for any inconveniences.


Best regards
Alex_qp

PS: Thanks again to @paulravensky for reporting the bug.
----------, Oct 22, 2023

Changelog v4.13.0:

#Fixed: changed back to Bukkit Consumer to regain Backwards compatibility.

This update has no effect for the latest version.


Best regards
Alex_qp
----------, Oct 21, 2023

Changelog v4.12.0:

#Fixed: Higher time since no rest actually decreased spawning chances of phantoms.

I added some detailed explanations about the options regarding the spawn chance formula in the wiki on GitHub. Feel free to ask any questions.

Wiki Link: https://github.com/Alex39099/PhantomSpawnControl/wiki/Basic-Configurations-(config.yml)


Best regards
Alex_qp
----------, Sep 27, 2023

Changelog v4.11.0:

#Fixed: ClassCastException when calculating PhantomStats.


Best regards
Alex_qp

PS: Thanks to @paulravensky for reporting the bug.
----------, Sep 26, 2023

Changelog v4.10.3:

#Added: official support for MC version 1.20.2 and below.

#Changed: warning message about the lack of a valid implementation to make it more clear that the plugin is trying to use the last valid/updated implementation in this case.

I want to stress out the fact that in many cases the plugin does not need to be updated specifically in order to work properly on future versions - especially if the API did not change drastically (which is usually the case).

Best regards
Alex_qp
----------, Sep 25, 2023

Changelog v4.10.2:

#Added: the plugin will now inform you if the latest implementation is used and if so, for what version it was last tested.

#Changed: the warning messages about the lack of a valid implementation was more or less replaced by the above info message.

The plugin already tried to use the default implementation if no valid implementation was found. Therefore I think these changes give some clarity over what is actually happening. In addition future versions will now not be "unvalid" so to speak but rather untested (hence the new info message informing you of the last tested version) because the later versions will very likely work except for new attributes or block types.

I hope this gives more transparency.

Best regards
Alex_qp
----------, Apr 5, 2023

Changelog v4.10.1:

#Added: official support for MC version 1.19.3.

#Changed: warning message about the lack of a valid implementation to make it more clear that the plugin is trying to use the last valid/updated implementation in this case.

Best regards
Alex_qp
----------, Jan 2, 2023

Changelog v4.10.0:

#Added: official support for MC version 1.19.


Best regards
Alex_qp
----------, Jun 25, 2022

Changelog v4.9.0:

#Added: update checker by mfnalex along with some config options.
#Added: permission phantomspawncontrol.updatechecker to get notified on login of a new version if existent.

#Changed: updated commons code to v1.10.1.

#Fixed: playerdata_prevent_targeting was not working properly.

IMPORTANT: This update requires editing of the current config. Please add the following to the bottom of the file:
Code (YAML):
# Options regarding the updateChecker (by mfnalex (https://github.com/JEFF-Media-GbR/Spigot-UpdateChecker))
updatechecker
:
  enable
: true
  notify_op_on_login
: true

You can always compare your config with the default one available on the plugin's main page or the GitHub wiki.


Best regards
Alex_qp
----------, Mar 27, 2022

Changelog v4.8.1:

#Added: official support for MC version 1.18.2.


Best regards
Alex_qp
----------, Mar 6, 2022

Changelog v4.8.0:

#Added: spawn condition regarding moon phases.

IMPORTANT: This update requires editing of the current config. Please add the following within the phantom_spawn.spawn_conditions.world section:
Code (YAML):
  # No phantom will spawn during disabled moon phases. Please add the corresponding integer of the moon phase (i.e. 1 to disable full moon). For a list of all moon phases visit the minecraft wiki: https://minecraft.fandom.com/wiki/Moon
      disabled_moon_phases
:
      #  - 1
      #  - ...

You can always compare your config with the default one available on the plugin's main page or the GitHub wiki.

Best regards
Alex_qp

PS: @DennHenda there you go!
----------, Jan 2, 2022

Changelog v4.7.0:

#Added: official support for MC version 1.18.

#Changed: updated java version to 11.
#Changed: updated commons code to v1.9.0.

IMPORTANT: The plugin requires now at least Java 11 to run!

Best regards
Alex_qp
----------, Dec 4, 2021

Changelog v4.6.2:

#Added: official support for MC 1.17.

I would highly appreciate some more/new ratings. Thanks in advance!

Best regards
Alex_qp
----------, Jun 22, 2021

Changelog v4.6.1:

#Fixed: NSE exception if giantPhantomsConfiguration.yml did not contain 0.


Best regards
Alex_qp

PS: @Minestick Thanks for pointing that out!
----------, May 18, 2021

Changelog v4.6.0:

#Added: command /psc playerstats to view a player's playerstats (i. e. toggle option status).
#Added: permission phantomspawncontrol.cmd.playerstats (default: op).
#Added: permission phantomspawncontrol.cmd.toggle.other (default: op) to toggle another player's phantom spawning.
#Added: %player% placeholder for messages.toggle.enable and messages.toggle.disable
#Added: option messages.cmd.prefix to configure the plugin's command prefix.

#Changed: toggle command now has an optional parameter for the player for which phantom spawning should be toggled.
#Changed: default values for messages.toggle.enable and messages.toggle.disable.


IMPORTANT: This update needs an addition to the current config. Please compare the message section at the very bottom with the following and edit it accordingly.
Code (YAML):
# Configure nearly all messages. toggle.enable and toggle.disable support the placeholder %player% for the player name.
messages
:
  cmd
:
    # This is the prefix of all command message outputs. An empty string will result in the default prefix.
    prefix
: ""
    credits
: "Use /psc help for all available commands."
    noPerm
: "&4You do not have permission."
    wrongCmdUsagePrefix
: "&CUsage:"
    noPlayerMsg
: "&CThere is no such player."
    toggle
:
      help
: "toggles phantom spawning"
      enable
: "&2Phantom spawning was activated for %player%."
      disable
: "&4Phantom spawning was deactivated for %player%."
    playerstats
:
      help
: "shows the playerstats of a specific player"

I would highly appreciate some more/new ratings. Thanks in advance!

Best regards
Alex_qp

PS: @baconsmoothie @ChiboYen Hope the update suits your requests.
----------, Mar 21, 2021

Changelog v4.5.0:

#Fixed: spawn cancelling for players in enabled worlds stopped spawning completely until reconnect.

Please note that MC 1.16.5 has little to zero impact on plugins working on MC 1.16.4. That is why this and all of my other plugins are just fine with running on MC 1.16.5.

Best regards
Alex_qp

PS: @baconsmoothie thank you for providing your debug logs.
----------, Feb 12, 2021

Changelog v4.4.1:

#Added: official support for MC version 1.16.4.


Best regards
Alex_qp
----------, Nov 4, 2020

Changelog v4.4.0:

#Added: permission phantomspawncontrol.defaultplayerstats to stop loading of player data.

Currently this only effects the toggle command. So if a player has this permission the toggle command will not prevent phantom spawning after login but before the player performed the command.

Best regards
Alex_qp

PS: @Celian I hope this suits your situation.
----------, Oct 2, 2020

Changelog v4.3.1:

#Added: official support for MC version 1.16.2.

#Changed: native Minecraft version to 1.16.2.

Best regards
Alex_qp
----------, Aug 27, 2020

Changelog v4.2.0:

#Added: config option to enable target blocking by any phantom with the toggle command.

IMPORTANT: This update needs an addition to the current config. Please add the following below save_playerdata (you can always compare the config with the one on the plugin's main page):
Code (YAML):
# Set to true if no phantom should be able to target a player who deactivated phantom spawning by command.
playerdata_prevent_targeting
: false


Unfortunately I could not test this update but since it is this small I decided to publish it anyway. In case you want to test it: I added very clear debug messages within the debug mode.


Best regards
Alex_qp

PS: @Solum there you go!
----------, Jul 18, 2020

Changelog v4.1.1:

#Added: official support for MC version 1.16.X.

#Changed: native Minecraft version to 1.16.X.

Please note that this update has no real effect except of removing a severe message on load.


Best regards
Alex_qp
----------, Jun 28, 2020

Changelog v4.1.0:

#Added: WorldGuard support to check for mob spawn flag.

#Changed: improved spawn algorithm performance even more.

#Fixed: block check was not skipped if noSolidAbove == false and no added blocks.

IMPORTANT: This update needs an addition to the current config. Please add the following to the spawning_conditions section (you can always compare the config with the one on the plugin's main page):
Code (YAML):
# Options regarding worldguard (WorldGuard must be installed).
    worldguard
:
      # Should phantoms only spawn in regions that allow mob-spawn?
      check_flags
: false

Please note that I did not test the behavior of worldguard at all due to lack of time (it will definitely not mess with your regions). Therefore I ask you to test this one out by yourself (or wait if I may post a fix later next week) and give me feedback (look out for worldguard debug messages with enabled debug mode). If you do not enable WorldGuard features, nothing changes.


Best regards
Alex_qp

PS: @Shilofax there you go!
PPS: I decided to lower the plugin price back to 10 EUR due to a recent discussion.
----------, Apr 19, 2020

Changelog v4.0.0:

#Added: help command for every (sub-)command. Just type "help" as first parameter of the sub-command.
#Added: option "name" to giantPhantom's set command to configure a giant_phantom's name. Use value "reset" to reset the name. Bukkit color codes aka. "&2" etc. are supported!

#Added: ability to configure custom lootTables. Configurations will be saved in giantPhantomLootTables.yml.
#Added: ability to inherit a lootTable's loot from a child. Parents will also add their children's loot when populated.
#Added: option/sub-command "lootTable" to giantPhantom's set command to add/remove a registered lootTable to a giantPhantom.
#Added: ability to apply custom weights (integers) to a giantPhantom's lootTables in order to make some more likely to drop. For example a lootTable with weight 5 is 5 times likelier to drop than a lootTable with weight 1. Please note that the weight parameter is set for each giantPhantom individually.

#Added: command /psc giantPhantoms set <score> loottable add/remove <name> [<weight>] to add/remove a lootTable to a giantPhantom. The weight is an optional integer which can be set in order to make the lootTable more likely to drop.
#Added: command /psc lootTables list to list all registered lootTables.
#Added: command /psc lootTables add <name> to register a lootTable.
#Added: command /psc lootTables remove <name> to unregister a lootTable.
#Added: command /psc lootTables edit <name> loot to edit a lootTables direct loot. This may not be the populated loot!
#Added: command /psc lootTables edit <name> children add/remove <child> to add/remove a child to the given lootTable.
#Added: command /psc lootTables populate to open an inventory with the loot this lootTable will populate.

#Added: permission phantomspawncontrol.cmd.giantphantoms.* (wildcard permission)
#Added: permission phantomspawncontrol.cmd.giantphantoms
#Added: permission phantomspawncontrol.cmd.giantphantoms.set.* (wildcard permission)
#Added: permission phantomspawncontrol.cmd.giantphantoms.set.stats
#Added: permission phantomspawncontrol.cmd.giantphantoms.set.loottable
#Added: permission phantomspawncontrol.cmd.loottables.* (wildcard permission)
#Added: permission phantomspawncontrol.cmd.loottables
#Added: permission phantomspawncontrol.cmd.loottables.list
#Added: permission phantomspawncontrol.cmd.loottables.add
#Added: permission phantomspawncontrol.cmd.loottables.remove
#Added: permission phantomspawncontrol.cmd.loottables.populate
#Added: permission phantomspawncontrol.cmd.loottables.edit

#Changed: updated EssentialsX dependency to v2.17.2
#Changed: updated commons code to v1.8.0. This massively improves the commands, in particular:
#Changed: the credits (aka. my name) is now clickable and will open my profile page on spigot.
#Changed: sent messages make now use of the BaseComponent API which allows click events (like above) or hover events.
#Changed: commands are now easier to maintain.
#Changed: every (sub-)command will now generate its own help command.
#Changed: every (sub-)command will now generate its own usage message.
#Changed: made changing of data via commands async.
#Changed: did some heavy code cleanup to improve maintainability.
#Changed: improved performance of phantomStats slightly.
#Changed: reworked debug mode to be more precise.
#Changed: the color of the reload command from green to dark_green.
#Changed: relocated config option messages.cmd.help.toggle to messages.cmd.toggle.help
#Changed: renamed all previous commands to configure giantPhantoms, in particular:
#Changed: renamed /psc list to /psc giantPhantoms list
#Changed: renamed /psc add to /psc giantPhantoms add
#Changed: renamed /psc remove to /psc giantPhantoms remove
#Changed: renamed /psc summon to /psc giantPhantoms summon
#Changed: renamed /psc set to /psc giantPhantoms set
#Changed: the old giantPhantom's set command was "replaced" with /psc giantPhantoms set <score> stats <option> <value>
#Changed: all previous permissions regarding the renamed commands, in particular:
#Changed: renamed permission phantomspawncontrol.cmd.list to phantomspawncontrol.cmd.giantphantoms.list
#Changed: renamed permission phantomspawncontrol.cmd.add to phantomspawncontrol.cmd.giantphantoms.add
#Changed: renamed permission phantomspawncontrol.cmd.remove to phantomspawncontrol.cmd.giantphantoms.remove
#Changed: renamed permission phantomspawncontrol.cmd.set to phantomspawncontrol.cmd.giantphantoms.set
#Changed: renamed permission phantomspawncontrol.cmd.summon to phantomspawncontrol.cmd.giantphantoms.summon

IMPORTANT: Be aware of the new needed parent permission phantomspawncontrol.cmd.giantphantoms!

#Fixed: PhantomStatsContainer was not thread safe.
#Fixed: possible complications regarding commons code with some of my other plugins.
#Fixed: api version in plugin.yml was still 1.13

#Removed: ability to configure sent messages for all commands which where categorized as operator commands, in particular:
#Removed: config section messages.cmd.help
#Removed: config section messages.cmd.add
#Removed: config section messages.cmd.remove
#Removed: config section messages.cmd.set
#Removed: config section messages.cmd.summon

IMPORTANT: This update needs editing of the existing config. Please remove everything named on the changelog as removed and add the following to the messages.toggle section (you can always compare the config with the one on the plugin's main page):
Code (YAML):
help : "toggles phantom spawning"
You might want to move it from the old location messages.help.toggle

As you can see a lot of work was done before publishing this update. Let me give you some closing words:

Because I had to rewrite all commands I decided to not support changing the messages of all commands which I categorized as operator commands. If you really feel like you need one of the removed options, feel free to contact me.

This update is quite a monster I will admit and I am very glad to finally be able to publish it. However such large updates come with various different bug possibilities. I think I tested everything but you never know so please report bugs as soon as possible in the discussion section.

After finishing coding I felt like doing a proper wiki on github before editing the whole plugin's main page on spigot. I hope you like it - feel free to make any suggestions! PhantomSpawnControl Wiki on Github

Best regards
Alex_qp

PS: With this update I definitively think the plugin has reached another milestone in terms of quality and scope. Therefore the price will be upped to 12 euros.
----------, Apr 16, 2020

Changelog v3.6.0:

#Added: summon command /psc summon <score> with permission phantomspawncontrol.cmd.summon (default op).
#Added: list command /psc list with permission phantomspawncontrol.cmd.list (default op).
#Added: permission phantomspawncontrol.cmd.* to grant access to all commands (default op).
#Added: permission phantomspawncontrol.* to grant access to all permissions (default none).

#Changed: updated commons code to v1.7.2. This fixes a bug regarding the color of console messages.

#Fixed: reload command was not active when giant_phantoms was deactivated.


Best regards
Alex_qp
----------, Mar 31, 2020

Changelog v3.5.0:

#Changed: made calculations of spawn algorithm asynchronously.
#Changed: made calculations of phantom stats asynchronously.

#Fixed: if a player entered a deactivated world spawning stopped until relog.
#Fixed: random chance was still messed up a bit but it should now work as intended finally.

I am very happy to finally announce this update. I managed to improve performance by more than 50% and also fixed bugs along the way. But please bare in mind that even though I did it in university theoretically this is the first time for me to actually do things asynchronously in a plugin.

However as always it should all work - but you never know. Please be advised to observe the plugin's behavior more than usual. But in case you are wondering: Bugs that may occur will not damage your server irreparably. I would never publish something like that without informing you.


Best regards
Alex_qp
----------, Mar 24, 2020

Changelog v3.4.0:

#Fixed: setting phantom_spawn.player.blocks.no_solid_blocks_above to false caused the plugin to crash.
#Fixed: reload command caused spawning to stop for all online players.
#Fixed: setting phantom_spawn.player.score.min_score below 72000 (equals 3 vanilla day cycles) did not have any effect.
#Fixed: only the max health of a giant_phantom was modified which missed the actual purpose.

Also please note that while testing the movement speed of a phantom did not change noticeably so changing this attribute may have no effect on the calculations by the vanilla game. Unfortunately in this case there is nothing reasonable to do to change that. However the plugin sets the values correctly, they are just not interpreted by the vanilla game as intended.

Best regards,
Alex_qp

PS: Special thanks to @REjoin for pointing some of the bugs out to me.
----------, Jan 4, 2020

Changelog v3.3.2:

#Fixed: an error message regarding the supported versions was shown for 1.15 unintentionally.

Best regards,
Alex_qp
----------, Jan 2, 2020

Changelog v3.3.1:

#Added: official support for MC version 1.15.

#Changed: native Minecraft version to 1.15.

Please note that this update has no real effect except of removing a severe message on load.


Best regards
Alex_qp
----------, Dec 13, 2019

Changelog v3.3.0:

#Added: Reload command /psc reload with permission phantomspawncontrol.cmd.reload (default op)

#Changed: updated commons code to v1.7.1. This slightly improves performance of console messages and might change their appearance a bit.
#Changed: improved performance by making spawn attempts per player (before it was per world). This resolves the issue of computing too much data at once.

#Fixed: calculation of spawn chances for different giantPhantoms was seriously messed up. Now it should work as intended.


Best regards
Alex_qp
----------, Dec 10, 2019

Changelog v3.2.0:

#Fixed: a warning message for missing player stats was shown unintentionally.
#Fixed: nighttime was not calculated correctly.
#Fixed: bed protection was always active for unavailable bed spawns.
#Fixed: phantom stats could not be applied because the internal speed attribute was invalid.

Please note that the last bug was critical.

Best regards
Alex_qp

PS: Special thanks to @MidnightSugar for reporting some of them to me.
----------, Oct 29, 2019

Changelog v3.1.0:

#Added: option to disable phantom spawning for players which are flagged afk by essentials.
#Added: option to disable phantom spawning for players which are vanished by essentials.

#Changed: updated commons code to v1.6.0+
#Changed: improved performance


IMPORTANT: This update needs an addition to the current config. So please add the following code within the "phantom_spawn.spawning_conditions.player"-section of the config file OR just move the file out of the plugin's folder in order to get recreated. You can always compare the config with the one on the plugin's main page.

Code (YAML):
# Options regarding essentials (Essentials aka. EssentialsX must be installed).
      essentials
:
        # Should phantoms spawn for afk players?
        afk_protection
: false
        # Should a vanished player spawn phantoms?
        vanish_protection
: false

To use the new added spawning conditions you need to have EssentialsX installed which can be downloaded here: https://github.com/EssentialsX/Essentials/releases

Best regards
Alex_qp
----------, Oct 15, 2019

Resource Information
Author:
----------
Total Downloads: 144
First Release: Oct 6, 2019
Last Update: May 30, 2024
Category: ---------------
All-Time Rating:
11 ratings
Find more info at github.com...
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings