From 818cd2dfdf1aa097264d6d95f3963d43badb3dff Mon Sep 17 00:00:00 2001 From: Oznobys Date: Wed, 9 Jul 2025 12:48:19 +0300 Subject: [PATCH] =?UTF-8?q?=D0=BA=D0=BE=D0=BD=D1=84=D0=B8=D0=B3-=D1=84?= =?UTF-8?q?=D0=B0=D0=B9=D0=BB=202.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .dockerignore | 5 + .gitignore | 5 + src/plugins/ImageFrame/config.yml | 190 ++++++++++++++++++ .../spark-8f4e94fd6a2-profile-data.jfr.tmp | Bin 0 -> 12206 bytes 4 files changed, 200 insertions(+) create mode 100644 src/plugins/ImageFrame/config.yml create mode 100644 src/plugins/spark/tmp/spark-8f4e94fd6a2-profile-data.jfr.tmp diff --git a/.dockerignore b/.dockerignore index 6cecf6a..7a22d91 100644 --- a/.dockerignore +++ b/.dockerignore @@ -18,5 +18,10 @@ src/plugins/luckperms/libs +src/plugins/ImageFrame/data +src/plugins/ImageFrame/players +src/plugins/ImageFrame/upload +src/map-color-cache.dat + .crowdin src/plugins/PlasmoVoice/voice_mutes.json diff --git a/.gitignore b/.gitignore index b90ff47..bc25266 100644 --- a/.gitignore +++ b/.gitignore @@ -18,5 +18,10 @@ src/plugins/LuckPerms/libs +src/plugins/ImageFrame/data +src/plugins/ImageFrame/players +src/plugins/ImageFrame/upload +src/map-color-cache.dat + .crowdin src/plugins/PlasmoVoice/voice_mutes.json diff --git a/src/plugins/ImageFrame/config.yml b/src/plugins/ImageFrame/config.yml new file mode 100644 index 0000000..3c0f804 --- /dev/null +++ b/src/plugins/ImageFrame/config.yml @@ -0,0 +1,190 @@ +Messages: + Reloaded: '&eImageFrame has been reloaded!' + ImageMapProcessing: '&eImageMap is being processed, please wait!' + # Leave this empty ("") to disable action bar message + ImageMapProcessingActionBar: '&eImageMap &a{Name} &eis being processed{Dots}' + # Leave this empty ("") to disable action bar message + ImageMapQueuedActionBar: '&7ImageMap &a{Name} &eis currently queued ({Position} Remaining)' + ImageMapCreated: '&aImageMap has been created!' + ImageMapRefreshed: '&aImageMap has been refreshed!' + ImageMapDeleted: '&eImageMap had been deleted!' + ImageMapRenamed: '&aImageMap had been renamed!' + ImageMapTogglePaused: '&aToggled ImageMap playback pause!' + ImageMapPlaybackJumpTo: '&aJumped to position at {Seconds} seconds!' + ImageMapPlayerPurge: '&ePurged {Amount} ImageMaps owned by {CreatorName} ({CreatorUUID}) - [{ImageMapNames}]' + SetCreator: '&aImageMap creator of id {ImageID} set to {CreatorName} ({CreatorUUID})' + InvalidOverlayMap: '&cOverlay only works on Vanilla Minecraft maps and without duplicates in selection!' + ImageMapAlreadyQueued: '&cYou already have another ImageMap queued and processing, please wait!' + UnableToLoadMap: '&cImageMap cannot be loaded, there is a problem while reading the image. Contact server administrators to check the server console for more info.' + UnableToChangeImageType: '&cChanging the image type is currently not supported. Please create a new image map instead.' + UnknownError: '&cAn unknown error had occurred.' + ImageOverMaxFileSize: '&cImageMap cannot be loaded as it is over the max file size allowed. ({Size} bytes)' + NotAnImageMap: '&cThat is not an ImageMap' + UploadLink: '&aOpen {URL} on your browser to upload an image, it is valid for 5 minutes.' + UploadExpired: '&cImage upload link had expired, please create a new one.' + URLImageMapInfo: + - '&bImageID: {ImageID}' + - '&aName: {Name}' + - '&eMap Size: {Width} x {Height}' + - '&6Dithering: {DitheringType}' + - '&dCreator: {CreatorName} ({CreatorUUID})' + - '&fAccess: {Access}' + - '&aTime Created: {TimeCreated}' + - '&bMarkers: {Markers}' + - '&eURL: {URL}' + NoPermission: '&cYou do not have permission to do that!' + NoConsole: '&cThis command can only be ran by players!' + PlayerNotFound: '&cThis player cannot be found!' + InvalidUsage: '&cInvalid Usage!' + NotEnoughMaps: '&cYou do not have {Amount} maps!' + Oversize: '&cThat is too big! Max size for a map is {MaxSize}' + URLRestricted: '&cThat URL is restricted and cannot be used to create image maps.' + PlayerCreationLimitReached: '&cYou can only create {Limit} maps at once! Delete some to create new ones' + DuplicateMapName: '&cYou''ve already created an image map with that name!' + MapLookup: '&bList of image maps by {CreatorName} ({CreatorUUID}):' + ItemFrameOccupied: '&cFailed to place or remove some maps on selected ItemFrame, they are either destroyed, replaced, occupied or protected.' + NotEnoughSpace: '&cUnable to place Combined ImageMap as there is not enough room.' + InvalidImageMap: '&cThis image map had likely already been deleted.' + GivenInvisibleFrame: '&aGiven {Amount} invisible item frames to {Player}.' + AccessPermission: + Updated: '&aUpdated access for {PlayerName} ({PlayerUUID}), they now have {Permission} permission.' + Types: + NONE: NONE + GET: GET + MARKER: MARKER + EDIT: EDIT + EDIT_CLONE: EDIT WITH CLONE + ALL: ALL + Selection: + Begin: '&bRight click an Item Frame to select corner 1 and 2' + Clear: '&eLeaving selection mode' + Corner1: '&aSelected Item Frame corner 1' + Corner2: '&aSelected Item Frame corner 2' + Invalid: '&cInvalid selection!' + Oversize: '&cOversize selection! Max size for a map is {MaxSize}' + Success: '&aSelected {Width} x {Height} Item Frames! &eIf any of them are removed/replaced, you will need to select them again.' + NoSelection: '&cYou don''t have a valid selection yet.' + IncorrectSize: '&cYour selection''s size does not match, {Width} x {Height} required.' + Markers: + AddBegin: '&aRight click on an Item Frame containing the map "{Name}" to place marker! &bRun "/imageframe marker cancel" to cancel placement' + AddConfirm: '&aMarker placed!' + Remove: '&eMarker removed!' + Clear: '&eMarkers cleared!' + Cancel: '&eMarker placement cancelled!' + DuplicateName: '&cThere is already a marker with that name!' + NotAMarker: '&cThat is not a valid marker' + NotRenderOnFrameWarning: '&eWarning: This marker type does not render on Item Frames!' + LimitReached: '&cYou can only create {Limit} markers on one map!' + # Date format used where a time based variable is displayed + DateFormat: dd/MM/yyyy HH:mm:ss zzz + Preferences: + Keys: + VIEW_ANIMATED_MAPS: View Animated Maps + Values: + 'TRUE': '&aEnabled' + 'FALSE': '&cDisabled' + UNSET: '&7Unset' + UpdateMessage: '&ePlayer Preference {Preference}&e has been updated to {Value}&e!' + +Settings: + MapItemFormat: '&f{Name} &7({X}, {Y})' + # Whether empty maps are required to create image maps when not in creative + RequireEmptyMaps: true + # Max size of an image map + MaxSize: 30 + # When enabled, Only websites from the list below is allowed to be shown through in-game maps + RestrictImageUrl: + Enabled: false + Whitelist: + - https://i.imgur.com + - http://i.imgur.com + - https://storage.googleapis.com + - http://storage.googleapis.com + - https://cdn.discordapp.com + - http://cdn.discordapp.com + - https://media.discordapp.net + - http://media.discordapp.net + - https://textures.minecraft.net + - http://textures.minecraft.net + # If the image is larger than the defined size, it won't be downloaded for preview + # (In Bytes) + MaxImageFileSize: 30000000 + # If an image takes more than this time to load, it will be rejected + # (In Seconds) + MaxProcessingTime: 60 + # How many images should be processed in parallel + # Updating this option requires a server restart + ParallelProcessingLimit: 1 + # Max amount of image maps a player in the following groups can create + # Setting -1 means unlimited + # To add a player to a group, give the permission "imageframe.createlimit." + # For example "imageframe.createlimit.vip" + # Players with no groups will be treated as "default" unless they have "imageframe.createlimit.unlimited" + PlayerCreationLimit: + default: 10 + vip: 15 + moderator: 20 + # Max amount of markers on an individual map + MapMarkerLimit: 20 + CombinedMapItem: + Name: '&bImageMap &f- &f{Name} &7({Width} x {Height})' + Lore: + - '&aRight Click on Item Frames of size {Width} x {Height} to place ImageMap' + - '' + - '&7ImageID: {ImageID}' + - '&7Creator: {CreatorName} ({CreatorUUID})' + - '&7Time Created: {TimeCreated}' + # How many map packets can be sent to a player in 1/20 of a second + # You can turn this down if you are facing network issues + # However maps might take longer to show to a player + # To disable the rate limit, set to -1 + MapPacketSendingRateLimit: -1 + # Exempt certain map ids from deletion if their ImageFrame map is deleted + # Values can be map ids (For example: "13") or ranges (inclusive) of map ids (For example: "10-13") + ExemptMapIdsFromDeletion: + - '-1' + # This option should only be useful to developers and people who knew what they are doing + MapRenderersContextual: false + # Changing this option requires a restart + HandleAnimatedMapsOnMainThread: false + SendAnimatedMapsOnMainThread: false + # Valid modes are "DYNAMIC" and "MANUAL_PERSISTENT" + # DYNAMIC: load and unload image cache depending on whether a player is viewing + # May use more CPU and image might appear with a slight delay + # MANUAL_PERSISTENT: image cache stay loaded from server start + # May use more memory + # Changing this setting requires a restart + CacheControlMode: DYNAMIC_PERSISTENT + # Set this to true if you have corrupted 0 size map data in the world folder (not the ImageFrame plugin folder) + # Set this to false if your system's file IO is slow + TryDeleteBlankMapFiles: false +# ImageFrame's convenient upload system where you can upload directly through an embedded web server +UploadService: + # Changing this value requires a restart + Enabled: false + # This is only used for displaying to the end user + DisplayURL: http://change.this.to.your.server.ip.in.the.config + WebServer: + # Address in which the webserver binds to, defaults to 0.0.0.0 + # Use 127.0.0.1 to limit to local access + # Changing this value requires a restart + Host: 0.0.0.0 + # Port in which the webserver is hosted, make sure it is not blocked by your firewall + # Changing this value requires a restart + Port: 8517 +# ImageFrame's built in survival friendly way of making invisible item frames +InvisibleFrame: + # Survival friendly way to get invisible item frames by splashing dropped items with invisibility potions + # Set to -1 for unlimited + # Set to 0 to disable + MaxConversionsPerSplash: 8 + # Should empty invisible item frames glow + # Existing frames are not updated until they are interacted with + GlowEmptyFrames: true + +Hooks: + ViaVersion: + # Enable this if your players below 1.13 is having network issues + DisableSmoothAnimationForLegacyPlayers: false +# Enable update notifications for admins +Updater: true diff --git a/src/plugins/spark/tmp/spark-8f4e94fd6a2-profile-data.jfr.tmp b/src/plugins/spark/tmp/spark-8f4e94fd6a2-profile-data.jfr.tmp new file mode 100644 index 0000000000000000000000000000000000000000..d83ad697ba4c4bf8405df5018943a77b01d5392e GIT binary patch literal 12206 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 T?3wZ+s;Q!F;%$zEof-XK@F?@H literal 0 HcmV?d00001