diff --git a/README.md b/README.md index ee9d14c..3f3535d 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # Description -Create gates that allow for instant-teleportation between large distances. Gates can be always-open or triggered; they can share a network or be split into clusters; they can be hidden on a network or accessible to everybody. + +Create gates that allow for instant-teleportation between large distances. Gates can be always-open or triggered; they +can share a network or be split into clusters; they can be hidden on a network or accessible to everybody. - Player permissions -- let players build their own networks. - Vault economy support -- can add costs for create, destroy and use. @@ -7,11 +9,13 @@ Create gates that allow for instant-teleportation between large distances. Gates - Message customization ## Background -This was originally TheDgtl's Bukkit port of the Stargate plugin for hMod by Dinnerbone. -This is a fork of [PseudoKnight's fork](https://github.com/PseudoKnight/Stargate-Bukkit). -This fork's main purpose is to create a clean version of Stargate compliant with Spigot 1.16, even if it means changing the entire project's previous structure. + +This was originally TheDgtl's Bukkit port of the Stargate plugin for hMod by Dinnerbone. This is a fork +of [PseudoKnight's fork](https://github.com/PseudoKnight/Stargate-Bukkit). This fork's main purpose is to create a clean +version of Stargate compliant with Spigot 1.16, even if it means changing the entire project's previous structure. # Permissions + ``` stargate.use -- Allow use of all gates linking to any world in any network (Override ALL network/world permissions. Set to false to use network/world specific permissions) stargate.world -- Allow use of gates linking to any world @@ -51,7 +55,9 @@ stargate.admin -- Allow all admin features (Hidden/Private only so far) stargate.admin.hidden -- Allow access to Hidden gates not ownerd by user stargate.admin.reload -- Allow use of /sg reload ``` + ## Default Permissions + ``` stargate.use -- Everyone stargate.create -- Op @@ -62,8 +68,11 @@ stargate.admin -- Op ``` # Instructions + ## Building a gate: + This is the default gate configuration. See the Custom Gate Layout section on how to change this. + ``` OO O O - These are Obsidian blocks. You need 10. @@ -78,44 +87,55 @@ This is the default gate configuration. See the Custom Gate Layout section on ho - Line 2: Destination Name \[Optional] (Max 12 characters, used for fixed-gates only) - Line 3: Network name \[Optional] (Max 12 characters) - Line 4: Options \[Optional] : - - 'A' for always-on fixed gate - - 'H' for hidden networked gate - - 'P' for a private gate - - 'F' for a free gate - - 'B' is for a backwards facing gate (You will exit the back) - - 'S' is for showing an always-on gate in the network list - - 'N' is for hiding the network name - - 'R' is for random gates. These follow standard permissions of gates, but have a random exit location every time a player enters. - - 'U' is for a gate connecting to another through bungee + - 'A' for always-on fixed gate + - 'H' for hidden networked gate + - 'P' for a private gate + - 'F' for a free gate + - 'B' is for a backwards facing gate (You will exit the back) + - 'S' is for showing an always-on gate in the network list + - 'N' is for hiding the network name + - 'R' is for random gates. These follow standard permissions of gates, but have a random exit location every time a + player enters. + - 'U' is for a gate connecting to another through bungee The options are the single letter, not the word. So to make a private hidden gate, your 4th line would be 'PH'. #### Gate networks: - - Gates are all part of a network, by default this is "central". - - You can specify (and create) your own network on the third line of the sign when making a new gate. - - Gates on one network will not see gates on the second network, and vice versa. - - Gates on different worlds, but in the same network, will see each other. - - If the gate is a bungee gate, the network name should be the name of the server as displayed when typing /servers + +- Gates are all part of a network, by default this is "central". +- You can specify (and create) your own network on the third line of the sign when making a new gate. +- Gates on one network will not see gates on the second network, and vice versa. +- Gates on different worlds, but in the same network, will see each other. +- If the gate is a bungee gate, the network name should be the name of the server as displayed when typing /servers #### Fixed gates: - - Fixed gates go to only one set destination. - - Fixed gates can be linked to other fixed gates, or normal gates. A normal gate cannot open a portal to a fixed gate however. - - To create a fixed gate, specify a destination on the second line of the stargate sign. - - Set the 4th line of the stargate sign to "A" to enable an always-open fixed gate. - - A bungee gate is always automatically a fixed gate - + +- Fixed gates go to only one set destination. +- Fixed gates can be linked to other fixed gates, or normal gates. A normal gate cannot open a portal to a fixed gate + however. +- To create a fixed gate, specify a destination on the second line of the stargate sign. +- Set the 4th line of the stargate sign to "A" to enable an always-open fixed gate. +- A bungee gate is always automatically a fixed gate + #### Hidden Gates: - - Hidden gates are like normal gates, but only show on the destination list of other gates under certain conditions. - - A hidden gate is only visible to the creator of the gate, or somebody with the stargate.hidden permission. - - Set the 4th line of the stargate sign to 'H' to make it a hidden gate. + +- Hidden gates are like normal gates, but only show on the destination list of other gates under certain conditions. +- A hidden gate is only visible to the creator of the gate, or somebody with the stargate.hidden permission. +- Set the 4th line of the stargate sign to 'H' to make it a hidden gate. ## Using a gate: - - Right click the sign to choose a destination. - - Right click the button to open up a portal. - - Step through. - + +- Right click the sign to choose a destination. +- Right click the button to open up a portal. +- Step through. + ## Economy Support: -The latest version of Stargate has support for Vault. Gate creation, destruction and use can all have different costs associated with them. You can also define per-gate layout costs. The default cost is assigned in the config.yml file, while the per-gate costs re defined in the .gate files. To define a certain cost to a gate just add these lines to your .gate file: + +The latest version of Stargate has support for Vault. Gate creation, destruction and use can all have different costs +associated with them. You can also define per-gate layout costs. The default cost is assigned in the config.yml file, +while the per-gate costs re defined in the .gate files. To define a certain cost to a gate just add these lines to your +.gate file: + ``` usecost=5 destroycost=5 @@ -124,9 +144,11 @@ toowner=true ``` # Custom Gate Layout + You can create as many gate formats as you want, the gate layouts are stored in `plugins/Stargate/gates/`. -The .gate file must be laid out a specific way, the first lines will be config information, -and after a blank line you will lay out the gate format. Here is the default nether.gate file: +The .gate file must be laid out a specific way, the first lines will be config information, and after a blank line you +will lay out the gate format. Here is the default nether.gate file: + ``` portal-open=NETHER_PORTAL portal-closed=AIR @@ -140,18 +162,21 @@ X..X X*.X XX ``` -The keys `portal-open` and `portal-closed` are used to define the material in the gate when it is open or closed. -The material for `portal-closed` can be most things, including solid blocks. Some materials may act weirdly though. -The material for `portal-open` can be any block the player can partially enter, even things like `GLOW_LICHEN`. + +The keys `portal-open` and `portal-closed` are used to define the material in the gate when it is open or closed. The +material for `portal-closed` can be most things, including solid blocks. Some materials may act weirdly though. The +material for `portal-open` can be any block the player can partially enter, even things like `GLOW_LICHEN`. `NETHER_PORTAL` and `END_GATEWAY` work, but `END_PORTAL` does not. -The key `button` is used to define the type of button that is generated for this gate. It can be a button (of any type), +The key `button` is used to define the type of button that is generated for this gate. It can be a button (of any type), a type of wall coral (dead or alive), a type of shulker box or a chest. `X` and `-` are used to define block types for the layout (Any single-character can be used, such as `#`). In the gate format, you can see we use `X` to show where obsidian must be, `-` where the controls (Button/sign) are. -You will also notice a `*` in the gate layout, this is the "exit point" of the gate, the block at which the player will teleport in front of. +You will also notice a `*` in the gate layout, this is the "exit point" of the gate, the block at which the player will +teleport in front of. ## Buttons + The actual buttons cannot be used underwater, but all the other items in the button list can be.
The entire list of button types is as follows: (Click to expand) @@ -197,16 +222,19 @@ DEAD_BUBBLE_CORAL_WALL_FAN DEAD_FIRE_CORAL_WALL_FAN DEAD_HORN_CORAL_WALL_FAN ``` +
## Underwater Portals + There is a default gate type for underwater gates. There are no real restrictions on underwater gate materials, except -normal buttons cannot be used since they'd fall off. Using wall coral fans work much better, though `CHEST` and +normal buttons cannot be used since they'd fall off. Using wall coral fans work much better, though `CHEST` and `SHULKER_BOX` works too. Using `AIR` for a closed underwater gate looks weird, so `WATER` might be better. # Configuration + ``` default-gate-network - The default gate network portal-folder - The folder your portal databases are saved in @@ -234,13 +262,16 @@ permdebug: Whether to show massive permission debug output ``` # Message Customization -It is possible to customize all of the messages Stargate displays, including the [Stargate] prefix. You can find the strings in plugins/Stargate/lang/chosenLanguage.txt. -If a string is removed, or left blank, it will default to the default english string. -There are some special cases when it comes to messages. -When you see %variableName%, you need to keep this part in your string, as it will be replaced with relevant values. +It is possible to customize all of the messages Stargate displays, including the [Stargate] prefix. You can find the +strings in plugins/Stargate/lang/chosenLanguage.txt. + +If a string is removed, or left blank, it will default to the default english string. There are some special cases when +it comes to messages. When you see %variableName%, you need to keep this part in your string, as it will be replaced +with relevant values. The full list of strings is as follows: + ``` prefix=[Stargate] teleportMsg=Teleported @@ -278,379 +309,617 @@ bungeeDeny=You do not have permission to create BungeeCord gates. bungeeEmpty=BungeeCord gates require both a destination and network. bungeeSign=Teleport to ``` + # Changes + #### \[Version 0.9.0.0] (WIP) EpicKnarvik97 fork - - Changes entire path structure to a more modern and maven-compliant one - - Changes package structure to net.knarcaft.stargate.* - - Moves language files into the resources folder - - Fixes some bugs caused by language files not being read as UTF-8 - - Makes Blox into BlockLocation which now extends Location - - Adds JavaDoc to a lot of the code - - Adds Norwegian translation for both Norwegian languages - - Adds missing dependency information to plugin.yml - - Uses text from the language files in more places - - Changes how backup language works, causing english strings to be shown if not available from the chosen language - - Removes some pre-UUID code - - Adds underwater portals - - Makes it easier to add more default gates - - Adds a new default gate which can be used underwater - - Adds more items usable as buttons (corals, chest, shulker box), which allows underwater portals - - Splits a lot of the code into smaller objects - - Moves duplicated code into helper classes + +- Changes entire path structure to a more modern and maven-compliant one +- Changes package structure to net.knarcaft.stargate.* +- Moves language files into the resources folder +- Fixes some bugs caused by language files not being read as UTF-8 +- Makes Blox into BlockLocation which now extends Location +- Adds JavaDoc to a lot of the code +- Adds Norwegian translation for both Norwegian languages +- Adds missing dependency information to plugin.yml +- Uses text from the language files in more places +- Changes how backup language works, causing english strings to be shown if not available from the chosen language +- Removes some pre-UUID code +- Adds underwater portals +- Makes it easier to add more default gates +- Adds a new default gate which can be used underwater +- Adds more items usable as buttons (corals, chest, shulker box), which allows underwater portals +- Splits a lot of the code into smaller objects +- Moves duplicated code into helper classes + #### \[Version 0.8.0.3] PseudoKnight fork - - Fix economy - - Add custom buttons + +- Fix economy +- Add custom buttons + #### \[Version 0.8.0.2] PseudoKnight fork - - Fix player relative yaw when exiting portal - - Add color code support in lang files + +- Fix player relative yaw when exiting portal +- Add color code support in lang files + #### \[Version 0.8.0.1] PseudoKnight fork - - Fix slab check for portal exits - - Improve material checks for gate configuration + +- Fix slab check for portal exits +- Improve material checks for gate configuration + #### \[Version 0.8.0.0] PseudoKnight fork - - Update for 1.13/1.14 compatibility. This changes gate layouts to use new material names instead of numeric ids. You need to update your gate layout configs. - - Adds "verifyPortals" config option, which sets whether an old stargate's blocks are verified when loaded. - - Adds UUID support. (falls back to player names) + +- Update for 1.13/1.14 compatibility. This changes gate layouts to use new material names instead of numeric ids. You + need to update your gate layout configs. +- Adds "verifyPortals" config option, which sets whether an old stargate's blocks are verified when loaded. +- Adds UUID support. (falls back to player names) + #### \[Version 0.7.9.11] PseudoKnight fork - - Removed iConomy support. Updated Vault support. Changed setting from "useiconomy" to "useeconomy". - - Updated to support Metrics for 1.7.10 + +- Removed iConomy support. Updated Vault support. Changed setting from "useiconomy" to "useeconomy". +- Updated to support Metrics for 1.7.10 + #### \[Version 0.7.9.10] - - Fix personal gate permission check for players with mixed-case names + +- Fix personal gate permission check for players with mixed-case names + #### \[Version 0.7.9.9] - - Remove "Permissions" support, we now only support SuperPerms handlers. + +- Remove "Permissions" support, we now only support SuperPerms handlers. + #### \[Version 0.7.9.8] - - Make sure buttons stay where they should + +- Make sure buttons stay where they should + #### \[Version 0.7.9.7] - - Do the Bungee check after the gate layout check. + +- Do the Bungee check after the gate layout check. + #### \[Version 0.7.9.6] - - Actually remove the player from the BungeeQueue when they connect. Oops :) - - Implement stargate.server nodes - - Improve the use of negation. You can now negate networks/worlds/servers while using stargate.use permissions. + +- Actually remove the player from the BungeeQueue when they connect. Oops :) +- Implement stargate.server nodes +- Improve the use of negation. You can now negate networks/worlds/servers while using stargate.use permissions. + #### \[Version 0.7.9.5] - - Fixed an issue with portal material not showing up (Oh, that code WAS useful) + +- Fixed an issue with portal material not showing up (Oh, that code WAS useful) + #### \[Version 0.7.9.4] - - Fixed an issue where water gates broke, oops + +- Fixed an issue where water gates broke, oops + #### \[Version 0.7.9.3] - - Update BungeeCord integration for b152+ + +- Update BungeeCord integration for b152+ + #### \[Version 0.7.9.2] - - Remove my custom sign class. Stupid Bukkit team. - - Will work with CB 1.4.5 builds, but now will break randomly due to Bukkit screwup - - Update MetricsLite to R6 + +- Remove my custom sign class. Stupid Bukkit team. +- Will work with CB 1.4.5 builds, but now will break randomly due to Bukkit screwup +- Update MetricsLite to R6 + #### \[Version 0.7.9.1] - - Optimize gate lookup in onPlayerMove - - Resolve issue where Stargates would teleport players to the nether + +- Optimize gate lookup in onPlayerMove +- Resolve issue where Stargates would teleport players to the nether + #### \[Version 0.7.9.0] - - Added BungeeCord multi-server support (Requires Stargate-Bungee for BungeeCord) - - Updated Spanish language file - - Added basic plugin metrics via http://mcstats.org/ - - Resolve issue where language updating overwrote custom strings + +- Added BungeeCord multi-server support (Requires Stargate-Bungee for BungeeCord) +- Updated Spanish language file +- Added basic plugin metrics via http://mcstats.org/ +- Resolve issue where language updating overwrote custom strings + #### \[Version 0.7.8.1] - - Resolve issue of language file being overwritten as ANSI instead of UTF8 + +- Resolve issue of language file being overwritten as ANSI instead of UTF8 + #### \[Version 0.7.8.0] - - Updated languages to include sign text (Please update any languages you are able!) - - Resolved NPE due to Bukkit bug with signs - - Resolved issue regarding new getTargetBlock code throwing an exception - - Languages now auto-update based on the .JAR version (New entries only, doesn't overwrite customization) - - New command "/sg about", will list the author of the current language file if available - - Language now has a fallback to English for missing lines (It's the only language I can personally update on release) - - Added Spanish (Thanks Manuestaire) and Hungarian (Thanks HPoltergeist) - - Added portal.setOwner(String) API + +- Updated languages to include sign text (Please update any languages you are able!) +- Resolved NPE due to Bukkit bug with signs +- Resolved issue regarding new getTargetBlock code throwing an exception +- Languages now auto-update based on the .JAR version (New entries only, doesn't overwrite customization) +- New command "/sg about", will list the author of the current language file if available +- Language now has a fallback to English for missing lines (It's the only language I can personally update on release) +- Added Spanish (Thanks Manuestaire) and Hungarian (Thanks HPoltergeist) +- Added portal.setOwner(String) API + #### \[Version 0.7.7.5] - - Resolve issue of right clicking introduced in 1.3.1/2 + +- Resolve issue of right clicking introduced in 1.3.1/2 + #### \[Version 0.7.7.4] - - Removed try/catch, it was still segfaulting. - - Built against 1.3.1 + +- Removed try/catch, it was still segfaulting. +- Built against 1.3.1 + #### \[Version 0.7.7.3] - - Wrap sign changing in try/catch. Stupid Bukkit + +- Wrap sign changing in try/catch. Stupid Bukkit + #### \[Version 0.7.7.2] - - Load chunk before trying to draw signs - - Implement a workaround for BUKKIT-1033 + +- Load chunk before trying to draw signs +- Implement a workaround for BUKKIT-1033 + #### \[Version 0.7.7.1] - - Permission checking for 'R'andom gates. - - Random now implies AlwaysOn - - Added all languages to JAR + +- Permission checking for 'R'andom gates. +- Random now implies AlwaysOn +- Added all languages to JAR + #### \[Version 0.7.7.0] - - Added 'R'andom option - This still follows the permission rules defined for normal gate usage - - Added a bit more debug output + +- Added 'R'andom option - This still follows the permission rules defined for normal gate usage +- Added a bit more debug output + #### \[Version 0.7.6.8] - - Hopefully fix backwards gate exiting + +- Hopefully fix backwards gate exiting + #### \[Version 0.7.6.7] - - Reload all gates on world unload, this stops gates with invalid destinations being in memory. + +- Reload all gates on world unload, this stops gates with invalid destinations being in memory. + #### \[Version 0.7.6.6] - - Check move/portal/interact/signchange events for cancellation + +- Check move/portal/interact/signchange events for cancellation + #### \[Version 0.7.6.5] - - Resolve issue with buttons on glass gates falling off - - /sg reload can now be used ingame (stargate.admin.reload permission) + +- Resolve issue with buttons on glass gates falling off +- /sg reload can now be used ingame (stargate.admin.reload permission) + #### \[Version 0.7.6.4] - - Move blockBreak to HIGHEST priority, this resolves issues with region protection plugins + +- Move blockBreak to HIGHEST priority, this resolves issues with region protection plugins + #### \[Version 0.7.6.3] - - Fixed issue with displaying iConomy prices - - iConomy is now hooked on "sg reload" if not already hooked and enabled - - iConomy is now unhooked on "sg reload" if hooked and disabled + +- Fixed issue with displaying iConomy prices +- iConomy is now hooked on "sg reload" if not already hooked and enabled +- iConomy is now unhooked on "sg reload" if hooked and disabled + #### \[Version 0.7.6.2] - - Button now activates if gate is opened, allowing redstone interaction - - Fixed issue with sign line lengths. All sign text should now fit with color codes. + +- Button now activates if gate is opened, allowing redstone interaction +- Fixed issue with sign line lengths. All sign text should now fit with color codes. + #### \[Version 0.7.6.1] - - Update API for StargateCommand - - Resolved issue with block data on explosion - - Added signColor option - - Added protectEntrance option + +- Update API for StargateCommand +- Resolved issue with block data on explosion +- Added signColor option +- Added protectEntrance option + #### \[Version 0.7.6] - - Moved gate opening/closing to a Queue/Runnable system to resolve server lag issues with very large gates + +- Moved gate opening/closing to a Queue/Runnable system to resolve server lag issues with very large gates + #### \[Version 0.7.5.11] - - PEX now returns accurate results without requiring use of the bridge. + +- PEX now returns accurate results without requiring use of the bridge. + #### \[Version 0.7.5.10] - - Added sortLists options + +- Added sortLists options + #### \[Version 0.7.5.9] - - Quick event fix for latest dev builds - - Fix for sign ClassCastException + +- Quick event fix for latest dev builds +- Fix for sign ClassCastException + #### \[Version 0.7.5.8] - - Fixed an exploit with pistons to destroy gates + +- Fixed an exploit with pistons to destroy gates + #### \[Version 0.7.5.7] - - Removed SignPost class - - Resolved issues with signs in 1.2 + +- Removed SignPost class +- Resolved issues with signs in 1.2 + #### \[Version 0.7.5.6] - - Quick update to the custom event code, works with R5+ now. + +- Quick update to the custom event code, works with R5+ now. + #### \[Version 0.7.5.5] - - PEX is built of fail, if we have it, use bridge instead. + +- PEX is built of fail, if we have it, use bridge instead. + #### \[Version 0.7.5.4] - - Fix issue with private gates for players with long names + +- Fix issue with private gates for players with long names + #### \[Version 0.7.5.3] - - Added another check for Perm bridges. + +- Added another check for Perm bridges. + #### \[Version 0.7.5.2] - - Make sure our timer is stopped on disable - - Move Event reg before loading gates to stop portal material vanishing + +- Make sure our timer is stopped on disable +- Move Event reg before loading gates to stop portal material vanishing + #### \[Version 0.7.5.1] - - Don't create button on failed creation + +- Don't create button on failed creation + #### \[Version 0.7.5.0] - - Refactored creation code a bit - - Added StargateCreateEvent, see Stargate-API for usage. - - Added StargateDestroyEvent, see Stargate-API for usage. - - Updated Event API to the new standard, please see: http://wiki.bukkit.org/Introduction_to_the_New_Event_System - - Added handleVehicles option. - - Added 'N'o Network option (Hides the network from the sign) + +- Refactored creation code a bit +- Added StargateCreateEvent, see Stargate-API for usage. +- Added StargateDestroyEvent, see Stargate-API for usage. +- Updated Event API to the new standard, please see: http://wiki.bukkit.org/Introduction_to_the_New_Event_System +- Added handleVehicles option. +- Added 'N'o Network option (Hides the network from the sign) + #### \[Version 0.7.4.4] - - Changed the implementation of StargateAccessEvent. - - Disable Permissions if version is 2.7.2 (Common version used between bridges) - - Fix long-standing bug with hasPermDeep check. Oops. + +- Changed the implementation of StargateAccessEvent. +- Disable Permissions if version is 2.7.2 (Common version used between bridges) +- Fix long-standing bug with hasPermDeep check. Oops. + #### \[Version 0.7.4.3] - - Implement StargateAccessEvent, used for bypassing permission checks/denying access to gates. + +- Implement StargateAccessEvent, used for bypassing permission checks/denying access to gates. + #### \[Version 0.7.4.2] - - stargate.create.personal permission now also allows user to use personal gates + +- stargate.create.personal permission now also allows user to use personal gates + #### \[Version 0.7.4.1] - - Quick API update to add player to the activate event + +- Quick API update to add player to the activate event + #### \[Version 0.7.4.0] - - Fixed issue with non-air closed portal blocks - - Added StargatePortalEvent/onStargatePortal event + +- Fixed issue with non-air closed portal blocks +- Added StargatePortalEvent/onStargatePortal event + #### \[Version 0.7.3.3] - - Added "ignoreEntrance" option to not check entrance to gate on integrity check (Workaround for snowmen until event is pulled) + +- Added "ignoreEntrance" option to not check entrance to gate on integrity check (Workaround for snowmen until event is + pulled) + #### \[Version 0.7.3.2] - - Actually fixed "><" issue with destMemory + +- Actually fixed "><" issue with destMemory + #### \[Version 0.7.3.1] - - Hopefully fixed "><" issue with destMemory + +- Hopefully fixed "><" issue with destMemory + #### \[Version 0.7.3] - - Lava and water gates no longer destroy on reload - - "sg reload" now closes gates before reloading - - Added Vault support - - Added missing "useiConomy" option in config + +- Lava and water gates no longer destroy on reload +- "sg reload" now closes gates before reloading +- Added Vault support +- Added missing "useiConomy" option in config + #### \[Version 0.7.2.1] - - Quick fix for an NPE + +- Quick fix for an NPE + #### \[Version 0.7.2] - - Make it so you can still destroy gates in Survival mode + +- Make it so you can still destroy gates in Survival mode + #### \[Version 0.7.1] - - Added destMemory option - - Switched to sign.update() as Bukkit implemented my fix - - Threw in a catch for a null from location for portal events + +- Added destMemory option +- Switched to sign.update() as Bukkit implemented my fix +- Threw in a catch for a null from location for portal events + #### \[Version 0.7.0] - - Minecraft 1.0.0 support - - New FileConfiguration implemented - - Stop gates being destroyed on right-click in Creative mode - - Fixed signs not updating with a hackish workaround until Bukkit is fixed + +- Minecraft 1.0.0 support +- New FileConfiguration implemented +- Stop gates being destroyed on right-click in Creative mode +- Fixed signs not updating with a hackish workaround until Bukkit is fixed + #### \[Version 0.6.10] - - Added Register support as opposed to iConomy + +- Added Register support as opposed to iConomy + #### \[Version 0.6.9] - - Added UTF8 support for lang files (With or without BOM) + +- Added UTF8 support for lang files (With or without BOM) + #### \[Version 0.6.8] - - Fixed unmanned carts losing velocity through gates - - /sg reload now properly switches languages + +- Fixed unmanned carts losing velocity through gates +- /sg reload now properly switches languages + #### \[Version 0.6.7] - - Added lang option - - Removed language debug output - - Added German language (lang=de) -- Thanks EduardBaer + +- Added lang option +- Removed language debug output +- Added German language (lang=de) -- Thanks EduardBaer + #### \[Version 0.6.6] - - Added %cost% and %portal% to all eco* messages - - Fixed an issue when creating a gate on a network you don't have access to + +- Added %cost% and %portal% to all eco* messages +- Fixed an issue when creating a gate on a network you don't have access to + #### \[Version 0.6.5] - - Moved printed message config to a seperate file - - Added permdebug option - - Hopefully fix path issues some people were having - - Fixed iConomy creation cost - - Added 'S'how option for Always-On gates - - Added 'stargate.create.gate' permissions + +- Moved printed message config to a seperate file +- Added permdebug option +- Hopefully fix path issues some people were having +- Fixed iConomy creation cost +- Added 'S'how option for Always-On gates +- Added 'stargate.create.gate' permissions + #### \[Version 0.6.4] - - Fixed iConomy handling + +- Fixed iConomy handling + #### \[Version 0.6.3] - - Fixed (Not Connected) showing on inter-world gate loading - - Added the ability to negate Network/World permissions (Use, Create and Destroy) - - Fixed Lockette compatibility - - More stringent verification checks + +- Fixed (Not Connected) showing on inter-world gate loading +- Added the ability to negate Network/World permissions (Use, Create and Destroy) +- Fixed Lockette compatibility +- More stringent verification checks + #### \[Version 0.6.2] - - Fixed an issue with private gates - - Added default permissions + +- Fixed an issue with private gates +- Added default permissions + #### \[Version 0.6.1] - - Stop destruction of open gates on startup + +- Stop destruction of open gates on startup + #### \[Version 0.6.0] - - Completely re-wrote Permission handling (REREAD/REDO YOUR PERMISSIONS!!!!!!!!) - - Added custom Stargate events (See Stargate-DHD code for use) - - Fixed portal event cancellation - - Umm... Lots of other small things. + +- Completely re-wrote Permission handling (REREAD/REDO YOUR PERMISSIONS!!!!!!!!) +- Added custom Stargate events (See Stargate-DHD code for use) +- Fixed portal event cancellation +- Umm... Lots of other small things. + #### \[Version 0.5.5] - - Added 'B'ackwards option - - Fixed opening of gates with a fixed gate as a destination - - Added block metadata support to gates + +- Added 'B'ackwards option +- Fixed opening of gates with a fixed gate as a destination +- Added block metadata support to gates + #### \[Version 0.5.1] - - Take into account world/network restrictions for Vehicles - - Properly teleport empty vehicles between worlds - - Properly teleport StoreageMinecarts between worlds - - Take into account vehicle type when teleporting + +- Take into account world/network restrictions for Vehicles +- Properly teleport empty vehicles between worlds +- Properly teleport StoreageMinecarts between worlds +- Take into account vehicle type when teleporting + #### \[Version 0.5.0] - - Updated the teleport method - - Remove always-open gates from lists - - Hopefully stop Stargate and Nether interference + +- Updated the teleport method +- Remove always-open gates from lists +- Hopefully stop Stargate and Nether interference + #### \[Version 0.4.9] - - Left-click to scroll signs up - - Show "(Not Connected)" on fixed-gates with a non-existant destination - - Added "maxgates" option - - Removed debug message - - Started work on disabling damage for lava gates, too much work to finish with the current implementation of EntityDamageByBlock + +- Left-click to scroll signs up +- Show "(Not Connected)" on fixed-gates with a non-existant destination +- Added "maxgates" option +- Removed debug message +- Started work on disabling damage for lava gates, too much work to finish with the current implementation of + EntityDamageByBlock + #### \[Version 0.4.8] - - Added chargefreedestination option - - Added freegatesgreen option + +- Added chargefreedestination option +- Added freegatesgreen option + #### \[Version 0.4.7] - - Added debug option - - Fixed gates will now show in the list of gates they link to. - - iConomy no longer touched if not enabled in config + +- Added debug option +- Fixed gates will now show in the list of gates they link to. +- iConomy no longer touched if not enabled in config + #### \[Version 0.4.6] - - Fixed a bug in iConomy handling. + +- Fixed a bug in iConomy handling. + #### \[Version 0.4.5] - - Owner of gate now isn't charged for use if target is owner - - Updated for iConomy 5.x - - Fixed random iConomy bugs + +- Owner of gate now isn't charged for use if target is owner +- Updated for iConomy 5.x +- Fixed random iConomy bugs + #### \[Version 0.4.4] - - Added a check for stargate.network.*/stargate.world.* on gate creation - - Check for stargate.world.*/stargate.network.* on gate entrance - - Warp player outside of gate on access denied + +- Added a check for stargate.network.*/stargate.world.* on gate creation +- Check for stargate.world.*/stargate.network.* on gate entrance +- Warp player outside of gate on access denied + #### \[Version 0.4.3] - - Made some errors more user-friendly - - Properly take into account portal-closed material + +- Made some errors more user-friendly +- Properly take into account portal-closed material + #### \[Version 0.4.2] - - Gates can't be created on existing gate blocks + +- Gates can't be created on existing gate blocks + #### \[Version 0.4.1] - - Sign option permissions - - Per-gate iconomy target - - /sg reload command - - Other misc fixes + +- Sign option permissions +- Per-gate iconomy target +- /sg reload command +- Other misc fixes + #### \[Version 0.4.0] - - Carts with no player can now go through gates. - - You can set gates to send their cost to their owner. - - Per-gate layout option for "toOwner". - - Cleaned up the iConomy code a bit, messages should only be shown on actual deduction now. - - Created separate 'stargate.free.{use/create/destroy}' permissions. + +- Carts with no player can now go through gates. +- You can set gates to send their cost to their owner. +- Per-gate layout option for "toOwner". +- Cleaned up the iConomy code a bit, messages should only be shown on actual deduction now. +- Created separate 'stargate.free.{use/create/destroy}' permissions. + #### \[Version 0.3.5] - - Added 'stargate.world.*' permissions - - Added 'stargate.network.*' permissions - - Added 'networkfilter' config option - - Added 'worldfilter' config option + +- Added 'stargate.world.*' permissions +- Added 'stargate.network.*' permissions +- Added 'networkfilter' config option +- Added 'worldfilter' config option + #### \[Version 0.3.4] - - Added 'stargate.free' permission - - Added iConomy cost into .gate files + +- Added 'stargate.free' permission +- Added iConomy cost into .gate files + #### \[Version 0.3.3] - - Moved sign update into a schedule event, should fix signs + +- Moved sign update into a schedule event, should fix signs + #### \[Version 0.3.2] - - Updated to latest RB - - Implemented proper vehicle handling - - Added iConomy to vehicle handling - - Can now set cost to go to creator on use + +- Updated to latest RB +- Implemented proper vehicle handling +- Added iConomy to vehicle handling +- Can now set cost to go to creator on use + #### \[Version 0.3.1] - - Changed version numbering. - - Changed how plugins are hooked into. + +- Changed version numbering. +- Changed how plugins are hooked into. + #### \[Version 0.30] - - Fixed a bug in iConomy checking. + +- Fixed a bug in iConomy checking. + #### \[Version 0.29] - - Added iConomy support. Currently only works with iConomy 4.4 until Niji fixes 4.5 - - Thanks @Jonbas for the base iConomy implementation + +- Added iConomy support. Currently only works with iConomy 4.4 until Niji fixes 4.5 +- Thanks @Jonbas for the base iConomy implementation + #### \[Version 0.28] - - Fixed an issue with removing stargates during load + +- Fixed an issue with removing stargates during load + #### \[Version 0.27] - - Fixed portal count on load + +- Fixed portal count on load + #### \[Version 0.26] - - Added stargate.create.personal for personal stargate networks - - Fixed a bug with destroying stargates by removing sign/button + +- Added stargate.create.personal for personal stargate networks +- Fixed a bug with destroying stargates by removing sign/button + #### \[Version 0.25] - - Fixed a bug with worlds in subfolders - - Fixed gates being destroyed with explosions - - Added stargate.destroy.owner + +- Fixed a bug with worlds in subfolders +- Fixed gates being destroyed with explosions +- Added stargate.destroy.owner + #### \[Version 0.24] - - Fixed a loading bug in which invalid gates caused file truncation + +- Fixed a loading bug in which invalid gates caused file truncation + #### \[Version 0.23] - - Added a check to make sure "nethergate.gate" exists, otherwise create it + +- Added a check to make sure "nethergate.gate" exists, otherwise create it + #### \[Version 0.22] - - Fixed multi-world stargates causing an NPE + +- Fixed multi-world stargates causing an NPE + #### \[Version 0.21] - - Code cleanup - - Added a few more errors when a gate can't be loaded - - Hopefully fixed path issue on some Linux installs + +- Code cleanup +- Added a few more errors when a gate can't be loaded +- Hopefully fixed path issue on some Linux installs + #### \[Version 0.20] - - Fixed the bug SIGN_CHANGE exception when using plugins such as Lockette + +- Fixed the bug SIGN_CHANGE exception when using plugins such as Lockette + #### \[Version 0.19] - - Set button facing on new gates, fixes weirdass button glitch - - Beginning of very buggy multi-world support + +- Set button facing on new gates, fixes weirdass button glitch +- Beginning of very buggy multi-world support + #### \[Version 0.18] - - Small permissions handling update. + +- Small permissions handling update. + #### \[Version 0.17] - - Core GM support removed, depends on FakePermissions if you use GM. + +- Core GM support removed, depends on FakePermissions if you use GM. + #### \[Version 0.16] - - Fixed Permissions, will work with GroupManager, Permissions 2.0, or Permissions 2.1 - - Left-clicking to activate a stargate works again + +- Fixed Permissions, will work with GroupManager, Permissions 2.0, or Permissions 2.1 +- Left-clicking to activate a stargate works again + #### \[Version 0.15] - - Built against b424jnks -- As such nothing lower is supported at the moment. - - Moved gate destruction code to onBlockBreak since onBlockDamage no longer handles breaking blocks. - - Removed long constructor. + +- Built against b424jnks -- As such nothing lower is supported at the moment. +- Moved gate destruction code to onBlockBreak since onBlockDamage no longer handles breaking blocks. +- Removed long constructor. + #### \[Version 0.14] - - Fixed infinite loop in fixed gates. - - Fixed gate destination will not open when dialed into. + +- Fixed infinite loop in fixed gates. +- Fixed gate destination will not open when dialed into. + #### \[Version 0.13] - - Fixed gates no longer show in destination list. + +- Fixed gates no longer show in destination list. + #### \[Version 0.12] - - Implemented fixed destination block using * in .gate file. This is the recommended method of doing an exit point for custom gates, as the automatic method doesn't work in a lot of cases. - - Split networks up in memory, can now use same name in different networks. As a result, fixed gates must now specify a network. - - Added the ability to have a private gate, which only you can activate. Use the 'P' option to create. - - Fixed but not AlwaysOn gates now open the destination gate. - - Fixed gates now show their network. Existing fixed gates are added to the default network (Sorry! It had to be done) + +- Implemented fixed destination block using * in .gate file. This is the recommended method of doing an exit point for + custom gates, as the automatic method doesn't work in a lot of cases. +- Split networks up in memory, can now use same name in different networks. As a result, fixed gates must now specify a + network. +- Added the ability to have a private gate, which only you can activate. Use the 'P' option to create. +- Fixed but not AlwaysOn gates now open the destination gate. +- Fixed gates now show their network. Existing fixed gates are added to the default network (Sorry! It had to be done) + #### \[Version 0.11] - - Fuuuu- Some code got undid and broke everything. Fixed. + +- Fuuuu- Some code got undid and broke everything. Fixed. + #### \[Version 0.10] - - Hopefully fixed the "No position found" bug. - - If dest > origin, any blocks past origin.size will drop you at dest[0] - - Switched to scheduler instead of our own thread for closing gates and deactivating signs - - No longer depend on Permissions, use it as an option. isOp() used as defaults. + +- Hopefully fixed the "No position found" bug. +- If dest > origin, any blocks past origin.size will drop you at dest[0] +- Switched to scheduler instead of our own thread for closing gates and deactivating signs +- No longer depend on Permissions, use it as an option. isOp() used as defaults. + #### \[Version 0.09] - - Gates can now be any shape + +- Gates can now be any shape + #### \[Version 0.08] - - Gates can now consist of any material. - - You can left or right click the button to open a gate - - Gates are now initialized on sign placement, not more right clicking! + +- Gates can now consist of any material. +- You can left or right click the button to open a gate +- Gates are now initialized on sign placement, not more right clicking! + #### \[Version 0.07] - - Fixed where the default gate is saved to. + +- Fixed where the default gate is saved to. + #### \[Version 0.06] - - Forgot to make gates load from new location, oops + +- Forgot to make gates load from new location, oops + #### \[Version 0.05] - - Moved Stargate files into the plugins/Stargate/ folder - - Added migration code so old gates/portals are ported to new folder structure - - Create default config.yml if it doesn't exist - - Fixed removing a gate, it is now completely removed + +- Moved Stargate files into the plugins/Stargate/ folder +- Added migration code so old gates/portals are ported to new folder structure +- Create default config.yml if it doesn't exist +- Fixed removing a gate, it is now completely removed + #### \[Version 0.04] - - Updated to multi-world Bukkit + +- Updated to multi-world Bukkit + #### \[Version 0.03] - - Changed package to net.TheDgtl.* - - Everything now uses Blox instead of Block objects - - Started on vehicle code, but it's still buggy \ No newline at end of file + +- Changed package to net.TheDgtl.* +- Everything now uses Blox instead of Block objects +- Started on vehicle code, but it's still buggy \ No newline at end of file diff --git a/pom.xml b/pom.xml index 9cdaa33..285e6f9 100644 --- a/pom.xml +++ b/pom.xml @@ -1,9 +1,10 @@ - - 4.0.0 + + 4.0.0 - net.knarcraft - Stargate - 0.9.0.0 + net.knarcraft + Stargate + 0.9.0.0 @@ -12,34 +13,34 @@ - - UTF-8 + + UTF-8 16 16 - + - - - spigot-repo - https://hub.spigotmc.org/nexus/content/groups/public/ - - - vault-repo - http://nexus.hc.to/content/repositories/pub_releases - - + + + spigot-repo + https://hub.spigotmc.org/nexus/content/groups/public/ + + + vault-repo + http://nexus.hc.to/content/repositories/pub_releases + + - - - org.spigotmc - spigot-api - 1.17.1-R0.1-SNAPSHOT - - - net.milkbowl.vault - VaultAPI - 1.7 - + + + org.spigotmc + spigot-api + 1.17.1-R0.1-SNAPSHOT + + + net.milkbowl.vault + VaultAPI + 1.7 + org.junit.jupiter junit-jupiter-api @@ -58,26 +59,26 @@ 19.0.0 compile - - junit - junit - 4.13.1 - test - - + + junit + junit + 4.13.1 + test + + - - src/main/java - - - org.apache.maven.plugins - maven-compiler-plugin - 3.6.1 - - 1.8 - 1.8 - - - - + + src/main/java + + + org.apache.maven.plugins + maven-compiler-plugin + 3.6.1 + + 1.8 + 1.8 + + + + \ No newline at end of file diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 605386f..ebaef5b 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -38,17 +38,17 @@ gates: maxGatesEachNetwork: 0 defaultGateNetwork: central cosmetic: - rememberDestination: false - sortNetworkDestinations: false - signColor: BLACK + rememberDestination: false + sortNetworkDestinations: false + signColor: BLACK integrity: - destroyedByExplosion: false - verifyPortals: false - protectEntrance: false - ignoreEntrance: false + destroyedByExplosion: false + verifyPortals: false + protectEntrance: false + ignoreEntrance: false functionality: - enableBungee: false - handleVehicles: true + enableBungee: false + handleVehicles: true economy: useEconomy: false createCost: 0 diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 0d3bb20..c52e5a1 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -3,10 +3,10 @@ main: net.knarcraft.stargate.Stargate version: 0.9.0.0 description: Stargate mod for Bukkit author: EpicKnarvik97 -authors: [Drakia, PseudoKnight, EpicKnarvik97] +authors: [ Drakia, PseudoKnight, EpicKnarvik97 ] website: https://knarcraft.net api-version: 1.16 -softdepend: [Vault] +softdepend: [ Vault ] commands: stargate: aliases: diff --git a/src/test/java/net/knarcraft/stargate/portal/GateLayoutTest.java b/src/test/java/net/knarcraft/stargate/portal/GateLayoutTest.java index 7e767c9..f1a24cd 100644 --- a/src/test/java/net/knarcraft/stargate/portal/GateLayoutTest.java +++ b/src/test/java/net/knarcraft/stargate/portal/GateLayoutTest.java @@ -1,21 +1,20 @@ package net.knarcraft.stargate.portal; +import be.seeseemelk.mockbukkit.MockBukkit; import be.seeseemelk.mockbukkit.ServerMock; import be.seeseemelk.mockbukkit.WorldMock; -import net.knarcraft.stargate.container.RelativeBlockVector; import net.knarcraft.stargate.Stargate; +import net.knarcraft.stargate.container.RelativeBlockVector; import org.bukkit.Material; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; - -import be.seeseemelk.mockbukkit.MockBukkit; - import java.util.ArrayList; import java.util.List; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + public class GateLayoutTest { private static GateLayout layout;