2121import com .fastasyncworldedit .core .Fawe ;
2222import io .papermc .lib .PaperLib ;
2323import net .kyori .adventure .text .minimessage .MiniMessage ;
24- import net .onelitefeather .bettergopaint .command .Handler ;
24+ import net .onelitefeather .bettergopaint .command .GoPaintCommand ;
2525import net .onelitefeather .bettergopaint .command .ReloadCommand ;
2626import net .onelitefeather .bettergopaint .listeners .ConnectListener ;
2727import net .onelitefeather .bettergopaint .listeners .InteractListener ;
3232import net .onelitefeather .bettergopaint .utils .DisabledBlocks ;
3333import org .bstats .bukkit .Metrics ;
3434import org .bstats .charts .SimplePie ;
35+ import org .bukkit .Bukkit ;
3536import org .bukkit .command .CommandSender ;
3637import org .bukkit .event .Listener ;
3738import org .bukkit .plugin .PluginManager ;
4142import org .incendo .cloud .execution .ExecutionCoordinator ;
4243import org .incendo .cloud .paper .LegacyPaperCommandManager ;
4344import org .incendo .serverlib .ServerLib ;
45+ import org .jetbrains .annotations .Nullable ;
4446
4547import java .io .File ;
4648import java .io .IOException ;
@@ -53,11 +55,6 @@ public class BetterGoPaint extends JavaPlugin implements Listener {
5355 public static boolean plotSquaredEnabled ;
5456 private static PlayerBrushManager manager ;
5557 private static BetterGoPaint betterGoPaint ;
56- public ConnectListener connectListener ;
57- public InteractListener interactListener ;
58- public InventoryListener inventoryListener ;
59- public Handler cmdHandler ;
60- private AnnotationParser <CommandSender > annotationParser ;
6158
6259 public static BetterGoPaint getGoPaintPlugin () {
6360 return betterGoPaint ;
@@ -80,32 +77,18 @@ public void reload() {
8077 public void onEnable () {
8178 // Check if we are in a safe environment
8279 ServerLib .checkUnsafeForks ();
83- ServerLib .isJavaSixteen ();
8480 PaperLib .suggestPaper (this );
8581
86- if (PaperLib .getMinecraftVersion () < 16 ) {
87- getSLF4JLogger ().error ("We support only Minecraft 1.16.5 upwards" );
88- getSLF4JLogger ().error ("Disabling plugin to prevent errors" );
89- this .getServer ().getPluginManager ().disablePlugin (this );
90- return ;
91- }
92- if (PaperLib .getMinecraftVersion () == 16 && PaperLib .getMinecraftPatchVersion () < 5 ) {
93- getSLF4JLogger ().error ("We support only Minecraft 1.16.5 upwards" );
94- getSLF4JLogger ().error ("Disabling plugin to prevent errors" );
82+ // disable if goPaint and BetterGoPaint are installed simultaneously
83+ if (hasOriginalGoPaint ()) {
9584 this .getServer ().getPluginManager ().disablePlugin (this );
9685 return ;
9786 }
9887
99- if (PaperLib .getMinecraftVersion () > 17 ) {
100- getComponentLogger ().info (MiniMessage
101- .miniMessage ()
102- .deserialize ("<white>Made with <red>\u2665 </red> <white>in <gradient:black:red:gold>Germany</gradient>" ));
103- } else {
104- getLogger ().info ("Made with \u2665 in Germany" );
105- }
106- if (checkIfGoPaintActive ()) {
107- return ;
108- }
88+ //noinspection UnnecessaryUnicodeEscape
89+ getComponentLogger ().info (MiniMessage .miniMessage ().deserialize (
90+ "<white>Made with <red>\u2665 </red> <white>in <gradient:black:red:gold>Germany</gradient>"
91+ ));
10992
11093 betterGoPaint = this ;
11194 if (!Files .exists (getDataFolder ().toPath ())) {
@@ -117,48 +100,47 @@ public void onEnable() {
117100 }
118101 Settings .settings ().reload (new File (getDataFolder (), "config.yml" ));
119102 enableBStats ();
120- enableCommandSystem ();
121- if (this .annotationParser != null ) {
122- annotationParser .parse (new ReloadCommand (this ));
123- }
124-
125103
126104 manager = new PlayerBrushManager ();
127105
128- connectListener = new ConnectListener (betterGoPaint );
129- interactListener = new InteractListener (betterGoPaint );
130- inventoryListener = new InventoryListener (betterGoPaint );
131- cmdHandler = new Handler (betterGoPaint );
132- PluginManager pm = getServer ().getPluginManager ();
133- pm .registerEvents (connectListener , this );
134- pm .registerEvents (interactListener , this );
135- pm .registerEvents (inventoryListener , this );
136- pm .registerEvents (cmdHandler , this );
137- getCommand ("gopaint" ).setExecutor (cmdHandler );
106+ registerListeners ();
107+ registerCommands ();
138108 DisabledBlocks .addBlocks ();
109+ }
139110
111+ @ SuppressWarnings ("UnstableApiUsage" )
112+ private void registerCommands () {
113+ Bukkit .getCommandMap ().register ("gopaint" , getPluginMeta ().getName (), new GoPaintCommand (this ));
140114
115+ var annotationParser = enableCommandSystem ();
116+ if (annotationParser != null ) {
117+ annotationParser .parse (new ReloadCommand (this ));
118+ annotationParser .parse (new GoPaintCommand (this ));
119+ }
141120 }
142121
143- private boolean checkIfGoPaintActive () {
144- if (getServer ().getPluginManager ().isPluginEnabled ("goPaint" )) {
145- if (PaperLib .getMinecraftVersion () > 17 ) {
146- getComponentLogger ().error (MiniMessage .miniMessage ().deserialize ("<red>BetterGoPaint is a replacement for goPaint. " +
147- "Please use one instead of both" ));
148- getComponentLogger ().error (MiniMessage .miniMessage ().deserialize ("<red>This plugin is now disabling to prevent " +
149- "future " +
150- "errors" ));
151- } else {
152- getSLF4JLogger ().error ("BetterGoPaint is a replacement for goPaint. Please use one instead of both" );
153- getSLF4JLogger ().error ("This plugin is now disabling to prevent future errors" );
154- }
155- this .getServer ().getPluginManager ().disablePlugin (this );
156- return true ;
122+ private void registerListeners () {
123+ PluginManager pm = getServer ().getPluginManager ();
124+ pm .registerEvents (new ConnectListener (this ), this );
125+ pm .registerEvents (new InteractListener (this ), this );
126+ pm .registerEvents (new InventoryListener (this ), this );
127+ }
128+
129+ private boolean hasOriginalGoPaint () {
130+ if (getServer ().getPluginManager ().getPlugin ("goPaint" ) == this ) {
131+ return false ;
157132 }
158- return false ;
133+ getComponentLogger ().error (MiniMessage .miniMessage ().deserialize (
134+ "<red>BetterGoPaint is a replacement for goPaint. Please use one instead of both"
135+ ));
136+ getComponentLogger ().error (MiniMessage .miniMessage ().deserialize (
137+ "<red>This plugin is now disabling to prevent future errors"
138+ ));
139+
140+ return true ;
159141 }
160142
161- private void enableCommandSystem () {
143+ private @ Nullable AnnotationParser < CommandSender > enableCommandSystem () {
162144 try {
163145 LegacyPaperCommandManager <CommandSender > commandManager = LegacyPaperCommandManager .createNative (
164146 this ,
@@ -168,12 +150,12 @@ private void enableCommandSystem() {
168150 commandManager .registerBrigadier ();
169151 getLogger ().info ("Brigadier support enabled" );
170152 }
171- this . annotationParser = new AnnotationParser <>(commandManager , CommandSender .class );
153+ return new AnnotationParser <>(commandManager , CommandSender .class );
172154
173155 } catch (Exception e ) {
174156 getLogger ().log (Level .SEVERE , "Cannot init command manager" );
157+ return null ;
175158 }
176-
177159 }
178160
179161 private void enableBStats () {
0 commit comments