Compare commits

..

150 Commits

Author SHA1 Message Date
804614d011 Bump to 2022.02-RC01 Release
Primarily adds 1.17 support, other fixes may be present, please see full release notes for info.
2022-02-23 23:23:14 +00:00
2c22c6c52d Merge pull request #194 from AtlasMediaGroup/Wild1145-patch-1
Update various dependencies based on Freedom-01 State
2022-02-23 17:10:09 -06:00
5ef0f29ffe Merge branch 'development' into Wild1145-patch-1 2022-02-23 22:48:53 +00:00
11134f4109 Merge pull request #197 from AtlasMediaGroup/FS-292
Uplifts the plugin to 1.17.1
2022-02-23 22:48:32 +00:00
e7992c7eb4 Merge branch 'development' into Wild1145-patch-1 2022-02-22 21:17:02 +00:00
82e966dfb0 Delete java11-maven.yml 2022-02-22 20:50:41 +00:00
f457c4cde2 Merge branch 'development' into FS-292 2022-02-21 18:08:29 -06:00
004a0f3d7c Update Groups.java
This should resolve the issues with spawn eggs and mobs.
2022-02-21 17:04:53 -07:00
cf5199f28e Squashed commit of the following:
commit 43c68579e5
Merge: 2618d97a b711ed51
Author: elmon <elmon11bussiness@gmail.com>
Date:   Mon Feb 21 10:01:39 2022 +0100

    Merge pull request #190 from AtlasMediaGroup/Elmon11-patch-2

    order of messages fix

commit b711ed517f
Merge: 1c464729 2618d97a
Author: elmon <elmon11bussiness@gmail.com>
Date:   Mon Jan 24 22:16:24 2022 +0100

    Merge branch 'development' into Elmon11-patch-2

commit 2618d97a3e
Author: Nathan Curran <30569566+Focusvity@users.noreply.github.com>
Date:   Mon Jan 24 12:42:47 2022 +1100

    Remove requireNonNull method from getIp, which causes NPE - resolves FS-429 (#187)

    Co-authored-by: Paldiu <pawereus@gmail.com>

commit 1c4647290a
Merge: f00f67a8 850f1210
Author: Nathan Curran <30569566+Focusvity@users.noreply.github.com>
Date:   Mon Jan 24 12:41:47 2022 +1100

    Merge branch 'development' into Elmon11-patch-2

commit f00f67a844
Author: elmon <elmon11bussiness@gmail.com>
Date:   Sun Jan 23 13:26:22 2022 +0100

    order of messages fix

    https://media.discordapp.net/attachments/874713176082636882/934559012991680532/unknown.png

commit 850f12103c
Merge: 2eb0ab4c 7fd77f3c
Author: Paldiu <pawereus@gmail.com>
Date:   Mon Jan 17 11:35:09 2022 -0600

    Merge pull request #188 from AtlasMediaGroup/Wild1145-patch-1

    Correct CoreProtect Version

commit 7fd77f3cbb
Author: Ryan <Wild1145@users.noreply.github.com>
Date:   Sun Jan 16 18:22:16 2022 +0000

    Correct CoreProtect Version

    To align with the version running on Freedom-01 at the moment.

commit 2eb0ab4cb1
Merge: 8cff0124 2612aaec
Author: Video <videogamesm12@gmail.com>
Date:   Wed Dec 22 20:56:46 2021 -0700

    Merge pull request #179 from AtlasMediaGroup/FS-212

    Makes spawnmob configurable, increases the default limit to 25 (FS-212)

commit 2612aaec31
Author: Video <videogamesm12@gmail.com>
Date:   Wed Dec 15 21:46:56 2021 -0700

    Makes spawnmob configurable and increases the default limit to 25

commit 8cff0124ea
Merge: 35965b0b 1162f10e
Author: Video <videogamesm12@gmail.com>
Date:   Mon Nov 29 06:36:20 2021 -0700

    Merge pull request #93 from AtlasMediaGroup/FS-37

    Fixes FS-37

commit 1162f10ebb
Merge: 7ce173e0 35965b0b
Author: Video <videogamesm12@gmail.com>
Date:   Mon Nov 29 06:31:18 2021 -0700

    Merge branch 'development' into FS-37

commit 35965b0b10
Merge: aa20a6e5 1253732f
Author: Video <videogamesm12@gmail.com>
Date:   Mon Nov 29 06:31:11 2021 -0700

    Merge pull request #174 from AtlasMediaGroup/FS-256

    Forces the server to recalculate the permissions server-wide in /opall (FS-256)

commit 1253732f77
Merge: e1bee321 aa20a6e5
Author: Video <videogamesm12@gmail.com>
Date:   Mon Nov 29 06:25:25 2021 -0700

    Merge branch 'development' into FS-256

commit 7ce173e02b
Merge: 4d006ed1 aa20a6e5
Author: Video <videogamesm12@gmail.com>
Date:   Mon Nov 29 06:24:34 2021 -0700

    Merge branch 'development' into FS-37

commit aa20a6e579
Merge: 70622900 1ecfb0b0
Author: Video <videogamesm12@gmail.com>
Date:   Mon Nov 29 06:23:57 2021 -0700

    Merge pull request #129 from AtlasMediaGroup/FS-7

    Allow players to pay other players coins [FS-7]

commit e1bee32163
Author: Video <videogamesm12@gmail.com>
Date:   Mon Nov 29 03:27:07 2021 -0700

    Forces the server to recalculate the permissions server-wide in /opall

commit 4d006ed172
Merge: 8cbfde8b 70622900
Author: Video <videogamesm12@gmail.com>
Date:   Mon Nov 29 03:04:42 2021 -0700

    Merge branch 'development' into FS-37

commit 1ecfb0b066
Merge: 225ade87 70622900
Author: Video <videogamesm12@gmail.com>
Date:   Mon Nov 29 03:01:22 2021 -0700

    Merge branch 'development' into FS-7

commit 706229004c
Merge: a42cb6af a4adfa9b
Author: Video <videogamesm12@gmail.com>
Date:   Mon Nov 29 03:00:15 2021 -0700

    Merge pull request #131 from AtlasMediaGroup/FS-273

    Moves /rainbowtrail to the shop (FS-273)

commit a4adfa9bee
Merge: 1b5bbd1c a42cb6af
Author: Video <videogamesm12@gmail.com>
Date:   Mon Nov 29 02:46:41 2021 -0700

    Merge branch 'development' into FS-273

commit 225ade8753
Merge: afe755f5 a42cb6af
Author: Video <videogamesm12@gmail.com>
Date:   Mon Nov 29 02:46:02 2021 -0700

    Merge branch 'development' into FS-7

commit 8cbfde8bbc
Merge: bba5ec92 a42cb6af
Author: Video <videogamesm12@gmail.com>
Date:   Mon Nov 29 02:41:49 2021 -0700

    Merge branch 'development' into FS-37

commit a42cb6aff9
Merge: 2ecfb886 01fdf766
Author: Video <videogamesm12@gmail.com>
Date:   Mon Nov 29 02:41:34 2021 -0700

    Merge pull request #125 from AtlasMediaGroup/shitcan-savedflags

    Shitcans SavedFlags

commit 01fdf766ee
Merge: 58c21bb1 2ecfb886
Author: Video <videogamesm12@gmail.com>
Date:   Tue Nov 23 09:28:48 2021 -0700

    Merge branch 'development' into shitcan-savedflags

commit afe755f5c1
Merge: 5f97e68e 2ecfb886
Author: Video <videogamesm12@gmail.com>
Date:   Tue Nov 23 09:26:59 2021 -0700

    Merge branch 'development' into FS-7

commit 5f97e68e0e
Author: Video <videogamesm12@gmail.com>
Date:   Tue Nov 23 09:26:49 2021 -0700

    fuck it, it works

commit 1b5bbd1c05
Merge: 8356e831 2ecfb886
Author: Video <videogamesm12@gmail.com>
Date:   Tue Nov 23 09:16:21 2021 -0700

    Merge branch 'development' into FS-273

commit 2ecfb88604
Merge: 42143c11 bb2ddf11
Author: Video <videogamesm12@gmail.com>
Date:   Tue Nov 23 09:15:16 2021 -0700

    Merge pull request #130 from AtlasMediaGroup/FS-215

    Makes [Discord] a hyperlink (FS-215)

commit 8356e831a5
Author: Video <videogamesm12@gmail.com>
Date:   Tue Nov 23 09:11:16 2021 -0700

    Redundancy fix and better protection system

commit ab00cb840f
Merge: ecce62f6 42143c11
Author: Video <videogamesm12@gmail.com>
Date:   Tue Nov 23 03:31:45 2021 -0700

    Merge branch 'development' into FS-273

commit bb2ddf1129
Merge: cf9fdc6f 42143c11
Author: Video <videogamesm12@gmail.com>
Date:   Tue Nov 23 03:31:19 2021 -0700

    Merge branch 'development' into FS-215

commit bba5ec922b
Merge: 68adaed9 42143c11
Author: Video <videogamesm12@gmail.com>
Date:   Tue Nov 23 03:31:13 2021 -0700

    Merge branch 'development' into FS-37

commit 58c21bb1aa
Merge: fdba119d 42143c11
Author: Video <videogamesm12@gmail.com>
Date:   Tue Nov 23 03:30:48 2021 -0700

    Merge branch 'development' into shitcan-savedflags

commit 68adaed997
Merge: 087b8dd7 a598c933
Author: Video <videogamesm12@gmail.com>
Date:   Sat Oct 9 00:09:24 2021 -0600

    Merge branch 'development' into FS-37

commit ecce62f6b4
Merge: d8148530 a598c933
Author: Video <videogamesm12@gmail.com>
Date:   Sat Oct 9 00:01:22 2021 -0600

    Merge branch 'development' into FS-273

commit cf9fdc6fe4
Merge: 387ea6f7 a598c933
Author: Video <videogamesm12@gmail.com>
Date:   Fri Oct 8 01:43:33 2021 -0600

    Merge branch 'development' into FS-215

commit 387ea6f71e
Merge: a1ecf881 180cd811
Author: Video <videogamesm12@gmail.com>
Date:   Fri Oct 1 00:35:12 2021 -0600

    Merge branch 'development' into FS-215

commit d814853036
Merge: 47e63869 213a4338
Author: Ryan <Wild1145@users.noreply.github.com>
Date:   Sun Sep 12 13:49:05 2021 +0100

    Merge branch 'development' into FS-273

commit a1ecf88109
Merge: bd647afe 213a4338
Author: Ryan <Wild1145@users.noreply.github.com>
Date:   Sun Sep 12 13:48:59 2021 +0100

    Merge branch 'development' into FS-215

commit 5a6a5ff75d
Merge: 6ca61d9c 213a4338
Author: Ryan <Wild1145@users.noreply.github.com>
Date:   Sun Sep 12 13:48:50 2021 +0100

    Merge branch 'development' into FS-7

commit fdba119d5d
Merge: 61857dd0 213a4338
Author: Ryan <Wild1145@users.noreply.github.com>
Date:   Sun Sep 12 13:48:44 2021 +0100

    Merge branch 'development' into shitcan-savedflags

commit 087b8dd7ea
Merge: 3818aab4 213a4338
Author: Ryan <Wild1145@users.noreply.github.com>
Date:   Sun Sep 12 13:48:21 2021 +0100

    Merge branch 'development' into FS-37

commit 3818aab454
Merge: caeda219 0e12f5e7
Author: Video <videogamesm12@gmail.com>
Date:   Sun Sep 12 03:04:08 2021 -0600

    Merge branch 'development' into FS-37

commit 61857dd06f
Merge: 2d18d461 0e12f5e7
Author: Video <videogamesm12@gmail.com>
Date:   Sun Sep 12 03:01:37 2021 -0600

    Merge branch 'development' into shitcan-savedflags

commit bd647afe92
Merge: 69f17ef2 0e12f5e7
Author: Video <videogamesm12@gmail.com>
Date:   Sun Sep 12 02:50:39 2021 -0600

    Merge branch 'development' into FS-215

commit 69f17ef2d7
Merge: ee1b27fa aebe1ace
Author: Video <videogamesm12@gmail.com>
Date:   Sun Sep 12 02:01:56 2021 -0600

    Merge branch 'development' into FS-215

commit caeda219fa
Merge: 3ca98352 0a9b95bf
Author: Ryan <Wild1145@users.noreply.github.com>
Date:   Sat Sep 11 15:26:37 2021 +0100

    Merge branch 'development' into FS-37

commit ee1b27fa0d
Merge: 2bdf14f3 0a9b95bf
Author: Ryan <Wild1145@users.noreply.github.com>
Date:   Sat Sep 11 01:24:00 2021 +0100

    Merge branch 'development' into FS-215

commit 6ca61d9c6c
Merge: fedf80b8 0a9b95bf
Author: Ryan <Wild1145@users.noreply.github.com>
Date:   Sat Sep 11 01:23:52 2021 +0100

    Merge branch 'development' into FS-7

commit 2d18d461fe
Merge: a4c81f20 0a9b95bf
Author: Ryan <Wild1145@users.noreply.github.com>
Date:   Sat Sep 11 01:23:44 2021 +0100

    Merge branch 'development' into shitcan-savedflags

commit 47e6386907
Merge: b1062fbb 0a9b95bf
Author: Ryan <Wild1145@users.noreply.github.com>
Date:   Sat Sep 11 01:23:13 2021 +0100

    Merge branch 'development' into FS-273

commit fedf80b834
Merge: a2d11d4b 44ff621d
Author: Video <videogamesm12@gmail.com>
Date:   Fri Sep 10 01:39:16 2021 -0600

    Merge branch 'development' into FS-7

commit 2bdf14f38c
Merge: f6d46b61 44ff621d
Author: Video <videogamesm12@gmail.com>
Date:   Mon Sep 6 15:26:13 2021 -0600

    Merge branch 'development' into FS-215

commit b1062fbb6c
Merge: f69feed4 44ff621d
Author: Video <videogamesm12@gmail.com>
Date:   Mon Sep 6 14:39:32 2021 -0600

    Merge branch 'development' into FS-273

commit 3ca9835257
Merge: da82b270 54cb0cfa
Author: Video <videogamesm12@gmail.com>
Date:   Mon Sep 6 01:16:04 2021 -0600

    Merge branch 'development' into FS-37

commit f69feed469
Author: Video <videogamesm12@gmail.com>
Date:   Mon Sep 6 01:14:21 2021 -0600

    fixed

commit 8253f94ac4
Merge: daf0126f 54cb0cfa
Author: Video <videogamesm12@gmail.com>
Date:   Mon Sep 6 01:12:00 2021 -0600

    Merge branch 'development' into FS-273

commit a4c81f202c
Merge: 0d09c3a5 23caa4e8
Author: Ryan <Wild1145@users.noreply.github.com>
Date:   Sat Sep 4 01:23:06 2021 +0100

    Merge branch 'development' into shitcan-savedflags

commit da82b27016
Merge: af1df228 23caa4e8
Author: Ryan <Wild1145@users.noreply.github.com>
Date:   Sat Sep 4 01:07:55 2021 +0100

    Merge branch 'development' into FS-37

commit daf0126f45
Merge: a51f5c9b 23caa4e8
Author: Ryan <Wild1145@users.noreply.github.com>
Date:   Sat Sep 4 01:07:39 2021 +0100

    Merge branch 'development' into FS-273

commit f6d46b6178
Merge: ee804d52 23caa4e8
Author: Ryan <Wild1145@users.noreply.github.com>
Date:   Sat Sep 4 01:07:33 2021 +0100

    Merge branch 'development' into FS-215

commit a2d11d4b93
Merge: dc490659 23caa4e8
Author: Ryan <Wild1145@users.noreply.github.com>
Date:   Sat Sep 4 01:07:28 2021 +0100

    Merge branch 'development' into FS-7

commit a51f5c9bbf
Author: Video <videogamesm12@gmail.com>
Date:   Fri Sep 3 13:53:33 2021 -0600

    FS-273

commit ee804d52ff
Author: Video <videogamesm12@gmail.com>
Date:   Fri Sep 3 12:52:15 2021 -0600

    Makes [Discord] a hyperlink (FS-215)

    I've decided to overhaul the implementation of DiscordToMinecraftListener to make it more easily workable. This overhaul allows me to implement FS-215 more easily.

commit dc490659c1
Author: Video <videogamesm12@gmail.com>
Date:   Fri Sep 3 00:07:20 2021 -0600

    Begins implementing FS-7

    should be good enough, but feedback would be lovely

commit 0d09c3a550
Merge: e2ccd14e 4c3f188b
Author: Ryan <Wild1145@users.noreply.github.com>
Date:   Sun Aug 29 20:09:03 2021 +0100

    Merge branch 'development' into shitcan-savedflags

commit e2ccd14eb3
Author: Video <videogamesm12@gmail.com>
Date:   Fri Aug 27 16:54:55 2021 -0600

    Unsaves SavedFlags

commit af1df22812
Merge: 1474a808 f380898b
Author: Video <videogamesm12@gmail.com>
Date:   Thu Aug 26 23:05:58 2021 -0600

    Merge branch 'development' into FS-37

commit 1474a80875
Merge: 77fd4ff6 f45466ee
Author: Ryan <Wild1145@users.noreply.github.com>
Date:   Thu Aug 26 13:26:44 2021 +0100

    Merge branch 'development' into FS-37

commit 77fd4ff66a
Merge: 33aca2a4 d901cbaa
Author: Ryan <Wild1145@users.noreply.github.com>
Date:   Sat Aug 21 21:34:04 2021 +0100

    Merge branch 'development' into FS-37

commit 33aca2a482
Merge: 159eda73 0582c2e5
Author: Video <videogamesm12@gmail.com>
Date:   Tue Aug 10 22:38:51 2021 -0600

    Merge branch 'development' into FS-37

commit 159eda73a1
Merge: da2d2525 6874b2ce
Author: Ryan <Wild1145@users.noreply.github.com>
Date:   Tue Aug 10 17:34:12 2021 +0100

    Merge branch 'development' into FS-37

commit da2d25252b
Merge: e99aaa2e c8a4382a
Author: Ryan <Wild1145@users.noreply.github.com>
Date:   Tue Aug 10 17:31:13 2021 +0100

    Merge branch 'development' into FS-37

commit e99aaa2eb4
Author: Video <videogamesm12@gmail.com>
Date:   Thu Aug 5 00:32:23 2021 -0600

    Fixes FS-37

    Fixes an oversight introduced in 76bb2d08ac in which the configuration is loaded twice.
2022-02-21 16:45:03 -07:00
43c68579e5 Merge pull request #190 from AtlasMediaGroup/Elmon11-patch-2
order of messages fix
2022-02-21 10:01:39 +01:00
127ee7d9f9 Move CodeQL to Java 17 2022-02-18 16:50:45 +00:00
c873fd4abc Update pom.xml 2022-02-16 21:02:00 +00:00
fa90e1d239 Update various dependencies based on Freedom-01 State
Various plugins have been updated but not reflected back here. This PR Corrects that.
2022-02-05 23:25:57 +00:00
b711ed517f Merge branch 'development' into Elmon11-patch-2 2022-01-24 22:16:24 +01:00
2618d97a3e Remove requireNonNull method from getIp, which causes NPE - resolves FS-429 (#187)
Co-authored-by: Paldiu <pawereus@gmail.com>
2022-01-24 12:42:47 +11:00
1c4647290a Merge branch 'development' into Elmon11-patch-2 2022-01-24 12:41:47 +11:00
f00f67a844 order of messages fix
https://media.discordapp.net/attachments/874713176082636882/934559012991680532/unknown.png
2022-01-23 13:26:22 +01:00
850f12103c Merge pull request #188 from AtlasMediaGroup/Wild1145-patch-1
Correct CoreProtect Version
2022-01-17 11:35:09 -06:00
7fd77f3cbb Correct CoreProtect Version
To align with the version running on Freedom-01 at the moment.
2022-01-16 18:22:16 +00:00
2eb0ab4cb1 Merge pull request #179 from AtlasMediaGroup/FS-212
Makes spawnmob configurable, increases the default limit to 25 (FS-212)
2021-12-22 20:56:46 -07:00
2612aaec31 Makes spawnmob configurable and increases the default limit to 25 2021-12-15 21:46:56 -07:00
6e7ad73152 Nevermind that didn't work 2021-11-29 07:03:29 -07:00
af6411b82c Wait a second
This *should* work...
2021-11-29 06:54:04 -07:00
e9ba958a4e Squashed commit of the following:
commit 35965b0b10
Merge: aa20a6e5 1253732f
Author: Video <videogamesm12@gmail.com>
Date:   Mon Nov 29 06:31:11 2021 -0700

    Merge pull request #174 from AtlasMediaGroup/FS-256

    Forces the server to recalculate the permissions server-wide in /opall (FS-256)

commit 1253732f77
Merge: e1bee321 aa20a6e5
Author: Video <videogamesm12@gmail.com>
Date:   Mon Nov 29 06:25:25 2021 -0700

    Merge branch 'development' into FS-256

commit aa20a6e579
Merge: 70622900 1ecfb0b0
Author: Video <videogamesm12@gmail.com>
Date:   Mon Nov 29 06:23:57 2021 -0700

    Merge pull request #129 from AtlasMediaGroup/FS-7

    Allow players to pay other players coins [FS-7]

commit e1bee32163
Author: Video <videogamesm12@gmail.com>
Date:   Mon Nov 29 03:27:07 2021 -0700

    Forces the server to recalculate the permissions server-wide in /opall

commit 1ecfb0b066
Merge: 225ade87 70622900
Author: Video <videogamesm12@gmail.com>
Date:   Mon Nov 29 03:01:22 2021 -0700

    Merge branch 'development' into FS-7

commit 706229004c
Merge: a42cb6af a4adfa9b
Author: Video <videogamesm12@gmail.com>
Date:   Mon Nov 29 03:00:15 2021 -0700

    Merge pull request #131 from AtlasMediaGroup/FS-273

    Moves /rainbowtrail to the shop (FS-273)

commit a4adfa9bee
Merge: 1b5bbd1c a42cb6af
Author: Video <videogamesm12@gmail.com>
Date:   Mon Nov 29 02:46:41 2021 -0700

    Merge branch 'development' into FS-273

commit 225ade8753
Merge: afe755f5 a42cb6af
Author: Video <videogamesm12@gmail.com>
Date:   Mon Nov 29 02:46:02 2021 -0700

    Merge branch 'development' into FS-7

commit a42cb6aff9
Merge: 2ecfb886 01fdf766
Author: Video <videogamesm12@gmail.com>
Date:   Mon Nov 29 02:41:34 2021 -0700

    Merge pull request #125 from AtlasMediaGroup/shitcan-savedflags

    Shitcans SavedFlags

commit 01fdf766ee
Merge: 58c21bb1 2ecfb886
Author: Video <videogamesm12@gmail.com>
Date:   Tue Nov 23 09:28:48 2021 -0700

    Merge branch 'development' into shitcan-savedflags

commit afe755f5c1
Merge: 5f97e68e 2ecfb886
Author: Video <videogamesm12@gmail.com>
Date:   Tue Nov 23 09:26:59 2021 -0700

    Merge branch 'development' into FS-7

commit 5f97e68e0e
Author: Video <videogamesm12@gmail.com>
Date:   Tue Nov 23 09:26:49 2021 -0700

    fuck it, it works

commit 1b5bbd1c05
Merge: 8356e831 2ecfb886
Author: Video <videogamesm12@gmail.com>
Date:   Tue Nov 23 09:16:21 2021 -0700

    Merge branch 'development' into FS-273

commit 2ecfb88604
Merge: 42143c11 bb2ddf11
Author: Video <videogamesm12@gmail.com>
Date:   Tue Nov 23 09:15:16 2021 -0700

    Merge pull request #130 from AtlasMediaGroup/FS-215

    Makes [Discord] a hyperlink (FS-215)

commit 8356e831a5
Author: Video <videogamesm12@gmail.com>
Date:   Tue Nov 23 09:11:16 2021 -0700

    Redundancy fix and better protection system

commit ab00cb840f
Merge: ecce62f6 42143c11
Author: Video <videogamesm12@gmail.com>
Date:   Tue Nov 23 03:31:45 2021 -0700

    Merge branch 'development' into FS-273

commit bb2ddf1129
Merge: cf9fdc6f 42143c11
Author: Video <videogamesm12@gmail.com>
Date:   Tue Nov 23 03:31:19 2021 -0700

    Merge branch 'development' into FS-215

commit 58c21bb1aa
Merge: fdba119d 42143c11
Author: Video <videogamesm12@gmail.com>
Date:   Tue Nov 23 03:30:48 2021 -0700

    Merge branch 'development' into shitcan-savedflags

commit ecce62f6b4
Merge: d8148530 a598c933
Author: Video <videogamesm12@gmail.com>
Date:   Sat Oct 9 00:01:22 2021 -0600

    Merge branch 'development' into FS-273

commit cf9fdc6fe4
Merge: 387ea6f7 a598c933
Author: Video <videogamesm12@gmail.com>
Date:   Fri Oct 8 01:43:33 2021 -0600

    Merge branch 'development' into FS-215

commit 387ea6f71e
Merge: a1ecf881 180cd811
Author: Video <videogamesm12@gmail.com>
Date:   Fri Oct 1 00:35:12 2021 -0600

    Merge branch 'development' into FS-215

commit d814853036
Merge: 47e63869 213a4338
Author: Ryan <Wild1145@users.noreply.github.com>
Date:   Sun Sep 12 13:49:05 2021 +0100

    Merge branch 'development' into FS-273

commit a1ecf88109
Merge: bd647afe 213a4338
Author: Ryan <Wild1145@users.noreply.github.com>
Date:   Sun Sep 12 13:48:59 2021 +0100

    Merge branch 'development' into FS-215

commit 5a6a5ff75d
Merge: 6ca61d9c 213a4338
Author: Ryan <Wild1145@users.noreply.github.com>
Date:   Sun Sep 12 13:48:50 2021 +0100

    Merge branch 'development' into FS-7

commit fdba119d5d
Merge: 61857dd0 213a4338
Author: Ryan <Wild1145@users.noreply.github.com>
Date:   Sun Sep 12 13:48:44 2021 +0100

    Merge branch 'development' into shitcan-savedflags

commit 61857dd06f
Merge: 2d18d461 0e12f5e7
Author: Video <videogamesm12@gmail.com>
Date:   Sun Sep 12 03:01:37 2021 -0600

    Merge branch 'development' into shitcan-savedflags

commit bd647afe92
Merge: 69f17ef2 0e12f5e7
Author: Video <videogamesm12@gmail.com>
Date:   Sun Sep 12 02:50:39 2021 -0600

    Merge branch 'development' into FS-215

commit 69f17ef2d7
Merge: ee1b27fa aebe1ace
Author: Video <videogamesm12@gmail.com>
Date:   Sun Sep 12 02:01:56 2021 -0600

    Merge branch 'development' into FS-215

commit ee1b27fa0d
Merge: 2bdf14f3 0a9b95bf
Author: Ryan <Wild1145@users.noreply.github.com>
Date:   Sat Sep 11 01:24:00 2021 +0100

    Merge branch 'development' into FS-215

commit 6ca61d9c6c
Merge: fedf80b8 0a9b95bf
Author: Ryan <Wild1145@users.noreply.github.com>
Date:   Sat Sep 11 01:23:52 2021 +0100

    Merge branch 'development' into FS-7

commit 2d18d461fe
Merge: a4c81f20 0a9b95bf
Author: Ryan <Wild1145@users.noreply.github.com>
Date:   Sat Sep 11 01:23:44 2021 +0100

    Merge branch 'development' into shitcan-savedflags

commit 47e6386907
Merge: b1062fbb 0a9b95bf
Author: Ryan <Wild1145@users.noreply.github.com>
Date:   Sat Sep 11 01:23:13 2021 +0100

    Merge branch 'development' into FS-273

commit fedf80b834
Merge: a2d11d4b 44ff621d
Author: Video <videogamesm12@gmail.com>
Date:   Fri Sep 10 01:39:16 2021 -0600

    Merge branch 'development' into FS-7

commit 2bdf14f38c
Merge: f6d46b61 44ff621d
Author: Video <videogamesm12@gmail.com>
Date:   Mon Sep 6 15:26:13 2021 -0600

    Merge branch 'development' into FS-215

commit b1062fbb6c
Merge: f69feed4 44ff621d
Author: Video <videogamesm12@gmail.com>
Date:   Mon Sep 6 14:39:32 2021 -0600

    Merge branch 'development' into FS-273

commit f69feed469
Author: Video <videogamesm12@gmail.com>
Date:   Mon Sep 6 01:14:21 2021 -0600

    fixed

commit 8253f94ac4
Merge: daf0126f 54cb0cfa
Author: Video <videogamesm12@gmail.com>
Date:   Mon Sep 6 01:12:00 2021 -0600

    Merge branch 'development' into FS-273

commit a4c81f202c
Merge: 0d09c3a5 23caa4e8
Author: Ryan <Wild1145@users.noreply.github.com>
Date:   Sat Sep 4 01:23:06 2021 +0100

    Merge branch 'development' into shitcan-savedflags

commit daf0126f45
Merge: a51f5c9b 23caa4e8
Author: Ryan <Wild1145@users.noreply.github.com>
Date:   Sat Sep 4 01:07:39 2021 +0100

    Merge branch 'development' into FS-273

commit f6d46b6178
Merge: ee804d52 23caa4e8
Author: Ryan <Wild1145@users.noreply.github.com>
Date:   Sat Sep 4 01:07:33 2021 +0100

    Merge branch 'development' into FS-215

commit a2d11d4b93
Merge: dc490659 23caa4e8
Author: Ryan <Wild1145@users.noreply.github.com>
Date:   Sat Sep 4 01:07:28 2021 +0100

    Merge branch 'development' into FS-7

commit a51f5c9bbf
Author: Video <videogamesm12@gmail.com>
Date:   Fri Sep 3 13:53:33 2021 -0600

    FS-273

commit ee804d52ff
Author: Video <videogamesm12@gmail.com>
Date:   Fri Sep 3 12:52:15 2021 -0600

    Makes [Discord] a hyperlink (FS-215)

    I've decided to overhaul the implementation of DiscordToMinecraftListener to make it more easily workable. This overhaul allows me to implement FS-215 more easily.

commit dc490659c1
Author: Video <videogamesm12@gmail.com>
Date:   Fri Sep 3 00:07:20 2021 -0600

    Begins implementing FS-7

    should be good enough, but feedback would be lovely

commit 0d09c3a550
Merge: e2ccd14e 4c3f188b
Author: Ryan <Wild1145@users.noreply.github.com>
Date:   Sun Aug 29 20:09:03 2021 +0100

    Merge branch 'development' into shitcan-savedflags

commit e2ccd14eb3
Author: Video <videogamesm12@gmail.com>
Date:   Fri Aug 27 16:54:55 2021 -0600

    Unsaves SavedFlags
2021-11-29 06:40:26 -07:00
8cff0124ea Merge pull request #93 from AtlasMediaGroup/FS-37
Fixes FS-37
2021-11-29 06:36:20 -07:00
1162f10ebb Merge branch 'development' into FS-37 2021-11-29 06:31:18 -07:00
35965b0b10 Merge pull request #174 from AtlasMediaGroup/FS-256
Forces the server to recalculate the permissions server-wide in /opall (FS-256)
2021-11-29 06:31:11 -07:00
1253732f77 Merge branch 'development' into FS-256 2021-11-29 06:25:25 -07:00
7ce173e02b Merge branch 'development' into FS-37 2021-11-29 06:24:34 -07:00
aa20a6e579 Merge pull request #129 from AtlasMediaGroup/FS-7
Allow players to pay other players coins [FS-7]
2021-11-29 06:23:57 -07:00
e1bee32163 Forces the server to recalculate the permissions server-wide in /opall 2021-11-29 03:27:07 -07:00
4d006ed172 Merge branch 'development' into FS-37 2021-11-29 03:04:42 -07:00
a29392cab2 Squashed commit of the following:
commit 706229004c
Merge: a42cb6af a4adfa9b
Author: Video <videogamesm12@gmail.com>
Date:   Mon Nov 29 03:00:15 2021 -0700

    Merge pull request #131 from AtlasMediaGroup/FS-273

    Moves /rainbowtrail to the shop (FS-273)

commit a4adfa9bee
Merge: 1b5bbd1c a42cb6af
Author: Video <videogamesm12@gmail.com>
Date:   Mon Nov 29 02:46:41 2021 -0700

    Merge branch 'development' into FS-273

commit a42cb6aff9
Merge: 2ecfb886 01fdf766
Author: Video <videogamesm12@gmail.com>
Date:   Mon Nov 29 02:41:34 2021 -0700

    Merge pull request #125 from AtlasMediaGroup/shitcan-savedflags

    Shitcans SavedFlags

commit 01fdf766ee
Merge: 58c21bb1 2ecfb886
Author: Video <videogamesm12@gmail.com>
Date:   Tue Nov 23 09:28:48 2021 -0700

    Merge branch 'development' into shitcan-savedflags

commit 1b5bbd1c05
Merge: 8356e831 2ecfb886
Author: Video <videogamesm12@gmail.com>
Date:   Tue Nov 23 09:16:21 2021 -0700

    Merge branch 'development' into FS-273

commit 2ecfb88604
Merge: 42143c11 bb2ddf11
Author: Video <videogamesm12@gmail.com>
Date:   Tue Nov 23 09:15:16 2021 -0700

    Merge pull request #130 from AtlasMediaGroup/FS-215

    Makes [Discord] a hyperlink (FS-215)

commit 8356e831a5
Author: Video <videogamesm12@gmail.com>
Date:   Tue Nov 23 09:11:16 2021 -0700

    Redundancy fix and better protection system

commit ab00cb840f
Merge: ecce62f6 42143c11
Author: Video <videogamesm12@gmail.com>
Date:   Tue Nov 23 03:31:45 2021 -0700

    Merge branch 'development' into FS-273

commit bb2ddf1129
Merge: cf9fdc6f 42143c11
Author: Video <videogamesm12@gmail.com>
Date:   Tue Nov 23 03:31:19 2021 -0700

    Merge branch 'development' into FS-215

commit 58c21bb1aa
Merge: fdba119d 42143c11
Author: Video <videogamesm12@gmail.com>
Date:   Tue Nov 23 03:30:48 2021 -0700

    Merge branch 'development' into shitcan-savedflags

commit ecce62f6b4
Merge: d8148530 a598c933
Author: Video <videogamesm12@gmail.com>
Date:   Sat Oct 9 00:01:22 2021 -0600

    Merge branch 'development' into FS-273

commit cf9fdc6fe4
Merge: 387ea6f7 a598c933
Author: Video <videogamesm12@gmail.com>
Date:   Fri Oct 8 01:43:33 2021 -0600

    Merge branch 'development' into FS-215

commit 387ea6f71e
Merge: a1ecf881 180cd811
Author: Video <videogamesm12@gmail.com>
Date:   Fri Oct 1 00:35:12 2021 -0600

    Merge branch 'development' into FS-215

commit d814853036
Merge: 47e63869 213a4338
Author: Ryan <Wild1145@users.noreply.github.com>
Date:   Sun Sep 12 13:49:05 2021 +0100

    Merge branch 'development' into FS-273

commit a1ecf88109
Merge: bd647afe 213a4338
Author: Ryan <Wild1145@users.noreply.github.com>
Date:   Sun Sep 12 13:48:59 2021 +0100

    Merge branch 'development' into FS-215

commit fdba119d5d
Merge: 61857dd0 213a4338
Author: Ryan <Wild1145@users.noreply.github.com>
Date:   Sun Sep 12 13:48:44 2021 +0100

    Merge branch 'development' into shitcan-savedflags

commit 61857dd06f
Merge: 2d18d461 0e12f5e7
Author: Video <videogamesm12@gmail.com>
Date:   Sun Sep 12 03:01:37 2021 -0600

    Merge branch 'development' into shitcan-savedflags

commit bd647afe92
Merge: 69f17ef2 0e12f5e7
Author: Video <videogamesm12@gmail.com>
Date:   Sun Sep 12 02:50:39 2021 -0600

    Merge branch 'development' into FS-215

commit 69f17ef2d7
Merge: ee1b27fa aebe1ace
Author: Video <videogamesm12@gmail.com>
Date:   Sun Sep 12 02:01:56 2021 -0600

    Merge branch 'development' into FS-215

commit ee1b27fa0d
Merge: 2bdf14f3 0a9b95bf
Author: Ryan <Wild1145@users.noreply.github.com>
Date:   Sat Sep 11 01:24:00 2021 +0100

    Merge branch 'development' into FS-215

commit 2d18d461fe
Merge: a4c81f20 0a9b95bf
Author: Ryan <Wild1145@users.noreply.github.com>
Date:   Sat Sep 11 01:23:44 2021 +0100

    Merge branch 'development' into shitcan-savedflags

commit 47e6386907
Merge: b1062fbb 0a9b95bf
Author: Ryan <Wild1145@users.noreply.github.com>
Date:   Sat Sep 11 01:23:13 2021 +0100

    Merge branch 'development' into FS-273

commit 2bdf14f38c
Merge: f6d46b61 44ff621d
Author: Video <videogamesm12@gmail.com>
Date:   Mon Sep 6 15:26:13 2021 -0600

    Merge branch 'development' into FS-215

commit b1062fbb6c
Merge: f69feed4 44ff621d
Author: Video <videogamesm12@gmail.com>
Date:   Mon Sep 6 14:39:32 2021 -0600

    Merge branch 'development' into FS-273

commit f69feed469
Author: Video <videogamesm12@gmail.com>
Date:   Mon Sep 6 01:14:21 2021 -0600

    fixed

commit 8253f94ac4
Merge: daf0126f 54cb0cfa
Author: Video <videogamesm12@gmail.com>
Date:   Mon Sep 6 01:12:00 2021 -0600

    Merge branch 'development' into FS-273

commit a4c81f202c
Merge: 0d09c3a5 23caa4e8
Author: Ryan <Wild1145@users.noreply.github.com>
Date:   Sat Sep 4 01:23:06 2021 +0100

    Merge branch 'development' into shitcan-savedflags

commit daf0126f45
Merge: a51f5c9b 23caa4e8
Author: Ryan <Wild1145@users.noreply.github.com>
Date:   Sat Sep 4 01:07:39 2021 +0100

    Merge branch 'development' into FS-273

commit f6d46b6178
Merge: ee804d52 23caa4e8
Author: Ryan <Wild1145@users.noreply.github.com>
Date:   Sat Sep 4 01:07:33 2021 +0100

    Merge branch 'development' into FS-215

commit a51f5c9bbf
Author: Video <videogamesm12@gmail.com>
Date:   Fri Sep 3 13:53:33 2021 -0600

    FS-273

commit ee804d52ff
Author: Video <videogamesm12@gmail.com>
Date:   Fri Sep 3 12:52:15 2021 -0600

    Makes [Discord] a hyperlink (FS-215)

    I've decided to overhaul the implementation of DiscordToMinecraftListener to make it more easily workable. This overhaul allows me to implement FS-215 more easily.

commit 0d09c3a550
Merge: e2ccd14e 4c3f188b
Author: Ryan <Wild1145@users.noreply.github.com>
Date:   Sun Aug 29 20:09:03 2021 +0100

    Merge branch 'development' into shitcan-savedflags

commit e2ccd14eb3
Author: Video <videogamesm12@gmail.com>
Date:   Fri Aug 27 16:54:55 2021 -0600

    Unsaves SavedFlags
2021-11-29 03:03:00 -07:00
1ecfb0b066 Merge branch 'development' into FS-7 2021-11-29 03:01:22 -07:00
706229004c Merge pull request #131 from AtlasMediaGroup/FS-273
Moves /rainbowtrail to the shop (FS-273)
2021-11-29 03:00:15 -07:00
a4adfa9bee Merge branch 'development' into FS-273 2021-11-29 02:46:41 -07:00
225ade8753 Merge branch 'development' into FS-7 2021-11-29 02:46:02 -07:00
bf2323bed2 Squashed commit of the following:
commit a42cb6aff9
Merge: 2ecfb886 01fdf766
Author: Video <videogamesm12@gmail.com>
Date:   Mon Nov 29 02:41:34 2021 -0700

    Merge pull request #125 from AtlasMediaGroup/shitcan-savedflags

    Shitcans SavedFlags

commit 01fdf766ee
Merge: 58c21bb1 2ecfb886
Author: Video <videogamesm12@gmail.com>
Date:   Tue Nov 23 09:28:48 2021 -0700

    Merge branch 'development' into shitcan-savedflags

commit 2ecfb88604
Merge: 42143c11 bb2ddf11
Author: Video <videogamesm12@gmail.com>
Date:   Tue Nov 23 09:15:16 2021 -0700

    Merge pull request #130 from AtlasMediaGroup/FS-215

    Makes [Discord] a hyperlink (FS-215)

commit bb2ddf1129
Merge: cf9fdc6f 42143c11
Author: Video <videogamesm12@gmail.com>
Date:   Tue Nov 23 03:31:19 2021 -0700

    Merge branch 'development' into FS-215

commit 58c21bb1aa
Merge: fdba119d 42143c11
Author: Video <videogamesm12@gmail.com>
Date:   Tue Nov 23 03:30:48 2021 -0700

    Merge branch 'development' into shitcan-savedflags

commit cf9fdc6fe4
Merge: 387ea6f7 a598c933
Author: Video <videogamesm12@gmail.com>
Date:   Fri Oct 8 01:43:33 2021 -0600

    Merge branch 'development' into FS-215

commit 387ea6f71e
Merge: a1ecf881 180cd811
Author: Video <videogamesm12@gmail.com>
Date:   Fri Oct 1 00:35:12 2021 -0600

    Merge branch 'development' into FS-215

commit a1ecf88109
Merge: bd647afe 213a4338
Author: Ryan <Wild1145@users.noreply.github.com>
Date:   Sun Sep 12 13:48:59 2021 +0100

    Merge branch 'development' into FS-215

commit fdba119d5d
Merge: 61857dd0 213a4338
Author: Ryan <Wild1145@users.noreply.github.com>
Date:   Sun Sep 12 13:48:44 2021 +0100

    Merge branch 'development' into shitcan-savedflags

commit 61857dd06f
Merge: 2d18d461 0e12f5e7
Author: Video <videogamesm12@gmail.com>
Date:   Sun Sep 12 03:01:37 2021 -0600

    Merge branch 'development' into shitcan-savedflags

commit bd647afe92
Merge: 69f17ef2 0e12f5e7
Author: Video <videogamesm12@gmail.com>
Date:   Sun Sep 12 02:50:39 2021 -0600

    Merge branch 'development' into FS-215

commit 69f17ef2d7
Merge: ee1b27fa aebe1ace
Author: Video <videogamesm12@gmail.com>
Date:   Sun Sep 12 02:01:56 2021 -0600

    Merge branch 'development' into FS-215

commit ee1b27fa0d
Merge: 2bdf14f3 0a9b95bf
Author: Ryan <Wild1145@users.noreply.github.com>
Date:   Sat Sep 11 01:24:00 2021 +0100

    Merge branch 'development' into FS-215

commit 2d18d461fe
Merge: a4c81f20 0a9b95bf
Author: Ryan <Wild1145@users.noreply.github.com>
Date:   Sat Sep 11 01:23:44 2021 +0100

    Merge branch 'development' into shitcan-savedflags

commit 2bdf14f38c
Merge: f6d46b61 44ff621d
Author: Video <videogamesm12@gmail.com>
Date:   Mon Sep 6 15:26:13 2021 -0600

    Merge branch 'development' into FS-215

commit a4c81f202c
Merge: 0d09c3a5 23caa4e8
Author: Ryan <Wild1145@users.noreply.github.com>
Date:   Sat Sep 4 01:23:06 2021 +0100

    Merge branch 'development' into shitcan-savedflags

commit f6d46b6178
Merge: ee804d52 23caa4e8
Author: Ryan <Wild1145@users.noreply.github.com>
Date:   Sat Sep 4 01:07:33 2021 +0100

    Merge branch 'development' into FS-215

commit ee804d52ff
Author: Video <videogamesm12@gmail.com>
Date:   Fri Sep 3 12:52:15 2021 -0600

    Makes [Discord] a hyperlink (FS-215)

    I've decided to overhaul the implementation of DiscordToMinecraftListener to make it more easily workable. This overhaul allows me to implement FS-215 more easily.

commit 0d09c3a550
Merge: e2ccd14e 4c3f188b
Author: Ryan <Wild1145@users.noreply.github.com>
Date:   Sun Aug 29 20:09:03 2021 +0100

    Merge branch 'development' into shitcan-savedflags

commit e2ccd14eb3
Author: Video <videogamesm12@gmail.com>
Date:   Fri Aug 27 16:54:55 2021 -0600

    Unsaves SavedFlags
2021-11-29 02:44:23 -07:00
8cbfde8bbc Merge branch 'development' into FS-37 2021-11-29 02:41:49 -07:00
a42cb6aff9 Merge pull request #125 from AtlasMediaGroup/shitcan-savedflags
Shitcans SavedFlags
2021-11-29 02:41:34 -07:00
5849947c6b This should fix it 2021-11-29 02:35:36 -07:00
01fdf766ee Merge branch 'development' into shitcan-savedflags 2021-11-23 09:28:48 -07:00
afe755f5c1 Merge branch 'development' into FS-7 2021-11-23 09:26:59 -07:00
5f97e68e0e fuck it, it works 2021-11-23 09:26:49 -07:00
1b5bbd1c05 Merge branch 'development' into FS-273 2021-11-23 09:16:21 -07:00
2ecfb88604 Merge pull request #130 from AtlasMediaGroup/FS-215
Makes [Discord] a hyperlink (FS-215)
2021-11-23 09:15:16 -07:00
8356e831a5 Redundancy fix and better protection system 2021-11-23 09:11:16 -07:00
ab00cb840f Merge branch 'development' into FS-273 2021-11-23 03:31:45 -07:00
bb2ddf1129 Merge branch 'development' into FS-215 2021-11-23 03:31:19 -07:00
bba5ec922b Merge branch 'development' into FS-37 2021-11-23 03:31:13 -07:00
58c21bb1aa Merge branch 'development' into shitcan-savedflags 2021-11-23 03:30:48 -07:00
f190bbeac1 FS-292 2021-11-23 00:27:57 -07:00
42143c1163 Merge pull request #168 from AtlasMediaGroup/main
merge down into development
2021-11-22 12:35:18 -07:00
6453e4efca Merge pull request #145 from AtlasMediaGroup/RELEASE-2021.09
Release 2021.09
2021-11-22 18:43:06 +00:00
9155ac90b5 Official Release 2021-11-22 12:29:54 -06:00
1e1367d08f Bump to RC03 2021-11-13 02:58:36 -07:00
3f690e2ca1 Merge pull request #167 from AtlasMediaGroup/whoops
Fixes an oopsie I made whilst sleep deprived
2021-11-13 02:48:51 -07:00
abfa3b977c Whoops
This commit fixes 2 things:
1. A redundant check that was completely unnecessary
2. A loophole in my original bugfix commit I didn't initially discover until afterwards which enables players to do the same thing except with right clicking instead

The block inspector should be completely rewritten in the future, but for now it works.
2021-11-13 02:35:30 -07:00
68adaed997 Merge branch 'development' into FS-37 2021-10-09 00:09:24 -06:00
ecce62f6b4 Merge branch 'development' into FS-273 2021-10-09 00:01:22 -06:00
cf9fdc6fe4 Merge branch 'development' into FS-215 2021-10-08 01:43:33 -06:00
a728ec24d4 Merge pull request #156 from AtlasMediaGroup/critical-inspect-bugfix
Critical Bugfix
2021-10-04 17:59:10 -05:00
74a71b1843 Important bugfix
It appears someone had an extremely big brain moment.
2021-10-04 16:02:39 -06:00
4d469cdc0a Move from Java 16 to Java 17 (#149)
* Move from Java 16 to Java 17

* Update java17-maven.yml
2021-10-03 15:57:47 +01:00
4c287ca9b8 Bump to RC02 2021-10-03 15:50:33 +01:00
912bc1a1e4 Merge pull request #154 from AtlasMediaGroup/development
Development
2021-10-03 07:02:37 -06:00
a598c933ec Merge pull request #151 from AtlasMediaGroup/FS-421
Two fixes (FS-421)
2021-10-03 06:52:45 -06:00
936f0b621e Stupid simple fix
Fixes an oopsie I made and an oopsie someone else made which broke the entire plugin.
2021-10-03 06:45:02 -06:00
387ea6f71e Merge branch 'development' into FS-215 2021-10-01 00:35:12 -06:00
e122c4c5fa Bump to 2021.09-RC01 Release 2021-09-19 17:32:05 +01:00
180cd81132 Bump junit-jupiter from 5.7.2 to 5.8.0 (#139)
Bumps [junit-jupiter](https://github.com/junit-team/junit5) from 5.7.2 to 5.8.0.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.7.2...r5.8.0)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-13 09:58:54 +01:00
d814853036 Merge branch 'development' into FS-273 2021-09-12 13:49:05 +01:00
a1ecf88109 Merge branch 'development' into FS-215 2021-09-12 13:48:59 +01:00
5a6a5ff75d Merge branch 'development' into FS-7 2021-09-12 13:48:50 +01:00
fdba119d5d Merge branch 'development' into shitcan-savedflags 2021-09-12 13:48:44 +01:00
087b8dd7ea Merge branch 'development' into FS-37 2021-09-12 13:48:21 +01:00
213a43380e Bump git-commit-id-plugin from 4.0.2 to 4.9.10 (#113)
Bumps git-commit-id-plugin from 4.0.2 to 4.9.10.

---
updated-dependencies:
- dependency-name: pl.project13.maven:git-commit-id-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-12 12:13:56 +01:00
8a31b4c5c0 Bump javassist from 3.27.0-GA to 3.28.0-GA (#110)
Bumps [javassist](https://github.com/jboss-javassist/javassist) from 3.27.0-GA to 3.28.0-GA.
- [Release notes](https://github.com/jboss-javassist/javassist/releases)
- [Commits](https://github.com/jboss-javassist/javassist/commits)

---
updated-dependencies:
- dependency-name: org.javassist:javassist
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-12 11:33:52 +01:00
3818aab454 Merge branch 'development' into FS-37 2021-09-12 03:04:08 -06:00
61857dd06f Merge branch 'development' into shitcan-savedflags 2021-09-12 03:01:37 -06:00
bd647afe92 Merge branch 'development' into FS-215 2021-09-12 02:50:39 -06:00
0e12f5e792 Bump commons-lang3 from 3.11 to 3.12.0 (#111)
Bumps commons-lang3 from 3.11 to 3.12.0.

---
updated-dependencies:
- dependency-name: org.apache.commons:commons-lang3
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-12 09:09:28 +01:00
69f17ef2d7 Merge branch 'development' into FS-215 2021-09-12 02:01:56 -06:00
aebe1acec2 Merge pull request #136 from AtlasMediaGroup/multiple-birds-one-stone
Multiple fixes, one commit
2021-09-12 01:57:32 -06:00
938b3aa630 Merge branch 'development' into multiple-birds-one-stone 2021-09-11 20:53:16 -06:00
6772333eb4 Bump junit-jupiter from 5.4.2 to 5.7.2 (#103)
Bumps [junit-jupiter](https://github.com/junit-team/junit5) from 5.4.2 to 5.7.2.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.4.2...r5.7.2)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-12 00:10:47 +01:00
0204961834 Bump commons-io from 2.8.0 to 2.11.0 (#117)
Bumps commons-io from 2.8.0 to 2.11.0.

---
updated-dependencies:
- dependency-name: commons-io:commons-io
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-11 23:53:41 +01:00
2f332a8c42 Bump annotations from 20.1.0 to 22.0.0 (#104)
Bumps [annotations](https://github.com/JetBrains/java-annotations) from 20.1.0 to 22.0.0.
- [Release notes](https://github.com/JetBrains/java-annotations/releases)
- [Changelog](https://github.com/JetBrains/java-annotations/blob/master/CHANGELOG.md)
- [Commits](https://github.com/JetBrains/java-annotations/compare/20.1.0...22.0.0)

---
updated-dependencies:
- dependency-name: org.jetbrains:annotations
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-11 18:48:33 +01:00
e288668c92 Bump maven-antrun-plugin from 1.8 to 3.0.0 (#102)
Bumps [maven-antrun-plugin](https://github.com/apache/maven-antrun-plugin) from 1.8 to 3.0.0.
- [Release notes](https://github.com/apache/maven-antrun-plugin/releases)
- [Commits](https://github.com/apache/maven-antrun-plugin/compare/maven-antrun-plugin-1.8...maven-antrun-plugin-3.0.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-antrun-plugin
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-11 18:42:31 +01:00
caeda219fa Merge branch 'development' into FS-37 2021-09-11 15:26:37 +01:00
e50101df43 Merge branch 'development' into multiple-birds-one-stone 2021-09-11 15:24:52 +01:00
ee1b27fa0d Merge branch 'development' into FS-215 2021-09-11 01:24:00 +01:00
6ca61d9c6c Merge branch 'development' into FS-7 2021-09-11 01:23:52 +01:00
2d18d461fe Merge branch 'development' into shitcan-savedflags 2021-09-11 01:23:44 +01:00
47e6386907 Merge branch 'development' into FS-273 2021-09-11 01:23:13 +01:00
0a9b95bfce Move to new ATLAS Nexus (#138)
* Move to new ATLAS Nexus

Turns out jFrog is super expensive and 10GB of Bandwidth doesn't go far, this should make things a lot better :)

* Update pom.xml

* Update pom.xml
2021-09-11 01:19:08 +01:00
fedf80b834 Merge branch 'development' into FS-7 2021-09-10 01:39:16 -06:00
2bdf14f38c Merge branch 'development' into FS-215 2021-09-06 15:26:13 -06:00
b1062fbb6c Merge branch 'development' into FS-273 2021-09-06 14:39:32 -06:00
f00f075551 Merge branch 'development' into multiple-birds-one-stone 2021-09-06 14:38:42 -06:00
44ff621d73 Bump bstats-bukkit from 1.8 to 2.2.1 (#99)
Bumps [bstats-bukkit](https://github.com/Bastian/bStats-Metrics) from 1.8 to 2.2.1.
- [Release notes](https://github.com/Bastian/bStats-Metrics/releases)
- [Commits](https://github.com/Bastian/bStats-Metrics/commits/v2.2.1)

---
updated-dependencies:
- dependency-name: org.bstats:bstats-bukkit
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ryan <Wild1145@users.noreply.github.com>

Resolves FS-419
2021-09-06 20:21:49 +01:00
032e54e2d4 Multiple birds, one commit
Here's a list of things I've fixed/mitigated:
- Range bans in ban-related commands (FS-209)
- Bug in /tempban where the duration in the broadcast is always wrong
- Over-complicated handling of /tempban durations (instead of trying to process them and silently fail, it'll flat out say that an invalid duration is well, invalid)
- Inconsistent "player not found" messages in banning commands
- (Mitigates) weird issue with case-sensitive usernames in banning commands when the server has restarted since a player last joined
- (Mitigates) banned IPs being inaccurate when a player was banned offline whilst containing multiple IPs in their playerdata
- Redoing how MovementValidator handled positive and negative infinity exploit items, completely removing the need for Mojangson in the first place and allowing the plugin to run without Essentials once more in the process (related to FS-406)

Here is what I've done in addition:
- Merged /tban and /noob into /tempban, which now bans for 5 minutes by default (FS-205)
2021-09-06 04:44:39 -06:00
3ca9835257 Merge branch 'development' into FS-37 2021-09-06 01:16:04 -06:00
f69feed469 fixed 2021-09-06 01:14:21 -06:00
8253f94ac4 Merge branch 'development' into FS-273 2021-09-06 01:12:00 -06:00
54cb0cfac4 FS-409 (#124)
Co-authored-by: Ryan <Wild1145@users.noreply.github.com>
2021-09-05 14:51:43 +01:00
a4c81f202c Merge branch 'development' into shitcan-savedflags 2021-09-04 01:23:06 +01:00
da82b27016 Merge branch 'development' into FS-37 2021-09-04 01:07:55 +01:00
daf0126f45 Merge branch 'development' into FS-273 2021-09-04 01:07:39 +01:00
f6d46b6178 Merge branch 'development' into FS-215 2021-09-04 01:07:33 +01:00
a2d11d4b93 Merge branch 'development' into FS-7 2021-09-04 01:07:28 +01:00
23caa4e853 Dependency Fix & Improvements (#132)
* Upgrade Test

Going to see if switching to the new repo that went live 3 days ago and updating TFM to pull the latest version of Essentials is going to help things here. TFM is building locally so I haven't a fucking scooby doo why Github can't run the build because I've even tried dropping the M2 folder...

* Let's try again

Utter bullshit so far.

* Apparently we don't even use essentials...

No idea where the imports for EssentialsBridge are coming from...

* Various tweaks

Hopefully this might give some more joy, but if not it's removed a command I didn't want anyway and reduced our dependency tree.

I have also switched it to using the ATLAS Artafactory which will serve as an ongoing cache for dependencies and should start to speed up our Github builds as Maven is rubbish with many repo's.
2021-09-04 01:07:04 +01:00
a51f5c9bbf FS-273 2021-09-03 13:53:33 -06:00
ee804d52ff Makes [Discord] a hyperlink (FS-215)
I've decided to overhaul the implementation of DiscordToMinecraftListener to make it more easily workable. This overhaul allows me to implement FS-215 more easily.
2021-09-03 12:52:15 -06:00
dc490659c1 Begins implementing FS-7
should be good enough, but feedback would be lovely
2021-09-03 00:07:20 -06:00
0d09c3a550 Merge branch 'development' into shitcan-savedflags 2021-08-29 20:09:03 +01:00
4c3f188bb8 Bump actions/setup-java from 2.2.0 to 2.3.0 (#122)
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 2.2.0 to 2.3.0.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/v2.2.0...v2.3.0)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ryan <Wild1145@users.noreply.github.com>
2021-08-29 20:08:43 +01:00
e2ccd14eb3 Unsaves SavedFlags 2021-08-27 16:54:55 -06:00
af1df22812 Merge branch 'development' into FS-37 2021-08-26 23:05:58 -06:00
f380898bb7 yo remove my name (#123)
Co-authored-by: Ryan <Wild1145@users.noreply.github.com>
2021-08-26 16:22:08 +01:00
464ed85f1b Update java16-maven.yml 2021-08-26 16:18:58 +01:00
7dd235b166 Update java11-maven.yml 2021-08-26 16:18:49 +01:00
1474a80875 Merge branch 'development' into FS-37 2021-08-26 13:26:44 +01:00
f45466ee24 Create java16-maven.yml 2021-08-26 13:01:20 +01:00
d70b7bbec2 Split out Java 11 and Java 16 for faster runs 2021-08-26 13:00:19 +01:00
541c66c3de Bump codacy/codacy-analysis-cli-action from 1.1.0 to 4.0.0 (#101)
Bumps [codacy/codacy-analysis-cli-action](https://github.com/codacy/codacy-analysis-cli-action) from 1.1.0 to 4.0.0.
- [Release notes](https://github.com/codacy/codacy-analysis-cli-action/releases)
- [Commits](https://github.com/codacy/codacy-analysis-cli-action/compare/1.1.0...4.0.0)

---
updated-dependencies:
- dependency-name: codacy/codacy-analysis-cli-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-21 21:50:45 +01:00
77fd4ff66a Merge branch 'development' into FS-37 2021-08-21 21:34:04 +01:00
d901cbaa81 Update pom.xml (#121)
* Update pom.xml

* Fix version from re-upload
2021-08-21 21:25:56 +01:00
538ed7020d Merge branch 'development' of https://github.com/AtlasMediaGroup/TotalFreedomMod into development 2021-08-21 15:36:32 +01:00
18e6ef16be Merge branch 'main' of https://github.com/AtlasMediaGroup/TotalFreedomMod into development 2021-08-21 15:36:26 +01:00
a335a2acf7 Bump maven-checkstyle-plugin from 3.1.1 to 3.1.2 (#114)
Bumps [maven-checkstyle-plugin](https://github.com/apache/maven-checkstyle-plugin) from 3.1.1 to 3.1.2.
- [Release notes](https://github.com/apache/maven-checkstyle-plugin/releases)
- [Commits](https://github.com/apache/maven-checkstyle-plugin/compare/maven-checkstyle-plugin-3.1.1...maven-checkstyle-plugin-3.1.2)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-checkstyle-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-21 15:21:18 +01:00
2eb6cc0036 Correct CoreProtect POM Version (#108)
Co-authored-by: Video <videogamesm12@gmail.com>
2021-08-18 23:45:56 +01:00
5322d8ab64 Fixing Github Actions (#107)
Hopefully this should now let us automatically down-sync from Main to Development
2021-08-18 23:45:34 +01:00
dccc315869 Bump actions/setup-java from 1.4.3 to 2.2.0 (#98)
* Bump actions/setup-java from 1.4.3 to 2.2.0

Bumps [actions/setup-java](https://github.com/actions/setup-java) from 1.4.3 to 2.2.0.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/v1.4.3...v2.2.0)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Fix the breaking change the 2.x branch of the action added

There is a breaking change which Dependabot hasn't picked up on which causes this to not play ball. This should resolve said issue.

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Wild1145 <Wild1145@users.noreply.github.com>
2021-08-17 20:50:03 +01:00
7657ae1928 Fix Dependabot to target the right branch and open all PR (#106) 2021-08-17 19:28:14 +01:00
dcaf1ec11a Release 2021.06 (#97)
* Update Command_ride.java

* ok, done (FS-156)

* Fixes FS-137

* grammar fix

* Remove a number of wipe commands we don't want anyway

We shouldn't be wiping any of this data within the server now anyway so let's not tempt fate again.

* Why overcomplicating things is a horrifically bad idea (#55)

The longer I look into this plugin's code, the angrier I will become.

This fixes 2 bugs in the /potion command:
- Fixes non-admins being able to clear other players
- Fixes NPE caused when trying to add potion effects to players who are not on the server as a non-admin.

Both of these issues are caused by overcomplicating seemingly simple solutions, hence the name of this commit.

Co-authored-by: Ryan <Wild1145@users.noreply.github.com>
Co-authored-by: Nathan Curran <30569566+Focusvity@users.noreply.github.com>

* Bug fixes, improvements, and removals (FS-192) (#46)

* Three fixes

* Fixes /tempban throwing a NullPointerException when trying to get a player who isn't on the server but was in the past
* Fixes /tempban banning players for 24 hours regardless of the duration defined
* Fixes /list -t throwing a NullPointerException when performed from a non-player source (such as Telnet)

* Removes hubworld entriely

* Configurable blacklists for tag, muted commands, and wildcard

Changes:
* Moves globally blocked commands to the `global` subsection of the original `blocked_commands` section. You *will* need to update your configurations
* /wildcard's command blacklist is now configurable under the `wildcard` section in `blocked_commands`.
* The commands muted players can't use are now configurable under the `muted` section in `blocked_commands`.
* Removes some commented-out globally blocked command entries.

Co-authored-by: Ryan <Wild1145@users.noreply.github.com>

* Switched from -c to -ci (#63)

Resolves FS-219

* Added new dependency to allow TFM to compile (#65)

* Name change for Fleek (#64)

* Add //g to blocked commands (#62)

Co-authored-by: Nathan Curran <30569566+Focusvity@users.noreply.github.com>

* Small modification to new TFGuilds (FS-255) (#67)

* Calculate the player count without offline players (FS-247) (#68)

Co-authored-by: Ryan <Wild1145@users.noreply.github.com>

* Use long instead of int and use offset to check time (FS-181) (#69)

* Use long instead of int and use offset to check time (FS-181)

* Remove star import

* Addresses FS-224 (#70)

* Continuation on that notes thing (#74)

I forgot to remove the dependency after I removed the code that used JSONMessage. This fixes that by removing both the repository and the dependency from the pom file.

* Updated permissions to re-baseline with the dev server (#75)

Updating this to be based off of the dev server as it seems this has not been updated in some time. Primary purpose is to add the crackshot bypass removal for everyone (Though allow admins to bypass) and to add a start of network manager perms in the hopes it makes it more usable going forward.

* Two fixes, one commit

To kill two birds with one stone, I've done two fixes in this commit.
- Fixes issue that caused quiet warns to behave improperly (e.g. the warnings wouldn't increment if quiet)
- Added WARN to the PunishmentType list.

* Update EntityWiper.java

* FS-27

* FS-26

* FS-25

* Code quality and consistency improvements

Here's all the changes I've made in this commit:
- Resolves FS-44 (AutoEject.java)
- Resolves FS-45 (BlockBlocker.java)
- Resolves FS-47 and FS-48 (InteractBlocker.java)
- Resolves FS-49 (Command_cage.java)
- Resolves FS-50 (Command_manageshop.java)
- Resolves FS-51 (Command_notes.java)
- Resolves FS-52 (Command_potion.java)
- Resolves FS-53 (Command_tag.java)
- Resolves FS-55 (ItemFun.java)
- Resolves FS-56 (Module_list.java)
- Resolves FS-57 (Module_players.java)
- Removes redundant code from InteractBlocker.java
- Misc. code consistency corrections (global)

* FS-54

* Shut up Codacy

* FS-201

* Simple fix

* Even more punishment log types

Here's what I've changed in this commit:
- Adds /blockcmd to the punishment log (FS-239)
- Adds /blockedit and /blockpvp to the punishment log (FS-240)
- Adds /cage to the punishment log (FS-241)
- Adds /orbit to the punishment log (FS-242)
- Changes the order of operations in some commands to be a bit more consistent

* Order of operations fix

* ez (#77)

* Start building Java 16 (#84)

* Start building Java 16

* Re-apply Fleek's change

* Removed the shitty Github auto formatted white space.

* Update to the maven build in Github workflows

Given TravisCI has started to charge, I guess this might be what we move back to using as our main way to verify if something can actually build.

* Update maven.yml

* Delete .travis.yml

* Adds /seed command (FS-225) (#85)

* Create Command_seed.java

* Addresses requested changes

* My IDE decided to try to "fix" things with *s in imports

Co-authored-by: Ryan <Wild1145@users.noreply.github.com>

* Use 'getPlayer()' to prevent NPE (FS-159) (#87)

Co-authored-by: Ryan <Wild1145@users.noreply.github.com>

* 2 bugfixes

- Fixes FS-309 by checking if a material provided is actually a block before caging someone.
- Fixes a bug that causes the command to throw an ArrayOutOfBoundsException if one were to use a command like `/cage player1 block`.

* Temporarily re-naming /clearchat to /cleanchat (#91)

* Temporarily re-naming /clearchat to /cleanchat

Due to another plugin which currently doesn't quite have all the permissions working, this command is not currently able to be executed as it stands.

* Shhh I know I'm an idiot

* Let's actually do dependency uplifts (#89)

* Bump release to 2021.06-RC01

* Bump to release version

We're good to go!

Co-authored-by: Video <videogamesm12@gmail.com>
Co-authored-by: Elmon11 <elmon11bussiness@gmail.com>
Co-authored-by: Nathan Curran <30569566+Focusvity@users.noreply.github.com>
Co-authored-by: Paldiu <pawereus@gmail.com>
2021-08-15 01:06:21 +01:00
33aca2a482 Merge branch 'development' into FS-37 2021-08-10 22:38:51 -06:00
0582c2e5be Merge pull request #94 from AtlasMediaGroup/FS-381
Enables Lava Damage by default (FS-381)
2021-08-10 22:38:24 -06:00
159eda73a1 Merge branch 'development' into FS-37 2021-08-10 17:34:12 +01:00
101987cc17 Merge branch 'development' into FS-381 2021-08-10 17:34:03 +01:00
6874b2ce13 Fixes /setlevel by completely removing it (FS-82) (#95)
To quote Ryan:
> If /exp works (and we've said it has) then the scope of this ticket will be to just go remove the TFM command...

This does exactly that.
2021-08-10 17:33:48 +01:00
3be0ffba4e Merge branch 'development' into FS-381 2021-08-10 17:31:26 +01:00
da2d25252b Merge branch 'development' into FS-37 2021-08-10 17:31:13 +01:00
c8a4382a7b Merge pull request #96 from AtlasMediaGroup/FS-218
Adds functionality for a one-time message to be sent to new players (FS-218)
2021-08-10 07:41:42 -06:00
3f89f3f48e Shut the fuck up Codacy 2021-08-10 06:58:04 -06:00
871acc2eeb Actually, let's make it possible to disable it if needed 2021-08-10 04:13:23 -06:00
a9c9979b1c FS-218 2021-08-10 04:06:41 -06:00
fc3fe871b3 FS-381 2021-08-05 00:43:01 -06:00
e99aaa2eb4 Fixes FS-37
Fixes an oversight introduced in 76bb2d08ac in which the configuration is loaded twice.
2021-08-05 00:32:23 -06:00
62529a6171 Merge branch 'main' of https://github.com/AtlasMediaGroup/TotalFreedomMod into development 2021-07-17 13:18:18 +01:00
39 changed files with 609 additions and 1012 deletions

View File

@ -9,11 +9,15 @@ updates:
# Maintain Maven Updates # Maintain Maven Updates
- package-ecosystem: "maven" # See documentation for possible values - package-ecosystem: "maven" # See documentation for possible values
directory: "/" # Location of package manifests directory: "/" # Location of package manifests
target-branch: "development"
open-pull-requests-limit: 50
schedule: schedule:
interval: "daily" interval: "daily"
# Maintain dependencies for GitHub Actions # Maintain dependencies for GitHub Actions
- package-ecosystem: "github-actions" - package-ecosystem: "github-actions"
directory: "/" directory: "/"
target-branch: "development"
open-pull-requests-limit: 50
schedule: schedule:
interval: "daily" interval: "daily"

View File

@ -25,7 +25,7 @@ jobs:
# Execute Codacy Analysis CLI and generate a SARIF output with the security issues identified during the analysis # Execute Codacy Analysis CLI and generate a SARIF output with the security issues identified during the analysis
- name: Run Codacy Analysis CLI - name: Run Codacy Analysis CLI
uses: codacy/codacy-analysis-cli-action@1.1.0 uses: codacy/codacy-analysis-cli-action@4.0.0
with: with:
# Check https://github.com/codacy/codacy-analysis-cli#project-token to get your project token from your Codacy repository # Check https://github.com/codacy/codacy-analysis-cli#project-token to get your project token from your Codacy repository
# You can also omit the token and run the tools that support default configurations # You can also omit the token and run the tools that support default configurations

View File

@ -38,10 +38,11 @@ jobs:
uses: actions/checkout@v2 uses: actions/checkout@v2
- name: Setup Java JDK - name: Setup Java JDK
uses: actions/setup-java@v1.4.3 uses: actions/setup-java@v2.3.0
with: with:
# The Java version to make available on the path. Takes a whole or semver Java version, or 1.x syntax (e.g. 1.8 => Java 8.x). Early access versions can be specified in the form of e.g. 14-ea, 14.0.0-ea, or 14.0.0-ea.28 # The Java version to make available on the path. Takes a whole or semver Java version, or 1.x syntax (e.g. 1.8 => Java 8.x). Early access versions can be specified in the form of e.g. 14-ea, 14.0.0-ea, or 14.0.0-ea.28
java-version: 11 java-version: 17
distribution: 'adopt'
# Initializes the CodeQL tools for scanning. # Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL - name: Initialize CodeQL

View File

@ -30,7 +30,7 @@ jobs:
with: with:
upstream_repository: AtlasMediaGroup/TotalFreedomMod upstream_repository: AtlasMediaGroup/TotalFreedomMod
upstream_branch: main upstream_branch: main
target_branch: main target_branch: development
git_pull_args: --ff-only # optional arg use, defaults to simple 'pull' git_pull_args: --ff-only # optional arg use, defaults to simple 'pull'
# Step 3: Display a message if 'sync' step had new commits (simple test) # Step 3: Display a message if 'sync' step had new commits (simple test)

21
.github/workflows/java17-maven.yml vendored Normal file
View File

@ -0,0 +1,21 @@
name: Java17-Maven-Build
on: [push]
jobs:
build-java-17:
runs-on: ubuntu-latest
steps:
# Checkout the code
- uses: actions/checkout@v1
# Java 16 Builds
- name: Set up JDK 17
uses: actions/setup-java@v2.3.0
with:
java-version: 17
distribution: 'adopt'
- name: Build with Maven
run: mvn -B package --file pom.xml

View File

@ -1,27 +0,0 @@
name: Maven-Build
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
# Java 11 Builds
- uses: actions/checkout@v1
- name: Set up JDK 11
uses: actions/setup-java@v1
with:
java-version: 11
- name: Build with Maven
run: mvn -B package --file pom.xml
# Java 16 Builds
- uses: actions/checkout@v1
- name: Set up JDK 16
uses: actions/setup-java@v1
with:
java-version: 16
- name: Build with Maven
run: mvn -B package --file pom.xml

View File

@ -11,20 +11,23 @@ These versions are currently actively supported by our team, and you should expe
| Version | Supported | Support End: | | Version | Supported | Support End: |
| ------------------- | ------------------ | ------------------------------ | | ------------------- | ------------------ | ------------------------------ |
| 2021.05 | :white_check_mark: | No Earlier than August 2021 | | 2021.09 | :white_check_mark: | No Earlier than December 2021 |
### Legacy Supported ### Legacy Supported
These versions are no longer under active development, however we will look to release critical secuirty patches where appropriate. These versions are no longer under active development, however we will look to release critical secuirty patches where appropriate.
| Version | Supported | Support End: | | Version | Supported | Support End: |
| ------------------- | ------------------ | ------------ | | ------------------- | ------------------ | ------------ |
| 2021.04 | :white_check_mark: | July 2021 | | 2021.06 | :white_check_mark: | October 2021 |
### No Longer Supported ### No Longer Supported
These versions are no longer supported at all. It is strongly advised to update if you are running any of these versions. These versions are no longer supported at all. It is strongly advised to update if you are running any of these versions.
| Version | Supported | Support Ended: | | Version | Supported | Support Ended: |
| ------------------- | ------------------ | ------------------- | | ------------------- | ------------------ | ------------------- |
| 2021.05 | :white_check_mark: | September 2021 |
| 2021.04 | :white_check_mark: | July 2021 |
| 2021.02 | :x: | 6 June 2021 | | 2021.02 | :x: | 6 June 2021 |
| 2020.11 | :x: | 3 May 2021 | | 2020.11 | :x: | 3 May 2021 |
| 6.0.x (Pre-Release) | :x: | December 2020 | | 6.0.x (Pre-Release) | :x: | December 2020 |

95
pom.xml
View File

@ -5,7 +5,7 @@
<groupId>me.totalfreedom</groupId> <groupId>me.totalfreedom</groupId>
<artifactId>TotalFreedomMod</artifactId> <artifactId>TotalFreedomMod</artifactId>
<version>2021.06</version> <version>2022.02-RC01</version>
<packaging>jar</packaging> <packaging>jar</packaging>
<properties> <properties>
@ -39,9 +39,10 @@
</scm> </scm>
<repositories> <repositories>
<repository> <repository>
<id>jitpack.io</id> <id>atlas-nexus-01-totalfreedom-development</id>
<url>https://jitpack.io</url> <url>https://nexus-01.core.atlas-media.co.uk/repository/totalfreedom-development/</url>
</repository> </repository>
<repository> <repository>
@ -101,14 +102,11 @@
</repository> </repository>
<repository> <repository>
<id>papermc</id> <id>esentialsx-repo</id>
<url>https://papermc.io/repo/repository/maven-public/</url> <url>https://repo.essentialsx.net/releases/</url>
</repository>
<repository>
<id>ess-repo</id>
<url>https://ci.ender.zone/plugin/repository/everything/</url>
</repository> </repository>
</repositories> </repositories>
<dependencies> <dependencies>
@ -116,14 +114,14 @@
<dependency> <dependency>
<groupId>commons-io</groupId> <groupId>commons-io</groupId>
<artifactId>commons-io</artifactId> <artifactId>commons-io</artifactId>
<version>2.8.0</version> <version>2.11.0</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.apache.commons</groupId> <groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId> <artifactId>commons-lang3</artifactId>
<version>3.11</version> <version>3.12.0</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
@ -134,24 +132,17 @@
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<dependency>
<groupId>com.github.speedxx</groupId>
<artifactId>Mojangson</artifactId>
<version>1957eef8d6</version>
<scope>compile</scope>
</dependency>
<dependency> <dependency>
<groupId>org.bstats</groupId> <groupId>org.bstats</groupId>
<artifactId>bstats-bukkit</artifactId> <artifactId>bstats-bukkit</artifactId>
<version>1.8</version> <version>2.2.1</version>
<scope>compile</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.spigotmc</groupId> <groupId>org.spigotmc</groupId>
<artifactId>spigot</artifactId> <artifactId>spigot</artifactId>
<version>1.16.5-R0.1-SNAPSHOT</version> <version>1.17.1-R0.1-SNAPSHOT</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
@ -172,14 +163,7 @@
<dependency> <dependency>
<groupId>com.sk89q.worldedit</groupId> <groupId>com.sk89q.worldedit</groupId>
<artifactId>worldedit-bukkit</artifactId> <artifactId>worldedit-bukkit</artifactId>
<version>7.3.0-SNAPSHOT</version> <version>7.2.8</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>net.ess3</groupId>
<artifactId>EssentialsX</artifactId>
<version>2.18.2</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
@ -193,14 +177,14 @@
<dependency> <dependency>
<groupId>net.coreprotect</groupId> <groupId>net.coreprotect</groupId>
<artifactId>coreprotect</artifactId> <artifactId>coreprotect</artifactId>
<version>19.3</version> <version>20.4</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.sk89q.worldguard</groupId> <groupId>com.sk89q.worldguard</groupId>
<artifactId>worldguard-bukkit</artifactId> <artifactId>worldguard-bukkit</artifactId>
<version>7.0.4</version> <version>7.0.6</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
@ -217,11 +201,11 @@
<version>v1.9</version> <version>v1.9</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>net.goldtreeservers</groupId> <groupId>net.essentialsx</groupId>
<artifactId>worldguardextraflags</artifactId> <artifactId>EssentialsX</artifactId>
<version>4.0.0</version> <version>2.19.0</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
@ -235,36 +219,38 @@
<dependency> <dependency>
<groupId>org.javassist</groupId> <groupId>org.javassist</groupId>
<artifactId>javassist</artifactId> <artifactId>javassist</artifactId>
<version>3.27.0-GA</version> <version>3.28.0-GA</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.github.AtlasMediaGroup</groupId> <groupId>me.totalfreedom</groupId>
<artifactId>TFGuilds</artifactId> <artifactId>tfguilds</artifactId>
<version>master-SNAPSHOT</version> <version>2021.06-RC2</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.jetbrains</groupId> <groupId>org.jetbrains</groupId>
<artifactId>annotations</artifactId> <artifactId>annotations</artifactId>
<version>20.1.0</version> <version>22.0.0</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId> <artifactId>maven-checkstyle-plugin</artifactId>
<version>3.1.1</version> <version>3.1.2</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.junit.jupiter</groupId> <groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId> <artifactId>junit-jupiter</artifactId>
<version>5.4.2</version> <version>5.8.0</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.eclipse.sisu</groupId> <groupId>org.eclipse.sisu</groupId>
<artifactId>org.eclipse.sisu.inject</artifactId> <artifactId>org.eclipse.sisu.inject</artifactId>
@ -272,6 +258,13 @@
</dependency> </dependency>
</dependencies> </dependencies>
<pluginRepositories>
<pluginRepository>
<id>apache.snapshots</id>
<url>https://repository.apache.org/snapshots/</url>
</pluginRepository>
</pluginRepositories>
<build> <build>
<!-- Filter resources for build.properties --> <!-- Filter resources for build.properties -->
<resources> <resources>
@ -289,9 +282,9 @@
<version>3.8.1</version> <version>3.8.1</version>
<configuration> <configuration>
<outputFileName>TotalFreedomMod.jar</outputFileName> <outputFileName>TotalFreedomMod.jar</outputFileName>
<compilerVersion>11</compilerVersion> <compilerVersion>17</compilerVersion>
<source>11</source> <source>17</source>
<target>11</target> <target>17</target>
</configuration> </configuration>
</plugin> </plugin>
@ -299,7 +292,7 @@
<plugin> <plugin>
<groupId>pl.project13.maven</groupId> <groupId>pl.project13.maven</groupId>
<artifactId>git-commit-id-plugin</artifactId> <artifactId>git-commit-id-plugin</artifactId>
<version>4.0.2</version> <version>4.9.10</version>
<executions> <executions>
<execution> <execution>
<id>get-the-git-infos</id> <id>get-the-git-infos</id>
@ -340,7 +333,7 @@
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId> <artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version> <version>3.0.0</version>
<executions> <executions>
<execution> <execution>
<id>default-cli</id> <id>default-cli</id>
@ -415,7 +408,7 @@
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId> <artifactId>maven-shade-plugin</artifactId>
<version>3.2.4</version> <version>3.3.1-SNAPSHOT</version>
<executions> <executions>
<execution> <execution>
<phase>package</phase> <phase>package</phase>
@ -443,8 +436,8 @@
<include>org.reflections:reflections</include> <include>org.reflections:reflections</include>
<include>org.javassist:javassist</include> <include>org.javassist:javassist</include>
<include>io.papermc:paperlib</include> <include>io.papermc:paperlib</include>
<include>com.github.speedxx:Mojangson</include>
<include>org.bstats:bstats-bukkit</include> <include>org.bstats:bstats-bukkit</include>
<include>org.bstats:bstats-base</include>
<include>org.jetbrains:annotations</include> <include>org.jetbrains:annotations</include>
</includes> </includes>
</artifactSet> </artifactSet>
@ -462,7 +455,7 @@
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId> <artifactId>maven-checkstyle-plugin</artifactId>
<version>3.1.1</version> <version>3.1.2</version>
<configuration> <configuration>
<configLocation>checkstyle.xml</configLocation> <configLocation>checkstyle.xml</configLocation>
<failOnViolation>true</failOnViolation> <failOnViolation>true</failOnViolation>

View File

@ -19,6 +19,7 @@ import org.bukkit.event.player.AsyncPlayerPreLoginEvent;
import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerLoginEvent; import org.bukkit.event.player.PlayerLoginEvent;
import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.scheduler.BukkitTask;
public class LoginProcess extends FreedomService public class LoginProcess extends FreedomService
{ {
@ -190,6 +191,22 @@ public class LoginProcess extends FreedomService
final FPlayer fPlayer = plugin.pl.getPlayer(player); final FPlayer fPlayer = plugin.pl.getPlayer(player);
final PlayerData playerData = plugin.pl.getData(player); final PlayerData playerData = plugin.pl.getData(player);
// Sends a message to the player if they have never joined before (or simply lack player data).
if (!event.getPlayer().hasPlayedBefore() && ConfigEntry.FIRST_JOIN_INFO_ENABLED.getBoolean())
{
new BukkitRunnable()
{
@Override
public void run()
{
for (String line : ConfigEntry.FIRST_JOIN_INFO.getStringList())
{
player.sendMessage(FUtil.colorize(line));
}
}
}.runTaskLater(plugin, 20);
}
player.sendTitle(FUtil.colorize(ConfigEntry.SERVER_LOGIN_TITLE.getString()), FUtil.colorize(ConfigEntry.SERVER_LOGIN_SUBTITLE.getString()), 20, 100, 60); player.sendTitle(FUtil.colorize(ConfigEntry.SERVER_LOGIN_TITLE.getString()), FUtil.colorize(ConfigEntry.SERVER_LOGIN_SUBTITLE.getString()), 20, 100, 60);
player.setOp(true); player.setOp(true);

View File

@ -1,17 +1,16 @@
package me.totalfreedom.totalfreedommod; package me.totalfreedom.totalfreedommod;
import ca.momothereal.mojangson.ex.MojangsonParseException; import com.google.common.collect.Multimap;
import ca.momothereal.mojangson.value.MojangsonCompound;
import ca.momothereal.mojangson.value.MojangsonValue;
import io.papermc.lib.PaperLib; import io.papermc.lib.PaperLib;
import java.util.List;
import java.util.Collection;
import java.util.Map;
import java.util.Objects; import java.util.Objects;
import net.minecraft.server.v1_16_R3.NBTTagCompound;
import net.minecraft.server.v1_16_R3.NBTTagList;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.craftbukkit.v1_16_R3.inventory.CraftItemStack; import org.bukkit.attribute.Attribute;
import org.bukkit.attribute.AttributeModifier;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
@ -20,6 +19,7 @@ import org.bukkit.event.player.PlayerLoginEvent;
import org.bukkit.event.player.PlayerMoveEvent; import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.event.player.PlayerTeleportEvent; import org.bukkit.event.player.PlayerTeleportEvent;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
public class MovementValidator extends FreedomService public class MovementValidator extends FreedomService
{ {
@ -133,55 +133,49 @@ public class MovementValidator extends FreedomService
private Boolean exploitItem(ItemStack item) private Boolean exploitItem(ItemStack item)
{ {
net.minecraft.server.v1_16_R3.ItemStack nmsStack = CraftItemStack.asNMSCopy(item); if (item == null)
NBTTagList modifiers = getAttributeList(nmsStack);
MojangsonCompound compound = new MojangsonCompound();
boolean foundNegative = false;
boolean foundPositive = false;
try
{ {
String mod = modifiers.toString(); return false;
String fancy = ("{" + (mod.substring(1, mod.length() - 1).replace("{", "").replace("}", "")) + "}"); }
compound.read(fancy);
for (String key : compound.keySet()) ItemMeta meta = item.getItemMeta();
if (meta != null)
{
Multimap<Attribute, AttributeModifier> attributes = meta.getAttributeModifiers();
if (attributes != null)
{ {
if (Objects.equals(key, "Amount")) //null-safe .equals() Map<Attribute, Collection<AttributeModifier>> attrMap = attributes.asMap();
// For every attribute...
for (Attribute attr : attributes.keySet())
{ {
@SuppressWarnings("rawtypes") // Default values
List<MojangsonValue> values = compound.get(key); boolean posInf = false;
for (MojangsonValue<?> val : values) boolean negInf = false;
// For every AttributeModifier...
for (AttributeModifier modifier : attrMap.get(attr))
{ {
if (val.getValue().toString().equals("Infinityd")) // Are they ∞ or -∞?
if (modifier.getAmount() == Double.POSITIVE_INFINITY)
{ {
foundPositive = true; posInf = true;
} }
if (val.getValue().toString().equals("-Infinityd")) else if (modifier.getAmount() == Double.NEGATIVE_INFINITY)
{ {
foundNegative = true; negInf = true;
} }
} }
// Are both values set as true?
if (posInf && negInf)
{
return true;
}
} }
} }
}
catch (MojangsonParseException e)
{
e.printStackTrace();
}
return foundNegative && foundPositive;
}
private NBTTagList getAttributeList(net.minecraft.server.v1_16_R3.ItemStack stack)
{
if (stack.getTag() == null)
{
stack.setTag(new NBTTagCompound());
} }
NBTTagList attr = stack.getTag().getList("AttributeModifiers", 10); return false;
if (attr == null)
{
stack.getTag().set("AttributeModifiers", new NBTTagList());
}
return stack.getTag().getList("AttributeModifiers", 10);
} }
} }

View File

@ -1,98 +0,0 @@
package me.totalfreedom.totalfreedommod;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.HashMap;
import java.util.Map;
import me.totalfreedom.totalfreedommod.util.FLog;
import static me.totalfreedom.totalfreedommod.util.FUtil.SAVED_FLAGS_FILENAME;
public class SavedFlags extends FreedomService
{
@Override
public void onStart()
{
}
@Override
public void onStop()
{
}
@SuppressWarnings("unchecked")
public Map<String, Boolean> getSavedFlags()
{
Map<String, Boolean> flags = null;
File input = new File(TotalFreedomMod.getPlugin().getDataFolder(), SAVED_FLAGS_FILENAME);
if (input.exists())
{
try
{
try (FileInputStream fis = new FileInputStream(input); ObjectInputStream ois = new ObjectInputStream(fis))
{
flags = (HashMap<String, Boolean>)ois.readObject();
}
}
catch (Exception ex)
{
FLog.severe(ex);
}
}
return flags;
}
public boolean getSavedFlag(String flag) throws Exception
{
Boolean flagValue = null;
Map<String, Boolean> flags = getSavedFlags();
if (flags != null)
{
if (flags.containsKey(flag))
{
flagValue = flags.get(flag);
}
}
if (flagValue != null)
{
return flagValue;
}
else
{
throw new Exception();
}
}
public void setSavedFlag(String flag, boolean value)
{
Map<String, Boolean> flags = getSavedFlags();
if (flags == null)
{
flags = new HashMap<>();
}
flags.put(flag, value);
try
{
final FileOutputStream fos = new FileOutputStream(new File(plugin.getDataFolder(), SAVED_FLAGS_FILENAME));
final ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(flags);
oos.close();
fos.close();
}
catch (Exception ex)
{
FLog.severe(ex);
}
}
}

View File

@ -4,14 +4,14 @@ import java.util.Arrays;
import java.util.List; import java.util.List;
import me.totalfreedom.totalfreedommod.util.FLog; import me.totalfreedom.totalfreedommod.util.FLog;
import me.totalfreedom.totalfreedommod.util.FUtil; import me.totalfreedom.totalfreedommod.util.FUtil;
import net.minecraft.server.v1_16_R3.EntityPlayer; import net.minecraft.server.level.EntityPlayer;
import net.minecraft.server.v1_16_R3.MinecraftServer; import net.minecraft.server.MinecraftServer;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_16_R3.CraftServer; import org.bukkit.craftbukkit.v1_17_R1.CraftServer;
public class ServerInterface extends FreedomService public class ServerInterface extends FreedomService
{ {
public static final String COMPILE_NMS_VERSION = "v1_16_R3"; public static final String COMPILE_NMS_VERSION = "v1_17_R1";
public static void warnVersion() public static void warnVersion()
{ {
@ -34,16 +34,11 @@ public class ServerInterface extends FreedomService
{ {
} }
public void setOnlineMode(boolean mode)
{
getServer().setOnlineMode(mode);
}
public int purgeWhitelist() public int purgeWhitelist()
{ {
String[] whitelisted = getServer().getPlayerList().getWhitelisted(); String[] whitelisted = getServer().getPlayerList().getWhitelisted();
int size = whitelisted.length; int size = whitelisted.length;
for (EntityPlayer player : getServer().getPlayerList().players) for (EntityPlayer player : getServer().getPlayerList().getPlayers())
{ {
getServer().getPlayerList().getWhitelist().remove(player.getProfile()); getServer().getPlayerList().getWhitelist().remove(player.getProfile());
} }

View File

@ -75,7 +75,6 @@ public class TotalFreedomMod extends JavaPlugin
public CommandLoader cl; public CommandLoader cl;
// Services // Services
public ServerInterface si; public ServerInterface si;
public SavedFlags sf;
public WorldManager wm; public WorldManager wm;
public LogViewer lv; public LogViewer lv;
public AdminList al; public AdminList al;
@ -187,7 +186,6 @@ public class TotalFreedomMod extends JavaPlugin
fsh = new FreedomServiceHandler(); fsh = new FreedomServiceHandler();
config = new MainConfig(); config = new MainConfig();
config.load();
if (FUtil.inDeveloperMode()) if (FUtil.inDeveloperMode())
{ {
@ -299,7 +297,6 @@ public class TotalFreedomMod extends JavaPlugin
{ {
// Start services // Start services
si = new ServerInterface(); si = new ServerInterface();
sf = new SavedFlags();
wm = new WorldManager(); wm = new WorldManager();
lv = new LogViewer(); lv = new LogViewer();
sql = new SQLite(); sql = new SQLite();

View File

@ -1,10 +1,10 @@
package me.totalfreedom.totalfreedommod.blocking; package me.totalfreedom.totalfreedommod.blocking;
import me.totalfreedom.totalfreedommod.FreedomService; import me.totalfreedom.totalfreedommod.FreedomService;
import net.minecraft.server.v1_16_R3.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.Tag; import org.bukkit.Tag;
import org.bukkit.craftbukkit.v1_16_R3.inventory.CraftItemStack; import org.bukkit.craftbukkit.v1_17_R1.inventory.CraftItemStack;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
@ -35,7 +35,7 @@ public class SignBlocker extends FreedomService
if (Tag.SIGNS.getValues().contains(event.getBlock().getType())) if (Tag.SIGNS.getValues().contains(event.getBlock().getType()))
{ {
ItemStack sign = event.getItemInHand(); ItemStack sign = event.getItemInHand();
net.minecraft.server.v1_16_R3.ItemStack nmsSign = CraftItemStack.asNMSCopy(sign); net.minecraft.world.item.ItemStack nmsSign = CraftItemStack.asNMSCopy(sign);
NBTTagCompound compound = (nmsSign.hasTag()) ? nmsSign.getTag() : new NBTTagCompound(); NBTTagCompound compound = (nmsSign.hasTag()) ? nmsSign.getTag() : new NBTTagCompound();
assert compound != null; assert compound != null;
NBTTagCompound bet = compound.getCompound("BlockEntityTag"); NBTTagCompound bet = compound.getCompound("BlockEntityTag");

View File

@ -192,7 +192,6 @@ public class CoreProtectBridge extends FreedomService
return (megabytes / 1024); return (megabytes / 1024);
} }
// Wipes DB for the specified world
public void clearDatabase(World world) public void clearDatabase(World world)
{ {
clearDatabase(world, false); clearDatabase(world, false);
@ -260,12 +259,6 @@ public class CoreProtectBridge extends FreedomService
{ {
FLog.warning("Failed to delete the CoreProtect data for the " + world.getName()); FLog.warning("Failed to delete the CoreProtect data for the " + world.getName());
} }
// This exits for flatlands wipes
if (shutdown)
{
server.shutdown();
}
} }
@EventHandler(priority = EventPriority.MONITOR) @EventHandler(priority = EventPriority.MONITOR)
@ -276,8 +269,25 @@ public class CoreProtectBridge extends FreedomService
Block block = event.getClickedBlock(); Block block = event.getClickedBlock();
final CoreProtectAPI coreProtect = getCoreProtectAPI(); final CoreProtectAPI coreProtect = getCoreProtectAPI();
// TODO: Rewrite this
if (data.hasInspection()) if (data.hasInspection())
{ {
int cooldownTime = 3;
// Cooldown check
if ((event.getAction() == Action.LEFT_CLICK_BLOCK || event.getAction() == Action.RIGHT_CLICK_BLOCK)
&& cooldown.containsKey(player.getName()))
{
long secondsLeft = getSecondsLeft(cooldown.get(player.getName()), cooldownTime);
if (secondsLeft > 0L)
{
event.setCancelled(true);
player.sendMessage(ChatColor.RED + String.valueOf(secondsLeft) + " seconds left before next query.");
return;
}
}
// Actual lookup time
if (event.getAction() == Action.LEFT_CLICK_BLOCK) if (event.getAction() == Action.LEFT_CLICK_BLOCK)
{ {
if (block != null) if (block != null)
@ -285,19 +295,6 @@ public class CoreProtectBridge extends FreedomService
event.setCancelled(true); event.setCancelled(true);
List<String[]> lookup = coreProtect.blockLookup(block, -1); List<String[]> lookup = coreProtect.blockLookup(block, -1);
int cooldownTime = 3;
if (cooldown.containsKey(player.getName()))
{
long secondsLeft = getSecondsLeft(cooldown.get(player.getName()), cooldownTime);
if (secondsLeft > 0L)
{
event.setCancelled(true);
player.sendMessage(ChatColor.RED + String.valueOf(secondsLeft) + " seconds left before next query.");
return;
}
}
if (!plugin.al.isAdmin(player)) if (!plugin.al.isAdmin(player))
{ {
cooldown.put(player.getName(), System.currentTimeMillis()); cooldown.put(player.getName(), System.currentTimeMillis());
@ -364,91 +361,75 @@ public class CoreProtectBridge extends FreedomService
{ {
if (block != null) if (block != null)
{ {
if (data.hasInspection()) BlockState blockState = block.getRelative(event.getBlockFace()).getState();
{ Block placedBlock = blockState.getBlock();
BlockState blockState = block.getRelative(event.getBlockFace()).getState(); event.setCancelled(true);
Block placedBlock = blockState.getBlock(); List<String[]> lookup = coreProtect.blockLookup(placedBlock, -1);
event.setCancelled(true);
List<String[]> lookup = coreProtect.blockLookup(placedBlock, -1);
if (lookup.isEmpty())
{
lookup = coreProtect.blockLookup(block, -1);
}
if (!plugin.al.isAdmin(player))
{
cooldown.put(player.getName(), System.currentTimeMillis());
}
if (lookup != null)
{
if (lookup.isEmpty()) if (lookup.isEmpty())
{ {
lookup = coreProtect.blockLookup(block, -1); player.sendMessage(net.md_5.bungee.api.ChatColor.of("#30ade4") + "Block Inspector " + ChatColor.WHITE + "- " + "No block data found for this location");
return;
} }
int cooldownTime = 3; HISTORY_MAP.remove(event.getPlayer());
HISTORY_MAP.put(event.getPlayer(), new FUtil.PaginationList<>(10));
FUtil.PaginationList<String> paged = HISTORY_MAP.get(event.getPlayer());
if (cooldown.containsKey(player.getName())) player.sendMessage("---- " + net.md_5.bungee.api.ChatColor.of("#30ade4") + "Block Inspector" + ChatColor.WHITE + " ---- " +
ChatColor.GRAY + "(x" + block.getX() + "/" + "y" + block.getY() + "/" + "z" + block.getZ() + ")");
for (String[] value : lookup)
{ {
long secondsLeft = getSecondsLeft(cooldown.get(player.getName()), cooldownTime); CoreProtectAPI.ParseResult result = coreProtect.parseResult(value);
if (secondsLeft > 0L) BlockData bl = result.getBlockData();
String s;
String st = "";
if (result.getActionString().equals("Placement"))
{ {
event.setCancelled(true); s = " placed ";
player.sendMessage(ChatColor.RED + String.valueOf(secondsLeft) + " seconds left before next query.");
return;
} }
else if (result.getActionString().equals("Removal"))
{
s = " broke ";
}
else
{
s = " interacted with ";
}
if (result.isRolledBack())
{
st += "§m";
}
int time = (int)(System.currentTimeMillis() / 1000L);
paged.add(ChatColor.GRAY + getTimeAgo(result.getTime(), time) + ChatColor.WHITE + " - " + net.md_5.bungee.api.ChatColor.of("#30ade4") +
st + result.getPlayer() + ChatColor.WHITE + st + s + net.md_5.bungee.api.ChatColor.of("#30ade4") + st + bl.getMaterial().toString().toLowerCase());
} }
if (!plugin.al.isAdmin(player)) List<String> page = paged.getPage(1);
for (String entries : page)
{ {
cooldown.put(player.getName(), System.currentTimeMillis()); player.sendMessage(entries);
} }
if (lookup != null) player.sendMessage("Page 1/" + paged.getPageCount() + " | To index through the pages, type " + net.md_5.bungee.api.ChatColor.of("#30ade4") + "/ins history <page>");
{
if (lookup.isEmpty())
{
player.sendMessage(net.md_5.bungee.api.ChatColor.of("#30ade4") + "Block Inspector " + ChatColor.WHITE + "- " + "No block data found for this location");
return;
}
HISTORY_MAP.remove(event.getPlayer());
HISTORY_MAP.put(event.getPlayer(), new FUtil.PaginationList<>(10));
FUtil.PaginationList<String> paged = HISTORY_MAP.get(event.getPlayer());
player.sendMessage("---- " + net.md_5.bungee.api.ChatColor.of("#30ade4") + "Block Inspector" + ChatColor.WHITE + " ---- " +
ChatColor.GRAY + "(x" + block.getX() + "/" + "y" + block.getY() + "/" + "z" + block.getZ() + ")");
for (String[] value : lookup)
{
CoreProtectAPI.ParseResult result = coreProtect.parseResult(value);
BlockData bl = result.getBlockData();
String s;
String st = "";
if (result.getActionString().equals("Placement"))
{
s = " placed ";
}
else if (result.getActionString().equals("Removal"))
{
s = " broke ";
}
else
{
s = " interacted with ";
}
if (result.isRolledBack())
{
st += "§m";
}
int time = (int)(System.currentTimeMillis() / 1000L);
paged.add(ChatColor.GRAY + getTimeAgo(result.getTime(), time) + ChatColor.WHITE + " - " + net.md_5.bungee.api.ChatColor.of("#30ade4") +
st + result.getPlayer() + ChatColor.WHITE + st + s + net.md_5.bungee.api.ChatColor.of("#30ade4") + st + bl.getMaterial().toString().toLowerCase());
}
List<String> page = paged.getPage(1);
for (String entries : page)
{
player.sendMessage(entries);
}
player.sendMessage("Page 1/" + paged.getPageCount() + " | To index through the pages, type " + net.md_5.bungee.api.ChatColor.of("#30ade4") + "/ins history <page>");
}
} }
} }
} }

View File

@ -1,13 +1,20 @@
package me.totalfreedom.totalfreedommod.bridge; package me.totalfreedom.totalfreedommod.bridge;
import com.sk89q.worldedit.bukkit.BukkitAdapter; import com.sk89q.worldedit.bukkit.BukkitAdapter;
import com.sk89q.worldedit.util.Location;
import com.sk89q.worldguard.LocalPlayer;
import com.sk89q.worldguard.WorldGuard; import com.sk89q.worldguard.WorldGuard;
import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
import com.sk89q.worldguard.protection.flags.Flags;
import com.sk89q.worldguard.protection.managers.RegionManager; import com.sk89q.worldguard.protection.managers.RegionManager;
import com.sk89q.worldguard.protection.regions.ProtectedRegion; import com.sk89q.worldguard.protection.regions.ProtectedRegion;
import com.sk89q.worldguard.protection.regions.RegionContainer; import com.sk89q.worldguard.protection.regions.RegionContainer;
import java.util.Map; import java.util.Map;
import com.sk89q.worldguard.protection.regions.RegionQuery;
import me.totalfreedom.totalfreedommod.FreedomService; import me.totalfreedom.totalfreedommod.FreedomService;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.entity.Player;
import org.bukkit.plugin.Plugin; import org.bukkit.plugin.Plugin;
public class WorldGuardBridge extends FreedomService public class WorldGuardBridge extends FreedomService
@ -23,6 +30,16 @@ public class WorldGuardBridge extends FreedomService
{ {
} }
public boolean canEditCurrentWorld(Player player)
{
LocalPlayer localPlayer = WorldGuardPlugin.inst().wrapPlayer(player);
RegionContainer container = WorldGuard.getInstance().getPlatform().getRegionContainer();
RegionQuery query = container.createQuery();
return query.testBuild(localPlayer.getLocation(), localPlayer);
}
public RegionManager getRegionManager(World world) public RegionManager getRegionManager(World world)
{ {
RegionContainer container = WorldGuard.getInstance().getPlatform().getRegionContainer(); RegionContainer container = WorldGuard.getInstance().getPlatform().getRegionContainer();

View File

@ -1,8 +1,8 @@
package me.totalfreedom.totalfreedommod.command; package me.totalfreedom.totalfreedommod.command;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects; import java.util.Objects;
import com.earth2me.essentials.User;
import me.totalfreedom.totalfreedommod.banning.Ban; import me.totalfreedom.totalfreedommod.banning.Ban;
import me.totalfreedom.totalfreedommod.player.PlayerData; import me.totalfreedom.totalfreedommod.player.PlayerData;
import me.totalfreedom.totalfreedommod.punishments.Punishment; import me.totalfreedom.totalfreedommod.punishments.Punishment;
@ -60,28 +60,39 @@ public class Command_ban extends FreedomCommand
} }
final String username; final String username;
final List<String> ips = new ArrayList<>(); final String ip;
final Player player = getPlayer(args[0]); final Player player = getPlayer(args[0]);
if (player == null) if (player == null)
{ {
final PlayerData entry = plugin.pl.getData(args[0]); // Gets the IP using Essentials data if available
if (plugin.esb.isEnabled() && plugin.esb.getEssentialsUser(args[0]) != null)
if (entry == null)
{ {
msg("Can't find that user. If target is not logged in, make sure that you spelled the name exactly."); User essUser = plugin.esb.getEssentialsUser(args[0]);
return true; //
username = essUser.getName();
ip = essUser.getLastLoginAddress();
}
// Last resort - Getting the first result from the username itself
else
{
PlayerData entry = plugin.pl.getData(args[0]);
if (entry == null)
{
msg(PLAYER_NOT_FOUND);
return true;
}
else
{
username = entry.getName();
ip = entry.getIps().get(0);
}
} }
username = entry.getName();
ips.addAll(entry.getIps());
} }
else else
{ {
final PlayerData entry = plugin.pl.getData(player);
username = player.getName(); username = player.getName();
//ips.addAll(entry.getIps());/ ip = FUtil.getIp(player);
ips.add(FUtil.getIp(player));
// Deop // Deop
player.setOp(false); player.setOp(false);
@ -126,7 +137,6 @@ public class Command_ban extends FreedomCommand
// Ban player // Ban player
Ban ban; Ban ban;
if (player != null) if (player != null)
{ {
ban = Ban.forPlayer(player, sender, null, reason); ban = Ban.forPlayer(player, sender, null, reason);
@ -135,12 +145,8 @@ public class Command_ban extends FreedomCommand
{ {
ban = Ban.forPlayerName(username, sender, null, reason); ban = Ban.forPlayerName(username, sender, null, reason);
} }
ban.addIp(ip);
for (String ip : ips)
{
ban.addIp(ip);
ban.addIp(FUtil.getFuzzyIp(ip));
}
plugin.bm.addBan(ban); plugin.bm.addBan(ban);
@ -154,7 +160,7 @@ public class Command_ban extends FreedomCommand
{ {
bcast.append(" - Reason: ").append(ChatColor.YELLOW).append(reason); bcast.append(" - Reason: ").append(ChatColor.YELLOW).append(reason);
} }
msg(sender, ChatColor.GRAY + username + " has been banned and IP is: " + StringUtils.join(ips, ", ")); msg(sender, ChatColor.GRAY + username + " has been banned and IP is: " + ip);
FUtil.adminAction(sender.getName(), bcast.toString(), true); FUtil.adminAction(sender.getName(), bcast.toString(), true);
} }
@ -172,7 +178,7 @@ public class Command_ban extends FreedomCommand
} }
// Log ban // Log ban
plugin.pul.logPunishment(new Punishment(username, ips.get(0), sender.getName(), PunishmentType.BAN, reason)); plugin.pul.logPunishment(new Punishment(username, ip, sender.getName(), PunishmentType.BAN, reason));
return true; return true;
} }

View File

@ -9,8 +9,11 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import java.util.ArrayList;
import java.util.List;
@CommandPermissions(level = Rank.OP, source = SourceType.BOTH) @CommandPermissions(level = Rank.OP, source = SourceType.BOTH)
@CommandParameters(description = "Shows the amount of coins you have or another player has", usage = "/<command> [playername]") @CommandParameters(description = "Shows the amount of coins you or another player has. Also allows you to give coins to other players.", usage = "/<command> [player] | pay <player> <amount>")
public class Command_coins extends FreedomCommand public class Command_coins extends FreedomCommand
{ {
@Override @Override
@ -21,34 +24,119 @@ public class Command_coins extends FreedomCommand
msg("The shop is currently disabled!", ChatColor.RED); msg("The shop is currently disabled!", ChatColor.RED);
return true; return true;
} }
Player p;
final String prefix = FUtil.colorize(ConfigEntry.SHOP_PREFIX.getString() + " "); final String prefix = FUtil.colorize(ConfigEntry.SHOP_PREFIX.getString() + " ");
if (args.length > 0)
switch (args.length)
{ {
if (getPlayer(args[0]) != null) // Mode for seeing how many coins the sender has (doesn't work from console)
case 0:
{ {
p = getPlayer(args[0]); if (senderIsConsole)
} {
else msg("When used from the console, you must define a target player.");
{ }
msg(PLAYER_NOT_FOUND); else
{
PlayerData playerData = getData(playerSender);
msg(prefix + ChatColor.GREEN + "You have " + ChatColor.RED + playerData.getCoins() + ChatColor.GREEN
+ " coins.");
}
return true; return true;
} }
}
else // Mode for seeing how many coins a player has.
{ case 1:
if (senderIsConsole)
{ {
msg(prefix + ChatColor.RED + "You are not a player, use /coins <playername>"); Player target = getPlayer(args[0]);
if (target == null)
{
msg(PLAYER_NOT_FOUND);
}
else
{
PlayerData playerData = getData(target);
msg(prefix + ChatColor.GREEN + target.getName() + " has " + ChatColor.RED + playerData.getCoins() + ChatColor.GREEN + " coins.");
}
return true; return true;
} }
else
// Mode for paying another player coins
case 3:
{ {
p = playerSender; if (args[0].equalsIgnoreCase("pay"))
{
checkPlayer();
final Player target = getPlayer(args[1]);
final PlayerData senderData = getData(playerSender);
int coinsToTransfer;
// Processes args[2]
try
{
// Prevents players from trying to be cheeky with negative numbers.
coinsToTransfer = Math.max(Math.abs(Integer.parseInt(args[2])), 1);
}
catch (NumberFormatException ex)
{
msg("Invalid number: " + args[2], ChatColor.RED);
return true;
}
// Prevents players from performing transactions they can't afford to do.
if (senderData.getCoins() < coinsToTransfer)
{
msg("You don't have enough coins to perform this transaction.", ChatColor.RED);
return true;
}
if (target == null)
{
msg(PLAYER_NOT_FOUND);
}
else
{
PlayerData playerData = getData(target);
playerData.setCoins(playerData.getCoins() + coinsToTransfer);
senderData.setCoins(senderData.getCoins() - coinsToTransfer);
msg(target, sender.getName()
+ ChatColor.GREEN + " has given you "
+ ChatColor.GOLD + coinsToTransfer
+ ChatColor.GREEN + " coin" + (coinsToTransfer > 1 ? "s" : "") + "!", ChatColor.GOLD);
msg("You have given "
+ ChatColor.GOLD + coinsToTransfer
+ ChatColor.GREEN + " coin" + (coinsToTransfer > 1 ? "s" : "")
+ " to " + ChatColor.GOLD + target.getName() + ChatColor.GREEN + ".", ChatColor.GREEN);
}
return true;
}
}
default:
{
return false;
} }
} }
PlayerData playerData = plugin.pl.getData(p); }
msg(prefix + ChatColor.GREEN + (args.length > 0 ? p.getName() + " has " : "You have ") + ChatColor.RED + playerData.getCoins() + ChatColor.GREEN + " coins.");
return true; @Override
public List<String> getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args)
{
if (args.length == 1)
{
List<String> options = new ArrayList<>(FUtil.getPlayerList());
options.add("pay");
return options;
}
return FUtil.getPlayerList();
} }
} }

View File

@ -1,6 +1,5 @@
package me.totalfreedom.totalfreedommod.command; package me.totalfreedom.totalfreedommod.command;
import java.util.Objects;
import me.totalfreedom.totalfreedommod.admin.Admin; import me.totalfreedom.totalfreedommod.admin.Admin;
import me.totalfreedom.totalfreedommod.banning.Ban; import me.totalfreedom.totalfreedommod.banning.Ban;
import me.totalfreedom.totalfreedommod.config.ConfigEntry; import me.totalfreedom.totalfreedommod.config.ConfigEntry;
@ -43,7 +42,7 @@ public class Command_doom extends FreedomCommand
FUtil.adminAction(sender.getName(), "Casting oblivion over " + player.getName(), true); FUtil.adminAction(sender.getName(), "Casting oblivion over " + player.getName(), true);
FUtil.bcastMsg(player.getName() + " will be completely obliviated!", ChatColor.RED); FUtil.bcastMsg(player.getName() + " will be completely obliviated!", ChatColor.RED);
final String ip = Objects.requireNonNull(player.getAddress()).getAddress().getHostAddress().trim(); final String ip = FUtil.getIp(player);
// Remove from admin // Remove from admin
Admin admin = getAdmin(player); Admin admin = getAdmin(player);
@ -76,10 +75,7 @@ public class Command_doom extends FreedomCommand
// Ban player // Ban player
Ban ban = Ban.forPlayer(player, sender); Ban ban = Ban.forPlayer(player, sender);
ban.setReason((reason == null ? "FUCKOFF" : reason)); ban.setReason((reason == null ? "FUCKOFF" : reason));
for (String playerIp : plugin.pl.getData(player).getIps()) ban.addIp(ip);
{
ban.addIp(playerIp);
}
plugin.bm.addBan(ban); plugin.bm.addBan(ban);
// Set gamemode to survival // Set gamemode to survival

View File

@ -1,40 +1,50 @@
package me.totalfreedom.totalfreedommod.command; package me.totalfreedom.totalfreedommod.command;
import java.util.ArrayList;
import java.util.List;
import me.totalfreedom.totalfreedommod.rank.Rank; import me.totalfreedom.totalfreedommod.rank.Rank;
import org.apache.commons.lang.StringUtils;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@CommandPermissions(level = Rank.OP, source = SourceType.ONLY_IN_GAME) @CommandPermissions(level = Rank.OP, source = SourceType.ONLY_IN_GAME)
@CommandParameters(description = "Eject players that are riding you.", usage = "/<command>") @CommandParameters(description = "Eject any entities that are riding you.", usage = "/<command>")
public class Command_eject extends FreedomCommand public class Command_eject extends FreedomCommand
{ {
/* Player.getShoulderEntityLeft() and Player.getShoulderEntityRight() are deprecated, however unless
Player.getPassengers() also includes shoulders (which isn't likely, given the official documentation doesn't
state an alternative method to use instead), these methods will continue to be used here. */
@SuppressWarnings("deprecation")
@Override @Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{ {
// Uses the size of the return value of Player.getPassengers() as the starting number of entities ejected
int count = playerSender.getPassengers().size();
List<String> names = new ArrayList<>(); // Removes any entities from the sender's shoulders
if (playerSender.getShoulderEntityLeft() != null)
for (Entity entity : playerSender.getPassengers())
{ {
names.add(entity.getName()); playerSender.setShoulderEntityLeft(null);
count++;
}
if (playerSender.getShoulderEntityRight() != null)
{
playerSender.setShoulderEntityLeft(null);
count++;
} }
if (names.isEmpty()) // Removes anything riding the sender
playerSender.eject();
if (count != 0)
{
msg(count + " entit" + (count == 1 ? "y was" : "ies were") + " ejected.", ChatColor.GREEN);
}
else
{ {
msg("Nothing was ejected.", ChatColor.GREEN); msg("Nothing was ejected.", ChatColor.GREEN);
return true;
} }
msg("Ejecting " + StringUtils.join(names, ", ") + ".", ChatColor.GREEN);
playerSender.eject();
return true; return true;
} }
} }

View File

@ -1,96 +0,0 @@
package me.totalfreedom.totalfreedommod.command;
import com.sk89q.worldedit.IncompleteRegionException;
import com.sk89q.worldedit.LocalSession;
import com.sk89q.worldedit.regions.Region;
import com.sk89q.worldguard.domains.DefaultDomain;
import com.sk89q.worldguard.protection.flags.Flag;
import com.sk89q.worldguard.protection.flags.Flags;
import com.sk89q.worldguard.protection.flags.RegionGroup;
import com.sk89q.worldguard.protection.flags.StateFlag;
import com.sk89q.worldguard.protection.managers.RegionManager;
import com.sk89q.worldguard.protection.regions.ProtectedCuboidRegion;
import com.sk89q.worldguard.protection.regions.ProtectedRegion;
import java.util.HashMap;
import java.util.Map;
import me.totalfreedom.totalfreedommod.rank.Rank;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = Rank.ADMIN, source = SourceType.ONLY_IN_GAME)
@CommandParameters(description = "Make a WorldGuard region for an OP.", usage = "/<command> <playername> <name>", aliases = "mor")
public class Command_makeopregion extends FreedomCommand
{
final Map<Flag<?>, Object> flags = new HashMap<Flag<?>, Object>()
{{
put(Flags.BLOCK_PLACE, StateFlag.State.ALLOW);
put(Flags.BLOCK_BREAK, StateFlag.State.ALLOW);
put(Flags.BUILD, StateFlag.State.ALLOW);
put(Flags.PLACE_VEHICLE, StateFlag.State.ALLOW);
put(Flags.DESTROY_VEHICLE, StateFlag.State.ALLOW);
put(Flags.ENTITY_ITEM_FRAME_DESTROY, StateFlag.State.ALLOW);
put(Flags.ENTITY_PAINTING_DESTROY, StateFlag.State.ALLOW);
put(net.goldtreeservers.worldguardextraflags.flags.Flags.WORLDEDIT, StateFlag.State.ALLOW);
}};
public boolean run(final CommandSender sender, final Player playerSender, final Command cmd, final String commandLabel, final String[] args, final boolean senderIsConsole)
{
if (args.length < 2)
{
return false;
}
final Player player = getPlayer(args[0]);
if (player == null)
{
msg(FreedomCommand.PLAYER_NOT_FOUND);
return true;
}
String name = args[1];
LocalSession session = plugin.web.getWorldEditPlugin().getSession(playerSender);
Region selection;
try
{
selection = session.getSelection(session.getSelectionWorld());
}
catch (IncompleteRegionException e)
{
msg("Please make a WorldEdit selection", ChatColor.RED);
return true;
}
if (selection == null)
{
msg("Please make a WorldEdit selection", ChatColor.RED);
return true;
}
ProtectedRegion region = new ProtectedCuboidRegion(name, selection.getMinimumPoint(), selection.getMaximumPoint());
DefaultDomain owners = new DefaultDomain();
owners.addPlayer(playerSender.getName());
owners.addPlayer(player.getName());
region.setOwners(owners);
region.setFlags(flags);
for (Flag<?> flag : flags.keySet())
{
region.setFlag(flag.getRegionGroupFlag(), RegionGroup.MEMBERS);
}
RegionManager regionManager = plugin.wgb.getRegionManager(playerSender.getWorld());
regionManager.addRegion(region);
msg("Successfully created the region '" + name + "' for " + player.getName(), ChatColor.GREEN);
return true;
}
}

View File

@ -5,13 +5,13 @@ import java.util.List;
import java.util.SplittableRandom; import java.util.SplittableRandom;
import me.totalfreedom.totalfreedommod.rank.Rank; import me.totalfreedom.totalfreedommod.rank.Rank;
import me.totalfreedom.totalfreedommod.util.FUtil; import me.totalfreedom.totalfreedommod.util.FUtil;
import net.minecraft.server.v1_16_R3.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.server.v1_16_R3.NBTTagList; import net.minecraft.nbt.NBTTagList;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.craftbukkit.v1_16_R3.inventory.CraftItemStack; import org.bukkit.craftbukkit.v1_17_R1.inventory.CraftItemStack;
import org.bukkit.enchantments.Enchantment; import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
@ -151,7 +151,7 @@ public class Command_modifyitem extends FreedomCommand
{ {
return false; return false;
} }
net.minecraft.server.v1_16_R3.ItemStack nmsStack = CraftItemStack.asNMSCopy(item); net.minecraft.world.item.ItemStack nmsStack = CraftItemStack.asNMSCopy(item);
NBTTagCompound compound = (nmsStack.hasTag()) ? nmsStack.getTag() : new NBTTagCompound(); NBTTagCompound compound = (nmsStack.hasTag()) ? nmsStack.getTag() : new NBTTagCompound();
NBTTagList modifiers = getAttributeList(nmsStack); NBTTagList modifiers = getAttributeList(nmsStack);
NBTTagCompound cmpnd = new NBTTagCompound(); NBTTagCompound cmpnd = new NBTTagCompound();
@ -202,7 +202,7 @@ public class Command_modifyitem extends FreedomCommand
return true; return true;
} }
private NBTTagList getAttributeList(net.minecraft.server.v1_16_R3.ItemStack stack) private NBTTagList getAttributeList(net.minecraft.world.item.ItemStack stack)
{ {
if (stack.getTag() == null) if (stack.getTag() == null)
{ {

View File

@ -130,17 +130,19 @@ public class Command_mute extends FreedomCommand
{ {
playerdata.setMuted(true); playerdata.setMuted(true);
player.sendTitle(ChatColor.RED + "You've been muted.", ChatColor.YELLOW + "Be sure to follow the rules!", 20, 100, 60); player.sendTitle(ChatColor.RED + "You've been muted.", ChatColor.YELLOW + "Be sure to follow the rules!", 20, 100, 60);
if (quiet)
{
msg("Muted " + player.getName() + " quietly");
return true; // doesn't announce reason
}
FUtil.adminAction(sender.getName(), "Muting " + player.getName(), true);
if (reason != null) if (reason != null)
{ {
msg(player, ChatColor.RED + "Reason: " + ChatColor.YELLOW + reason); msg(player, ChatColor.RED + "Reason: " + ChatColor.YELLOW + reason);
} }
if (quiet)
{
msg("Muted " + player.getName() + " quietly");
return true;
}
FUtil.adminAction(sender.getName(), "Muting " + player.getName(), true);
if (smite) if (smite)
{ {
@ -178,4 +180,4 @@ public class Command_mute extends FreedomCommand
return Collections.emptyList(); return Collections.emptyList();
} }
} }

View File

@ -24,6 +24,10 @@ public class Command_opall extends FreedomCommand
msg(player, YOU_ARE_OP); msg(player, YOU_ARE_OP);
plugin.rm.updateDisplay(player); plugin.rm.updateDisplay(player);
} }
else
{
player.recalculatePermissions();
}
} }
return true; return true;

View File

@ -1,41 +0,0 @@
package me.totalfreedom.totalfreedommod.command;
import me.totalfreedom.totalfreedommod.rank.Rank;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Entity;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
@CommandPermissions(level = Rank.OP, source = SourceType.ONLY_IN_GAME)
@CommandParameters(description = "Release parrots from your shoulders.", usage = "/<command>", aliases = "removeparrots")
public class Command_releaseparrots extends FreedomCommand
{
@SuppressWarnings("deprecation")
@Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
Entity leftShoulderEntity = playerSender.getShoulderEntityLeft();
Entity rightShoulderEntity = playerSender.getShoulderEntityRight();
if (rightShoulderEntity == null && leftShoulderEntity == null)
{
msg("No parrots were detected on either of your shoulders.");
return true;
}
if (leftShoulderEntity != null && leftShoulderEntity.getType().equals(EntityType.PARROT))
{
playerSender.setShoulderEntityLeft(null);
msg("Removed the parrot on your left shoulder.");
}
if (rightShoulderEntity != null && rightShoulderEntity.getType().equals(EntityType.PARROT))
{
playerSender.setShoulderEntityRight(null);
msg("Removed the parrot on your right shoulder.");
}
return true;
}
}

View File

@ -1,49 +0,0 @@
package me.totalfreedom.totalfreedommod.command;
import me.totalfreedom.totalfreedommod.rank.Rank;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = Rank.OP, source = SourceType.ONLY_IN_GAME)
@CommandParameters(description = "Sets your experience level (XP).", usage = "/<command> [level]")
public class Command_setlevel extends FreedomCommand
{
@Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (args.length != 1)
{
return false;
}
int new_level;
try
{
new_level = Integer.parseInt(args[0]);
if (new_level < 0)
{
new_level = 0;
}
else if (new_level > 50)
{
new_level = 50;
}
}
catch (NumberFormatException ex)
{
msg("Invalid level.", ChatColor.RED);
return true;
}
playerSender.setLevel(new_level);
msg("Your XP level is now set to " + ChatColor.GOLD + new_level);
return true;
}
}

View File

@ -1,6 +1,8 @@
package me.totalfreedom.totalfreedommod.command; package me.totalfreedom.totalfreedommod.command;
import java.util.List; import java.util.List;
import me.totalfreedom.totalfreedommod.config.ConfigEntry;
import me.totalfreedom.totalfreedommod.rank.Rank; import me.totalfreedom.totalfreedommod.rank.Rank;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang3.EnumUtils; import org.apache.commons.lang3.EnumUtils;
@ -55,6 +57,7 @@ public class Command_spawnmob extends FreedomCommand
return true; return true;
} }
int max = ConfigEntry.SPAWNMOB_MAX.getInteger();
int amount = 1; int amount = 1;
if (args.length > 1) if (args.length > 1)
{ {
@ -69,9 +72,9 @@ public class Command_spawnmob extends FreedomCommand
} }
} }
if (amount > 10 || amount < 1) if (amount > max || amount < 1)
{ {
msg("Invalid amount: " + args[1] + ". Must be 1-10.", ChatColor.RED); msg("Invalid amount: " + args[1] + ". Must be 1-" + max + ".", ChatColor.RED);
return true; return true;
} }

View File

@ -1,143 +0,0 @@
package me.totalfreedom.totalfreedommod.command;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import me.totalfreedom.totalfreedommod.banning.Ban;
import me.totalfreedom.totalfreedommod.player.PlayerData;
import me.totalfreedom.totalfreedommod.punishments.Punishment;
import me.totalfreedom.totalfreedommod.punishments.PunishmentType;
import me.totalfreedom.totalfreedommod.rank.Rank;
import me.totalfreedom.totalfreedommod.util.FUtil;
import org.apache.commons.lang.StringUtils;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = Rank.ADMIN, source = SourceType.BOTH, blockHostConsole = true)
@CommandParameters(description = "Temporarily bans a player for five minutes.", usage = "/<command> [-q] <username> [reason]", aliases = "noob")
public class Command_tban extends FreedomCommand
{
@Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (args.length == 0)
{
return false;
}
boolean quiet = args[0].equalsIgnoreCase("-q");
if (quiet)
{
args = org.apache.commons.lang3.ArrayUtils.subarray(args, 1, args.length);
if (args.length < 1)
{
return false;
}
}
final String username;
final Player player = getPlayer(args[0]);
final PlayerData entry;
if (player == null)
{
entry = plugin.pl.getData(args[0]);
if (entry == null)
{
msg("Can't find that user. If target is not logged in, make sure that you spelled the name exactly.");
return true;
}
username = entry.getName();
}
else
{
entry = plugin.pl.getData(player);
username = player.getName();
}
final List<String> ips = new ArrayList<>(entry.getIps());
String reason = null;
if (args.length > 1)
{
reason = StringUtils.join(args, " ", 1, args.length);
}
StringBuilder kick = new StringBuilder()
.append(ChatColor.RED)
.append("You have been temporarily banned for five minutes. Please read totalfreedom.me for more info.");
if (!quiet)
{
// Strike with lightning
if (player != null)
{
final Location targetPos = player.getLocation();
for (int x = -1; x <= 1; x++)
{
for (int z = -1; z <= 1; z++)
{
final Location strike_pos = new Location(targetPos.getWorld(), targetPos.getBlockX() + x, targetPos.getBlockY(), targetPos.getBlockZ() + z);
Objects.requireNonNull(targetPos.getWorld()).strikeLightning(strike_pos);
}
}
// Kill player
player.setHealth(0.0);
if (reason != null)
{
FUtil.adminAction(sender.getName(), "Tempbanning " + player.getName() + " for 5 minutes - Reason: " + reason, true);
kick.append("\n")
.append(ChatColor.RED)
.append("Reason: ")
.append(ChatColor.GOLD)
.append(reason);
}
else
{
FUtil.adminAction(sender.getName(), "Tempbanning " + player.getName() + " for 5 minutes", true);
}
}
}
else
{
if (player != null)
{
if (reason != null)
{
msg("Quietly temporarily banned " + player.getName() + " for 5 minutes.");
kick.append("\n")
.append(ChatColor.RED)
.append("Reason: ")
.append(ChatColor.GOLD)
.append(reason);
}
}
}
// Ban player
Ban ban = Ban.forPlayerName(username, sender, FUtil.parseDateOffset("5m"), reason);
for (String ip : ips)
{
ban.addIp(ip);
}
plugin.bm.addBan(ban);
// Kick player
if (player != null)
{
player.kickPlayer(kick.toString());
}
// Log ban
plugin.pul.logPunishment(new Punishment(username, ips.get(0), sender.getName(), PunishmentType.TEMPBAN, reason));
return true;
}
}

View File

@ -1,10 +1,10 @@
package me.totalfreedom.totalfreedommod.command; package me.totalfreedom.totalfreedommod.command;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List;
import java.util.Objects; import java.util.Objects;
import com.earth2me.essentials.User;
import me.totalfreedom.totalfreedommod.banning.Ban; import me.totalfreedom.totalfreedommod.banning.Ban;
import me.totalfreedom.totalfreedommod.player.PlayerData; import me.totalfreedom.totalfreedommod.player.PlayerData;
import me.totalfreedom.totalfreedommod.punishments.Punishment; import me.totalfreedom.totalfreedommod.punishments.Punishment;
@ -21,7 +21,7 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@CommandPermissions(level = Rank.ADMIN, source = SourceType.BOTH) @CommandPermissions(level = Rank.ADMIN, source = SourceType.BOTH)
@CommandParameters(description = "Temporarily ban someone.", usage = "/<command> [-q] <username> [duration] [reason]") @CommandParameters(description = "Temporarily ban someone.", usage = "/<command> [-q] <username> [duration] [reason]", aliases = "tban,noob")
public class Command_tempban extends FreedomCommand public class Command_tempban extends FreedomCommand
{ {
@ -47,49 +47,72 @@ public class Command_tempban extends FreedomCommand
} }
final String username; final String username;
final List<String> ips = new ArrayList<>(); final String ip;
final Player player = getPlayer(args[0]); final Player player = getPlayer(args[0]);
final PlayerData entry; PlayerData entry;
if (player == null) if (player == null)
{ {
entry = plugin.pl.getData(args[0]); // Gets the IP using Essentials data if available
if (plugin.esb.isEnabled() && plugin.esb.getEssentialsUser(args[0]) != null)
if (entry == null)
{ {
msg("Can't find that user. If target is not logged in, make sure that you spelled the name exactly."); User essUser = plugin.esb.getEssentialsUser(args[0]);
return true; //
username = essUser.getName();
ip = essUser.getLastLoginAddress();
}
// Last resort - Getting the first result from the username itself
else
{
entry = plugin.pl.getData(args[0]);
if (entry == null)
{
msg(PLAYER_NOT_FOUND);
return true;
}
else
{
username = entry.getName();
ip = entry.getIps().get(0);
}
} }
username = entry.getName();
ips.addAll(entry.getIps());
} }
else else
{ {
entry = plugin.pl.getData(player);
username = player.getName(); username = player.getName();
ips.add(FUtil.getIp(player)); ip = FUtil.getIp(player);
} }
final StringBuilder message = new StringBuilder("Temporarily banned " + username); final StringBuilder message = new StringBuilder("Temporarily banned " + username);
Date expires = FUtil.parseDateOffset("30m"); // Default expiration date is 5 minutes
Date expires = FUtil.parseDateOffset("5m");
// Parses what comes after as a duration
if (args.length > 1)
{
try
{
expires = FUtil.parseDateOffset(args[1]);
}
catch (NumberFormatException error)
{
msg("Invalid duration: " + args[1], ChatColor.RED);
return true;
}
}
message.append(" until ").append(date_format.format(expires)); message.append(" until ").append(date_format.format(expires));
// If a reason appears to exist, set it.
String reason = null; String reason = null;
if (args.length >= 2) if (args.length > 2)
{ {
Date parsed_offset = FUtil.parseDateOffset(args[1]); reason = StringUtils.join(ArrayUtils.subarray(args, 2, args.length), " ") + " (" + sender.getName() + ")";
reason = StringUtils.join(ArrayUtils.subarray(args, parsed_offset == null ? 1 : 2, args.length), " ") + " (" + sender.getName() + ")";
if (parsed_offset != null)
{
expires = parsed_offset;
}
message.append(", Reason: \"").append(reason).append("\""); message.append(", Reason: \"").append(reason).append("\"");
} }
Ban ban; Ban ban;
if (player != null) if (player != null)
{ {
ban = Ban.forPlayer(player, sender, expires, reason); ban = Ban.forPlayer(player, sender, expires, reason);
@ -98,11 +121,8 @@ public class Command_tempban extends FreedomCommand
{ {
ban = Ban.forPlayerName(username, sender, expires, reason); ban = Ban.forPlayerName(username, sender, expires, reason);
} }
ban.addIp(ip);
for (String ip : ips)
{
ban.addIp(ip);
}
plugin.bm.addBan(ban); plugin.bm.addBan(ban);
if (!quiet) if (!quiet)
@ -119,6 +139,8 @@ public class Command_tempban extends FreedomCommand
Objects.requireNonNull(targetPos.getWorld()).strikeLightningEffect(strike_pos); Objects.requireNonNull(targetPos.getWorld()).strikeLightningEffect(strike_pos);
} }
} }
player.kickPlayer(ban.bakeKickMessage());
} }
FUtil.adminAction(sender.getName(), message.toString(), true); FUtil.adminAction(sender.getName(), message.toString(), true);
@ -128,19 +150,15 @@ public class Command_tempban extends FreedomCommand
msg("Quietly temporarily banned " + username + "."); msg("Quietly temporarily banned " + username + ".");
} }
if (player != null) for (Player p : Bukkit.getOnlinePlayers())
{ {
player.kickPlayer(ban.bakeKickMessage()); if (FUtil.getIp(p).equals(ip))
for (Player p : Bukkit.getOnlinePlayers())
{ {
if (FUtil.getIp(p).equals(FUtil.getIp(player))) p.kickPlayer(ChatColor.RED + "You've been kicked because someone on your IP has been banned.");
{
p.kickPlayer(ChatColor.RED + "You've been kicked because someone on your IP has been banned.");
}
} }
} }
plugin.pul.logPunishment(new Punishment(username, ips.get(0), sender.getName(), PunishmentType.TEMPBAN, reason)); plugin.pul.logPunishment(new Punishment(username, ip, sender.getName(), PunishmentType.TEMPBAN, reason));
return true; return true;
} }
} }

View File

@ -1,11 +1,13 @@
package me.totalfreedom.totalfreedommod.command; package me.totalfreedom.totalfreedommod.command;
import me.totalfreedom.totalfreedommod.rank.Rank; import me.totalfreedom.totalfreedommod.rank.Rank;
import me.totalfreedom.totalfreedommod.shop.ShopItem;
import org.bukkit.ChatColor;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@CommandPermissions(level = Rank.ADMIN, source = SourceType.ONLY_IN_GAME) @CommandPermissions(level = Rank.OP, source = SourceType.ONLY_IN_GAME)
@CommandParameters(description = "Trails rainbow wool behind you as you walk/fly.", usage = "/<command>") @CommandParameters(description = "Trails rainbow wool behind you as you walk/fly.", usage = "/<command>")
public class Command_trail extends FreedomCommand public class Command_trail extends FreedomCommand
{ {
@ -13,6 +15,12 @@ public class Command_trail extends FreedomCommand
@Override @Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{ {
if (!plugin.pl.getData(playerSender).hasItem(ShopItem.RAINBOW_TRAIL))
{
msg("You didn't purchase the ability to have a " + ShopItem.RAINBOW_TRAIL.getName() + "! Purchase it from the shop.", ChatColor.RED);
return true;
}
if (plugin.tr.contains(playerSender)) if (plugin.tr.contains(playerSender))
{ {
plugin.tr.remove(playerSender); plugin.tr.remove(playerSender);
@ -21,7 +29,7 @@ public class Command_trail extends FreedomCommand
else else
{ {
plugin.tr.add(playerSender); plugin.tr.add(playerSender);
msg("Trail enabled. Use \"/trail off\" to disable."); msg("Trail enabled. Run this command again to disable it.");
} }
return true; return true;

View File

@ -1,12 +1,9 @@
package me.totalfreedom.totalfreedommod.command; package me.totalfreedom.totalfreedommod.command;
import java.util.ArrayList; import com.earth2me.essentials.User;
import java.util.List;
import me.totalfreedom.totalfreedommod.banning.Ban;
import me.totalfreedom.totalfreedommod.player.PlayerData; import me.totalfreedom.totalfreedommod.player.PlayerData;
import me.totalfreedom.totalfreedommod.rank.Rank; import me.totalfreedom.totalfreedommod.rank.Rank;
import me.totalfreedom.totalfreedommod.util.FUtil; import me.totalfreedom.totalfreedommod.util.FUtil;
import org.apache.commons.lang.StringUtils;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -22,20 +19,33 @@ public class Command_unban extends FreedomCommand
if (args.length > 0) if (args.length > 0)
{ {
String username; String username;
final PlayerData entry = plugin.pl.getData(args[0]); String ip;
if (entry == null) // Gets the IP using Essentials data if available
if (plugin.esb.isEnabled() && plugin.esb.getEssentialsUser(args[0]) != null)
{ {
msg("Can't find that user. If target is not logged in, make sure that you spelled the name exactly."); User essUser = plugin.esb.getEssentialsUser(args[0]);
return true; //
username = essUser.getName();
ip = essUser.getLastLoginAddress();
}
// Secondary method - using Essentials if available
else
{
final PlayerData entry = plugin.pl.getData(args[0]);
if (entry == null)
{
msg(PLAYER_NOT_FOUND);
return true;
}
username = entry.getName();
ip = entry.getIps().get(0);
} }
username = entry.getName();
final List<String> ips = new ArrayList<>(entry.getIps());
FUtil.adminAction(sender.getName(), "Unbanning " + username, true); FUtil.adminAction(sender.getName(), "Unbanning " + username, true);
msg(username + " has been unbanned along with the following IPs: " + StringUtils.join(ips, ", "));
plugin.bm.removeBan(plugin.bm.getByUsername(username)); plugin.bm.removeBan(plugin.bm.getByUsername(username));
plugin.bm.removeBan(plugin.bm.getByIp(ip));
msg(username + " has been unbanned along with the IP: " + ip);
if (args.length >= 2) if (args.length >= 2)
{ {
@ -45,20 +55,6 @@ public class Command_unban extends FreedomCommand
msg("Restored edits for: " + username); msg("Restored edits for: " + username);
} }
} }
for (String ip : ips)
{
Ban ban = plugin.bm.getByIp(ip);
if (ban != null)
{
plugin.bm.removeBan(ban);
}
ban = plugin.bm.getByIp(FUtil.getFuzzyIp(ip));
if (ban != null)
{
plugin.bm.removeBan(ban);
}
}
return true; return true;
} }
return false; return false;

View File

@ -45,6 +45,8 @@ public enum ConfigEntry
MOB_LIMITER_DISABLE_GIANT(Boolean.class, "moblimiter.disable.giant"), MOB_LIMITER_DISABLE_GIANT(Boolean.class, "moblimiter.disable.giant"),
MOB_LIMITER_DISABLE_SLIME(Boolean.class, "moblimiter.disable.slime"), MOB_LIMITER_DISABLE_SLIME(Boolean.class, "moblimiter.disable.slime"),
// //
SPAWNMOB_MAX(Integer.class, "spawnmob.max"),
//
HTTPD_ENABLED(Boolean.class, "httpd.enabled"), HTTPD_ENABLED(Boolean.class, "httpd.enabled"),
HTTPD_HOST(String.class, "httpd.host"), HTTPD_HOST(String.class, "httpd.host"),
HTTPD_PORT(Integer.class, "httpd.port"), HTTPD_PORT(Integer.class, "httpd.port"),
@ -86,6 +88,7 @@ public enum ConfigEntry
DISCORD_ASSISTANT_EXECUTIVE_ROLE_ID(String.class, "discord.assistant_executive_role_id"), DISCORD_ASSISTANT_EXECUTIVE_ROLE_ID(String.class, "discord.assistant_executive_role_id"),
DISCORD_EXECUTIVE_ROLE_ID(String.class, "discord.executive_role_id"), DISCORD_EXECUTIVE_ROLE_ID(String.class, "discord.executive_role_id"),
DISCORD_SERVER_OWNER_ROLE_ID(String.class, "discord.server_owner_role_id"), DISCORD_SERVER_OWNER_ROLE_ID(String.class, "discord.server_owner_role_id"),
DISCORD_INVITE_LINK(String.class, "discord.invite_link"),
// //
PTERO_URL(String.class, "ptero.url"), PTERO_URL(String.class, "ptero.url"),
PTERO_DEFAULT_EMAIL_DOMAIN(String.class, "ptero.default_email_domain"), PTERO_DEFAULT_EMAIL_DOMAIN(String.class, "ptero.default_email_domain"),
@ -110,6 +113,7 @@ public enum ConfigEntry
SHOP_PRICES_STACKING_POTATO(Integer.class, "shop.prices.stacking_potato"), SHOP_PRICES_STACKING_POTATO(Integer.class, "shop.prices.stacking_potato"),
SHOP_PRICES_CLOWN_FISH(Integer.class, "shop.prices.clown_fish"), SHOP_PRICES_CLOWN_FISH(Integer.class, "shop.prices.clown_fish"),
SHOP_PRICES_LOGIN_MESSAGES(Integer.class, "shop.prices.login_messages"), SHOP_PRICES_LOGIN_MESSAGES(Integer.class, "shop.prices.login_messages"),
SHOP_PRICES_RAINBOW_TRAIL(Integer.class, "shop.prices.rainbow_trail"),
// //
ADMINLIST_CLEAN_THESHOLD_HOURS(Integer.class, "adminlist.clean_threshold_hours"), ADMINLIST_CLEAN_THESHOLD_HOURS(Integer.class, "adminlist.clean_threshold_hours"),
ADMINLIST_CONSOLE_IS_ADMIN(Boolean.class, "adminlist.console_is_admin"), ADMINLIST_CONSOLE_IS_ADMIN(Boolean.class, "adminlist.console_is_admin"),
@ -165,6 +169,8 @@ public enum ConfigEntry
ADMIN_INFO(List.class, "admininfo"), ADMIN_INFO(List.class, "admininfo"),
VOTING_INFO(List.class, "votinginfo"), VOTING_INFO(List.class, "votinginfo"),
MASTER_BUILDER_INFO(List.class, "masterbuilderinfo"), MASTER_BUILDER_INFO(List.class, "masterbuilderinfo"),
FIRST_JOIN_INFO(List.class, "first_join_info.text"),
FIRST_JOIN_INFO_ENABLED(Boolean.class, "first_join_info.enabled"),
AUTO_ENTITY_WIPE(Boolean.class, "auto_wipe"), AUTO_ENTITY_WIPE(Boolean.class, "auto_wipe"),
TOGGLE_CHAT(Boolean.class, "toggle_chat"), TOGGLE_CHAT(Boolean.class, "toggle_chat"),
DEVELOPER_MODE(Boolean.class, "developer_mode"), DEVELOPER_MODE(Boolean.class, "developer_mode"),

View File

@ -10,9 +10,12 @@ import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.Message;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter; import net.dv8tion.jda.api.hooks.ListenerAdapter;
import net.md_5.bungee.api.chat.BaseComponent;
import net.md_5.bungee.api.chat.ClickEvent; import net.md_5.bungee.api.chat.ClickEvent;
import net.md_5.bungee.api.chat.ComponentBuilder; import net.md_5.bungee.api.chat.ComponentBuilder;
import net.md_5.bungee.api.chat.HoverEvent;
import net.md_5.bungee.api.chat.TextComponent; import net.md_5.bungee.api.chat.TextComponent;
import net.md_5.bungee.api.chat.hover.content.Text;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -28,39 +31,66 @@ public class DiscordToMinecraftListener extends ListenerAdapter
{ {
Member member = event.getMember(); Member member = event.getMember();
String tag = getDisplay(member); String tag = getDisplay(member);
StringBuilder message = new StringBuilder(ChatColor.DARK_GRAY + "[" + ChatColor.DARK_AQUA + "Discord" + ChatColor.DARK_GRAY + "]");
Message msg = event.getMessage(); Message msg = event.getMessage();
ComponentBuilder emsg = new ComponentBuilder();
// Prefix
emsg.append(ChatColor.DARK_GRAY + "[");
TextComponent inviteLink = new TextComponent("Discord");
inviteLink.setColor(ChatColor.DARK_AQUA.asBungee());
inviteLink.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT,
new Text("Click here to get the invite link!")));
inviteLink.setClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL,
ConfigEntry.DISCORD_INVITE_LINK.getString()));
emsg.append(inviteLink);
emsg.append(ChatColor.DARK_GRAY + "] ", ComponentBuilder.FormatRetention.NONE);
// Tag (if they have one)
if (tag != null) if (tag != null)
{ {
message.append(" ").append(tag); emsg.append(tag);
}
message.append(" ").append(ChatColor.RED).append(ChatColor.stripColor(member.getEffectiveName())).append(ChatColor.DARK_GRAY).append(":").append(ChatColor.RESET);
ComponentBuilder builder = new ComponentBuilder(message.toString());
if (!msg.getContentDisplay().isEmpty())
{
builder.append(" ").append(ChatColor.stripColor(msg.getContentDisplay()));
message.append(" ").append(ChatColor.stripColor(msg.getContentDisplay())); // for logging
} }
emsg.append(" ");
// User
TextComponent user = new TextComponent(ChatColor.stripColor(member.getEffectiveName()));
user.setColor(ChatColor.RED.asBungee());
emsg.append(user);
// Message
emsg.append(ChatColor.DARK_GRAY + ": " + ChatColor.RESET
+ ChatColor.stripColor(msg.getContentDisplay()), ComponentBuilder.FormatRetention.NONE);
// Attachments
if (!msg.getAttachments().isEmpty()) if (!msg.getAttachments().isEmpty())
{ {
if (!msg.getContentDisplay().isEmpty())
emsg.append(" ");
for (Message.Attachment attachment : msg.getAttachments()) for (Message.Attachment attachment : msg.getAttachments())
{ {
attachment.getUrl(); TextComponent media = new TextComponent("[Media] ");
builder.append(" "); media.setColor(ChatColor.YELLOW.asBungee());
TextComponent text = new TextComponent(ChatColor.YELLOW + "[Media]"); media.setClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, attachment.getUrl()));
text.setClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, attachment.getUrl())); media.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new Text(attachment.getUrl())));
builder.append(text);
message.append(" [Media]"); // for logging emsg.append(media, ComponentBuilder.FormatRetention.NONE);
} }
} }
BaseComponent[] components = emsg.create();
for (Player player : Bukkit.getOnlinePlayers()) for (Player player : Bukkit.getOnlinePlayers())
{ {
if (TotalFreedomMod.getPlugin().pl.getData(player).doesDisplayDiscord()) if (TotalFreedomMod.getPlugin().pl.getData(player).doesDisplayDiscord())
{ {
player.spigot().sendMessage(builder.create()); player.spigot().sendMessage(components);
} }
} }
FLog.info(message.toString());
FLog.info(TextComponent.toLegacyText(components), true);
} }
} }
} }

View File

@ -4,7 +4,10 @@ import java.util.HashSet;
import java.util.Objects; import java.util.Objects;
import java.util.Set; import java.util.Set;
import java.util.SplittableRandom; import java.util.SplittableRandom;
import java.util.UUID;
import me.totalfreedom.totalfreedommod.FreedomService; import me.totalfreedom.totalfreedommod.FreedomService;
import me.totalfreedom.totalfreedommod.shop.ShopItem;
import me.totalfreedom.totalfreedommod.util.Groups; import me.totalfreedom.totalfreedommod.util.Groups;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.Material; import org.bukkit.Material;
@ -18,7 +21,7 @@ import org.bukkit.event.player.PlayerMoveEvent;
public class Trailer extends FreedomService public class Trailer extends FreedomService
{ {
private final SplittableRandom random = new SplittableRandom(); private final SplittableRandom random = new SplittableRandom();
private final Set<String> trailPlayers = new HashSet<>(); // player name private final Set<UUID> trailPlayers = new HashSet<>(); // player UUID
@Override @Override
public void onStart() public void onStart()
@ -33,17 +36,17 @@ public class Trailer extends FreedomService
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onPlayerMove(PlayerMoveEvent event) public void onPlayerMove(PlayerMoveEvent event)
{ {
if (trailPlayers.isEmpty()) /* Doesn't continue any further if...
{ * - The trail list is empty
return; * - The player doesn't have their trail enabled in the first place
} * - The player doesn't have the trail item in the shop at all
* - The player doesn't have permission to modify blocks in their current world
if (!trailPlayers.contains(event.getPlayer().getName())) */
{ if (trailPlayers.isEmpty()
return; || !trailPlayers.contains(event.getPlayer().getUniqueId())
} || !plugin.pl.getData(event.getPlayer()).hasItem(ShopItem.RAINBOW_TRAIL)
|| plugin.wr.doRestrict(event.getPlayer())
if (event.getPlayer().getWorld().equals(plugin.wm.masterBuilderWorld.getWorld())) || !plugin.wgb.canEditCurrentWorld(event.getPlayer()))
{ {
return; return;
} }
@ -69,7 +72,7 @@ public class Trailer extends FreedomService
{ {
final Location trail_pos; final Location trail_pos;
trail_pos = new Location(event.getPlayer().getWorld(), fromBlock.getX() + x, fromBlock.getY(), fromBlock.getZ() + z); trail_pos = new Location(event.getPlayer().getWorld(), fromBlock.getX() + x, fromBlock.getY(), fromBlock.getZ() + z);
if (trailPlayers.contains(event.getPlayer().getName()) && plugin.cpb.isEnabled()) if (trailPlayers.contains(event.getPlayer().getUniqueId()) && plugin.cpb.isEnabled())
{ {
plugin.cpb.getCoreProtectAPI().logPlacement(event.getPlayer().getName(), trail_pos, material, data); plugin.cpb.getCoreProtectAPI().logPlacement(event.getPlayer().getName(), trail_pos, material, data);
} }
@ -79,16 +82,16 @@ public class Trailer extends FreedomService
public void remove(Player player) public void remove(Player player)
{ {
trailPlayers.remove(player.getName()); trailPlayers.remove(player.getUniqueId());
} }
public void add(Player player) public void add(Player player)
{ {
trailPlayers.add(player.getName()); trailPlayers.add(player.getUniqueId());
} }
public boolean contains(Player player) public boolean contains(Player player)
{ {
return trailPlayers.contains(player.getName()); return trailPlayers.contains(player.getUniqueId());
} }
} }

View File

@ -10,19 +10,29 @@ public enum ShopItem
LIGHTNING_ROD("Lightning Rod", Material.BLAZE_ROD, 12, ConfigEntry.SHOP_PRICES_LIGHTNING_ROD, ChatColor.LIGHT_PURPLE, "lightningRod", "/lightningrod"), LIGHTNING_ROD("Lightning Rod", Material.BLAZE_ROD, 12, ConfigEntry.SHOP_PRICES_LIGHTNING_ROD, ChatColor.LIGHT_PURPLE, "lightningRod", "/lightningrod"),
FIRE_BALL("Fire Ball", Material.FIRE_CHARGE, 14, ConfigEntry.SHOP_PRICES_FIRE_BALL, ChatColor.RED, "fireBall", "/fireball"), FIRE_BALL("Fire Ball", Material.FIRE_CHARGE, 14, ConfigEntry.SHOP_PRICES_FIRE_BALL, ChatColor.RED, "fireBall", "/fireball"),
RIDEABLE_PEARL("Rideable Ender Pearl", Material.ENDER_PEARL, 16, ConfigEntry.SHOP_PRICES_RIDEABLE_PEARL, ChatColor.DARK_PURPLE, "rideablePearl", "/rideablepearl"), RIDEABLE_PEARL("Rideable Ender Pearl", Material.ENDER_PEARL, 16, ConfigEntry.SHOP_PRICES_RIDEABLE_PEARL, ChatColor.DARK_PURPLE, "rideablePearl", "/rideablepearl"),
STACKING_POTATO("Stacking Potato", Material.POTATO, 20, ConfigEntry.SHOP_PRICES_STACKING_POTATO, ChatColor.YELLOW, "stackingPotato", "/stackingpotato"), STACKING_POTATO("Stacking Potato", Material.POTATO, 19, ConfigEntry.SHOP_PRICES_STACKING_POTATO, ChatColor.YELLOW, "stackingPotato", "/stackingpotato"),
CLOWN_FISH("Clown Fish", Material.TROPICAL_FISH, 22, ConfigEntry.SHOP_PRICES_CLOWN_FISH, ChatColor.GOLD, "clownFish", "/clownfish"), CLOWN_FISH("Clown Fish", Material.TROPICAL_FISH, 21, ConfigEntry.SHOP_PRICES_CLOWN_FISH, ChatColor.GOLD, "clownFish", "/clownfish"),
LOGIN_MESSAGES("Login Messages", Material.NAME_TAG, 24, ConfigEntry.SHOP_PRICES_LOGIN_MESSAGES, ChatColor.DARK_GREEN, "loginMessages", "/loginmessage"); LOGIN_MESSAGES("Login Messages", Material.NAME_TAG, 23, ConfigEntry.SHOP_PRICES_LOGIN_MESSAGES, ChatColor.DARK_GREEN, "loginMessages", "/loginmessage"),
RAINBOW_TRAIL("Rainbow Trail", Material.RED_WOOL, 25, ConfigEntry.SHOP_PRICES_RAINBOW_TRAIL, ChatColor.DARK_RED, "rainbowTrail", "/trail");
/* /*
Shop GUI Layout: Shop GUI Layout:
Dimensions: 9x4 = 36 Dimensions: 9x4 = 36
Key: g = Grappling Hook, l = Lightning Rod, f = Fire Ball, r = Rideable Ender Pearl, s = Stacking Potato, c = Clown Fish, x = Login Messages $ = Coins} Key:
g = Grappling Hook,
l = Lightning Rod
f = Fire Ball
r = Rideable Ender Pearl
s = Stacking Potato
c = Clown Fish
x = Login Messages
t = Rainbow Trail
$ = Coins
--------- ---------
-g-l-f-r- -g-l-f-r-
--s-c-x-- -s-c-x-t-
--------$ --------$
*/ */

View File

@ -36,8 +36,6 @@ import static org.bukkit.Bukkit.getServer;
public class FUtil public class FUtil
{ {
public static final String SAVED_FLAGS_FILENAME = "savedflags.dat";
/* See https://github.com/TotalFreedom/License - None of the listed names may be removed. /* See https://github.com/TotalFreedom/License - None of the listed names may be removed.
Leaving this list here for anyone running TFM on a cracked server: Leaving this list here for anyone running TFM on a cracked server:
public static final List<String> DEVELOPERS = Arrays.asList("Madgeek1450", "Prozza", "WickedGamingUK", "Wild1145", "aggelosQQ", "scripthead", "Telesphoreo", "CoolJWB"); public static final List<String> DEVELOPERS = Arrays.asList("Madgeek1450", "Prozza", "WickedGamingUK", "Wild1145", "aggelosQQ", "scripthead", "Telesphoreo", "CoolJWB");
@ -54,13 +52,12 @@ public class FUtil
"d018f2b8-ce60-4672-a45f-e580e0331299", // speednt "d018f2b8-ce60-4672-a45f-e580e0331299", // speednt
"458de06f-36a5-4e1b-aaa6-ec1d1751c5b6", // SupItsDillon "458de06f-36a5-4e1b-aaa6-ec1d1751c5b6", // SupItsDillon
"c8e5af82-6aba-4dd7-83e8-474381380cc9", // Paldiu "c8e5af82-6aba-4dd7-83e8-474381380cc9", // Paldiu
"38ea7c82-7bdc-4f48-b7fd-0e93fc26813d", // AwesomePinch
"ba5aafba-9012-418f-9819-a7020d591068", // TFTWPhoenix "ba5aafba-9012-418f-9819-a7020d591068", // TFTWPhoenix
"d6dd9740-40db-45f5-ab16-4ee16a633009", // Abhi "d6dd9740-40db-45f5-ab16-4ee16a633009", // Abhi
"2e06e049-24c8-42e4-8bcf-d35372af31e6", // NotInSync "2e06e049-24c8-42e4-8bcf-d35372af31e6", // NotInSync
"f97c0d7b-6413-4558-a409-88f09a8f9adb" // videogamesm12 "f97c0d7b-6413-4558-a409-88f09a8f9adb" // videogamesm12
); );
public static final List<String> DEVELOPER_NAMES = Arrays.asList("Madgeek1450", "Prozza", "WickedGamingUK", "Wild1145", "aggelosQQ", "scripthead", "CoolJWB", "elmon_", "speednt", "SupItsDillon", "Paldiu", "AwesomePinch", "TFTWPhoenix", "abhithedev", "NotInSync", "videogamesm12"); public static final List<String> DEVELOPER_NAMES = Arrays.asList("Madgeek1450", "Prozza", "WickedGamingUK", "Wild1145", "aggelosQQ", "scripthead", "CoolJWB", "elmon_", "speednt", "SupItsDillon", "Paldiu", "TFTWPhoenix", "abhithedev", "NotInSync", "videogamesm12");
public static final Map<String, ChatColor> CHAT_COLOR_NAMES = new HashMap<>(); public static final Map<String, ChatColor> CHAT_COLOR_NAMES = new HashMap<>();
public static final List<ChatColor> CHAT_COLOR_POOL = Arrays.asList( public static final List<ChatColor> CHAT_COLOR_POOL = Arrays.asList(
ChatColor.DARK_RED, ChatColor.DARK_RED,
@ -755,7 +752,7 @@ public class FUtil
public static String getIp(Player player) public static String getIp(Player player)
{ {
return Objects.requireNonNull(player.getAddress()).getAddress().getHostAddress().trim(); return player.getAddress().getAddress().getHostAddress().trim();
} }
public static String getIp(PlayerLoginEvent event) public static String getIp(PlayerLoginEvent event)

View File

@ -45,140 +45,9 @@ public class Groups
Material.LIGHT_GRAY_SHULKER_BOX, Material.LIGHT_GRAY_SHULKER_BOX,
Material.BLACK_SHULKER_BOX); Material.BLACK_SHULKER_BOX);
public static final List<EntityType> MOB_TYPES = Arrays.asList( public static final List<EntityType> MOB_TYPES = Arrays.stream(EntityType.values()).filter(EntityType::isAlive).filter(EntityType::isSpawnable).toList();
EntityType.BAT,
EntityType.BEE,
EntityType.BLAZE,
EntityType.CAVE_SPIDER,
EntityType.CHICKEN,
EntityType.CAT,
EntityType.COD,
EntityType.COW,
EntityType.CREEPER,
EntityType.DOLPHIN,
EntityType.DONKEY,
EntityType.DROWNED,
EntityType.ELDER_GUARDIAN,
EntityType.ENDERMAN,
EntityType.ENDERMITE,
EntityType.EVOKER,
EntityType.FOX,
EntityType.GHAST,
EntityType.GUARDIAN,
EntityType.HOGLIN,
EntityType.HORSE,
EntityType.HUSK,
EntityType.ILLUSIONER,
EntityType.IRON_GOLEM,
EntityType.LLAMA,
EntityType.MAGMA_CUBE,
EntityType.MUSHROOM_COW,
EntityType.MULE,
EntityType.OCELOT,
EntityType.PANDA,
EntityType.PARROT,
EntityType.PHANTOM,
EntityType.PIG,
EntityType.PIGLIN,
EntityType.PIGLIN_BRUTE,
EntityType.PILLAGER,
EntityType.POLAR_BEAR,
EntityType.PUFFERFISH,
EntityType.RABBIT,
EntityType.RAVAGER,
EntityType.SALMON,
EntityType.SHEEP,
EntityType.SHULKER,
EntityType.SILVERFISH,
EntityType.SKELETON,
EntityType.SKELETON_HORSE,
EntityType.SLIME,
EntityType.SNOWMAN,
EntityType.SPIDER,
EntityType.SQUID,
EntityType.STRAY,
EntityType.STRIDER,
EntityType.TRADER_LLAMA,
EntityType.TROPICAL_FISH,
EntityType.TURTLE,
EntityType.VEX,
EntityType.VILLAGER,
EntityType.VINDICATOR,
EntityType.WANDERING_TRADER,
EntityType.WITCH,
EntityType.WITHER_SKELETON,
EntityType.WOLF,
EntityType.ZOGLIN,
EntityType.ZOMBIE,
EntityType.ZOMBIE_HORSE,
EntityType.ZOMBIFIED_PIGLIN,
EntityType.ZOMBIE_VILLAGER);
public static final List<Material> SPAWN_EGGS = Arrays.asList( public static final List<Material> SPAWN_EGGS = Arrays.stream(Material.values()).filter((mat) -> mat.name().endsWith("_SPAWN_EGG")).toList();
Material.BAT_SPAWN_EGG,
Material.BEE_SPAWN_EGG,
Material.BLAZE_SPAWN_EGG,
Material.CAVE_SPIDER_SPAWN_EGG,
Material.CHICKEN_SPAWN_EGG,
Material.CAT_SPAWN_EGG,
Material.COD_SPAWN_EGG,
Material.COW_SPAWN_EGG,
Material.CREEPER_SPAWN_EGG,
Material.DOLPHIN_SPAWN_EGG,
Material.DONKEY_SPAWN_EGG,
Material.DROWNED_SPAWN_EGG,
Material.ELDER_GUARDIAN_SPAWN_EGG,
Material.ENDERMAN_SPAWN_EGG,
Material.ENDERMITE_SPAWN_EGG,
Material.EVOKER_SPAWN_EGG,
Material.FOX_SPAWN_EGG,
Material.GHAST_SPAWN_EGG,
Material.GUARDIAN_SPAWN_EGG,
Material.HOGLIN_SPAWN_EGG,
Material.HORSE_SPAWN_EGG,
Material.HUSK_SPAWN_EGG,
Material.LLAMA_SPAWN_EGG,
Material.MAGMA_CUBE_SPAWN_EGG,
Material.MOOSHROOM_SPAWN_EGG,
Material.MULE_SPAWN_EGG,
Material.OCELOT_SPAWN_EGG,
Material.PANDA_SPAWN_EGG,
Material.PARROT_SPAWN_EGG,
Material.PHANTOM_SPAWN_EGG,
Material.PIG_SPAWN_EGG,
Material.PIGLIN_SPAWN_EGG,
Material.PIGLIN_BRUTE_SPAWN_EGG,
Material.PILLAGER_SPAWN_EGG,
Material.POLAR_BEAR_SPAWN_EGG,
Material.PUFFERFISH_SPAWN_EGG,
Material.RABBIT_SPAWN_EGG,
Material.RAVAGER_SPAWN_EGG,
Material.SALMON_SPAWN_EGG,
Material.SHEEP_SPAWN_EGG,
Material.SHULKER_SPAWN_EGG,
Material.SILVERFISH_SPAWN_EGG,
Material.SKELETON_SPAWN_EGG,
Material.SKELETON_HORSE_SPAWN_EGG,
Material.SLIME_SPAWN_EGG,
Material.SPIDER_SPAWN_EGG,
Material.SQUID_SPAWN_EGG,
Material.STRAY_SPAWN_EGG,
Material.STRIDER_SPAWN_EGG,
Material.TRADER_LLAMA_SPAWN_EGG,
Material.TROPICAL_FISH_SPAWN_EGG,
Material.TURTLE_SPAWN_EGG,
Material.VEX_SPAWN_EGG,
Material.VILLAGER_SPAWN_EGG,
Material.VINDICATOR_SPAWN_EGG,
Material.WANDERING_TRADER_SPAWN_EGG,
Material.WITCH_SPAWN_EGG,
Material.WITHER_SKELETON_SPAWN_EGG,
Material.WOLF_SPAWN_EGG,
Material.ZOGLIN_SPAWN_EGG,
Material.ZOMBIE_SPAWN_EGG,
Material.ZOMBIE_HORSE_SPAWN_EGG,
Material.ZOMBIFIED_PIGLIN_SPAWN_EGG,
Material.ZOMBIE_VILLAGER_SPAWN_EGG);
public static final List<Material> BANNERS = Arrays.asList( public static final List<Material> BANNERS = Arrays.asList(
Material.BLACK_BANNER, Material.BLACK_BANNER,

View File

@ -1,9 +1,6 @@
package me.totalfreedom.totalfreedommod.world; package me.totalfreedom.totalfreedommod.world;
import java.io.File;
import me.totalfreedom.totalfreedommod.config.ConfigEntry; import me.totalfreedom.totalfreedommod.config.ConfigEntry;
import me.totalfreedom.totalfreedommod.util.FLog;
import org.apache.commons.io.FileUtils;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.Material; import org.bukkit.Material;
@ -32,8 +29,6 @@ public class Flatlands extends CustomWorld
return null; return null;
} }
wipeFlatlandsIfFlagged();
final WorldCreator worldCreator = new WorldCreator(getName()); final WorldCreator worldCreator = new WorldCreator(getName());
worldCreator.generateStructures(false); worldCreator.generateStructures(false);
worldCreator.type(WorldType.NORMAL); worldCreator.type(WorldType.NORMAL);
@ -63,32 +58,4 @@ public class Flatlands extends CustomWorld
return world; return world;
} }
public void wipeFlatlandsIfFlagged()
{
boolean doFlatlandsWipe = false;
try
{
doFlatlandsWipe = plugin.sf.getSavedFlag("do_wipe_flatlands");
}
catch (Exception ignored)
{
}
if (doFlatlandsWipe)
{
if (Bukkit.getServer().getWorld("flatlands") == null)
{
FLog.info("Wiping flatlands.");
plugin.sf.setSavedFlag("do_wipe_flatlands", false);
FileUtils.deleteQuietly(new File("./flatlands"));
}
else
{
FLog.severe("Can't wipe flatlands, it is already loaded.");
}
}
}
} }

View File

@ -84,6 +84,8 @@ discord:
executive_role_id: '' executive_role_id: ''
# Owner role ID # Owner role ID
server_owner_role_id: '' server_owner_role_id: ''
# Invite link for your Discord server
invite_link: 'https://discord.com/invite/PW4savJR9a'
# Pterodactyl # Pterodactyl
ptero: ptero:
@ -159,6 +161,7 @@ shop:
stacking_potato: 300 stacking_potato: 300
clown_fish: 1500 clown_fish: 1500
login_messages: 5000 login_messages: 5000
rainbow_trail: 1500
# Admin list # Admin list
adminlist: adminlist:
@ -206,7 +209,7 @@ allow:
fire_spread: false fire_spread: false
fluid_spread: false fluid_spread: false
lava_place: true lava_place: true
lava_damage: false lava_damage: true
water_place: true water_place: true
tnt_minecarts: false tnt_minecarts: false
explosions: false explosions: false
@ -506,6 +509,10 @@ moblimiter:
slime: true slime: true
giant: true giant: true
# Spawnmob
spawnmob:
max: 25
# Flatlands # Flatlands
flatlands: flatlands:
generate: true generate: true
@ -590,6 +597,14 @@ masterbuilderinfo:
- ' &2- Template:' - ' &2- Template:'
- '&9https://forum.totalfreedom.me/d/336-master-builder-application-process' - '&9https://forum.totalfreedom.me/d/336-master-builder-application-process'
# What new players will see upon joining for the first time.
first_join_info:
enabled: true
text:
- "&6Welcome to TotalFreedom -- the original Free-OP server!"
- "&eThe server's name doesn't mean we have no rules. Do &6/rules &efor a list of them."
- "&aNeed help getting started? Do &2/help &aor a list of commands!"
# Famous players - cannot be banned by username # Famous players - cannot be banned by username
famous_players: famous_players:
- honeydew - honeydew