Commit Graph

455 Commits

Author SHA1 Message Date
99f8a92857 Adds a highlightSignColor option and fixes some color inconsistencies
Makes all characters used for highlighting/marking use the highlighting color
Adds a new config option for highlighting color
Renames signColor to mainSignColor and adds the change to the config-migrations.txt file
2021-10-31 18:08:58 +01:00
01df8db0bf Moves config loading to finisSetup() to prevent a NullPointerException 2021-10-31 18:05:04 +01:00
d754247455 Makes some smaller changes
Some checks failed
EpicKnarvik97/Stargate/pipeline/head There was a failure building this commit
Replaces the mystery code in sendMessage with translateAlternateColorCodes and removes the TODO
Removes the TODO in deactivate() as it is actually necessary because fixed portals are always active
Moves conflictsWithExistingGate to PortalCreator and removes the TODO for now
Removes the extra spaces in >Random<
Adjusts some comments
Adds missing information about Economy and the requirement of UUIDs
2021-10-31 14:05:06 +01:00
50c446f9d9 Adds package JavaDoc to help anyone who wants to use the Stargate API 2021-10-29 21:19:24 +02:00
56bf51f370 Adds missing JavaDoc 2021-10-29 18:43:22 +02:00
56ed0495b0 Removes the last of the unprotected variables from Stargate
Makes all classes use getInstance() to get a Stargate instance
Removes the server variable as it's not needed
2021-10-29 18:35:20 +02:00
0237f45046 Renames activatedTime to triggeredTime and makes some public fields private
Makes the active portals queue and open portals queue and languageLoader fields private
Cleans the StargateThread a bit
Renames activatedTime to triggeredTime as the dual use (open and activate) made the name confusing
2021-10-29 17:22:58 +02:00
5d84e1d78a Changes some sign coloring and adds some missing info to the readme
Makes the Disconnected message red
Makes the highlighting characters (><) white when cycling stargate destinations
Moves markPortalWithInvalidGate to PortalSignDrawer
Adds missing translation strings for reloaded and signInvalidGate to the readme
Moves some extra spacing around the >< characters
2021-10-29 16:05:23 +02:00
f52ba79ae9 Splits the preventExitSuffocation method and improves some more comments 2021-10-29 15:08:44 +02:00
945798916b Removes an unnecessary portal close statement after teleporting a player through BungeeCord 2021-10-29 15:07:45 +02:00
f0e5cd45a4 Adds some minor style improvements 2021-10-29 01:46:15 +02:00
487cb3ad9e Adds missing info about Bungee-related permissions to the readme and adjusts permissions a bit
Adds stargate.server and stargate.admin.bungee permissions to the readme
Renames stargate.reload to stargate.admin.reload for better consistency
Makes the stargate.admin permission only give the reload, hidden, private and bungee permissions while the wildcard permission gives all permissions
2021-10-29 01:45:50 +02:00
544384f69b Cleans up permissions a lot and adds missing permissions to plugin.yml
Removes the checking of both parent and child by adding the child permissions to plugin.yml
Cleans comments in the PermissionHelper class
Renames hasPermDeep to hasPermissionImplicit as I finally understand how it's supposed to work
Adds missing unmock() to prevent test errors
Adds a ton of permissions which were mentioned in the code, but did not exist in the plugin.yml
2021-10-28 18:29:33 +02:00
3fc0e6963a Adds tests for the material helper and adds all chest variations as button compatible 2021-10-27 20:56:56 +02:00
5c730eb613 Fixes some portal closing bugs, a NullPointerException and a typo
Fixes a typo in nn-no
Fixes a bug causing always-on portals not to be closed properly
Fixes a possible NullPointerException in onEntityPortalEnter
Waits for block change request on reload which makes it possible to change the open-material with just a reload
2021-10-26 16:22:20 +02:00
1c906528f2 Cleans up message logging quite a bit
Adds methods to Stargate for easier logging and less redundancy
Loads the language loader in two parts to make it available while loading
Adds a translated string to the reload-message
Uses String.format to make long messages more readable
Makes it possible to get strings directly from the backup language to make debugging easier
2021-10-26 15:05:05 +02:00
669767ef89 Renames RelativeBlockVector's right, depth and distance to right, down and out respectively 2021-10-24 22:48:13 +02:00
822f8fb2b5 Changes BungeeCord messages to use UUID instead of player name 2021-10-24 21:15:43 +02:00
3367d4bb76 Disables the generation of buttons on bungee portals 2021-10-23 22:17:02 +02:00
a100ad3fea Fixes a check which broke all bungee portals 2021-10-23 22:16:36 +02:00
2541391d3e Moves all config related code from Stargate to StargateConfig 2021-10-23 18:34:31 +02:00
b7998023f5 Moves activeTime and openTime into the StargateGateConfig 2021-10-23 14:35:07 +02:00
deba2e5c2c Makes the stargate logger private 2021-10-23 14:25:46 +02:00
7cc8685e26 Moves all methods for sending messages to players to the MessageSender class 2021-10-23 14:10:33 +02:00
50084c40f9 Moves the Bungee Queue to BungeeHelper 2021-10-23 12:58:31 +02:00
2196d5b99e Moves some config values from StarGate and into the StarGateConfig class
Renames EconomyHandler to EconomyConfig and puts it in the new config package
Moves the LanguageLoader to the config package
Fixes the explanation of chargeFreeDestination in the README
2021-10-23 03:56:59 +02:00
070e7250df Re-draws every portal sign each time a new world is loaded to prevent weird states 2021-10-22 21:56:35 +02:00
9a0f16e558 Moves the portal owner name and owner UUID to the PortalOwner class which makes the TwoTuple unnecessary 2021-10-22 19:51:46 +02:00
485ca284b0 Extracts portal saving and loading to the PortalFileHelper class 2021-10-22 16:18:35 +02:00
4e09b44c7c Extracts portal registration and all portal lookup to the PortalRegistry class 2021-10-21 23:59:16 +02:00
593d528bcd Extracts the portal creation and validation part of the PortalHandler into the PortalCreator 2021-10-21 20:15:29 +02:00
cb2f7443f5 Improves comments for PortalOptions 2021-10-21 16:39:35 +02:00
8eff9ae5e6 Fixes comments for the PortalOpener class 2021-10-21 00:27:42 +02:00
4b42d4914a Renames openTime to activatedTime, though it's kind of used for both opening and activation 2021-10-20 20:57:00 +02:00
2650e31d97 Fixes comments for the portal activator 2021-10-20 20:55:51 +02:00
d2e8c81a5a Splits the portal class into Portal, PortalActivator, PortalOpener and PortalStructure
PortalStructure now contains information about the gate's physical structure, such as the location of border blocks, the location of entrances, the gate type and the button location.
PortalActivator is responsible for activating/de-activating portals, destination toggling and getting information about available destinations.
PortalOpener is responsible for opening/closing a portal. It's also the place to go for checking if the portal is open for a given player.
Comments of the Portal class have been improved, but the comments of the three new classes need fixing.
2021-10-20 16:09:35 +02:00
635d08b1b3 Makes the SignHelper helper class into the proper PortalSignDrawer which each Portal now has one instance of 2021-10-20 01:33:36 +02:00
1d4b988ca4 Moves the rest of the sign drawing code from Portal to SignHelper 2021-10-18 19:12:30 +02:00
82ed28bba0 Removes the DirectionHelper's getBlockAt method as it only increased complexity 2021-10-18 18:52:24 +02:00
0506cf1b61 Splits the PortalTeleporter into a PlayerTeleporter and a VehicleTeleporter for better structuring
Moves player-related teleportation code to PlayerTeleporter, moves vehicle-related teleportation code to VehicleTeleporter and makes them both extend the Teleporter which now contains all common teleportation code.
2021-10-18 18:38:36 +02:00
f4ec5e05d6 Improves sign drawing during portal loading
Adds "Invalid gate" to the last line of portals with an invalid or unloaded gate type
Re-draws all portals' signs on load in case some invalid portals becomes valid. This also updates any formatting
2021-10-18 18:34:35 +02:00
8c16ddbed5 Adds some tests to the relative block vector 2021-10-18 15:22:55 +02:00
27b1f0641e Adds some block location tests 2021-10-18 14:57:12 +02:00
ac045fa7db Fixes a severe bug caused by trying to simplify GateLayout's saveLayout method 2021-10-18 04:00:18 +02:00
982d8abf65 Extracts teleportation code into the PortalTeleporter class to improve readability 2021-10-18 03:41:16 +02:00
f96e8ed2da Adds a method for checking if a player can afford a given fee 2021-10-18 03:36:56 +02:00
d9ae5456cc Improves permission checking for vehicles with multiple passengers
Changes some log messages into debug messages
Makes sure that all player passengers of a vehicle have their permissions verified and fee paid. This ensures passengers won't get a free ride, or be allowed to access restricted areas by playing stowaway.
2021-10-18 03:35:59 +02:00
fabe0dda80 Fixes inconsistencies in coloring of the portal name when drawing signs. The - is now white. 2021-10-17 22:47:27 +02:00
3de785d5ab Improves and fixes comments for the gate layout class 2021-10-16 16:44:11 +02:00
59069d1423 Improves comments in the GateHandler class and extracts some code into GateReader
Moves code for reading .gate files into the GateReader helper class
Improves all comments in GateHandler where possible
Adds more helper comments
2021-10-15 22:16:02 +02:00
5299efaa86 Renames types to characterMaterialMap inside the GateHandler class 2021-10-15 19:46:25 +02:00
e2c91c1feb Changes EconomyHandler method names to be more consistent 2021-10-15 19:25:31 +02:00
d45af537cd Removes the unused getCorners method 2021-10-15 19:24:15 +02:00
6e658003e0 Improves Gate comments where possible
Renames types to characterMaterialMap
Simplifies writeConfig to a single method
2021-10-15 19:23:17 +02:00
44325eeb6a Improves and fixes comments for listeners
Removes the enableBungee check in the BungeeCordListener as it should only be listening if the option is enabled anyway
Improves the checking for players teleporting from the end
2021-10-13 16:46:30 +02:00
bf7a10636e Improves comments for Stargate events, and adds a new event for teleporting entities
Adds information about what events can be used for
Tries to clarify event comments where possible
Renames The StargatePortalEvent to StargatePlayerPortalEvent
Adds StargateEntityPortalEvent
Makes the StargateEntityPortalEvent trigger whenever a vehicle is teleported
Removes the unused event name for all events
2021-10-13 15:45:15 +02:00
0ab6cb52c0 Makes some small comment adjustments 2021-10-13 14:08:38 +02:00
f16a7089f4 Updates the comments for BlockLocation 2021-10-13 13:35:56 +02:00
4bdc5b6bd9 Populates default gates after migrating config to update default gates for old installations 2021-10-12 20:41:45 +02:00
0709c18e30 Adjusts height to get above slabs to an entire block as empty minecarts clipped through single slab layers 2021-10-12 03:48:13 +02:00
e14007380f Adds proper checking and odd case catching before teleporting players through artificial end portals
Adds a proper permission check to make sure players are allowed to teleport through the artificial portal
Adds a teleportation back to the entrance as the teleportation event cannot be properly cancelled
Adds a proper class for storing info about the teleportation
2021-10-12 02:47:09 +02:00
53cd55938b Fixes teleportation of players using end portals to and from the end 2021-10-12 01:11:52 +02:00
51afa1527f Updates the API version used as 1.16 is no longer the target version 2021-10-11 20:16:36 +02:00
72c1b5a239 Updates About information 2021-10-11 20:13:50 +02:00
06757ef9ee Removes debug output for chunk unloading 2021-10-11 01:20:50 +02:00
9efc960696 Makes sure to check entrance blocks when, and only when, protectEntrance is enabled 2021-10-11 00:11:04 +02:00
1bf9914c39 Generifies another vehicle check 2021-10-11 00:03:49 +02:00
05123d54bd Generifies the check for non-living vehicles just in case 2021-10-10 23:38:20 +02:00
2e4d545955 Changes the vehicle check to prevent players in boats from leaving their boat to teleport 2021-10-10 23:17:29 +02:00
f8fae1fbf1 Makes sure to ignore mounted players if handleVehicles is disabled 2021-10-10 23:11:52 +02:00
964eb0f898 Adds a new The End- inspired gate for more default diversity 2021-10-10 23:03:39 +02:00
38ea543b80 Improves chunk unloading
Adds all chunk unloading to a queue
Adds a thread which unloads chunks
Updates chunk unload requests such that a chunk won't be unloaded twice,
and an old unloading request cannot unload a chunk too soon
2021-10-10 22:33:30 +02:00
69a62c921c Fixes the color inconsistency for the portal selection "arrows" for gates with colored names 2021-10-10 17:21:19 +02:00
b847002617 Adds some small changes which seem to completely fix all horse teleportation bugs. Fixes #1 2021-10-10 17:15:00 +02:00
6ad7fa4cb9 Removes the IllegalStateException Removing entity while ticking! TODO as it seems to have been fixed by preventing portal creation 2021-10-10 16:14:51 +02:00
2abe10bcde Improves the way chunks are loaded, and decreases the wait time before players are put into minecarts 2021-10-10 15:10:36 +02:00
7a9dbb8046 Implements some Java 14 code migrations 2021-10-09 23:41:19 +02:00
be8de83bcc Forces a teleported horse to become tamed 2021-10-09 18:48:59 +02:00
ba3304a716 Fixes a minecart rotation bug caused by changing the rotation of the deleted vehicle instead of the new one 2021-10-09 17:03:19 +02:00
051a6b8f98 Removes the temporary ignoreEntrances option and replaces it with proper snowman blocking. Fixes #3
Allows new gates to contain water as underwater gates are a thing now
Adds a check to prevent snowmen from placing snow inside a portal's entrance
Removes the ignoreEntrances option everywhere
2021-10-09 15:09:14 +02:00
f87ffc906c Minor comment and formatting cleanup 2021-10-09 03:57:24 +02:00
2fec641d9d Fixes typos 2021-10-08 23:23:06 +02:00
0c29788a31 Fixes the behavior of backwards portals
Fixes a bug where backwards portals only rotated the player
Fixes the rotation being wrong when teleporting from a backwards portal
2021-10-08 18:59:14 +02:00
fff4d8d78b Gets rid of the rest of the modX and modY usages, and removes some unused code 2021-10-08 18:23:42 +02:00
6d5c4802bc Creates some new methods to get a location from a relative location which I can actually understand 2021-10-08 15:28:12 +02:00
e7fc1daafe Moves functionality to the PortalOptions and PortalLocation classes 2021-10-08 01:26:12 +02:00
60c543e52a Adds a new class for keeping track of portal options 2021-10-08 01:25:25 +02:00
76b2aab057 Tries to improve readability of the portal creation code 2021-10-06 19:46:34 +02:00
201f7eaf15 Adds a class for storing a portal's location data 2021-10-06 19:45:49 +02:00
d86aae87f3 Extracts portal creation validation into its own method 2021-09-25 13:52:00 +02:00
e4f71f1b71 Extracts some portal creation code into separate methods 2021-09-25 13:22:50 +02:00
7dcf050d96 Removes a function for checking if a control block is powered as it's never used 2021-09-25 12:46:59 +02:00
8ada84ddb3 Improves an error message 2021-09-23 18:21:15 +02:00
98cee192aa Fixes some behavior when a language is valid, but the language file does not exist 2021-09-23 18:12:57 +02:00
650a26402a Moves all config migration mappings to its own file 2021-09-23 17:50:43 +02:00
461202503e Adds migration for useiconomy and CheckUpdates which were found in old config files 2021-09-22 13:52:22 +02:00
dd7176fa12 Adds config migration to reduce annoyance and improve backwards compatibility 2021-09-22 13:42:21 +02:00
b7c7252fad Improves the differentiation between portals (stargates) and gates 2021-09-21 18:28:18 +02:00
24af26324a Renames some methods to prevent confusion 2021-09-20 19:23:57 +02:00
f2579c4b12 Adds back default constructor as removing it caused it to no longer load 2021-09-20 18:52:16 +02:00
1e29db58b9 Improves some variable names and adds some comments 2021-09-20 18:22:20 +02:00
d24f35375a Changes the default folders to prevent problems on Unix systems 2021-09-20 18:21:26 +02:00
f681db629f Refactors a lot of code, and extracts permission-related functions to the PermissionHelper class 2021-09-20 13:56:30 +02:00
b57f988b62 Improves formatting for some files 2021-09-20 13:48:03 +02:00
f12306426b Renames strings in onCommand to args for consistency 2021-09-20 13:46:20 +02:00
8ff30ed03f Improves config readability, but breaks backwards compatibility 2021-09-19 17:46:20 +02:00
d5e6f1145c Removes unused getBalance method 2021-09-19 15:06:41 +02:00
8835e69e3c Moves some code from Stargate to EconomyHandler 2021-09-19 15:05:19 +02:00
b191ac1de5 Moves some classes to the new container package, and improves some code 2021-09-18 21:51:29 +02:00
4851a0b5e2 Only gets vehicle exit world when it's actually used 2021-09-16 21:31:32 +02:00
e253e95cec Minor function cleaning 2021-09-12 15:23:22 +02:00
c35378cfe0 Improves pre-teleport chunk loading 2021-09-12 06:18:20 +02:00
319849fd96 Prevents suffocation when teleporting on a horse 2021-09-12 06:02:10 +02:00
abd48b646d Fixes code for slab checking to prevent the player from teleporting underneath the block 2021-09-12 02:21:13 +02:00
19018e46b8 Fixes some bugs regarding bungee teleportation
Fixes the server being teleported normally after it's teleported to another server
Fixes a nullpointerexception
2021-09-12 01:23:16 +02:00
ec4ed1e086 Fixes some more warnings 2021-09-11 17:02:43 +02:00
5c601710e7 Removes the unused frameBlocks variable and isGateBlock 2021-09-11 16:44:55 +02:00
a6fb7dcb62 Fixes some warnings 2021-09-11 16:43:31 +02:00
1c3dbbe81d Renames the blox populator and block populator thread as I finally understand what they actually do 2021-09-11 15:33:45 +02:00
87735e4935 Adds some helper functions to make getting direction-related values easier
Adds a function for getting the yaw given two locations
Adds a function for getting a block face given a yaw
2021-09-11 15:04:55 +02:00
93f8f715e5 Fixes some old bugs and renames rotX to yaw
Fixes the direction of minecarts sent through a portal. This prevent the minecarts to go back through the portal
and causing a lot of confusion
2021-09-10 23:38:56 +02:00
b4059dd169 Adds an event listener to prevent the nether portal stargates from creating actual nether portals 2021-09-10 23:35:27 +02:00
a86a5de8c3 Fixes the bug with teleporting horses, but introduces a bug with teleporting minecarts 2021-09-10 21:32:58 +02:00
8ae4ac3fc7 Makes sure to only try and create the portal folder if it does not exist 2021-09-09 15:42:30 +02:00
3ac6270897 Merge branch 'master' into vehicles 2021-09-09 15:26:25 +02:00
daa3c6f868 Cleans up a bit and changes to compile for java 16 and spigot 1.17 2021-09-09 15:25:08 +02:00
75fbd44af7 Removes an s in class name of PlayerEventsListener 2021-09-02 00:31:03 +02:00
0fe2a5b380 Adds some more fixes and improvements for vehicle teleportation 2021-06-11 20:46:14 +02:00
b1aa53c1a9 Adds missing comments to BlockPopulatorThread and make end gateways teleport entities back to itself to prevent strange behavior
Because of the teleport change, end gateways work to teleport player,
and end gateways work to the end for vehicles, but vehicles cannot teleport back from the end
2021-03-02 17:55:14 +01:00
44dfa2a10d Greatly refactors gate loading 2021-02-28 21:53:27 +01:00
504ef1b52f Adds remaining missing comments to Portal 2021-02-27 22:50:44 +01:00
da32cf11d1 Fixes some things regarding vehicle teleportation
Adds extra space between the portal and the vehicle if the destination portal is always on
Fixes a bug causing vehicles not being detected soon enough
Fixes boats facing into the portal rather than out from the portal
Fixes boats spawning inside water rather than on top of it if water is in front of a portal
2021-02-27 22:34:10 +01:00
ba64572254 Adds more comments, simplifies some code and improves positioning of teleported large entities, like horses 2021-02-27 21:17:36 +01:00
79703e49af Adds a class which helps with modZ and modX calculations 2021-02-27 21:15:39 +01:00
496b5d9779 Moves sign drawing to a helper class to reduce the complexity of the portal class 2021-02-24 18:12:26 +01:00
378a59586d Heavily simplifies sign drawing and cleans up vehicle teleportation code 2021-02-24 17:48:01 +01:00
2b52759e00 Makes sure teleportation not from a plugin does not trigger vehicle teleportation 2021-02-24 17:45:53 +01:00
4acea17ba3 Fixes boats sometimes not detecting the portal before the player detects the portal 2021-02-23 19:43:49 +01:00
5f685b2460 Fixes some oddities regarding vehicle teleportation
Accounts for size when blocking an entity near a portal from teleporting to the nether
Ignores boats and minecarts when teleporting a vehicle after the player
Makes it easy to get a portal by adjacent entrance for any given range
2021-02-23 19:17:05 +01:00
681014a431 Improves some code formatting in the portal open method 2021-02-23 00:35:48 +01:00
af693bddd2 Fixes the timing of the block populator thread which caused a delay between opening a gate and it displaying as open 2021-02-23 00:35:18 +01:00
151c242e69 Changes names of some variables and one method to increase readability 2021-02-22 20:36:37 +01:00
e5fef0b16a Moves the EconomyHandler to utility and adds some encapsulation for three of its variables 2021-02-22 20:26:10 +01:00
e665a49f03 Adds missing comments to Gate and changes the matches function from n^2 to n execution time 2021-02-22 20:25:07 +01:00
279ea9d8f0 Fixes some nullpointerexceptions in PlayerEventsListener's onPlayerMove 2021-02-22 20:23:12 +01:00
d26196b8aa Adds some extra explanations to gate layout's description 2021-02-22 18:34:23 +01:00
fb70b8bc75 Splits Gate into Gate, GateLayout and GateHandler, and creates a new portal package with portal related classes 2021-02-22 17:01:47 +01:00
c422cb9ea9 Overrides toString and equals methods of the relative block vector to make it testable 2021-02-22 15:49:44 +01:00
a475e8d8b1 Adds missing comments to the world event listener and adds faster gate unloading
Replaces the clear all + load all with a method which just removes all
relevant portals directly. This should be faster, especially with many gates and worlds
2021-02-20 16:21:18 +01:00
1d642bfcf2 Adds missing comments to the vehicle event listener 2021-02-20 14:59:59 +01:00