Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
297 commits
Select commit Hold shift + click to select a range
1927004
Version 7.0.12.2
Apr 30, 2019
2cfe1b0
Version 7.0.12.3
May 3, 2019
82a247d
Version 7.0.13
May 5, 2019
d4dcbd8
Version 7.0.14
May 5, 2019
47bdf42
Version 7.0.15
May 5, 2019
10441a3
Version 7.0.16
May 7, 2019
9384024
Version 7.0.16.1
May 20, 2019
fbcc7e8
Version 7.0.16.2
May 25, 2019
85225f8
Version 7.0.16.3
May 28, 2019
100e04e
Version 7.0.16.4
May 28, 2019
66d102a
Version 7.0.16.4
Jun 16, 2019
f47b54e
Version 7.0.16.4
Jun 16, 2019
5632720
Version 7.0.16.6
Jul 7, 2019
61c0fcb
Version 7.0.16.7
Jul 9, 2019
1d7d51a
Version 7.0.16.8
Jul 9, 2019
e4a8b88
Version 7.0.16.9
Jul 10, 2019
8a31371
Version 7.0.16.10
Jul 10, 2019
98b8c51
Version 7.0.16.11
Jul 10, 2019
ea6c2d9
Version 7.0.16.12
Jul 13, 2019
7f7c715
Version 7.0.17
Jul 13, 2019
9ad0813
Version 7.0.17.1
Jul 14, 2019
5f5c5df
Version 7.0.17.2
Jul 17, 2019
f32b99b
Version 7.0.17.3
Jul 19, 2019
ebb4d8b
Version 7.0.17.4
Jul 19, 2019
9159d06
Version 7.0.17.5
Jul 20, 2019
275f33b
Version 7.0.17.6
Jul 21, 2019
7a164fa
Version 7.0.17.7
Jul 22, 2019
2a7c3a0
Version 7.0.17.9
Jul 23, 2019
bb8ab53
Version 7.0.17.10
Jul 24, 2019
064325f
Version 7.0.17.11
Jul 25, 2019
1139dae
Version 7.0.17.12
Jul 26, 2019
0df530f
Version 7.0.18
Jul 26, 2019
fdfe7fd
Version 7.0.18.1
Aug 2, 2019
8bf0c5b
Version 7.0.18.3
Aug 2, 2019
02a83d6
Version 7.0.18.5
Aug 4, 2019
792e30a
Version 7.0.18.5
Aug 5, 2019
49e0b1d
Version 7.0.19
Aug 5, 2019
efa5d56
Version 7.0.20
Aug 6, 2019
d3d7964
Version 7.0.20.2
Aug 11, 2019
8d9f3f6
Version 7.0.21
Aug 23, 2019
55ebe9a
Version 7.0.22
Aug 25, 2019
71c01a0
Version 7.0.23
Sep 3, 2019
4749f9a
Version 7.0.24
Oct 11, 2019
58cb960
Version 7.0.24
Oct 14, 2019
abb7ca1
Version 7.1.0
Oct 23, 2019
e910513
Version 7.1.0.1
Nov 6, 2019
5721157
Version 7.1.0.2
Dec 30, 2019
417a885
Version 7.1.0.3
Jan 1, 2020
04f02ec
Version 7.1.1
Jan 5, 2020
af9107b
Version 7.1.2
Jan 16, 2020
35d8475
Version 7.1.3
Jan 21, 2020
1f263d5
Version 7.1.4
Jan 29, 2020
fedfe98
Version 7.1.6
Feb 24, 2020
454b776
Version 7.1.7
Feb 27, 2020
23d7666
Version 7.1.8
Mar 6, 2020
1c9c2de
Version 7.1.9
Mar 6, 2020
e028129
Version 7.1.10
Mar 13, 2020
7304cb6
Version 7.1.11
Mar 19, 2020
8258c67
Version 7.1.12
Mar 28, 2020
b5422f8
Version 7.1.13
Mar 29, 2020
a9567d9
Version 7.1.15
Mar 31, 2020
794f754
Version 7.1.16
Apr 1, 2020
b1a5e35
Version 7.1.17
Apr 2, 2020
0439e9a
Version 7.1.18
Apr 2, 2020
4bccd66
Version 7.1.19
Apr 4, 2020
8810869
Version 7.1.20
Apr 6, 2020
883e596
Version 7.1.21
Apr 17, 2020
8e16b94
Version 7.1.22
Apr 27, 2020
28735ae
Version 7.1.23
May 11, 2020
446675c
Version 7.1.24-pre-1
May 24, 2020
59b24ae
Version 7.1.24-pre-2
Jun 2, 2020
cf9c9b5
Version 7.1.24-pre-3
Jun 4, 2020
b02872d
Version 7.1.24-pre-4
Jun 8, 2020
a40135c
Version 7.1.24-pre-5
Jun 9, 2020
ff6520e
Version 7.1.24-pre-6
Jun 9, 2020
8091d0d
Version 7.1.24-pre-7
Jun 9, 2020
dae0daf
Version 7.1.24
Jun 10, 2020
5e4906a
Version 7.1.25
Jun 25, 2020
0c0b361
Version 7.1.26
Jul 6, 2020
eae55be
Version 7.1.27
Jul 6, 2020
9bd8149
Version 7.1.28
Jul 8, 2020
5cc547a
Version 7.1.29
Jul 10, 2020
c109ed8
Version 7.1.30
Jul 11, 2020
0d65305
Version 7.1.31
Jul 11, 2020
b14c907
Version 7.1.32
Jul 13, 2020
0f51755
Version 7.1.33
Jul 14, 2020
2497436
Version 7.1.34
Jul 17, 2020
7c73b38
Version 7.1.35
Jul 19, 2020
977c910
Version 7.1.37
Jul 22, 2020
26498cb
Version 7.1.38
Jul 24, 2020
c0d582a
Version 7.1.39
Jul 30, 2020
1d7c3b2
Version 7.1.40
Jul 31, 2020
50d632b
Version 7.1.41
Jul 31, 2020
775b106
Version 7.1.42
Aug 3, 2020
8544a4a
Version 7.1.42.1
Aug 4, 2020
7877c32
Version 7.1.42.3
Aug 9, 2020
5cb869a
Version 7.1.42.4
Aug 19, 2020
5ef02e5
Version 7.1.43
Aug 19, 2020
6e947fe
Version 7.1.43.2
Sep 10, 2020
0874b94
Version 7.1.43.3
Sep 14, 2020
52633fe
Version 7.1.44
Sep 17, 2020
fcdc335
Version 7.1.45
Oct 16, 2020
e319550
Version 7.2.0
Oct 24, 2020
64ee7d4
Merge remote-tracking branch 'origin/master'
Oct 24, 2020
9e00682
Version 7.2.1
Nov 15, 2020
cc46872
Version 7.2.2
Nov 16, 2020
ef7e883
Version 7.2.3
Nov 18, 2020
b50c140
Version 7.2.4
Nov 18, 2020
115c50e
Version 7.2.5
Nov 19, 2020
2bcd537
Version 7.2.6
Nov 19, 2020
72f4328
Version 7.2.7
Nov 19, 2020
4858d58
Version 7.2.8
Nov 23, 2020
488870a
Version 7.2.9
Nov 29, 2020
691a9bd
Version 7.2.10
Dec 3, 2020
c7e13a1
Version 7.2.11
Dec 6, 2020
41d6f40
Version 7.2.12
Dec 6, 2020
8c45cf6
Version 7.2.13
Dec 7, 2020
75fd0bb
Version 7.2.14
Dec 15, 2020
b5951c3
Update README.md
MagmaGuy Dec 16, 2020
9882d98
Version 7.2.14
Dec 18, 2020
3323da6
Merge remote-tracking branch 'origin/master'
Dec 18, 2020
e4e40c4
Version 7.2.17
Jan 1, 2021
6f72e5a
Version 7.2.18
Jan 4, 2021
7f5f242
Version 7.2.19
Jan 4, 2021
4407438
Version 7.2.20
Jan 5, 2021
7467065
Version 7.2.22
Jan 16, 2021
358476e
Version 7.2.23
Jan 26, 2021
d22dbfa
Version 7.2.24
Jan 27, 2021
f7bd316
Version 7.2.25
Jan 30, 2021
02eb977
Version 7.2.26
Jan 31, 2021
c4ab50e
Version 7.2.27
Feb 1, 2021
d6c8f8f
Version 7.2.27
Feb 1, 2021
7c27dc0
Version 7.2.28
Feb 1, 2021
7457e5b
Version 7.2.29
Feb 1, 2021
f6e6ac9
Version 7.2.30
Feb 1, 2021
f779c7c
Version 7.2.31
Feb 2, 2021
545ec7a
Version 7.2.32
Feb 2, 2021
25ea3c3
Version 7.2.33
Feb 3, 2021
dcf840f
EliteMobs 7.2.34
Feb 8, 2021
8a4a588
EliteMobs 7.2.35
Feb 9, 2021
75ade02
EliteMobs 7.2.36
Feb 14, 2021
f45f589
EliteMobs 7.2.37
Feb 15, 2021
7fcaa46
EliteMobs 7.2.38
Feb 21, 2021
8ae063d
EliteMobs 7.2.39
Feb 23, 2021
d729a8c
EliteMobs 7.2.40-SNAPSHOT-1
Feb 24, 2021
fc4f19c
EliteMobs 7.2.40-SNAPSHOT-1
Feb 24, 2021
bfae01d
EliteMobs 7.2.40-SNAPSHOT-2
Feb 26, 2021
a1d80e0
EliteMobs 7.2.41
Feb 28, 2021
adaba3e
EliteMobs 7.3.0-SNAPSHOT-1
Feb 28, 2021
84b789f
EliteMobs 7.3.0-SNAPSHOT-2
Mar 28, 2021
4a5cc4f
EliteMobs 7.3.0-SNAPSHOT-3
Mar 28, 2021
c329a65
EliteMobs 7.3.0-SNAPSHOT-
Mar 29, 2021
f5fd556
EliteMobs 7.3.0-SNAPSHOT-5
Mar 31, 2021
c81ff15
EliteMobs 7.3.0-SNAPSHOT-6
Mar 31, 2021
f1cc450
EliteMobs 7.3.0-SNAPSHOT-7
Apr 9, 2021
62ba4f9
EliteMobs 7.3.0-SNAPSHOT-8
Apr 10, 2021
d171be0
EliteMobs 7.3.0-SNAPSHOT-9
Apr 19, 2021
cef2d14
EliteMobs 7.3.0-SNAPSHOT-9
Apr 28, 2021
0ea28da
EliteMobs 7.3.1-SNAPSHOT-1
May 25, 2021
05edb7e
EliteMobs 7.3.1-SNAPSHOT-2
May 26, 2021
8dc608c
EliteMobs 7.3.1-SNAPSHOT-4
Jun 9, 2021
b53d545
EliteMobs 7.3.1-SNAPSHOT-5
Jun 12, 2021
9f017e8
EliteMobs 7.3.1-SNAPSHOT-6
Jun 15, 2021
5b5e88b
EliteMobs 7.3.1-SNAPSHOT-7
Jun 16, 2021
e873307
EliteMobs 7.3.1-SNAPSHOT-8
Jun 17, 2021
3677dca
EliteMobs 7.3.3
Jun 30, 2021
b439ea4
EliteMobs 7.3.4-SNAPSHOT-1
Jun 30, 2021
ca343d3
EliteMobs 7.3.4-SNAPSHOT-2
Jul 4, 2021
91fe7d0
EliteMobs 7.3.4-SNAPSHOT-3
Jul 12, 2021
63dd456
EliteMobs 7.3.4-SNAPSHOT-4
Jul 16, 2021
63df08a
EliteMobs 7.3.5-SNAPSHOT-1
Aug 2, 2021
3c0aad2
EliteMobs 7.3.5-SNAPSHOT-2
Aug 3, 2021
1ace092
EliteMobs 7.3.5-SNAPSHOT-3
Aug 3, 2021
13902ae
EliteMobs 7.3.5-SNAPSHOT-4
Aug 3, 2021
7b8b0aa
EliteMobs 7.3.5-SNAPSHOT-5
Aug 4, 2021
99fc219
EliteMobs 7.3.5-SNAPSHOT-7
Aug 4, 2021
500b548
EliteMobs 7.3.5-SNAPSHOT-8
Aug 6, 2021
bf515b1
EliteMobs 7.3.5-SNAPSHOT-9
Aug 7, 2021
139e2d3
EliteMobs 7.3.5-SNAPSHOT-11
Aug 9, 2021
72d6da7
EliteMobs 7.3.5-SNAPSHOT-12
Aug 9, 2021
5e15110
EliteMobs 7.3.5-SNAPSHOT-13
Aug 12, 2021
d6f3960
EliteMobs 7.3.5-SNAPSHOT-14
Aug 13, 2021
1f9743c
EliteMobs 7.3.5-SNAPSHOT-15
Aug 17, 2021
a1f9a79
EliteMobs 7.3.5-SNAPSHOT-16
Aug 20, 2021
72414f4
EliteMobs 7.3.5-SNAPSHOT-18
Aug 24, 2021
a02b0b6
EliteMobs 7.3.5-SNAPSHOT-17
Aug 25, 2021
fbe5a4d
EliteMobs 7.3.5-SNAPSHOT-20
Aug 26, 2021
8b79b7d
Version 7.3.5-SNAPSHOT-1
Aug 31, 2021
bf55eb6
EliteMobs 7.3.6-SNAPSHOT-1
Sep 4, 2021
8a31abc
EliteMobs 7.3.6-SNAPSHOT-2
Sep 5, 2021
a9ac850
EliteMobs 7.3.7
Sep 5, 2021
1a17948
EliteMobs 7.3.8-SNAPSHOT-1
Sep 11, 2021
f545e54
EliteMobs 7.3.8-SNAPSHOT-2
Sep 15, 2021
02d53b2
EliteMobs 7.3.8-SNAPSHOT-4
Sep 21, 2021
0b48173
EliteMobs 7.3.8-SNAPSHOT-5
Sep 22, 2021
a042f6d
EliteMobs 7.3.8
Sep 24, 2021
b7f11b3
EliteMobs 7.3.9-SNAPSHOT-1
Oct 4, 2021
46c56f7
EliteMobs 7.3.9-SNAPSHOT-2
Oct 7, 2021
3242cf1
EliteMobs 7.3.9-SNAPSHOT-3
Oct 10, 2021
1775c83
EliteMobs 7.3.9-SNAPSHOT-5
Oct 25, 2021
0ba0734
EliteMobs 7.3.9-SNAPSHOT-5
Oct 26, 2021
7f35ed9
EliteMobs 7.3.9-SNAPSHOT-6
Oct 29, 2021
6ba6665
EliteMobs 7.3.9-SNAPSHOT-7
Oct 31, 2021
d972c17
EliteMobs 7.3.10-SNAPSHOT-1
Nov 6, 2021
7107d63
EliteMobs 7.3.10-SNAPSHOT-2
Nov 9, 2021
3237775
EliteMobs 7.3.10-SNAPSHOT-3
Nov 17, 2021
9957ef9
EliteMobs 7.3.10-SNAPSHOT-4
Nov 23, 2021
c33955c
EliteMobs 7.3.10-SNAPSHOT-5
Nov 24, 2021
b2f6f96
EliteMobs 7.3.10-SNAPSHOT-6
Nov 30, 2021
3bfb68e
EliteMobs 7.3.11-SNAPSHOT-1
Dec 5, 2021
4a611b5
EliteMobs 7.3.11-SNAPSHOT-2
Dec 5, 2021
17b8d71
EliteMobs 7.3.11-SNAPSHOT-3
Dec 6, 2021
5befffc
EliteMobs 7.3.11-SNAPSHOT-4
Dec 18, 2021
13de4fb
EliteMobs 7.3.11-SNAPSHOT-5
Dec 19, 2021
e82aa3f
EliteMobs 7.3.11-SNAPSHOT-6
Dec 22, 2021
e1b756d
EliteMobs 7.3.12-SNAPSHOT-1
Dec 25, 2021
a2a225a
EliteMobs 7.3.12-SNAPSHOT-2
Dec 27, 2021
a9c87dc
EliteMobs 7.3.12-SNAPSHOT-3
Dec 28, 2021
de48aee
EliteMobs 7.3.12-SNAPSHOT-4
Dec 29, 2021
c713efa
EliteMobs 7.3.12-SNAPSHOT-5
Dec 30, 2021
4231110
EliteMobs 7.3.12-SNAPSHOT-6
Dec 31, 2021
1d1e20f
EliteMobs 7.3.12-SNAPSHOT-6
Jan 1, 2022
ca9f601
EliteMobs 7.3.12-SNAPSHOT-8
Jan 8, 2022
265eaed
EliteMobs 7.3.12-SNAPSHOT-8
Jan 10, 2022
e4c7c2f
EliteMobs 7.3.12-SNAPSHOT-10
Jan 10, 2022
64919c4
EliteMobs 7.3.12-SNAPSHOT-12
Jan 12, 2022
af7236b
EliteMobs 7.3.12-SNAPSHOT-12
Jan 13, 2022
32ceee6
EliteMobs 7.3.12-SNAPSHOT-13
Jan 15, 2022
aa87348
EliteMobs 7.3.12-SNAPSHOT-14
Jan 20, 2022
e5f5765
EliteMobs 7.3.12-SNAPSHOT-15
Jan 25, 2022
3a20af1
EliteMobs 7.3.12-SNAPSHOT-16
Jan 27, 2022
d01a519
EliteMobs 7.3.12
Jan 28, 2022
3f64c19
EliteMobs 7.3.13-SNAPSHOT-1
Feb 12, 2022
ea342b6
EliteMobs 7.3.13-SNAPSHOT-2
Feb 22, 2022
f6c953d
EliteMobs 7.3.13
Feb 24, 2022
9c36057
EliteMobs 7.3.14-SNAPSHOT-1
Feb 26, 2022
b38bcab
EliteMobs 7.3.14-SNAPSHOT-2
Mar 11, 2022
5e48461
EliteMobs 7.3.14-SNAPSHOT-3
Mar 20, 2022
7d4947f
EliteMobs 7.3.14-SNAPSHOT-4
Mar 23, 2022
2d7cc33
EliteMobs 7.3.14-SNAPSHOT-4
Mar 28, 2022
37d06bc
EliteMobs 7.3.14-SNAPSHOT-6
Mar 31, 2022
c65b54c
EliteMobs 7.3.14-SNAPSHOT-6
Apr 3, 2022
248a942
EliteMobs 7.3.14-SNAPSHOT-8
Apr 9, 2022
e40fdbe
EliteMobs 7.3.14-SNAPSHOT-9
Apr 14, 2022
f442bf4
EliteMobs 7.3.14
Apr 23, 2022
27ba6e5
EliteMobs 7.3.14-SNAPSHOT-1
May 1, 2022
cf41bad
EliteMobs 7.3.15-SNAPSHOT-2
May 3, 2022
6040e0d
EliteMobs 7.3.15-SNAPSHOT-3
May 8, 2022
384ad3a
EliteMobs 7.3.15-SNAPSHOT-5
Jun 1, 2022
ee9d38a
Wood League announcer enhancements
borkmaster12 Jun 1, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
/.idea/
/.gradle/
/testbed/
/build/
13 changes: 0 additions & 13 deletions .idea/libraries/Maven__org_bukkit_bukkit_1_12_2_R0_1_SNAPSHOT.xml

This file was deleted.

This file was deleted.

13 changes: 0 additions & 13 deletions .idea/libraries/Maven__org_yaml_snakeyaml_1_19.xml

This file was deleted.

674 changes: 674 additions & 0 deletions LICENSE

Large diffs are not rendered by default.

127 changes: 120 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,126 @@
# EliteMobs
Thank you for using EliteMobs!

This is the GitHub project for the Minecraft plugin EliteMobs (Spigot page can be seen here: https://www.spigotmc.org/resources/elitemobs.40090/)
This plugin is made to both work from the very start with no additional config work and to be highly customizable.

Feel free to check the source code and do any edits you might deem necessary for your own servers.
If you want to make some deep configuration changes to the plugin, try to read the GitHub wiki I've created ahead of time or as you're making the changes so you know what the options are doing. https://github.com/MagmaGuy/EliteMobs

At this time, I am not interested in accepting contributions to the code. This is my first project of this dimension, and I'd like to have all components of it be written by me.
If you need support with this plugin, you can reach me at my discord support channel: https://discord.gg/QSA2wgh

That being said, I am deeply interested in any suggestions, be they for improving existing features or creating new ones.
For all things EliteMobs related, you can go to my website to find all resources I've made available, such as the github page, the wiki, the custom loot maker, so on.

# There's a wiki, it has a few entries, if you want more info maybe try reading it.
Hope you enjoy! If you do, leave rating on the resource page and / or buy me a coffee ! (paypal links can be found in the spigot resource page)

# //TODO: add description of features and how they work, some day, maybe

# Dev notes:

## API

EliteMobs has a few basic APIs to interface with in the `com.magmaguy.elitemobs.api` package. Here's the breakdown:

### DamageEliteMob

Used for applying custom damage to Elite Mobs. Uses:
- Bypass EliteMobs' custom damage system for a specific damage event
- Apply an automatically recommended custom amount of damage which varies based on the tier of the boss.

*Note:* the variable damage takes the elite's tier into account and deals more damage to higher tiers. It does not take the health multiplier into account for custom bosses for balance reasons.

### EliteMobDamagedByEliteMobEvent

Used for listening to moments when one Elite damages another Elite. Uses:
- Same as Bukkit's EntityDamagedByEntity event but for elites specifically
- Cancelling it might not work. Report if it doesn't.

### EliteMobDamagedByPlayerAntiExploit
Used for listening to events which trigger an antiexploit **check** - doesn't necessarily mean that it detected an exploit. Uses:
- Same as Bukkit's EntityDamagedByEntity event but for elites specifically
- Can be cancelled

### EliteMobDamagedByPlayerEvent:
Used for listening to moments when a player damages an Elite. Uses:

- Same as Bukkit's EntityDamagedByEntity event but for players damaging elites specifically
- ***Important:*** can't be cancelled as it only fires after applying the damage

### EliteMobDamagedEvent:
Used for listening to moments when an elite is damaged in general. Uses:

- Same as Bukkit's EntityDamageEvent
- ***Important*** Cancelling this event might not 100% work, report if it doesn't

### EliteMobDeathEvent:
Used to listening to moments when an elite is killed. Uses:

- Same as Bukkit's EntityDeathEvent.

### EliteMobEnterCombatEvent:
Used for listening to moments when an elite enters combat against a player. Uses:

- Get the target (player only) of the Elite
- Get the elite which entered in combat

#### EliteMobExitCombatEvent:
Used for listening to moments when an elite leaves combat against a player. Uses:

- Get the elite which just let combat.

### EliteMobsItemDetector:
Used for detecting whether an ItemStack is an EliteMobs ItemStack (like a custom item or a procedurally generated item). Uses:

- Detect if an ItemStack is an EliteMobs custom or dynamic item.

### EliteMobSpawnEvent:
Used for detecting when an Elite spawns. USes:

- Detect when an Elite spawns
- Detect which Elite spawned

### EliteMobTargetPlayerEvent:
Used for detecting when an Elite has targetted a player. Uses:

- Detect when an Elite targets a player.
- Cancel an Elite's detection of a player.

### GenericAntiExploitEvent

Used for listening to moments when the antiexploit runs a check but no players damaged it. Uses:

- Detect when the antiexploit is doing a non-player based exploit check
- Cancel an antiexploit check

### PlayerDamagedByEliteMobEvent

Used for listening to moments when players are damaged by an Elite. Uses:

- Same as Bukkit's EntityDamageEvent

---


## To add new item enchantments:
1) Add new enchantment class to the `com.magmaguy.elitemobs.config.enchantments.premade` **extending** `EnchantmentsConfigFields` to initialize create its config file (naming convention: [EnchantmentName]Config)
2) Initialize enchantment in `CustomEnchantment` to initialize the config file
3) Add enchantment class to `com.magmaguy.elitemobs.items.customenchantments` **extending** `CustomEnchantment` to write the logic for the enchantment (naming convention [EnchantmentName]Enchantment)
4) Add a public static String called "key" to register using the ItemTagger class for persistent enchantment tracking
5) Add an customLootEntry to the parseEnchantments() method in `CustomItem` so custom items detect it correctly
6) (Alternative) Add an customLootEntry to `generateCustomEnchantments()` method in `EnchantmentGenerator` if the enchantment should appear in procedurally generated items

Note:
- Don't forget to register events in `EventsRegistrer` if the part with logic in it requires events.
- Don't forget to use the damage bypass if the power is supposed to deal custom damage. Damage dealt by the player to an elite can be overwritten in `CombatSystem` through the static "bypass" boolean field - it makes the next damage dealt to the elite use the raw damage value. For correctly assigning damage, use Bukkit's `Damageable#damage(double amount, Entity source)` and assign the source to your player.

## To add new powers to elites:

to be documented

## To add new events:

to be documented

## To add new default NPCs:

to be documented

## To add new mob types:

to be documented
166 changes: 166 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,166 @@
plugins {
id 'java-library'
id 'idea'
id 'maven-publish'
id "com.github.johnrengelman.shadow" version "7.0.0"
}

//Fixes issues related to special characters being used
compileJava.options.encoding = "UTF-8"
compileTestJava.options.encoding = "UTF-8"

group 'com.magmaguy'
version '7.3.15-SNAPSHOT-5'

repositories {
maven {
url = 'https://hub.spigotmc.org/nexus/content/repositories/snapshots/'

// As of Gradle 5.1, you can limit this to only those
// dependencies you expect from it
content {
includeGroup 'org.bukkit'
includeGroup 'org.spigotmc'
}
}

mavenCentral()
jcenter()
mavenLocal()

//Spigot API & CloudCommands
maven { url = 'https://oss.sonatype.org/content/repositories/snapshots' }
maven { url = 'https://oss.sonatype.org/content/repositories/central' }

maven { url "https://hub.spigotmc.org/nexus/content/repositories/snapshots" }

//Bstats API
maven { url = 'https://repo.codemc.org/repository/maven-public' }
//CloudCommands
maven { url = 'https://oss.sonatype.org/content/repositories/snapshots' }
//Vault
maven { url = 'https://jitpack.io' }
//DiscordSRV
maven { url = 'https://m2.dv8tion.net/releases/' }
maven { url = 'https://nexus.scarsz.me/content/groups/public/' }
//LibsDisguises
maven { url = 'https://repo.md-5.net/content/groups/public/' }
//PlaceholderAPI
maven { url = 'https://repo.extendedclip.com/content/repositories/placeholderapi/' }

//WorldGuard API
maven { url = 'https://maven.enginehub.org/repo/' }

//Model Engine
maven {
url = 'https://mvn.lumine.io/repository/maven-public/'
metadataSources {
artifact()
}
}

//Geyser
maven { url = 'https://repo.opencollab.dev/main/' }

}

dependencies {
//Spigot API
compileOnly "org.spigotmc:spigot-api:1.18-R0.1-SNAPSHOT"

//compileOnly 'org.spigotmc:spigot:1.17-R0.1-SNAPSHOT'
// The full CraftBukkit server with no shadowing. Requires mavenLocal.
//BStats API
implementation group: 'org.bstats', name: 'bstats-bukkit', version: '2.2.1'
//WorldGuard API
compileOnly group: 'com.sk89q.worldguard', name: 'worldguard-bukkit', version: '7.0.0'
//CloudCommands
implementation group: 'cloud.commandframework', name: 'cloud-paper', version: '1.5.0'
//CloudCommands Minecraft Extras module
implementation group: 'cloud.commandframework', name: 'cloud-minecraft-extras', version: '1.5.0'
//CloudCommands Adventure Platform module
implementation("net.kyori:adventure-platform-bukkit:4.0.0")
//I can't remember what this was for but it's in CloudCommands
implementation group: 'io.leangen.geantyref', name: 'geantyref', version: '1.3.4'
//Vault
//compileOnly group: 'com.github.MilkBowl', name: 'VaultAPI', version: '1.7'
compileOnly("com.github.MilkBowl:VaultAPI:1.7") {
exclude group: 'org.bukkit', module: 'bukkit'
}
//DiscordSRV
//compileOnly 'net.dv8tion:JDA:4.2.1_262'
compileOnly 'com.discordsrv:discordsrv:1.24.0'
//SQLite
compileOnly group: 'org.xerial', name: 'sqlite-jdbc', version: '3.32.3'
//LibsDisguises
compileOnly group: 'com.comphenix.protocol', name: 'ProtocolLib', version: '4.7.0';
compileOnly group: 'LibsDisguises', name: 'LibsDisguises', version: '10.0.26'
//PlaceholderAPI
compileOnly group: 'me.clip', name: 'placeholderapi', version: '2.10.9'

implementation group: 'commons-io', name: 'commons-io', version: '2.6'

//reflections - used for config initialization
implementation group: 'org.reflections', name: 'reflections', version: '0.9.12'

//lombok
compileOnly 'org.projectlombok:lombok:1.18.22'
annotationProcessor 'org.projectlombok:lombok:1.18.22'

//Model Engine
compileOnly "com.ticxo.modelengine:api:R2.5.0"

testCompileOnly 'org.projectlombok:lombok:1.18.20'
testAnnotationProcessor 'org.projectlombok:lombok:1.18.20'

//Geyser for bedrock player detection
//This needs java 16 to work so you will want to change gradle.properties to match your directory for it
//compileOnly("org.geysermc:geyser-api:2.0.2-SNAPSHOT") disabled because I couldn't find an easy way to see if a player is using geyser through their api due to the bungeecord / waterfall specific implementations

}

/*
java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(16))
}
}
*/

artifacts { // task 'build' runs generates uberjar
archives shadowJar
}

jar {
archiveClassifier.set('min') // we want the Uberjar to be distributed, this is the minified version
}

String packagePath = 'com.magmaguy.shaded'

// Relocating a Package
shadowJar {
dependencies {
relocate('org.bstats', packagePath + '.bstats')
relocate('cloud.commandframework', packagePath + '.cloud')
relocate('net.kyori', packagePath + '.adventure-platform-bukkit')
relocate('io.leangen.geantyref', packagePath + '.geantyref')
relocate('org.reflections', packagePath + '.reflections')
}
archiveClassifier.set(null)
archiveFileName.set(project.name + ".jar")
destinationDirectory.set(new File("testbed/plugins"))
}

tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
}

ext {
resourceTokens = [
'Version': version
]
}

processResources {
filter org.apache.tools.ant.filters.ReplaceTokens, tokens: resourceTokens
}
5 changes: 5 additions & 0 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
projectName=EliteMobs
group=com.magmaguy.elitemobs
version=7.2.33
author=MagmaGuy
mainClass=EliteMobs
Binary file added gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
5 changes: 5 additions & 0 deletions gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.0-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Loading