From 42fa569177cbedae9349e3f9a75ddef5cdb55e7e Mon Sep 17 00:00:00 2001 From: Paul Vogel Date: Wed, 12 Nov 2025 16:27:22 +0100 Subject: [PATCH 1/2] add source_code_url and donate_url to Resource and post_date to ResourceUpdate --- docs/Model/Resource.md | 2 + docs/Model/ResourceUpdate.md | 1 + src/Model/Resource.php | 80 +++++++++++++++++++++++++++++++++--- src/Model/ResourceUpdate.php | 34 +++++++++++++++ tests/TestCase.php | 3 ++ 5 files changed, 114 insertions(+), 6 deletions(-) diff --git a/docs/Model/Resource.md b/docs/Model/Resource.md index 5e97747..7ee666a 100644 --- a/docs/Model/Resource.md +++ b/docs/Model/Resource.md @@ -19,5 +19,7 @@ Name | Type | Description | Notes **last_update** | **int** | last update as timestamp (in seconds) | [optional] **external_download_url** | **string** | | [optional] [default to ''] **description** | **string** | | [optional] +**source_code_url** | **string** | | [optional] [default to ''] +**donate_url** | **string** | | [optional] [default to ''] [[Back to Model list]](../../README.md#models) [[Back to API list]](../../README.md#endpoints) [[Back to README]](../../README.md) diff --git a/docs/Model/ResourceUpdate.md b/docs/Model/ResourceUpdate.md index 48b2a96..9431056 100644 --- a/docs/Model/ResourceUpdate.md +++ b/docs/Model/ResourceUpdate.md @@ -8,6 +8,7 @@ Name | Type | Description | Notes **resource_id** | **int** | | [optional] **resource_version** | **string** | | [optional] **download_count** | **int** | | [optional] +**post_date** | **int** | post date as timestamp (in seconds) | [optional] **title** | **string** | | [optional] **message** | **string** | | [optional] diff --git a/src/Model/Resource.php b/src/Model/Resource.php index fd30810..6f90afd 100644 --- a/src/Model/Resource.php +++ b/src/Model/Resource.php @@ -72,7 +72,9 @@ class Resource implements ModelInterface, ArrayAccess, JsonSerializable 'first_release' => 'int', 'last_update' => 'int', 'external_download_url' => 'string', - 'description' => 'string' + 'description' => 'string', + 'source_code_url' => 'string', + 'donate_url' => 'string' ]; /** @@ -95,7 +97,9 @@ class Resource implements ModelInterface, ArrayAccess, JsonSerializable 'first_release' => null, 'last_update' => null, 'external_download_url' => 'uri', - 'description' => null + 'description' => null, + 'source_code_url' => 'uri', + 'donate_url' => 'uri' ]; /** @@ -118,7 +122,9 @@ class Resource implements ModelInterface, ArrayAccess, JsonSerializable 'first_release' => false, 'last_update' => false, 'external_download_url' => false, - 'description' => false + 'description' => false, + 'source_code_url' => false, + 'donate_url' => false ]; /** @@ -221,7 +227,9 @@ public function isNullableSetToNull(string $property): bool 'first_release' => 'first_release', 'last_update' => 'last_update', 'external_download_url' => 'external_download_url', - 'description' => 'description' + 'description' => 'description', + 'source_code_url' => 'source_code_url', + 'donate_url' => 'donate_url' ]; /** @@ -244,7 +252,9 @@ public function isNullableSetToNull(string $property): bool 'first_release' => 'setFirstRelease', 'last_update' => 'setLastUpdate', 'external_download_url' => 'setExternalDownloadUrl', - 'description' => 'setDescription' + 'description' => 'setDescription', + 'source_code_url' => 'setSourceCodeUrl', + 'donate_url' => 'setDonateUrl' ]; /** @@ -267,7 +277,9 @@ public function isNullableSetToNull(string $property): bool 'first_release' => 'getFirstRelease', 'last_update' => 'getLastUpdate', 'external_download_url' => 'getExternalDownloadUrl', - 'description' => 'getDescription' + 'description' => 'getDescription', + 'source_code_url' => 'getSourceCodeUrl', + 'donate_url' => 'getDonateUrl' ]; /** @@ -341,6 +353,8 @@ public function __construct(?array $data = null) $this->setIfExists('last_update', $data ?? [], null); $this->setIfExists('external_download_url', $data ?? [], ''); $this->setIfExists('description', $data ?? [], null); + $this->setIfExists('source_code_url', $data ?? [], ''); + $this->setIfExists('donate_url', $data ?? [], ''); } /** @@ -803,6 +817,60 @@ public function setDescription(?string $description): static return $this; } + + /** + * Gets source_code_url + * + * @return string|null + */ + public function getSourceCodeUrl(): ?string + { + return $this->container['source_code_url']; + } + + /** + * Sets source_code_url + * + * @param string|null $source_code_url source_code_url + * + * @return $this + */ + public function setSourceCodeUrl(?string $source_code_url): static + { + if (is_null($source_code_url)) { + throw new InvalidArgumentException('non-nullable source_code_url cannot be null'); + } + $this->container['source_code_url'] = $source_code_url; + + return $this; + } + + /** + * Gets donate_url + * + * @return string|null + */ + public function getDonateUrl(): ?string + { + return $this->container['donate_url']; + } + + /** + * Sets donate_url + * + * @param string|null $donate_url donate_url + * + * @return $this + */ + public function setDonateUrl(?string $donate_url): static + { + if (is_null($donate_url)) { + throw new InvalidArgumentException('non-nullable donate_url cannot be null'); + } + $this->container['donate_url'] = $donate_url; + + return $this; + } /** * Returns true if offset exists. False otherwise. * diff --git a/src/Model/ResourceUpdate.php b/src/Model/ResourceUpdate.php index 6e55ecf..7825f50 100644 --- a/src/Model/ResourceUpdate.php +++ b/src/Model/ResourceUpdate.php @@ -62,6 +62,7 @@ class ResourceUpdate implements ModelInterface, ArrayAccess, JsonSerializable 'resource_id' => 'int', 'resource_version' => 'string', 'download_count' => 'int', + 'post_date' => 'int', 'title' => 'string', 'message' => 'string' ]; @@ -76,6 +77,7 @@ class ResourceUpdate implements ModelInterface, ArrayAccess, JsonSerializable 'resource_id' => null, 'resource_version' => null, 'download_count' => null, + 'post_date' => null, 'title' => null, 'message' => null ]; @@ -90,6 +92,7 @@ class ResourceUpdate implements ModelInterface, ArrayAccess, JsonSerializable 'resource_id' => false, 'resource_version' => false, 'download_count' => false, + 'post_date' => false, 'title' => false, 'message' => false ]; @@ -184,6 +187,7 @@ public function isNullableSetToNull(string $property): bool 'resource_id' => 'resource_id', 'resource_version' => 'resource_version', 'download_count' => 'download_count', + 'post_date' => 'post_date', 'title' => 'title', 'message' => 'message' ]; @@ -198,6 +202,7 @@ public function isNullableSetToNull(string $property): bool 'resource_id' => 'setResourceId', 'resource_version' => 'setResourceVersion', 'download_count' => 'setDownloadCount', + 'post_date' => 'setPostDate', 'title' => 'setTitle', 'message' => 'setMessage' ]; @@ -212,6 +217,7 @@ public function isNullableSetToNull(string $property): bool 'resource_id' => 'getResourceId', 'resource_version' => 'getResourceVersion', 'download_count' => 'getDownloadCount', + 'post_date' => 'getPostDate', 'title' => 'getTitle', 'message' => 'getMessage' ]; @@ -276,6 +282,7 @@ public function __construct(?array $data = null) $this->setIfExists('resource_id', $data ?? [], null); $this->setIfExists('resource_version', $data ?? [], null); $this->setIfExists('download_count', $data ?? [], null); + $this->setIfExists('post_date', $data ?? [], null); $this->setIfExists('title', $data ?? [], null); $this->setIfExists('message', $data ?? [], null); } @@ -430,6 +437,33 @@ public function setDownloadCount(?int $download_count): static return $this; } + /** + * Gets post_date + * + * @return int|null + */ + public function getPostDate(): ?int + { + return $this->container['post_date']; + } + + /** + * Sets post_date + * + * @param int|null $post_date post date as timestamp (in seconds) + * + * @return $this + */ + public function setPostDate(?int $post_date): static + { + if (is_null($post_date)) { + throw new InvalidArgumentException('non-nullable post_date cannot be null'); + } + $this->container['post_date'] = $post_date; + + return $this; + } + /** * Gets title * diff --git a/tests/TestCase.php b/tests/TestCase.php index 9cf2f25..04738de 100644 --- a/tests/TestCase.php +++ b/tests/TestCase.php @@ -78,6 +78,8 @@ protected function assertValidProject(Project $project): void $this->assertNotNull($project->getData()->getDescription()); $this->assertNotNull($project->getData()->getFirstRelease()); $this->assertNotNull($project->getData()->getLastUpdate()); + $this->assertNotNull($project->getData()->getSourceCodeUrl()); + $this->assertNotNull($project->getData()->getDonateUrl()); } protected function assertValidVersion(Version $version): void @@ -89,6 +91,7 @@ protected function assertValidVersion(Version $version): void $this->assertNotNull($version->getData()->getDownloadCount()); $this->assertNotNull($version->getData()->getTitle()); $this->assertNotNull($version->getData()->getMessage()); + $this->assertNotNull($version->getData()->getPostDate()); } protected function assertValidPaginatedList(PaginatedList $list): void From c14f70bb9b65438675fbd9cab3e0a17aa799df82 Mon Sep 17 00:00:00 2001 From: Paul Vogel Date: Sat, 15 Nov 2025 17:23:19 +0100 Subject: [PATCH 2/2] update fixtures --- tests/Unit/Client/Fixtures/getResource.json | 8 ++-- .../Client/Fixtures/getResourceUpdate.json | 5 +- .../Client/Fixtures/getResourceUpdates.json | 28 +++++++---- .../Client/Fixtures/getResourcesByAuthor.json | 34 ++++++++----- tests/Unit/Client/Fixtures/listResources.json | 48 +++++++++++++------ .../listResourcesInSpigotCategory.json | 46 +++++++++++++----- 6 files changed, 115 insertions(+), 54 deletions(-) diff --git a/tests/Unit/Client/Fixtures/getResource.json b/tests/Unit/Client/Fixtures/getResource.json index d0b2ebc..7ac1c73 100644 --- a/tests/Unit/Client/Fixtures/getResource.json +++ b/tests/Unit/Client/Fixtures/getResource.json @@ -36,7 +36,7 @@ "currency": "" }, "stats": { - "downloads": 246550, + "downloads": 253464, "updates": 21, "reviews": { "unique": 91, @@ -47,5 +47,7 @@ "external_download_url": "", "first_release": 1527527040, "last_update": 1733070687, - "description": "[CENTER][B][SIZE=7][IMG]https://i.imgur.com/ykHn9vx.png[/IMG] [/SIZE][/B]\n[SIZE=4][B]spark is a performance profiler for Minecraft clients, servers and proxies.[/B][/SIZE]\n[/CENTER]\n[B]Useful Links[/B]\n[LIST]\n[*][B][URL='https://spark.lucko.me/']Website[/URL][/B] - browse the project homepage\n[*][B][URL='https://spark.lucko.me/docs']Documentation[/URL][/B] - read documentation and usage guides\n[*][B][URL='https://spark.lucko.me/download']Downloads[/URL][/B] - latest development builds\n[/LIST]\n[B][SIZE=5]What does it do?[/SIZE][/B]\nspark is made up of a number of components, each detailed separately below.\n[LIST]\n[*][B]CPU Profiler[/B]: Diagnose performance issues.\n[*][B]Memory Inspection[/B]: Diagnose memory issues.\n[*][B]Server Health Reporting[/B]: Keep track of overall server health.\n[/LIST]\n\n[B][SIZE=6]⚡ CPU Profiler[/SIZE][/B]\nspark's profiler can be used to diagnose performance issues: \"lag\", low tick rate, high CPU usage, etc.\n\nIt is:\n[LIST]\n[*][B]Lightweight[/B] - can be ran in production with minimal impact.\n[*][B]Easy to use[/B] - no configuration or setup necessary, just install the plugin/mod.\n[*][B]Quick to produce results[/B] - running for just ~30 seconds is enough to produce useful insights into problematic areas for performance.\n[*][B]Customisable[/B] - can be tuned to target specific threads, sample at a specific interval, record only \"laggy\" periods, etc\n[*][B]Highly readable[/B] - simple tree structure lends itself to easy analysis and interpretation. The viewer can also apply deobfuscation mappings.\n[/LIST]\nIt works by sampling statistical data about the systems activity, and constructing a call graph based on this data. The call graph is then displayed in an online viewer for further analysis by the user.\n\nThere are two different profiler engines:\n[LIST]\n[*]Native [ICODE]AsyncGetCallTrace[/ICODE] + [ICODE]perf_events[/ICODE] - uses [URL='https://github.com/jvm-profiling-tools/async-profiler']async-profiler[/URL] ([I]only available on Linux x86_64 systems[/I])\n[*]Built-in Java [ICODE]ThreadMXBean[/ICODE] - an improved version of the popular [URL='https://github.com/sk89q/WarmRoast']WarmRoast profiler[/URL] by sk89q.\n[/LIST]\n[B]\n[SIZE=6]⚡ Memory Inspection[/SIZE][/B]\nspark includes a number of tools which are useful for diagnosing memory issues with a server.\n[LIST]\n[*][B]Heap Summary[/B] - take & analyse a basic snapshot of the servers memory\n[LIST]\n[*]A simple view of the JVM's heap, see memory usage and instance counts for each class\n[*]Not intended to be a full replacement of proper memory analysis tools. (see below)\n[/LIST]\n[/LIST]\n[LIST]\n[*][B]Heap Dump[/B] - take a full (HPROF) snapshot of the servers memory\n[LIST]\n[*]Dumps (& optionally compresses) a full snapshot of JVM's heap.\n[*]This snapshot can then be inspected using conventional analysis tools.\n[/LIST]\n[/LIST]\n[LIST]\n[*][B]GC Monitoring[/B] - monitor garbage collection activity on the server\n[LIST]\n[*]Allows the user to relate GC activity to game server hangs, and easily see how long they are taking & how much memory is being free'd.\n[*]Observe frequency/duration of young/old generation garbage collections to inform which GC tuning flags to use\n[/LIST]\n[/LIST]\n[B][SIZE=6]⚡ Server Health Reporting[/SIZE][/B]\nspark can report a number of metrics summarising the servers overall health.\n\nThese metrics include:\n[LIST]\n[*][B]TPS[/B] - ticks per second, to a more accurate degree indicated by the /tps command\n[*][B]Tick Durations[/B] - how long each tick is taking (min, max and average)\n[*][B]CPU Usage[/B] - how much of the CPU is being used by the server process, and by the overall system\n[*][B]Memory Usage[/B] - how much memory is being used by the process\n[*][B]Disk Usage[/B] - how much disk space is free/being used by the system\n[/LIST]\nAs well as providing tick rate averages, spark can also monitor individual ticks - sending a report whenever a single tick's duration exceeds a certain threshold. This can be used to identify trends and the nature of performance issues, relative to other system or game events.\n\n\n[SIZE=5][B]Us[SIZE=5]a[/SIZE]ge[/B][/SIZE]\nTo install, just add the [B]spark.jar[/B] file to your servers plugins directory.\n\nInformation about [URL='https://spark.lucko.me/docs/Command-Usage']how to use commands[/URL] can be found in the docs.\n\nIf you’d like help analysing a profiling report, or just want to chat, feel free to join us on [URL='https://discord.gg/PAGT2fu']Discord[/URL].\n\n\n[B][SIZE=5]Guides[/SIZE][/B]\nThere are a few small \"guides\" available in the docs, covering the following topics.\n[LIST]\n[*][URL='https://spark.lucko.me/docs/guides/The-tick-loop']The tick loop[/URL]\n[*][URL='https://spark.lucko.me/docs/guides/Finding-lag-spikes']Finding the cause of lag spikes[/URL]\n[/LIST]" -} \ No newline at end of file + "description": "[CENTER][B][SIZE=7][IMG]https://i.imgur.com/ykHn9vx.png[/IMG] [/SIZE][/B]\n[SIZE=4][B]spark is a performance profiler for Minecraft clients, servers and proxies.[/B][/SIZE]\n[/CENTER]\n[B]Useful Links[/B]\n[LIST]\n[*][B][URL='https://spark.lucko.me/']Website[/URL][/B] - browse the project homepage\n[*][B][URL='https://spark.lucko.me/docs']Documentation[/URL][/B] - read documentation and usage guides\n[*][B][URL='https://spark.lucko.me/download']Downloads[/URL][/B] - latest development builds\n[/LIST]\n[B][SIZE=5]What does it do?[/SIZE][/B]\nspark is made up of a number of components, each detailed separately below.\n[LIST]\n[*][B]CPU Profiler[/B]: Diagnose performance issues.\n[*][B]Memory Inspection[/B]: Diagnose memory issues.\n[*][B]Server Health Reporting[/B]: Keep track of overall server health.\n[/LIST]\n\n[B][SIZE=6]⚡ CPU Profiler[/SIZE][/B]\nspark's profiler can be used to diagnose performance issues: \"lag\", low tick rate, high CPU usage, etc.\n\nIt is:\n[LIST]\n[*][B]Lightweight[/B] - can be ran in production with minimal impact.\n[*][B]Easy to use[/B] - no configuration or setup necessary, just install the plugin/mod.\n[*][B]Quick to produce results[/B] - running for just ~30 seconds is enough to produce useful insights into problematic areas for performance.\n[*][B]Customisable[/B] - can be tuned to target specific threads, sample at a specific interval, record only \"laggy\" periods, etc\n[*][B]Highly readable[/B] - simple tree structure lends itself to easy analysis and interpretation. The viewer can also apply deobfuscation mappings.\n[/LIST]\nIt works by sampling statistical data about the systems activity, and constructing a call graph based on this data. The call graph is then displayed in an online viewer for further analysis by the user.\n\nThere are two different profiler engines:\n[LIST]\n[*]Native [ICODE]AsyncGetCallTrace[/ICODE] + [ICODE]perf_events[/ICODE] - uses [URL='https://github.com/jvm-profiling-tools/async-profiler']async-profiler[/URL] ([I]only available on Linux x86_64 systems[/I])\n[*]Built-in Java [ICODE]ThreadMXBean[/ICODE] - an improved version of the popular [URL='https://github.com/sk89q/WarmRoast']WarmRoast profiler[/URL] by sk89q.\n[/LIST]\n[B]\n[SIZE=6]⚡ Memory Inspection[/SIZE][/B]\nspark includes a number of tools which are useful for diagnosing memory issues with a server.\n[LIST]\n[*][B]Heap Summary[/B] - take & analyse a basic snapshot of the servers memory\n[LIST]\n[*]A simple view of the JVM's heap, see memory usage and instance counts for each class\n[*]Not intended to be a full replacement of proper memory analysis tools. (see below)\n[/LIST]\n[/LIST]\n[LIST]\n[*][B]Heap Dump[/B] - take a full (HPROF) snapshot of the servers memory\n[LIST]\n[*]Dumps (& optionally compresses) a full snapshot of JVM's heap.\n[*]This snapshot can then be inspected using conventional analysis tools.\n[/LIST]\n[/LIST]\n[LIST]\n[*][B]GC Monitoring[/B] - monitor garbage collection activity on the server\n[LIST]\n[*]Allows the user to relate GC activity to game server hangs, and easily see how long they are taking & how much memory is being free'd.\n[*]Observe frequency/duration of young/old generation garbage collections to inform which GC tuning flags to use\n[/LIST]\n[/LIST]\n[B][SIZE=6]⚡ Server Health Reporting[/SIZE][/B]\nspark can report a number of metrics summarising the servers overall health.\n\nThese metrics include:\n[LIST]\n[*][B]TPS[/B] - ticks per second, to a more accurate degree indicated by the /tps command\n[*][B]Tick Durations[/B] - how long each tick is taking (min, max and average)\n[*][B]CPU Usage[/B] - how much of the CPU is being used by the server process, and by the overall system\n[*][B]Memory Usage[/B] - how much memory is being used by the process\n[*][B]Disk Usage[/B] - how much disk space is free/being used by the system\n[/LIST]\nAs well as providing tick rate averages, spark can also monitor individual ticks - sending a report whenever a single tick's duration exceeds a certain threshold. This can be used to identify trends and the nature of performance issues, relative to other system or game events.\n\n\n[SIZE=5][B]Us[SIZE=5]a[/SIZE]ge[/B][/SIZE]\nTo install, just add the [B]spark.jar[/B] file to your servers plugins directory.\n\nInformation about [URL='https://spark.lucko.me/docs/Command-Usage']how to use commands[/URL] can be found in the docs.\n\nIf you’d like help analysing a profiling report, or just want to chat, feel free to join us on [URL='https://discord.gg/PAGT2fu']Discord[/URL].\n\n\n[B][SIZE=5]Guides[/SIZE][/B]\nThere are a few small \"guides\" available in the docs, covering the following topics.\n[LIST]\n[*][URL='https://spark.lucko.me/docs/guides/The-tick-loop']The tick loop[/URL]\n[*][URL='https://spark.lucko.me/docs/guides/Finding-lag-spikes']Finding the cause of lag spikes[/URL]\n[/LIST]", + "source_code_url": "https://github.com/lucko/spark", + "donate_url": "" +} diff --git a/tests/Unit/Client/Fixtures/getResourceUpdate.json b/tests/Unit/Client/Fixtures/getResourceUpdate.json index 1b020d3..b200624 100644 --- a/tests/Unit/Client/Fixtures/getResourceUpdate.json +++ b/tests/Unit/Client/Fixtures/getResourceUpdate.json @@ -2,7 +2,8 @@ "id": 227294, "resource_id": 57242, "resource_version": "1.0.0", - "download_count": 449, + "download_count": 458, + "post_date": 1527527040, "title": "spark", "message": "[CENTER][B][SIZE=7][IMG]https://i.imgur.com/ykHn9vx.png[/IMG] [/SIZE][/B]\n[SIZE=4][B]spark is a performance profiler for Minecraft clients, servers and proxies.[/B][/SIZE]\n[/CENTER]\n[B]Useful Links[/B]\n[LIST]\n[*][B][URL='https://spark.lucko.me/']Website[/URL][/B] - browse the project homepage\n[*][B][URL='https://spark.lucko.me/docs']Documentation[/URL][/B] - read documentation and usage guides\n[*][B][URL='https://spark.lucko.me/download']Downloads[/URL][/B] - latest development builds\n[/LIST]\n[B][SIZE=5]What does it do?[/SIZE][/B]\nspark is made up of a number of components, each detailed separately below.\n[LIST]\n[*][B]CPU Profiler[/B]: Diagnose performance issues.\n[*][B]Memory Inspection[/B]: Diagnose memory issues.\n[*][B]Server Health Reporting[/B]: Keep track of overall server health.\n[/LIST]\n\n[B][SIZE=6]⚡ CPU Profiler[/SIZE][/B]\nspark's profiler can be used to diagnose performance issues: \"lag\", low tick rate, high CPU usage, etc.\n\nIt is:\n[LIST]\n[*][B]Lightweight[/B] - can be ran in production with minimal impact.\n[*][B]Easy to use[/B] - no configuration or setup necessary, just install the plugin/mod.\n[*][B]Quick to produce results[/B] - running for just ~30 seconds is enough to produce useful insights into problematic areas for performance.\n[*][B]Customisable[/B] - can be tuned to target specific threads, sample at a specific interval, record only \"laggy\" periods, etc\n[*][B]Highly readable[/B] - simple tree structure lends itself to easy analysis and interpretation. The viewer can also apply deobfuscation mappings.\n[/LIST]\nIt works by sampling statistical data about the systems activity, and constructing a call graph based on this data. The call graph is then displayed in an online viewer for further analysis by the user.\n\nThere are two different profiler engines:\n[LIST]\n[*]Native [ICODE]AsyncGetCallTrace[/ICODE] + [ICODE]perf_events[/ICODE] - uses [URL='https://github.com/jvm-profiling-tools/async-profiler']async-profiler[/URL] ([I]only available on Linux x86_64 systems[/I])\n[*]Built-in Java [ICODE]ThreadMXBean[/ICODE] - an improved version of the popular [URL='https://github.com/sk89q/WarmRoast']WarmRoast profiler[/URL] by sk89q.\n[/LIST]\n[B]\n[SIZE=6]⚡ Memory Inspection[/SIZE][/B]\nspark includes a number of tools which are useful for diagnosing memory issues with a server.\n[LIST]\n[*][B]Heap Summary[/B] - take & analyse a basic snapshot of the servers memory\n[LIST]\n[*]A simple view of the JVM's heap, see memory usage and instance counts for each class\n[*]Not intended to be a full replacement of proper memory analysis tools. (see below)\n[/LIST]\n[/LIST]\n[LIST]\n[*][B]Heap Dump[/B] - take a full (HPROF) snapshot of the servers memory\n[LIST]\n[*]Dumps (& optionally compresses) a full snapshot of JVM's heap.\n[*]This snapshot can then be inspected using conventional analysis tools.\n[/LIST]\n[/LIST]\n[LIST]\n[*][B]GC Monitoring[/B] - monitor garbage collection activity on the server\n[LIST]\n[*]Allows the user to relate GC activity to game server hangs, and easily see how long they are taking & how much memory is being free'd.\n[*]Observe frequency/duration of young/old generation garbage collections to inform which GC tuning flags to use\n[/LIST]\n[/LIST]\n[B][SIZE=6]⚡ Server Health Reporting[/SIZE][/B]\nspark can report a number of metrics summarising the servers overall health.\n\nThese metrics include:\n[LIST]\n[*][B]TPS[/B] - ticks per second, to a more accurate degree indicated by the /tps command\n[*][B]Tick Durations[/B] - how long each tick is taking (min, max and average)\n[*][B]CPU Usage[/B] - how much of the CPU is being used by the server process, and by the overall system\n[*][B]Memory Usage[/B] - how much memory is being used by the process\n[*][B]Disk Usage[/B] - how much disk space is free/being used by the system\n[/LIST]\nAs well as providing tick rate averages, spark can also monitor individual ticks - sending a report whenever a single tick's duration exceeds a certain threshold. This can be used to identify trends and the nature of performance issues, relative to other system or game events.\n\n\n[SIZE=5][B]Us[SIZE=5]a[/SIZE]ge[/B][/SIZE]\nTo install, just add the [B]spark.jar[/B] file to your servers plugins directory.\n\nInformation about [URL='https://spark.lucko.me/docs/Command-Usage']how to use commands[/URL] can be found in the docs.\n\nIf you’d like help analysing a profiling report, or just want to chat, feel free to join us on [URL='https://discord.gg/PAGT2fu']Discord[/URL].\n\n\n[B][SIZE=5]Guides[/SIZE][/B]\nThere are a few small \"guides\" available in the docs, covering the following topics.\n[LIST]\n[*][URL='https://spark.lucko.me/docs/guides/The-tick-loop']The tick loop[/URL]\n[*][URL='https://spark.lucko.me/docs/guides/Finding-lag-spikes']Finding the cause of lag spikes[/URL]\n[/LIST]" -} \ No newline at end of file +} diff --git a/tests/Unit/Client/Fixtures/getResourceUpdates.json b/tests/Unit/Client/Fixtures/getResourceUpdates.json index 3f71b1e..9c7ac74 100644 --- a/tests/Unit/Client/Fixtures/getResourceUpdates.json +++ b/tests/Unit/Client/Fixtures/getResourceUpdates.json @@ -3,7 +3,8 @@ "id": 227294, "resource_id": 57242, "resource_version": "1.0.0", - "download_count": 449, + "download_count": 458, + "post_date": 1527527040, "title": "spark", "message": "[CENTER][B][SIZE=7][IMG]https://i.imgur.com/ykHn9vx.png[/IMG] [/SIZE][/B]\n[SIZE=4][B]spark is a performance profiler for Minecraft clients, servers and proxies.[/B][/SIZE]\n[/CENTER]\n[B]Useful Links[/B]\n[LIST]\n[*][B][URL='https://spark.lucko.me/']Website[/URL][/B] - browse the project homepage\n[*][B][URL='https://spark.lucko.me/docs']Documentation[/URL][/B] - read documentation and usage guides\n[*][B][URL='https://spark.lucko.me/download']Downloads[/URL][/B] - latest development builds\n[/LIST]\n[B][SIZE=5]What does it do?[/SIZE][/B]\nspark is made up of a number of components, each detailed separately below.\n[LIST]\n[*][B]CPU Profiler[/B]: Diagnose performance issues.\n[*][B]Memory Inspection[/B]: Diagnose memory issues.\n[*][B]Server Health Reporting[/B]: Keep track of overall server health.\n[/LIST]\n\n[B][SIZE=6]⚡ CPU Profiler[/SIZE][/B]\nspark's profiler can be used to diagnose performance issues: \"lag\", low tick rate, high CPU usage, etc.\n\nIt is:\n[LIST]\n[*][B]Lightweight[/B] - can be ran in production with minimal impact.\n[*][B]Easy to use[/B] - no configuration or setup necessary, just install the plugin/mod.\n[*][B]Quick to produce results[/B] - running for just ~30 seconds is enough to produce useful insights into problematic areas for performance.\n[*][B]Customisable[/B] - can be tuned to target specific threads, sample at a specific interval, record only \"laggy\" periods, etc\n[*][B]Highly readable[/B] - simple tree structure lends itself to easy analysis and interpretation. The viewer can also apply deobfuscation mappings.\n[/LIST]\nIt works by sampling statistical data about the systems activity, and constructing a call graph based on this data. The call graph is then displayed in an online viewer for further analysis by the user.\n\nThere are two different profiler engines:\n[LIST]\n[*]Native [ICODE]AsyncGetCallTrace[/ICODE] + [ICODE]perf_events[/ICODE] - uses [URL='https://github.com/jvm-profiling-tools/async-profiler']async-profiler[/URL] ([I]only available on Linux x86_64 systems[/I])\n[*]Built-in Java [ICODE]ThreadMXBean[/ICODE] - an improved version of the popular [URL='https://github.com/sk89q/WarmRoast']WarmRoast profiler[/URL] by sk89q.\n[/LIST]\n[B]\n[SIZE=6]⚡ Memory Inspection[/SIZE][/B]\nspark includes a number of tools which are useful for diagnosing memory issues with a server.\n[LIST]\n[*][B]Heap Summary[/B] - take & analyse a basic snapshot of the servers memory\n[LIST]\n[*]A simple view of the JVM's heap, see memory usage and instance counts for each class\n[*]Not intended to be a full replacement of proper memory analysis tools. (see below)\n[/LIST]\n[/LIST]\n[LIST]\n[*][B]Heap Dump[/B] - take a full (HPROF) snapshot of the servers memory\n[LIST]\n[*]Dumps (& optionally compresses) a full snapshot of JVM's heap.\n[*]This snapshot can then be inspected using conventional analysis tools.\n[/LIST]\n[/LIST]\n[LIST]\n[*][B]GC Monitoring[/B] - monitor garbage collection activity on the server\n[LIST]\n[*]Allows the user to relate GC activity to game server hangs, and easily see how long they are taking & how much memory is being free'd.\n[*]Observe frequency/duration of young/old generation garbage collections to inform which GC tuning flags to use\n[/LIST]\n[/LIST]\n[B][SIZE=6]⚡ Server Health Reporting[/SIZE][/B]\nspark can report a number of metrics summarising the servers overall health.\n\nThese metrics include:\n[LIST]\n[*][B]TPS[/B] - ticks per second, to a more accurate degree indicated by the /tps command\n[*][B]Tick Durations[/B] - how long each tick is taking (min, max and average)\n[*][B]CPU Usage[/B] - how much of the CPU is being used by the server process, and by the overall system\n[*][B]Memory Usage[/B] - how much memory is being used by the process\n[*][B]Disk Usage[/B] - how much disk space is free/being used by the system\n[/LIST]\nAs well as providing tick rate averages, spark can also monitor individual ticks - sending a report whenever a single tick's duration exceeds a certain threshold. This can be used to identify trends and the nature of performance issues, relative to other system or game events.\n\n\n[SIZE=5][B]Us[SIZE=5]a[/SIZE]ge[/B][/SIZE]\nTo install, just add the [B]spark.jar[/B] file to your servers plugins directory.\n\nInformation about [URL='https://spark.lucko.me/docs/Command-Usage']how to use commands[/URL] can be found in the docs.\n\nIf you’d like help analysing a profiling report, or just want to chat, feel free to join us on [URL='https://discord.gg/PAGT2fu']Discord[/URL].\n\n\n[B][SIZE=5]Guides[/SIZE][/B]\nThere are a few small \"guides\" available in the docs, covering the following topics.\n[LIST]\n[*][URL='https://spark.lucko.me/docs/guides/The-tick-loop']The tick loop[/URL]\n[*][URL='https://spark.lucko.me/docs/guides/Finding-lag-spikes']Finding the cause of lag spikes[/URL]\n[/LIST]" }, @@ -11,7 +12,8 @@ "id": 228443, "resource_id": 57242, "resource_version": "1.0.4", - "download_count": 503, + "download_count": 504, + "post_date": 1528228692, "title": "1.0.4", "message": "[LIST]\n[*]Added a /spark alias\n[*]Added a max stack depth limit to fix issues with rendering\n[*]Allow multiple threads to be specified in the same command. e.g. /profiler start --thread Thread1 --thread Thread2\n[*]Optimize the way data is collected and processed\n[*]Add an option to group all thread pool processes under the same node in the viewer. This is enabled by default, use --not-combined to disable it.\n[*]Add ‘/profiler monitoring’ command to monitor tick times, and ‘–only-ticks-over’ argument to filter profiling output to ticks lasting over a certain duration\n[*]Improved the way data is serialized\n[*]Changed the default sampling interval from 10 to 4ms\n[/LIST]" }, @@ -19,7 +21,8 @@ "id": 248755, "resource_id": 57242, "resource_version": "1.1.0", - "download_count": 543, + "download_count": 544, + "post_date": 1539960930, "title": "1.1.0", "message": "[LIST]\n[*]Improved sampler efficiency\n[*]Implement GC notifications as part of the monitoring command\n[*]Add /spark heap for basic heap dump (memory) analysis\n[*]Implement tab completion for commands\n[/LIST]" }, @@ -27,7 +30,8 @@ "id": 258900, "resource_id": 57242, "resource_version": "1.2.0", - "download_count": 657, + "download_count": 658, + "post_date": 1546371285, "title": "1.2.0", "message": "[LIST]\n[*]Add a command (/spark heapdump) for generating hprof memory snapshots\n[*]Allow thread names to be specified using regex\n[*]Use fragment identifier instead of query parameters for web viewer (fixes issue with Multicraft consoles)\n[*]Add --without-gc flag to disable GC notifications during monitoring\n[*]Add --include-line-numbers flag to record the line number of method calls during sampling\n[*]Improve the type descriptor conversion in heap dump outputs\n[*]Update okhttp library version\n[*]Count ticks using a normal Java int instead of a LongAdder\n[*]Improve ThreadGrouper \"by pool\" regex expression\n[/LIST]" }, @@ -36,6 +40,7 @@ "resource_id": 57242, "resource_version": "1.3.0", "download_count": 1646, + "post_date": 1557863721, "title": "1.3.0", "message": "[LIST]\n[*]Add a /spark tps command, for more accurate monitoring of the servers tick rate\n[*]Add /spark healthreport command, to view general information about the servers status\n[*]Add \"activity log\" feature for keeping track of past samples/memory dumps\n[*]Add support for generating heap dumps on non-hotspot JVMs (OpenJ9)\n[*]Add \"combine-all\" thread grouping argument\n[*]Allow sampling at fractions of a millisecond intervals\n[*]Improve the performance/efficiency of the sampler\n[*]Ensure that the plugin cleans up completely when disabled\n[/LIST]" }, @@ -44,6 +49,7 @@ "resource_id": 57242, "resource_version": "1.3.1", "download_count": 1177, + "post_date": 1574727313, "title": "1.3.1", "message": "[LIST]\n[*]Make heap dump parsing more resilient to bad formatting\n[*]Send tick monitoring messages async\n[*]Add support for heap dump compression\n[*]Use protobuf to encode data sent to the web viewer instead of JSON\n[*]Add option to ignore \"sleeping\" threads when profling\n[*]Implement pagination in /spark activity\n[*]Fix various issues with --regex flag matching\n[*]Add support for PlaceholderAPI and MVdWPlaceholderAPI\n[*]Make CPU monitoring thread a daemon thread\n[/LIST]" }, @@ -51,7 +57,8 @@ "id": 317029, "resource_id": 57242, "resource_version": "1.3.2", - "download_count": 1511, + "download_count": 1512, + "post_date": 1580999191, "title": "1.3.2", "message": "[LIST]\n[*]Added --order-by-time option to sampler\n[*]Implement alternative means of tick counting for Paper servers\n[*]Monitor average tick durations (where possible) and report in /spark tps and /tps\n[*]Other misc improvements & cleanup\n[/LIST]" }, @@ -59,7 +66,8 @@ "id": 325832, "resource_id": 57242, "resource_version": "1.4.0", - "download_count": 573, + "download_count": 574, + "post_date": 1585824634, "title": "1.4.0", "message": "Hello - some updates for you.\n\n[B]A number of improvements to the profiler viewer[/B]\n[LIST]\n[*]Theme changes, should be much easier to read now!\n[*]Added right-click to \"bookmark\" a method call in the stack\n[*]Added title to show who created, time of creation, etc information\n[*]Improved the deobfuscation remapping algorithm\n[*]Uploaded profiles will now expire after 1 month instead of 1 week (pending - I'll change the config on this later today)\n[/LIST]\n\n[B]Include method descriptions in the data sent to the viewer to enable better application of deobfuscation mappings.[/B]\n[LIST]\n[*]With this change, the spark viewer is able to provide deobfuscation mappings for pretty much all unmapped methods!\n[/LIST]\n\n[B]Treat different methods (not just methods with the same name) as different stack nodes[/B]\n[LIST]\n[*]This is mostly an artifact of the change above, but is still a noteworthy improvement.\n[/LIST]\n\n[B]Allow comments to be specified on profiler output[/B]\n[LIST]\n[*]This comment will show up at the top of the viewer.\n[*]Should make it easier to organise lots of profiler tabs!\n[*]i.e. /spark sampler --stop --comment my survival server lag\n[/LIST]\n\n\nThat's it for now. Enjoy!" }, @@ -67,7 +75,8 @@ "id": 376038, "resource_id": 57242, "resource_version": "1.4.3", - "download_count": 4804, + "download_count": 4805, + "post_date": 1607975972, "title": "1.4.3", "message": "Hey everyone\n\nThe update includes the following changes to the spark plugin from the past few months:\n[LIST]\n[*]Allow exact tick duration to be used as threshold in tickmonitoring command\n[*]Add '/spark gc' and '/spark gcmonitor' commands to help track GC activity\n[*]Improve the --ignore-sleeping flag, add --ignore-native flag\n[*]Add 95th percentile MSPT and replace avg MSPT with median\n[*]Include platform info in sampler and heap summary data\n[/LIST]\n\nMore significantly, you will notice that in the last 24hrs the web viewer has received a big upgrade. It's now significantly more responsive and loads in a fraction of the time it took previously. Many thanks to [USER=2180]@Tux[/USER] for their help implementing these improvements.\n\nEnjoy :)" }, @@ -75,8 +84,9 @@ "id": 392307, "resource_id": 57242, "resource_version": "1.5.0", - "download_count": 575, + "download_count": 577, + "post_date": 1615652662, "title": "1.5.0", "message": "Hello everyone, update time!\n\nIf you like spark, please consider leaving a review or giving it a [URL='https://github.com/lucko/spark']star on GitHub[/URL]!\n\nOn with the changes...\n\n[B]Added support for async-profiler[/B]\n[LIST]\n[*][URL='https://github.com/jvm-profiling-tools/async-profiler']async-profiler[/URL] has been integrated into spark as a new profiler engine.\n[*]It is currently supported for Linux x86_64 servers only, the existing Java (WarmRoast) profiler will continue to be maintained for other systems and modes (like --only-ticks-over).\n[*]It's much more accurate and has a lower profiling overhead than the existing engine - win win!\n[/LIST]\n\n[B]Added permissions for sub-commands instead of just requiring 'spark'[/B]\n[LIST]\n[*]Sorry it took so long.. I of all people should know better!\n[/LIST]\n\n[B]Website/viewer changes and improvements[/B]\n[LIST]\n[*]Deployed a [URL='https://spark.lucko.me/docs']new documentation site[/URL]\n[*]Lots of style changes/improvements, added a new(ish) logo\n[*]Deobfuscation mappings are now applied automatically\n[*]Re-added the search bar - finally!\n[*]Re-added highlight/bookmarks, these are now encoded in the URL so you can share specific points in a profile with others easily\n[/LIST]\n\n[B]Fixed some bugs[/B]\n[LIST]\n[*]The main one was \"fix a bug upon early server startup in which percentiles would throw an out of bounds exception\" - thanks to astei for that fix!\n[/LIST]\n\nThat's all I got for ya, until next time... :)" } -] \ No newline at end of file +] diff --git a/tests/Unit/Client/Fixtures/getResourcesByAuthor.json b/tests/Unit/Client/Fixtures/getResourcesByAuthor.json index 8717e61..d624586 100644 --- a/tests/Unit/Client/Fixtures/getResourcesByAuthor.json +++ b/tests/Unit/Client/Fixtures/getResourcesByAuthor.json @@ -33,7 +33,7 @@ "currency": "" }, "stats": { - "downloads": 69799, + "downloads": 70450, "updates": 0, "reviews": { "unique": 27, @@ -44,7 +44,9 @@ "external_download_url": "", "first_release": 1509403756, "last_update": 1509403756, - "description": "A [I]very[/I] [I]simple[/I] and [I]tiny[/I] chat formatting plugin using Vault.\n\n[B]What's the point?[/B]\n\nThis plugin formats the chat, using one template format, and has placeholders for a players prefix/suffix which can be used in the template. Nothing more, nothing less.\n\nIf you want anything more than this, then I've suggested some alternatives you can try below.\n\n[B]Why bother creating something so basic when there are obviously better plugins out there?\n[/B]\nSome people just want something simple - EssentialsChat has always been my go-to, but some people don't want the whole of Essentials on their server.\n\n[B]How do I use it?\n[/B]\nAdd it to your plugins folder, restart your server, and the config file will be generated automatically in /plugins/VaultChatFormatter.\n\n[B]Why does it depend on Vault?\n[/B]\nVault is an API (a utility) which allows plugins (like this one) to pull permissions and chat data from a variety of sources without depending on and hooking with each individual source.\n\nYou can download Vault from its official download pages below:\n[LIST]\n[*][URL='https://www.spigotmc.org/resources/vault.34315/']Spigot[/URL]\n[*][URL='https://dev.bukkit.org/projects/vault']BukkitDev[/URL]\n[/LIST]\nIn order to set prefixes (and use this plugin), you also need a permissions plugin which implements the Vault Chat API. I've listed some popular choices below - but most permissions plugins are supported.\n[LIST]\n[*][URL='https://www.spigotmc.org/resources/28140/']LuckPerms[/URL] (written by me)\n[*][URL='https://dev.bukkit.org/projects/permissionsex']PermissionsEx[/URL]\n[*][URL='https://www.spigotmc.org/resources/11736/']zPermissions[/URL]\n[*][URL='https://dev.bukkit.org/projects/bpermissions']bPermissions[/URL]\n[/LIST]\n\n[B]This plugin doesn't do enough, I want more.[/B]\nOk, try these:\n[LIST]\n[*][URL='https://github.com/drtshock/Essentials']EssentialsX + EssentialsXChat[/URL] ( [URL='https://ci.akpmakes.tech/job/EssentialsX/']download[/URL] )\n[*][URL='https://dev.bukkit.org/projects/chatex']ChatEx[/URL]\n[*][URL='https://www.spigotmc.org/resources/deluxechat.1277/']DeluxeChat[/URL]\n[*][URL='https://www.spigotmc.org/resources/deluxechat.1277/']ChatControl[/URL]\n[*][URL='https://www.spigotmc.org/resources/bungee-chat.12592/']BungeeChat[/URL]\n[/LIST]\n[B]Can I see the source code?[/B]\n[URL='https://github.com/lucko/VaultChatFormatter/blob/master/src/main/java/me/lucko/chatformatter/ChatFormatterPlugin.java']Yes[/URL].\n[B]\nIs this plugin affiliated with or endorsed by the Vault project?[/B]\nNo - it's not. It is named VaultChatFormatter because it uses Vault to retrieve prefix & suffix data.\n[B]\nCan you add x feature?[/B]\nNo." + "description": "A [I]very[/I] [I]simple[/I] and [I]tiny[/I] chat formatting plugin using Vault.\n\n[B]What's the point?[/B]\n\nThis plugin formats the chat, using one template format, and has placeholders for a players prefix/suffix which can be used in the template. Nothing more, nothing less.\n\nIf you want anything more than this, then I've suggested some alternatives you can try below.\n\n[B]Why bother creating something so basic when there are obviously better plugins out there?\n[/B]\nSome people just want something simple - EssentialsChat has always been my go-to, but some people don't want the whole of Essentials on their server.\n\n[B]How do I use it?\n[/B]\nAdd it to your plugins folder, restart your server, and the config file will be generated automatically in /plugins/VaultChatFormatter.\n\n[B]Why does it depend on Vault?\n[/B]\nVault is an API (a utility) which allows plugins (like this one) to pull permissions and chat data from a variety of sources without depending on and hooking with each individual source.\n\nYou can download Vault from its official download pages below:\n[LIST]\n[*][URL='https://www.spigotmc.org/resources/vault.34315/']Spigot[/URL]\n[*][URL='https://dev.bukkit.org/projects/vault']BukkitDev[/URL]\n[/LIST]\nIn order to set prefixes (and use this plugin), you also need a permissions plugin which implements the Vault Chat API. I've listed some popular choices below - but most permissions plugins are supported.\n[LIST]\n[*][URL='https://www.spigotmc.org/resources/28140/']LuckPerms[/URL] (written by me)\n[*][URL='https://dev.bukkit.org/projects/permissionsex']PermissionsEx[/URL]\n[*][URL='https://www.spigotmc.org/resources/11736/']zPermissions[/URL]\n[*][URL='https://dev.bukkit.org/projects/bpermissions']bPermissions[/URL]\n[/LIST]\n\n[B]This plugin doesn't do enough, I want more.[/B]\nOk, try these:\n[LIST]\n[*][URL='https://github.com/drtshock/Essentials']EssentialsX + EssentialsXChat[/URL] ( [URL='https://ci.akpmakes.tech/job/EssentialsX/']download[/URL] )\n[*][URL='https://dev.bukkit.org/projects/chatex']ChatEx[/URL]\n[*][URL='https://www.spigotmc.org/resources/deluxechat.1277/']DeluxeChat[/URL]\n[*][URL='https://www.spigotmc.org/resources/deluxechat.1277/']ChatControl[/URL]\n[*][URL='https://www.spigotmc.org/resources/bungee-chat.12592/']BungeeChat[/URL]\n[/LIST]\n[B]Can I see the source code?[/B]\n[URL='https://github.com/lucko/VaultChatFormatter/blob/master/src/main/java/me/lucko/chatformatter/ChatFormatterPlugin.java']Yes[/URL].\n[B]\nIs this plugin affiliated with or endorsed by the Vault project?[/B]\nNo - it's not. It is named VaultChatFormatter because it uses Vault to retrieve prefix & suffix data.\n[B]\nCan you add x feature?[/B]\nNo.", + "source_code_url": "https://github.com/lucko/VaultChatFormatter", + "donate_url": "" }, { "id": 57242, @@ -84,7 +86,7 @@ "currency": "" }, "stats": { - "downloads": 245482, + "downloads": 253465, "updates": 21, "reviews": { "unique": 91, @@ -95,7 +97,9 @@ "external_download_url": "", "first_release": 1527527040, "last_update": 1733070687, - "description": "[CENTER][B][SIZE=7][IMG]https://i.imgur.com/ykHn9vx.png[/IMG] [/SIZE][/B]\n[SIZE=4][B]spark is a performance profiler for Minecraft clients, servers and proxies.[/B][/SIZE]\n[/CENTER]\n[B]Useful Links[/B]\n[LIST]\n[*][B][URL='https://spark.lucko.me/']Website[/URL][/B] - browse the project homepage\n[*][B][URL='https://spark.lucko.me/docs']Documentation[/URL][/B] - read documentation and usage guides\n[*][B][URL='https://spark.lucko.me/download']Downloads[/URL][/B] - latest development builds\n[/LIST]\n[B][SIZE=5]What does it do?[/SIZE][/B]\nspark is made up of a number of components, each detailed separately below.\n[LIST]\n[*][B]CPU Profiler[/B]: Diagnose performance issues.\n[*][B]Memory Inspection[/B]: Diagnose memory issues.\n[*][B]Server Health Reporting[/B]: Keep track of overall server health.\n[/LIST]\n\n[B][SIZE=6]⚡ CPU Profiler[/SIZE][/B]\nspark's profiler can be used to diagnose performance issues: \"lag\", low tick rate, high CPU usage, etc.\n\nIt is:\n[LIST]\n[*][B]Lightweight[/B] - can be ran in production with minimal impact.\n[*][B]Easy to use[/B] - no configuration or setup necessary, just install the plugin/mod.\n[*][B]Quick to produce results[/B] - running for just ~30 seconds is enough to produce useful insights into problematic areas for performance.\n[*][B]Customisable[/B] - can be tuned to target specific threads, sample at a specific interval, record only \"laggy\" periods, etc\n[*][B]Highly readable[/B] - simple tree structure lends itself to easy analysis and interpretation. The viewer can also apply deobfuscation mappings.\n[/LIST]\nIt works by sampling statistical data about the systems activity, and constructing a call graph based on this data. The call graph is then displayed in an online viewer for further analysis by the user.\n\nThere are two different profiler engines:\n[LIST]\n[*]Native [ICODE]AsyncGetCallTrace[/ICODE] + [ICODE]perf_events[/ICODE] - uses [URL='https://github.com/jvm-profiling-tools/async-profiler']async-profiler[/URL] ([I]only available on Linux x86_64 systems[/I])\n[*]Built-in Java [ICODE]ThreadMXBean[/ICODE] - an improved version of the popular [URL='https://github.com/sk89q/WarmRoast']WarmRoast profiler[/URL] by sk89q.\n[/LIST]\n[B]\n[SIZE=6]⚡ Memory Inspection[/SIZE][/B]\nspark includes a number of tools which are useful for diagnosing memory issues with a server.\n[LIST]\n[*][B]Heap Summary[/B] - take & analyse a basic snapshot of the servers memory\n[LIST]\n[*]A simple view of the JVM's heap, see memory usage and instance counts for each class\n[*]Not intended to be a full replacement of proper memory analysis tools. (see below)\n[/LIST]\n[/LIST]\n[LIST]\n[*][B]Heap Dump[/B] - take a full (HPROF) snapshot of the servers memory\n[LIST]\n[*]Dumps (& optionally compresses) a full snapshot of JVM's heap.\n[*]This snapshot can then be inspected using conventional analysis tools.\n[/LIST]\n[/LIST]\n[LIST]\n[*][B]GC Monitoring[/B] - monitor garbage collection activity on the server\n[LIST]\n[*]Allows the user to relate GC activity to game server hangs, and easily see how long they are taking & how much memory is being free'd.\n[*]Observe frequency/duration of young/old generation garbage collections to inform which GC tuning flags to use\n[/LIST]\n[/LIST]\n[B][SIZE=6]⚡ Server Health Reporting[/SIZE][/B]\nspark can report a number of metrics summarising the servers overall health.\n\nThese metrics include:\n[LIST]\n[*][B]TPS[/B] - ticks per second, to a more accurate degree indicated by the /tps command\n[*][B]Tick Durations[/B] - how long each tick is taking (min, max and average)\n[*][B]CPU Usage[/B] - how much of the CPU is being used by the server process, and by the overall system\n[*][B]Memory Usage[/B] - how much memory is being used by the process\n[*][B]Disk Usage[/B] - how much disk space is free/being used by the system\n[/LIST]\nAs well as providing tick rate averages, spark can also monitor individual ticks - sending a report whenever a single tick's duration exceeds a certain threshold. This can be used to identify trends and the nature of performance issues, relative to other system or game events.\n\n\n[SIZE=5][B]Us[SIZE=5]a[/SIZE]ge[/B][/SIZE]\nTo install, just add the [B]spark.jar[/B] file to your servers plugins directory.\n\nInformation about [URL='https://spark.lucko.me/docs/Command-Usage']how to use commands[/URL] can be found in the docs.\n\nIf you’d like help analysing a profiling report, or just want to chat, feel free to join us on [URL='https://discord.gg/PAGT2fu']Discord[/URL].\n\n\n[B][SIZE=5]Guides[/SIZE][/B]\nThere are a few small \"guides\" available in the docs, covering the following topics.\n[LIST]\n[*][URL='https://spark.lucko.me/docs/guides/The-tick-loop']The tick loop[/URL]\n[*][URL='https://spark.lucko.me/docs/guides/Finding-lag-spikes']Finding the cause of lag spikes[/URL]\n[/LIST]" + "description": "[CENTER][B][SIZE=7][IMG]https://i.imgur.com/ykHn9vx.png[/IMG] [/SIZE][/B]\n[SIZE=4][B]spark is a performance profiler for Minecraft clients, servers and proxies.[/B][/SIZE]\n[/CENTER]\n[B]Useful Links[/B]\n[LIST]\n[*][B][URL='https://spark.lucko.me/']Website[/URL][/B] - browse the project homepage\n[*][B][URL='https://spark.lucko.me/docs']Documentation[/URL][/B] - read documentation and usage guides\n[*][B][URL='https://spark.lucko.me/download']Downloads[/URL][/B] - latest development builds\n[/LIST]\n[B][SIZE=5]What does it do?[/SIZE][/B]\nspark is made up of a number of components, each detailed separately below.\n[LIST]\n[*][B]CPU Profiler[/B]: Diagnose performance issues.\n[*][B]Memory Inspection[/B]: Diagnose memory issues.\n[*][B]Server Health Reporting[/B]: Keep track of overall server health.\n[/LIST]\n\n[B][SIZE=6]⚡ CPU Profiler[/SIZE][/B]\nspark's profiler can be used to diagnose performance issues: \"lag\", low tick rate, high CPU usage, etc.\n\nIt is:\n[LIST]\n[*][B]Lightweight[/B] - can be ran in production with minimal impact.\n[*][B]Easy to use[/B] - no configuration or setup necessary, just install the plugin/mod.\n[*][B]Quick to produce results[/B] - running for just ~30 seconds is enough to produce useful insights into problematic areas for performance.\n[*][B]Customisable[/B] - can be tuned to target specific threads, sample at a specific interval, record only \"laggy\" periods, etc\n[*][B]Highly readable[/B] - simple tree structure lends itself to easy analysis and interpretation. The viewer can also apply deobfuscation mappings.\n[/LIST]\nIt works by sampling statistical data about the systems activity, and constructing a call graph based on this data. The call graph is then displayed in an online viewer for further analysis by the user.\n\nThere are two different profiler engines:\n[LIST]\n[*]Native [ICODE]AsyncGetCallTrace[/ICODE] + [ICODE]perf_events[/ICODE] - uses [URL='https://github.com/jvm-profiling-tools/async-profiler']async-profiler[/URL] ([I]only available on Linux x86_64 systems[/I])\n[*]Built-in Java [ICODE]ThreadMXBean[/ICODE] - an improved version of the popular [URL='https://github.com/sk89q/WarmRoast']WarmRoast profiler[/URL] by sk89q.\n[/LIST]\n[B]\n[SIZE=6]⚡ Memory Inspection[/SIZE][/B]\nspark includes a number of tools which are useful for diagnosing memory issues with a server.\n[LIST]\n[*][B]Heap Summary[/B] - take & analyse a basic snapshot of the servers memory\n[LIST]\n[*]A simple view of the JVM's heap, see memory usage and instance counts for each class\n[*]Not intended to be a full replacement of proper memory analysis tools. (see below)\n[/LIST]\n[/LIST]\n[LIST]\n[*][B]Heap Dump[/B] - take a full (HPROF) snapshot of the servers memory\n[LIST]\n[*]Dumps (& optionally compresses) a full snapshot of JVM's heap.\n[*]This snapshot can then be inspected using conventional analysis tools.\n[/LIST]\n[/LIST]\n[LIST]\n[*][B]GC Monitoring[/B] - monitor garbage collection activity on the server\n[LIST]\n[*]Allows the user to relate GC activity to game server hangs, and easily see how long they are taking & how much memory is being free'd.\n[*]Observe frequency/duration of young/old generation garbage collections to inform which GC tuning flags to use\n[/LIST]\n[/LIST]\n[B][SIZE=6]⚡ Server Health Reporting[/SIZE][/B]\nspark can report a number of metrics summarising the servers overall health.\n\nThese metrics include:\n[LIST]\n[*][B]TPS[/B] - ticks per second, to a more accurate degree indicated by the /tps command\n[*][B]Tick Durations[/B] - how long each tick is taking (min, max and average)\n[*][B]CPU Usage[/B] - how much of the CPU is being used by the server process, and by the overall system\n[*][B]Memory Usage[/B] - how much memory is being used by the process\n[*][B]Disk Usage[/B] - how much disk space is free/being used by the system\n[/LIST]\nAs well as providing tick rate averages, spark can also monitor individual ticks - sending a report whenever a single tick's duration exceeds a certain threshold. This can be used to identify trends and the nature of performance issues, relative to other system or game events.\n\n\n[SIZE=5][B]Us[SIZE=5]a[/SIZE]ge[/B][/SIZE]\nTo install, just add the [B]spark.jar[/B] file to your servers plugins directory.\n\nInformation about [URL='https://spark.lucko.me/docs/Command-Usage']how to use commands[/URL] can be found in the docs.\n\nIf you’d like help analysing a profiling report, or just want to chat, feel free to join us on [URL='https://discord.gg/PAGT2fu']Discord[/URL].\n\n\n[B][SIZE=5]Guides[/SIZE][/B]\nThere are a few small \"guides\" available in the docs, covering the following topics.\n[LIST]\n[*][URL='https://spark.lucko.me/docs/guides/The-tick-loop']The tick loop[/URL]\n[*][URL='https://spark.lucko.me/docs/guides/Finding-lag-spikes']Finding the cause of lag spikes[/URL]\n[/LIST]", + "source_code_url": "https://github.com/lucko/spark", + "donate_url": "" }, { "id": 28140, @@ -136,18 +140,20 @@ "currency": "" }, "stats": { - "downloads": 7722526, + "downloads": 7860775, "updates": 50, "reviews": { - "unique": 969, - "total": 1082 + "unique": 968, + "total": 1081 }, "rating": "4.7" }, "external_download_url": "", "first_release": 1471723601, "last_update": 1748251261, - "description": "[RIGHT][URL='https://luckperms.net/download']Looking for the BungeeCord download? Click here![/URL][/RIGHT]\n[CENTER][IMG]https://raw.githubusercontent.com/LuckPerms/branding/master/banner/banner.png[/IMG][/CENTER]\n[IMG]https://i.imgur.com/7vjPbyM.png[/IMG]\nLuckPerms is a permissions plugin for Minecraft servers (Bukkit/Spigot, BungeeCord & more). It allows server admins to control what features players can use by creating groups and assigning permissions.\n\nIt is:\n[LIST]\n[*][B]fast[/B] - written with performance and scalability in mind.\n[*][B]reliable[/B] - trusted by thousands of server admins, and the largest of server networks.\n[*][B]easy to use[/B] - setup permissions using commands, directly in config files, or using the web editor.\n[*][B]flexible[/B] - supports a variety of data storage options, and works on lots of different server types.\n[*][B]extensive[/B] - a plethora of customization options and settings which can be changed to suit your server.\n[*][B]free[/B] - available for download and usage at no cost, and permissively licensed so it can remain free forever.\n[/LIST]\nFor more information, see the wiki article on [URL='https://luckperms.net/wiki/Why-LuckPerms']Why LuckPerms?[/URL]\n\n[IMG]https://i.imgur.com/E5SUQSP.png[/IMG]\nThe latest downloads & other useful links can be found on the project homepage at [URL='https://luckperms.net/']luckperms.net[/URL].\n\nThe plugin has extensive [URL='https://luckperms.net/wiki']documentation available on the wiki[/URL]. Please use the resources there before coming to us directly for support.\n\nSupport for the plugin is provided on [URL='https://discord.gg/luckperms']Discord[/URL]. If you have a question which cannot be answered by reading the wiki, the best place to ask it is there.\n\nIf you would like to report a bug, please [URL='https://github.com/lucko/LuckPerms/issues']open a ticket on GitHub[/URL].\n\n[IMG]https://i.imgur.com/3kfqrp1.png[/IMG]\n[URL='https://bisecthosting.com/luck'][IMG]https://i.imgur.com/fpcKnbV.png[/IMG][/URL]\n[CENTER]LuckPerms is proudly sponsored by [URL='https://bisecthosting.com/luck']BisectHosting[/URL].[/CENTER]\n\nThey've kindly offered LuckPerms users a massive [B]25% off[/B] the first month of any of their game server hosting plans. To get the discount, just enter the promo code [B]luck[/B] at checkout!\n\n[IMG]https://i.imgur.com/zflMO8M.png[/IMG]\nMost of the other available permission plugins date back a number of years, and were created in the early Bukkit era. Almost without exception, they've been abandoned by their original authors, and receive no updates, support or bug fixes.\n\nLuckPerms is still a growing and active resource, and I endeavour to reply to all bug reports, issues and feature requests in a timely manner.\n\nLuckPerms supports fully automatic migration and data transfer from existing permissions plugins.\nFor more information about this process, please [URL='https://luckperms.net/wiki/Migration']read the wiki page[/URL].\n\n[IMG]https://i.imgur.com/CzC56lP.png[/IMG]\nPlease don't post bug reports/suggestions in the review section. Bugs should be reported by [URL='https://github.com/lucko/LuckPerms/issues']opening a ticket on GitHub[/URL].\n\nIf you just have a question, the best place to ask is in our Discord server. Either myself or somebody else will hopefully be able to assist.\n\nThis plugin took me while to make, so if you find it useful, a nice review would be appreciated. :) On the other hand, if you have suggestions, I'd love to hear those too!\n\n[B]If you're having issues using the plugin, please contact me BEFORE making a review. I *cannot* give support in the review section.[/B]" + "description": "[RIGHT][URL='https://luckperms.net/download']Looking for the BungeeCord download? Click here![/URL][/RIGHT]\n[CENTER][IMG]https://raw.githubusercontent.com/LuckPerms/branding/master/banner/banner.png[/IMG][/CENTER]\n[IMG]https://i.imgur.com/7vjPbyM.png[/IMG]\nLuckPerms is a permissions plugin for Minecraft servers (Bukkit/Spigot, BungeeCord & more). It allows server admins to control what features players can use by creating groups and assigning permissions.\n\nIt is:\n[LIST]\n[*][B]fast[/B] - written with performance and scalability in mind.\n[*][B]reliable[/B] - trusted by thousands of server admins, and the largest of server networks.\n[*][B]easy to use[/B] - setup permissions using commands, directly in config files, or using the web editor.\n[*][B]flexible[/B] - supports a variety of data storage options, and works on lots of different server types.\n[*][B]extensive[/B] - a plethora of customization options and settings which can be changed to suit your server.\n[*][B]free[/B] - available for download and usage at no cost, and permissively licensed so it can remain free forever.\n[/LIST]\nFor more information, see the wiki article on [URL='https://luckperms.net/wiki/Why-LuckPerms']Why LuckPerms?[/URL]\n\n[IMG]https://i.imgur.com/E5SUQSP.png[/IMG]\nThe latest downloads & other useful links can be found on the project homepage at [URL='https://luckperms.net/']luckperms.net[/URL].\n\nThe plugin has extensive [URL='https://luckperms.net/wiki']documentation available on the wiki[/URL]. Please use the resources there before coming to us directly for support.\n\nSupport for the plugin is provided on [URL='https://discord.gg/luckperms']Discord[/URL]. If you have a question which cannot be answered by reading the wiki, the best place to ask it is there.\n\nIf you would like to report a bug, please [URL='https://github.com/lucko/LuckPerms/issues']open a ticket on GitHub[/URL].\n\n[IMG]https://i.imgur.com/3kfqrp1.png[/IMG]\n[URL='https://bisecthosting.com/luck'][IMG]https://i.imgur.com/fpcKnbV.png[/IMG][/URL]\n[CENTER]LuckPerms is proudly sponsored by [URL='https://bisecthosting.com/luck']BisectHosting[/URL].[/CENTER]\n\nThey've kindly offered LuckPerms users a massive [B]25% off[/B] the first month of any of their game server hosting plans. To get the discount, just enter the promo code [B]luck[/B] at checkout!\n\n[IMG]https://i.imgur.com/zflMO8M.png[/IMG]\nMost of the other available permission plugins date back a number of years, and were created in the early Bukkit era. Almost without exception, they've been abandoned by their original authors, and receive no updates, support or bug fixes.\n\nLuckPerms is still a growing and active resource, and I endeavour to reply to all bug reports, issues and feature requests in a timely manner.\n\nLuckPerms supports fully automatic migration and data transfer from existing permissions plugins.\nFor more information about this process, please [URL='https://luckperms.net/wiki/Migration']read the wiki page[/URL].\n\n[IMG]https://i.imgur.com/CzC56lP.png[/IMG]\nPlease don't post bug reports/suggestions in the review section. Bugs should be reported by [URL='https://github.com/lucko/LuckPerms/issues']opening a ticket on GitHub[/URL].\n\nIf you just have a question, the best place to ask is in our Discord server. Either myself or somebody else will hopefully be able to assist.\n\nThis plugin took me while to make, so if you find it useful, a nice review would be appreciated. :) On the other hand, if you have suggestions, I'd love to hear those too!\n\n[B]If you're having issues using the plugin, please contact me BEFORE making a review. I *cannot* give support in the review section.[/B]", + "source_code_url": "https://github.com/lucko/LuckPerms", + "donate_url": "" }, { "id": 79601, @@ -184,17 +190,19 @@ "currency": "" }, "stats": { - "downloads": 78572, + "downloads": 79787, "updates": 7, "reviews": { - "unique": 77, - "total": 77 + "unique": 78, + "total": 78 }, "rating": "4.2" }, "external_download_url": "", "first_release": 1591126009, "last_update": 1748865755, - "description": "[CENTER][SIZE=7][B]BungeeGuard[/B][/SIZE][/CENTER]\n\nBungeeGuard is a plugin-based security/firewall solution for [URL='https://www.spigotmc.org/wiki/bungeecord/']BungeeCord[/URL] (and [URL='https://velocitypowered.com/']Velocity[/URL]) proxies.\n\n[SIZE=5][B]The problem[/B][/SIZE]\nBungeeCord installations are [B]insecure by default[/B], and require additional firewall rules to be configured (using iptables or otherwise) to prevent malicious users from bypassing the proxy and connecting using any uuid/username they choose.\n\nThis is a [B]well-known issue[/B], and over the years many (even large) servers have been successfully targeted using this attack.\n\n[SIZE=5][B]The conventional solution[/B][/SIZE]\nThe conventional solution recommended by the BungeeCord author is to configure a firewall rule using iptables or ufw to prevent outside connections to the backend servers.\n\nHowever, there are two main problems with this:\n[LIST=1]\n[*]Configuring these firewall rules is complicated, especially for inexperienced users.\n[LIST=1]\n[*]Even experienced users sometimes make mistakes or overlook things. Unless the setup is absolutely perfect, rules are prone to being broken during later changes, or reset on system reboot.\n[/LIST]\n[*]Users on \"shared hosting\" do not have access to the underlying system and most likely cannot setup their own firewall rules.\n[/LIST]\n[SIZE=5][B]The BungeeGuard solution[/B][/SIZE]\nServer admins install BungeeGuard (just an ordinary plugin!) on their proxies and backend servers.\n[LIST]\n[*]On the [B]proxy[/B], BungeeGuard adds a secret \"authentication token\" to the login handshake.\n[*]On the [B]backend[/B] (Spigot etc. server), BungeeGuard checks login handshakes to ensure they contain an allowed authentication token.\n[/LIST]\nIt's really that simple.\n\n[B][SIZE=5]Installation[/SIZE][/B]\nInstallation is very straightforward.\n\nIf you have access to the underlying system and are able to setup firewall rules using iptables (or otherwise), I strongly recommend you do so. Then, install BungeeGuard as well.\n\nSee [URL='https://github.com/lucko/BungeeGuard/blob/master/INSTALLATION.md']here[/URL] for a detailed install guide.\n\n[SIZE=5][B]License[/B][/SIZE]\nBungeeGuard is licensed and made available under the permissive MIT license. Please see [URL='https://github.com/lucko/BungeeGuard/blob/master/LICENSE.txt']here[/URL] for more information." + "description": "[CENTER][SIZE=7][B]BungeeGuard[/B][/SIZE][/CENTER]\n\nBungeeGuard is a plugin-based security/firewall solution for [URL='https://www.spigotmc.org/wiki/bungeecord/']BungeeCord[/URL] (and [URL='https://velocitypowered.com/']Velocity[/URL]) proxies.\n\n[SIZE=5][B]The problem[/B][/SIZE]\nBungeeCord installations are [B]insecure by default[/B], and require additional firewall rules to be configured (using iptables or otherwise) to prevent malicious users from bypassing the proxy and connecting using any uuid/username they choose.\n\nThis is a [B]well-known issue[/B], and over the years many (even large) servers have been successfully targeted using this attack.\n\n[SIZE=5][B]The conventional solution[/B][/SIZE]\nThe conventional solution recommended by the BungeeCord author is to configure a firewall rule using iptables or ufw to prevent outside connections to the backend servers.\n\nHowever, there are two main problems with this:\n[LIST=1]\n[*]Configuring these firewall rules is complicated, especially for inexperienced users.\n[LIST=1]\n[*]Even experienced users sometimes make mistakes or overlook things. Unless the setup is absolutely perfect, rules are prone to being broken during later changes, or reset on system reboot.\n[/LIST]\n[*]Users on \"shared hosting\" do not have access to the underlying system and most likely cannot setup their own firewall rules.\n[/LIST]\n[SIZE=5][B]The BungeeGuard solution[/B][/SIZE]\nServer admins install BungeeGuard (just an ordinary plugin!) on their proxies and backend servers.\n[LIST]\n[*]On the [B]proxy[/B], BungeeGuard adds a secret \"authentication token\" to the login handshake.\n[*]On the [B]backend[/B] (Spigot etc. server), BungeeGuard checks login handshakes to ensure they contain an allowed authentication token.\n[/LIST]\nIt's really that simple.\n\n[B][SIZE=5]Installation[/SIZE][/B]\nInstallation is very straightforward.\n\nIf you have access to the underlying system and are able to setup firewall rules using iptables (or otherwise), I strongly recommend you do so. Then, install BungeeGuard as well.\n\nSee [URL='https://github.com/lucko/BungeeGuard/blob/master/INSTALLATION.md']here[/URL] for a detailed install guide.\n\n[SIZE=5][B]License[/B][/SIZE]\nBungeeGuard is licensed and made available under the permissive MIT license. Please see [URL='https://github.com/lucko/BungeeGuard/blob/master/LICENSE.txt']here[/URL] for more information.", + "source_code_url": "https://github.com/lucko/BungeeGuard", + "donate_url": "" } -] \ No newline at end of file +] diff --git a/tests/Unit/Client/Fixtures/listResources.json b/tests/Unit/Client/Fixtures/listResources.json index 618aa1a..348980f 100644 --- a/tests/Unit/Client/Fixtures/listResources.json +++ b/tests/Unit/Client/Fixtures/listResources.json @@ -23,7 +23,7 @@ "currency": "" }, "stats": { - "downloads": 6656, + "downloads": 6661, "updates": 0, "reviews": { "unique": 16, @@ -34,7 +34,9 @@ "external_download_url": "", "first_release": 1472203054, "last_update": 1472203054, - "description": "[SIZE=5]This plugin blocks massive DDoS connections from the same IP . If it connects more than 5 people / bots on the same IP connection, IP will be blocked to join on server.[/SIZE]" + "description": "[SIZE=5]This plugin blocks massive DDoS connections from the same IP . If it connects more than 5 people / bots on the same IP connection, IP will be blocked to join on server.[/SIZE]", + "source_code_url": null, + "donate_url": null }, { "id": 36467, @@ -71,7 +73,9 @@ "external_download_url": "", "first_release": 1487351280, "last_update": 1487351280, - "description": "[B]Was is alles schon trinnen?\nWenn man joint bekommt man diese Items!\n[/B]\n[COLOR=#ff0000]Navigator[/COLOR]\n[B][COLOR=#ffa64d]Spieler Verstecker[/COLOR][/B]\n[COLOR=#ff4d4d]SilentHub\nAutomatischer Nickname\nSchutzSchild\nLobby Selector\nFreunde-System\nParty-System\n\n[/COLOR]" + "description": "[B]Was is alles schon trinnen?\nWenn man joint bekommt man diese Items!\n[/B]\n[COLOR=#ff0000]Navigator[/COLOR]\n[B][COLOR=#ffa64d]Spieler Verstecker[/COLOR][/B]\n[COLOR=#ff4d4d]SilentHub\nAutomatischer Nickname\nSchutzSchild\nLobby Selector\nFreunde-System\nParty-System\n\n[/COLOR]", + "source_code_url": "", + "donate_url": "" }, { "id": 50389, @@ -102,7 +106,7 @@ "currency": "" }, "stats": { - "downloads": 1270, + "downloads": 1271, "updates": 2, "reviews": { "unique": 9, @@ -113,7 +117,9 @@ "external_download_url": "", "first_release": 1512517384, "last_update": 1513809177, - "description": "[CENTER]Großes LobbySystem/Plugin Würde mich über eine Bewertung Freuen und was mal beim Lobbysytem verbessern könnte\n\n[ATTACH=full]300824[/ATTACH]\n[SIZE=7]Das Plugin in euren Plugins Ordner ziehen\nServer starten\nMysql in der Config.yml Eintragen\nReloaden \nund Stauen ;)\n\n[ATTACH=full]300825[/ATTACH] \n\nGadges (Boots, Banner, Köpfe, Effecte)\nTägliche Belohnung (CoinsAPI)\nEffekte bei den Warps\nAlles Einstellbar in der Config\nSilentLobby\n/build Command\nChatSystem/RankSystem\nJump and Run System\nJump Pads\nKöpfe Editierbar\nAsync Programmiert (Weniger Reccourcen belastend)\nNeues Spieler Verstecken Designe\nMySql DatenBank\nSpieler verstecken\n Silent Lobby\n Lobbywechsler\nMSG\n Eigene Gruppen\n Double Jump\n Automatischer Spawnteleport\n Tablist\n Unbekannter Befehl Nachricht\n Man kann Kommands blocken\n JoinItems\n Wartungsarbeiten mode\n\n[ATTACH=full]300833[/ATTACH] \nLobbyGames\nGadges erweitern\n\n//Vorschläge?\nVorstell Video Könnt ihr per Nachricht Schicken!\n[/SIZE]\n\n\n\n\n[SIZE=7][ATTACH=full]300826[/ATTACH] [ATTACH=full]300827[/ATTACH] [/SIZE]\n\n[SIZE=7][ATTACH=full]300828[/ATTACH] [/SIZE]\n\n[SIZE=7][ATTACH=full]300829[/ATTACH] \n\n[ATTACH=full]300830[/ATTACH] \n\n[ATTACH=full]300831[/ATTACH] \n\n[ATTACH=full]300832[/ATTACH] \n\n\n[COLOR=#ff0000]DAS PLUGIN DARF NICHT ALS SEINS AUSGEGEBEN WERDEN\n\nDAS PLUGIN DARF NICHT DECOMPILT WERDEN[/COLOR]\n[/SIZE]\n[/CENTER]" + "description": "[CENTER]Großes LobbySystem/Plugin Würde mich über eine Bewertung Freuen und was mal beim Lobbysytem verbessern könnte\n\n[ATTACH=full]300824[/ATTACH]\n[SIZE=7]Das Plugin in euren Plugins Ordner ziehen\nServer starten\nMysql in der Config.yml Eintragen\nReloaden \nund Stauen ;)\n\n[ATTACH=full]300825[/ATTACH] \n\nGadges (Boots, Banner, Köpfe, Effecte)\nTägliche Belohnung (CoinsAPI)\nEffekte bei den Warps\nAlles Einstellbar in der Config\nSilentLobby\n/build Command\nChatSystem/RankSystem\nJump and Run System\nJump Pads\nKöpfe Editierbar\nAsync Programmiert (Weniger Reccourcen belastend)\nNeues Spieler Verstecken Designe\nMySql DatenBank\nSpieler verstecken\n Silent Lobby\n Lobbywechsler\nMSG\n Eigene Gruppen\n Double Jump\n Automatischer Spawnteleport\n Tablist\n Unbekannter Befehl Nachricht\n Man kann Kommands blocken\n JoinItems\n Wartungsarbeiten mode\n\n[ATTACH=full]300833[/ATTACH] \nLobbyGames\nGadges erweitern\n\n//Vorschläge?\nVorstell Video Könnt ihr per Nachricht Schicken!\n[/SIZE]\n\n\n\n\n[SIZE=7][ATTACH=full]300826[/ATTACH] [ATTACH=full]300827[/ATTACH] [/SIZE]\n\n[SIZE=7][ATTACH=full]300828[/ATTACH] [/SIZE]\n\n[SIZE=7][ATTACH=full]300829[/ATTACH] \n\n[ATTACH=full]300830[/ATTACH] \n\n[ATTACH=full]300831[/ATTACH] \n\n[ATTACH=full]300832[/ATTACH] \n\n\n[COLOR=#ff0000]DAS PLUGIN DARF NICHT ALS SEINS AUSGEGEBEN WERDEN\n\nDAS PLUGIN DARF NICHT DECOMPILT WERDEN[/COLOR]\n[/SIZE]\n[/CENTER]", + "source_code_url": "", + "donate_url": null }, { "id": 42926, @@ -139,7 +145,7 @@ "currency": "" }, "stats": { - "downloads": 1683, + "downloads": 1684, "updates": 0, "reviews": { "unique": 5, @@ -150,7 +156,9 @@ "external_download_url": "", "first_release": 1498566623, "last_update": 1498566623, - "description": "Features:\n- Profil\n- Einstellungen\n- Navigator\n- Sielerverstecken\n- FreundeSystem\n\n\n\nCommands:\n\n/ts - Permission: keine\n/web - Permission: keine\n\n\n/shop - Permission: keine\n\n\n/spawn - Permission: keine\n/warp - Permission: keine\n\n/build - Permission: lobby.build\n/fly - Permission: lobby.fly\n\n\n/gm \u003C0-3\u003E [Spieler] - Permission: lobby.gamemode\n/setspawn - Permission: lobby.setspawn\n/setwarp \u003CWarp\u003E - Permission: lobby.setwarp\n/time \u003CDay / Night\u003E - Permission: lobby.time\n/tp [Spieler] \u003CZielspieler\u003E - Permission: lobby.tp\n/weather \u003CSun / Rain\u003E - Permission: lobby.weather\n/setwarp \u003CWarp\u003E - Permission: lobby.setwarp\n/secret - Permission: lobby.setsecrets\n\nMit der Permission \"server.colorchat\" können Spieler farbig schreiben!\nMit der Permission \"lobby.vip\" werden Spieler im Player-Hider als VIP erkannt!\n\nJumpPads:\nGolddruckplatte\n\nItem-Permissions:\n\nPremium: lobby.premium\nMini-YouTuber: lobby.miniyoutuber\nYouTuber: lobby.youtuber\n\nRangSystem:\n\nRechte:\n\nAdmin: lobby.admin\nDev: lobby.developer\nSrMod: lobby.srmoderator\nMod: lobby.moderator\nSupporter: lobby.supporter\nBuilder: lobby.builder\nYouTuber: lobby.youtuber\nMiniYouTuber: lobby.miniyoutuber\n\nPremium-Ränge:\n\nUltimate: lobby.ultimate\nElite: lobby.elite\nPlus: lobby.plus" + "description": "Features:\n- Profil\n- Einstellungen\n- Navigator\n- Sielerverstecken\n- FreundeSystem\n\n\n\nCommands:\n\n/ts - Permission: keine\n/web - Permission: keine\n\n\n/shop - Permission: keine\n\n\n/spawn - Permission: keine\n/warp - Permission: keine\n\n/build - Permission: lobby.build\n/fly - Permission: lobby.fly\n\n\n/gm \u003C0-3\u003E [Spieler] - Permission: lobby.gamemode\n/setspawn - Permission: lobby.setspawn\n/setwarp \u003CWarp\u003E - Permission: lobby.setwarp\n/time \u003CDay / Night\u003E - Permission: lobby.time\n/tp [Spieler] \u003CZielspieler\u003E - Permission: lobby.tp\n/weather \u003CSun / Rain\u003E - Permission: lobby.weather\n/setwarp \u003CWarp\u003E - Permission: lobby.setwarp\n/secret - Permission: lobby.setsecrets\n\nMit der Permission \"server.colorchat\" können Spieler farbig schreiben!\nMit der Permission \"lobby.vip\" werden Spieler im Player-Hider als VIP erkannt!\n\nJumpPads:\nGolddruckplatte\n\nItem-Permissions:\n\nPremium: lobby.premium\nMini-YouTuber: lobby.miniyoutuber\nYouTuber: lobby.youtuber\n\nRangSystem:\n\nRechte:\n\nAdmin: lobby.admin\nDev: lobby.developer\nSrMod: lobby.srmoderator\nMod: lobby.moderator\nSupporter: lobby.supporter\nBuilder: lobby.builder\nYouTuber: lobby.youtuber\nMiniYouTuber: lobby.miniyoutuber\n\nPremium-Ränge:\n\nUltimate: lobby.ultimate\nElite: lobby.elite\nPlus: lobby.plus", + "source_code_url": "", + "donate_url": null }, { "id": 12463, @@ -185,7 +193,9 @@ "external_download_url": "", "first_release": 1442778728, "last_update": 1445535442, - "description": "[CENTER][B][SIZE=7]TeamList\n[/SIZE][/B][/CENTER]\n[B][SIZE=7]Der Source Code: [U][URL]http://pastebin.com/SV1K9aPu[/URL][/U][/SIZE]\n\n[SIZE=6]Dieses Plugin zeigt deine Teammitglieder an! [/SIZE]\n\n[SIZE=6]Dieses Plugin ist noch in der [U]Beta![/U]\n[U]Voraussetungen:[/U]\n[U]DU BRAUCHST ECLIPSE! Um da den source code rein zu machen und die Teammitglieder einzutragen! [/U]\n[/SIZE]\nFeatures:[/B]\n[LIST]\n[*][B]Zeigt die Teammitglieder mit /team an[/B]\n[/LIST]\n[B]Installation:[/B]\n[LIST=1]\n[*][B]Zieh das Plugin in dein \"plugins\" Ordner[/B]\n[*][B]Konfiguriere deine Teammitlgied in [U][B][B]Eclipse![/B][/B][/U][/B]\n[*][B]Starte/reload dein server(neu)[/B]\n[*][B]Enjoy :3[/B]\n[/LIST]\n[B]Befehle:[/B]\n[LIST]\n[*][B]/team (Keine Berechtigung nötig!)[/B]\n[/LIST]\n[B]\n[B]TODO:\n\n \n[SIZE=6][B] • Config.yml zum bearbeiten der Teammitglieder[/B][/SIZE]\n\n[/B][/B]" + "description": "[CENTER][B][SIZE=7]TeamList\n[/SIZE][/B][/CENTER]\n[B][SIZE=7]Der Source Code: [U][URL]http://pastebin.com/SV1K9aPu[/URL][/U][/SIZE]\n\n[SIZE=6]Dieses Plugin zeigt deine Teammitglieder an! [/SIZE]\n\n[SIZE=6]Dieses Plugin ist noch in der [U]Beta![/U]\n[U]Voraussetungen:[/U]\n[U]DU BRAUCHST ECLIPSE! Um da den source code rein zu machen und die Teammitglieder einzutragen! [/U]\n[/SIZE]\nFeatures:[/B]\n[LIST]\n[*][B]Zeigt die Teammitglieder mit /team an[/B]\n[/LIST]\n[B]Installation:[/B]\n[LIST=1]\n[*][B]Zieh das Plugin in dein \"plugins\" Ordner[/B]\n[*][B]Konfiguriere deine Teammitlgied in [U][B][B]Eclipse![/B][/B][/U][/B]\n[*][B]Starte/reload dein server(neu)[/B]\n[*][B]Enjoy :3[/B]\n[/LIST]\n[B]Befehle:[/B]\n[LIST]\n[*][B]/team (Keine Berechtigung nötig!)[/B]\n[/LIST]\n[B]\n[B]TODO:\n\n \n[SIZE=6][B] • Config.yml zum bearbeiten der Teammitglieder[/B][/SIZE]\n\n[/B][/B]", + "source_code_url": null, + "donate_url": null }, { "id": 33681, @@ -222,7 +232,9 @@ "external_download_url": "", "first_release": 1482670696, "last_update": 1482670696, - "description": "Items: Hat noch weitere Systeme\n \nNavigator\nSpieler Verstecker\nAutomatischer Nickname\nSilentLobby\nSchutzSchild\nLobby Selector\nFreunde" + "description": "Items: Hat noch weitere Systeme\n \nNavigator\nSpieler Verstecker\nAutomatischer Nickname\nSilentLobby\nSchutzSchild\nLobby Selector\nFreunde", + "source_code_url": "", + "donate_url": "" }, { "id": 37242, @@ -263,7 +275,9 @@ "external_download_url": "", "first_release": 1488531258, "last_update": 1488531258, - "description": "This is plugin for crates!\nCommands:\n/crate [For all commands]\n/crate reload [For reload the plugin]\n\n\n\n\n\nFor Problem Send Email To [email]ihackedyournetpvp@gmail.com[/email] or [email]chocogfx@abv.bg[/email]" + "description": "This is plugin for crates!\nCommands:\n/crate [For all commands]\n/crate reload [For reload the plugin]\n\n\n\n\n\nFor Problem Send Email To [email]ihackedyournetpvp@gmail.com[/email] or [email]chocogfx@abv.bg[/email]", + "source_code_url": "", + "donate_url": null }, { "id": 66080, @@ -304,7 +318,9 @@ "external_download_url": "", "first_release": 1553981841, "last_update": 1553981841, - "description": "[B]PERMISSIONS[/B]\nUse /heathtab -\u003E healthtab.use\nHidden tab -\u003E healthtab.tab (edit config)\n[B]NO IMG[/B] :|" + "description": "[B]PERMISSIONS[/B]\nUse /heathtab -\u003E healthtab.use\nHidden tab -\u003E healthtab.tab (edit config)\n[B]NO IMG[/B] :|", + "source_code_url": "", + "donate_url": "https://www.facebook.com/profile.php?id=100034720818444" }, { "id": 29945, @@ -343,7 +359,9 @@ "external_download_url": "", "first_release": 1475320239, "last_update": 1475320239, - "description": "[CENTER][B][COLOR=#660033][SIZE=7][FONT=Verdana]Lobby System\n[/FONT][/SIZE][/COLOR][/B][/CENTER]\n[B][COLOR=#660033][SIZE=7][FONT=Verdana]Features[/FONT][/SIZE][/COLOR][/B]\n[LIST]\n[*][COLOR=#660033][SIZE=7][FONT=Verdana]Tablist[/FONT][/SIZE][/COLOR]\n[*][COLOR=#660033][SIZE=7][FONT=Verdana]Chat [/FONT][/SIZE][/COLOR]\n[*][COLOR=#660033][SIZE=7][FONT=Verdana]Motd[/FONT][/SIZE][/COLOR]\n[*][COLOR=#660033][SIZE=7][FONT=Verdana]Nick (MySQL)[/FONT][/SIZE][/COLOR]\n[*][COLOR=#660033][SIZE=7][FONT=Verdana]Lobby Switcher (Bungeecord)[/FONT][/SIZE][/COLOR]\n[*][COLOR=#660033][SIZE=7][FONT=Verdana]Teleporter[/FONT][/SIZE][/COLOR]\n[*][COLOR=#660033][SIZE=7][FONT=Verdana]Spieler Verstecken/Anzeigen[/FONT][/SIZE][/COLOR]\n[*][COLOR=#660033][SIZE=7][FONT=Verdana]Gadgets[/FONT][/SIZE][/COLOR]\n[*][COLOR=#660033][SIZE=7][FONT=Verdana]Silent Lobby[/FONT][/SIZE][/COLOR]\n[/LIST]\n[CENTER][/CENTER]\n[B][COLOR=#660033][SIZE=7][FONT=Verdana]Commands\n[/FONT][/SIZE][/COLOR][/B]\n[LIST]\n[*][COLOR=#660033][SIZE=7][FONT=Verdana]/hub[/FONT][/SIZE][/COLOR]\n[*][COLOR=#660033][SIZE=7][FONT=Verdana]/leave[/FONT][/SIZE][/COLOR]\n[*][COLOR=#660033][SIZE=7][FONT=Verdana]/l[/FONT][/SIZE][/COLOR]\n[*][COLOR=#660033][SIZE=7][FONT=Verdana]/lobby[/FONT][/SIZE][/COLOR]\n[*][COLOR=#660033][SIZE=7][FONT=Verdana]/rank [Rang-Id] [/FONT][/SIZE][/COLOR]\n[*][COLOR=#660033][SIZE=7][FONT=Verdana]/cc (gleart den Chat)[/FONT][/SIZE][/COLOR]\n[*][COLOR=#660033][SIZE=7][FONT=Verdana]/pcc (gleart den eigenen Chat)[/FONT][/SIZE][/COLOR]\n[*][COLOR=#660033][SIZE=7][FONT=Verdana]/event (startet ein Event)[/FONT][/SIZE][/COLOR]\n[*][COLOR=#660033][SIZE=7][FONT=Verdana]/gm (Globalmute)[/FONT][/SIZE][/COLOR]\n[*][COLOR=#660033][SIZE=7][FONT=Verdana]/build (Build-Modus)[/FONT][/SIZE][/COLOR]\n[*][COLOR=#660033][SIZE=7][FONT=Verdana]/ban (Spieler bannen)[/FONT][/SIZE][/COLOR]\n[*][COLOR=#660033][SIZE=7][FONT=Verdana]/mute (Spieler muten)[/FONT][/SIZE][/COLOR]\n[/LIST]\n[LIST]\n[*][COLOR=#660033][SIZE=7][FONT=Verdana]/spectate (Spectaten in Spielmodie)[/FONT][/SIZE][/COLOR]\n[/LIST]\n[CENTER][B][COLOR=#ff8000][SIZE=7][FONT=Verdana]Freunde System\n[/FONT][/SIZE][/COLOR][/B][/CENTER]\n[B][COLOR=#ff8000][SIZE=7][FONT=Verdana][B]Commands[/B][/FONT][/SIZE][/COLOR][/B]\n[LIST]\n[*][COLOR=#ff8000][SIZE=7][FONT=Verdana]/friend[/FONT][/SIZE][/COLOR]\n[*][COLOR=#ff8000][SIZE=7][FONT=Verdana]/friend add [Name][/FONT][/SIZE][/COLOR]\n[*][COLOR=#ff8000][SIZE=7][FONT=Verdana]/friend deny [Name][/FONT][/SIZE][/COLOR]\n[*][COLOR=#ff8000][SIZE=7][FONT=Verdana]/friend list[/FONT][/SIZE][/COLOR]\n[*][COLOR=#ff8000][SIZE=7][FONT=Verdana]/friend remove [Name][/FONT][/SIZE][/COLOR]\n[*][COLOR=#ff8000][SIZE=7][FONT=Verdana]/msg [Name] (Text)[/FONT][/SIZE][/COLOR]\n[*][COLOR=#ff8000][SIZE=7][FONT=Verdana]/r (Text)[/FONT][/SIZE][/COLOR]\n[*][COLOR=#ff8000][SIZE=7][FONT=Verdana]/friend clear[/FONT][/SIZE][/COLOR]\n[*][COLOR=#ff8000][SIZE=7][FONT=Verdana]/friend requests[/FONT][/SIZE][/COLOR]\n[*][COLOR=#ff8000][SIZE=7][FONT=Verdana]/friend toggle[/FONT][/SIZE][/COLOR]\n[/LIST]\n\n[CENTER][B][COLOR=#00ff00][SIZE=7][FONT=Verdana]Party System[/FONT][/SIZE][/COLOR][/B][/CENTER]\n[B][COLOR=#00ff00][SIZE=7][FONT=Verdana]\n[B]Features[/B][/FONT][/SIZE][/COLOR][/B]\n[LIST]\n[*][COLOR=#00ff00][SIZE=7][FONT=Verdana]/party invite [Name][/FONT][/SIZE][/COLOR]\n[*][COLOR=#00ff00][SIZE=7][FONT=Verdana]/party accept [Name][/FONT][/SIZE][/COLOR]\n[*][COLOR=#00ff00][SIZE=7][FONT=Verdana]/party deny [Name][/FONT][/SIZE][/COLOR]\n[*][COLOR=#00ff00][SIZE=7][FONT=Verdana]/party list [Name][/FONT][/SIZE][/COLOR]\n[*][COLOR=#00ff00][SIZE=7][FONT=Verdana]/party leave [/FONT][/SIZE][/COLOR]\n[*][COLOR=#00ff00][SIZE=7][FONT=Verdana]/party kick [Name][/FONT][/SIZE][/COLOR]\n[*][COLOR=#00ff00][SIZE=7][FONT=Verdana]/party toggle[/FONT][/SIZE][/COLOR]\n[*][COLOR=#00ff00][SIZE=7][FONT=Verdana]/p (Text)[/FONT][/SIZE][/COLOR]\n[/LIST]\n[CENTER][B][COLOR=#0000ff][SIZE=7][FONT=Verdana]Spielmodi\n[/FONT][/SIZE][/COLOR][/B][/CENTER]\n[LIST]\n[*][COLOR=#0000ff][SIZE=7][FONT=Verdana]BedWars[/FONT][/SIZE][/COLOR]\n[*][COLOR=#0000ff][SIZE=7][FONT=Verdana]SkyWars[/FONT][/SIZE][/COLOR]\n[*][COLOR=#0000ff][SIZE=7][FONT=Verdana]Super Jump[/FONT][/SIZE][/COLOR]\n[*][COLOR=#0000ff][SIZE=7][FONT=Verdana]EnderGames[/FONT][/SIZE][/COLOR]\n[*][COLOR=#0000ff][SIZE=7][FONT=Verdana]FFA[/FONT][/SIZE][/COLOR]\n[*][COLOR=#0000ff][SIZE=7][FONT=Verdana]SurvivalGames (auch qsg)[/FONT][/SIZE][/COLOR]\n[*][COLOR=#0000ff][SIZE=7][FONT=Verdana]BauEvent[/FONT][/SIZE][/COLOR]\n[/LIST]\n[CENTER][B][COLOR=#ff0000][SIZE=7][FONT=Verdana]Coming Soon\n[/FONT][/SIZE][/COLOR][/B][/CENTER]\n[LIST]\n[*][COLOR=#ff0000][SIZE=7][FONT=Verdana]Community System[/FONT][/SIZE][/COLOR]\n[*][COLOR=#ff0000][SIZE=7][FONT=Verdana]Mehr Nicknames[/FONT][/SIZE][/COLOR]\n[*][COLOR=#ff0000][SIZE=7][FONT=Verdana]Boots[/FONT][/SIZE][/COLOR]\n[/LIST]" + "description": "[CENTER][B][COLOR=#660033][SIZE=7][FONT=Verdana]Lobby System\n[/FONT][/SIZE][/COLOR][/B][/CENTER]\n[B][COLOR=#660033][SIZE=7][FONT=Verdana]Features[/FONT][/SIZE][/COLOR][/B]\n[LIST]\n[*][COLOR=#660033][SIZE=7][FONT=Verdana]Tablist[/FONT][/SIZE][/COLOR]\n[*][COLOR=#660033][SIZE=7][FONT=Verdana]Chat [/FONT][/SIZE][/COLOR]\n[*][COLOR=#660033][SIZE=7][FONT=Verdana]Motd[/FONT][/SIZE][/COLOR]\n[*][COLOR=#660033][SIZE=7][FONT=Verdana]Nick (MySQL)[/FONT][/SIZE][/COLOR]\n[*][COLOR=#660033][SIZE=7][FONT=Verdana]Lobby Switcher (Bungeecord)[/FONT][/SIZE][/COLOR]\n[*][COLOR=#660033][SIZE=7][FONT=Verdana]Teleporter[/FONT][/SIZE][/COLOR]\n[*][COLOR=#660033][SIZE=7][FONT=Verdana]Spieler Verstecken/Anzeigen[/FONT][/SIZE][/COLOR]\n[*][COLOR=#660033][SIZE=7][FONT=Verdana]Gadgets[/FONT][/SIZE][/COLOR]\n[*][COLOR=#660033][SIZE=7][FONT=Verdana]Silent Lobby[/FONT][/SIZE][/COLOR]\n[/LIST]\n[CENTER][/CENTER]\n[B][COLOR=#660033][SIZE=7][FONT=Verdana]Commands\n[/FONT][/SIZE][/COLOR][/B]\n[LIST]\n[*][COLOR=#660033][SIZE=7][FONT=Verdana]/hub[/FONT][/SIZE][/COLOR]\n[*][COLOR=#660033][SIZE=7][FONT=Verdana]/leave[/FONT][/SIZE][/COLOR]\n[*][COLOR=#660033][SIZE=7][FONT=Verdana]/l[/FONT][/SIZE][/COLOR]\n[*][COLOR=#660033][SIZE=7][FONT=Verdana]/lobby[/FONT][/SIZE][/COLOR]\n[*][COLOR=#660033][SIZE=7][FONT=Verdana]/rank [Rang-Id] [/FONT][/SIZE][/COLOR]\n[*][COLOR=#660033][SIZE=7][FONT=Verdana]/cc (gleart den Chat)[/FONT][/SIZE][/COLOR]\n[*][COLOR=#660033][SIZE=7][FONT=Verdana]/pcc (gleart den eigenen Chat)[/FONT][/SIZE][/COLOR]\n[*][COLOR=#660033][SIZE=7][FONT=Verdana]/event (startet ein Event)[/FONT][/SIZE][/COLOR]\n[*][COLOR=#660033][SIZE=7][FONT=Verdana]/gm (Globalmute)[/FONT][/SIZE][/COLOR]\n[*][COLOR=#660033][SIZE=7][FONT=Verdana]/build (Build-Modus)[/FONT][/SIZE][/COLOR]\n[*][COLOR=#660033][SIZE=7][FONT=Verdana]/ban (Spieler bannen)[/FONT][/SIZE][/COLOR]\n[*][COLOR=#660033][SIZE=7][FONT=Verdana]/mute (Spieler muten)[/FONT][/SIZE][/COLOR]\n[/LIST]\n[LIST]\n[*][COLOR=#660033][SIZE=7][FONT=Verdana]/spectate (Spectaten in Spielmodie)[/FONT][/SIZE][/COLOR]\n[/LIST]\n[CENTER][B][COLOR=#ff8000][SIZE=7][FONT=Verdana]Freunde System\n[/FONT][/SIZE][/COLOR][/B][/CENTER]\n[B][COLOR=#ff8000][SIZE=7][FONT=Verdana][B]Commands[/B][/FONT][/SIZE][/COLOR][/B]\n[LIST]\n[*][COLOR=#ff8000][SIZE=7][FONT=Verdana]/friend[/FONT][/SIZE][/COLOR]\n[*][COLOR=#ff8000][SIZE=7][FONT=Verdana]/friend add [Name][/FONT][/SIZE][/COLOR]\n[*][COLOR=#ff8000][SIZE=7][FONT=Verdana]/friend deny [Name][/FONT][/SIZE][/COLOR]\n[*][COLOR=#ff8000][SIZE=7][FONT=Verdana]/friend list[/FONT][/SIZE][/COLOR]\n[*][COLOR=#ff8000][SIZE=7][FONT=Verdana]/friend remove [Name][/FONT][/SIZE][/COLOR]\n[*][COLOR=#ff8000][SIZE=7][FONT=Verdana]/msg [Name] (Text)[/FONT][/SIZE][/COLOR]\n[*][COLOR=#ff8000][SIZE=7][FONT=Verdana]/r (Text)[/FONT][/SIZE][/COLOR]\n[*][COLOR=#ff8000][SIZE=7][FONT=Verdana]/friend clear[/FONT][/SIZE][/COLOR]\n[*][COLOR=#ff8000][SIZE=7][FONT=Verdana]/friend requests[/FONT][/SIZE][/COLOR]\n[*][COLOR=#ff8000][SIZE=7][FONT=Verdana]/friend toggle[/FONT][/SIZE][/COLOR]\n[/LIST]\n\n[CENTER][B][COLOR=#00ff00][SIZE=7][FONT=Verdana]Party System[/FONT][/SIZE][/COLOR][/B][/CENTER]\n[B][COLOR=#00ff00][SIZE=7][FONT=Verdana]\n[B]Features[/B][/FONT][/SIZE][/COLOR][/B]\n[LIST]\n[*][COLOR=#00ff00][SIZE=7][FONT=Verdana]/party invite [Name][/FONT][/SIZE][/COLOR]\n[*][COLOR=#00ff00][SIZE=7][FONT=Verdana]/party accept [Name][/FONT][/SIZE][/COLOR]\n[*][COLOR=#00ff00][SIZE=7][FONT=Verdana]/party deny [Name][/FONT][/SIZE][/COLOR]\n[*][COLOR=#00ff00][SIZE=7][FONT=Verdana]/party list [Name][/FONT][/SIZE][/COLOR]\n[*][COLOR=#00ff00][SIZE=7][FONT=Verdana]/party leave [/FONT][/SIZE][/COLOR]\n[*][COLOR=#00ff00][SIZE=7][FONT=Verdana]/party kick [Name][/FONT][/SIZE][/COLOR]\n[*][COLOR=#00ff00][SIZE=7][FONT=Verdana]/party toggle[/FONT][/SIZE][/COLOR]\n[*][COLOR=#00ff00][SIZE=7][FONT=Verdana]/p (Text)[/FONT][/SIZE][/COLOR]\n[/LIST]\n[CENTER][B][COLOR=#0000ff][SIZE=7][FONT=Verdana]Spielmodi\n[/FONT][/SIZE][/COLOR][/B][/CENTER]\n[LIST]\n[*][COLOR=#0000ff][SIZE=7][FONT=Verdana]BedWars[/FONT][/SIZE][/COLOR]\n[*][COLOR=#0000ff][SIZE=7][FONT=Verdana]SkyWars[/FONT][/SIZE][/COLOR]\n[*][COLOR=#0000ff][SIZE=7][FONT=Verdana]Super Jump[/FONT][/SIZE][/COLOR]\n[*][COLOR=#0000ff][SIZE=7][FONT=Verdana]EnderGames[/FONT][/SIZE][/COLOR]\n[*][COLOR=#0000ff][SIZE=7][FONT=Verdana]FFA[/FONT][/SIZE][/COLOR]\n[*][COLOR=#0000ff][SIZE=7][FONT=Verdana]SurvivalGames (auch qsg)[/FONT][/SIZE][/COLOR]\n[*][COLOR=#0000ff][SIZE=7][FONT=Verdana]BauEvent[/FONT][/SIZE][/COLOR]\n[/LIST]\n[CENTER][B][COLOR=#ff0000][SIZE=7][FONT=Verdana]Coming Soon\n[/FONT][/SIZE][/COLOR][/B][/CENTER]\n[LIST]\n[*][COLOR=#ff0000][SIZE=7][FONT=Verdana]Community System[/FONT][/SIZE][/COLOR]\n[*][COLOR=#ff0000][SIZE=7][FONT=Verdana]Mehr Nicknames[/FONT][/SIZE][/COLOR]\n[*][COLOR=#ff0000][SIZE=7][FONT=Verdana]Boots[/FONT][/SIZE][/COLOR]\n[/LIST]", + "source_code_url": null, + "donate_url": null }, { "id": 36892, @@ -380,6 +398,8 @@ "external_download_url": "", "first_release": 1487969874, "last_update": 1487969874, - "description": "[COLOR=#000000]-------------------------------------------------------------------------------\n[IMG]https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRA34N-EuMDKJrCOjb5hqhB4xCCwADOY1S8aZabm8bv7EfgHqTP[/IMG]\n-------------------------------------------------------------------------------\n» [/COLOR][COLOR=rgb(179, 0, 0)][U]Commands[/U][/COLOR]\n[COLOR=#000000]\n[B]/setgrenze[/B] × Setzt die Todes-Zone\n[B]/setgrenze2[/B] × Setzt die AntiPvP-Zone\n[B]/stats [/B]× Zeigt dein Statistiken an\n[B]/setlobby[/B] × Setzt den Spawnpunkt\n\n» [/COLOR][COLOR=rgb(179, 0, 0)][U]Permissions[/U][/COLOR]\n[COLOR=#000000]\nKeine [B]Rechte[/B] / [B]Perms[/B] verfügbar!\n\n» [/COLOR][COLOR=rgb(179, 0, 0)][U]Features[/U][/COLOR]\n[COLOR=#000000]\nDu brauchst[B] kein[/B] WorldGuard\nEs gibt [B]7[/B] tolle [B]Kits[/B]!\nVorteile mit[B] Kills[/B] holen!\nTodesnachrichten [B]an[/B]/[B]aus[/B]\n[B]Niemand[/B] kann abbauen [auch[B] keine[/B] OP's]\n\n» [/COLOR][COLOR=rgb(179, 0, 0)][U]Wichtig[/U][/COLOR]\n[COLOR=#000000]\nDieses Plugin darf[B] nicht[/B] Verkauft oder\nweiter[B] verschickt[/B] werden! [[B]Copyright[/B]]\n\n» [/COLOR][COLOR=rgb(179, 0, 0)][U]Updates[/U][/COLOR]\n[COLOR=#000000]\nEs wird zu diesem Plugin [B]keine[/B]\nUpdates mehr geben, da es [B]komplett[/B]\nreleased ist. Es können [B]keine[/B] Bugs,\nfehler oder [B]sonstiges [/B]auftreten.\n\n» [/COLOR][COLOR=rgb(179, 0, 0)][U]Sonstiges[/U][/COLOR]\n[COLOR=#000000]\nDieses Plugin läuft nur über\nSpigot[B] 1,8.0[/B], [B]1.8.3[/B] und [B]1.8.8[/B]\n\n» [/COLOR][COLOR=#b30000][U]Karte zum Download[/U][/COLOR]\n\n[B][URL='http://workupload.com/file/cqn9Ydz'][COLOR=#000000]DOWNLOAD[/COLOR][/URL][/B]\n\n» [COLOR=#b30000][U]Urheberrechtschutz[/U][/COLOR]\n\n[SIZE=4][URL='https://www.google.de/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&uact=8&ved=0ahUKEwjx9tGdzqnSAhXHyRoKHTqNBXcQFggiMAE&url=http%3A%2F%2Fwww.compukick.de%2Fallgemein%2Fcopyright-zeichen&usg=AFQjCNGbziKA9QnnoOUDIaGA5KJskLA6AQ&sig2=veRxUG9Okva3ApkKsYhohg'][COLOR=#000000]©[/COLOR][/URL] Copyright [/SIZE][B][COLOR=#404040]XoneLP[/COLOR][/B] 2017\n\n» [COLOR=#b30000][U]Screenshots[/U][/COLOR]\n\nBald verfügbar!" + "description": "[COLOR=#000000]-------------------------------------------------------------------------------\n[IMG]https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRA34N-EuMDKJrCOjb5hqhB4xCCwADOY1S8aZabm8bv7EfgHqTP[/IMG]\n-------------------------------------------------------------------------------\n» [/COLOR][COLOR=rgb(179, 0, 0)][U]Commands[/U][/COLOR]\n[COLOR=#000000]\n[B]/setgrenze[/B] × Setzt die Todes-Zone\n[B]/setgrenze2[/B] × Setzt die AntiPvP-Zone\n[B]/stats [/B]× Zeigt dein Statistiken an\n[B]/setlobby[/B] × Setzt den Spawnpunkt\n\n» [/COLOR][COLOR=rgb(179, 0, 0)][U]Permissions[/U][/COLOR]\n[COLOR=#000000]\nKeine [B]Rechte[/B] / [B]Perms[/B] verfügbar!\n\n» [/COLOR][COLOR=rgb(179, 0, 0)][U]Features[/U][/COLOR]\n[COLOR=#000000]\nDu brauchst[B] kein[/B] WorldGuard\nEs gibt [B]7[/B] tolle [B]Kits[/B]!\nVorteile mit[B] Kills[/B] holen!\nTodesnachrichten [B]an[/B]/[B]aus[/B]\n[B]Niemand[/B] kann abbauen [auch[B] keine[/B] OP's]\n\n» [/COLOR][COLOR=rgb(179, 0, 0)][U]Wichtig[/U][/COLOR]\n[COLOR=#000000]\nDieses Plugin darf[B] nicht[/B] Verkauft oder\nweiter[B] verschickt[/B] werden! [[B]Copyright[/B]]\n\n» [/COLOR][COLOR=rgb(179, 0, 0)][U]Updates[/U][/COLOR]\n[COLOR=#000000]\nEs wird zu diesem Plugin [B]keine[/B]\nUpdates mehr geben, da es [B]komplett[/B]\nreleased ist. Es können [B]keine[/B] Bugs,\nfehler oder [B]sonstiges [/B]auftreten.\n\n» [/COLOR][COLOR=rgb(179, 0, 0)][U]Sonstiges[/U][/COLOR]\n[COLOR=#000000]\nDieses Plugin läuft nur über\nSpigot[B] 1,8.0[/B], [B]1.8.3[/B] und [B]1.8.8[/B]\n\n» [/COLOR][COLOR=#b30000][U]Karte zum Download[/U][/COLOR]\n\n[B][URL='http://workupload.com/file/cqn9Ydz'][COLOR=#000000]DOWNLOAD[/COLOR][/URL][/B]\n\n» [COLOR=#b30000][U]Urheberrechtschutz[/U][/COLOR]\n\n[SIZE=4][URL='https://www.google.de/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&uact=8&ved=0ahUKEwjx9tGdzqnSAhXHyRoKHTqNBXcQFggiMAE&url=http%3A%2F%2Fwww.compukick.de%2Fallgemein%2Fcopyright-zeichen&usg=AFQjCNGbziKA9QnnoOUDIaGA5KJskLA6AQ&sig2=veRxUG9Okva3ApkKsYhohg'][COLOR=#000000]©[/COLOR][/URL] Copyright [/SIZE][B][COLOR=#404040]XoneLP[/COLOR][/B] 2017\n\n» [COLOR=#b30000][U]Screenshots[/U][/COLOR]\n\nBald verfügbar!", + "source_code_url": "", + "donate_url": null } -] \ No newline at end of file +] diff --git a/tests/Unit/Client/Fixtures/listResourcesInSpigotCategory.json b/tests/Unit/Client/Fixtures/listResourcesInSpigotCategory.json index 542e4db..f88b667 100644 --- a/tests/Unit/Client/Fixtures/listResourcesInSpigotCategory.json +++ b/tests/Unit/Client/Fixtures/listResourcesInSpigotCategory.json @@ -34,7 +34,9 @@ "external_download_url": "", "first_release": 1534221885, "last_update": 1534221885, - "description": "Dieses Plugin funktioniert nicht." + "description": "Dieses Plugin funktioniert nicht.", + "source_code_url": "", + "donate_url": "" }, { "id": 27396, @@ -74,7 +76,9 @@ "external_download_url": "", "first_release": 1470263579, "last_update": 1470263579, - "description": "[FONT=Arial][SIZE=7][COLOR=#ffff4d] SKYWARS TEAM\n\nBETA 0.0.1[/COLOR][/SIZE][/FONT]\n[LIST]\n[*][SIZE=5][COLOR=#4d4dff]NEW UPDATES INCOMMING[/COLOR][/SIZE]\n[*][FONT=Georgia][SIZE=7][COLOR=#b35900]PLEASE NOT DOWNLOAD NOW IS BETA. Useless plugin.[/COLOR][/SIZE][/FONT]\n[/LIST]\n[IMG]http://image.prntscr.com/image/3731426289944a3c86a7851599e6c433.png[/IMG]" + "description": "[FONT=Arial][SIZE=7][COLOR=#ffff4d] SKYWARS TEAM\n\nBETA 0.0.1[/COLOR][/SIZE][/FONT]\n[LIST]\n[*][SIZE=5][COLOR=#4d4dff]NEW UPDATES INCOMMING[/COLOR][/SIZE]\n[*][FONT=Georgia][SIZE=7][COLOR=#b35900]PLEASE NOT DOWNLOAD NOW IS BETA. Useless plugin.[/COLOR][/SIZE][/FONT]\n[/LIST]\n[IMG]http://image.prntscr.com/image/3731426289944a3c86a7851599e6c433.png[/IMG]", + "source_code_url": null, + "donate_url": null }, { "id": 31322, @@ -112,7 +116,9 @@ "external_download_url": "", "first_release": 1478309223, "last_update": 1478479700, - "description": "[B]VipGM - Gamemode für VIP's![/B]\n\nDieses Plugin ist ein sehr simples,\nwas Vip/Premium User z.b in der Lobby Gamemode 0-3 gewährt.\n\n[B][U]Kommandos:[/U]\n/help VipGM [/B]\u003C Hilfe\n[B]/VipGM [/B]\u003C Zeigt dir an wie man das Kommando benutzt!\n[B]/VipGM 0-3 [/B]\u003C Haupt Kommando!\n\n[B][U]Permissions:[/U]\n- VIP.gm \u003C [/B]Standart Permission. Kann man absofort auch ändern in der Config! [B][I]NEU!\n[/I]\n[U]Config!:[/U] [I]Neu\n- [/I]Permission \u003C einstellbar!\n- [VipGM] \u003C einstellbar!\n- Keine Permission Nachricht \u003C einstellbar![/B]\n\n[B][U]Sprachen/Languages:[/U]\n- Deutsch/German\n\n[B][U]TO-DO!:[/U]\n- GUI\n- Mehr dinge in der Config einstellbar!\n- Vieleicht Englisch/English![/B]\n[/B]\n\n[B][U]Fragen und Support:[/U][/B]\nFalls ihr fragen oder Verbesserungsvorschläge habt schreibt es in die Kommentare!" + "description": "[B]VipGM - Gamemode für VIP's![/B]\n\nDieses Plugin ist ein sehr simples,\nwas Vip/Premium User z.b in der Lobby Gamemode 0-3 gewährt.\n\n[B][U]Kommandos:[/U]\n/help VipGM [/B]\u003C Hilfe\n[B]/VipGM [/B]\u003C Zeigt dir an wie man das Kommando benutzt!\n[B]/VipGM 0-3 [/B]\u003C Haupt Kommando!\n\n[B][U]Permissions:[/U]\n- VIP.gm \u003C [/B]Standart Permission. Kann man absofort auch ändern in der Config! [B][I]NEU!\n[/I]\n[U]Config!:[/U] [I]Neu\n- [/I]Permission \u003C einstellbar!\n- [VipGM] \u003C einstellbar!\n- Keine Permission Nachricht \u003C einstellbar![/B]\n\n[B][U]Sprachen/Languages:[/U]\n- Deutsch/German\n\n[B][U]TO-DO!:[/U]\n- GUI\n- Mehr dinge in der Config einstellbar!\n- Vieleicht Englisch/English![/B]\n[/B]\n\n[B][U]Fragen und Support:[/U][/B]\nFalls ihr fragen oder Verbesserungsvorschläge habt schreibt es in die Kommentare!", + "source_code_url": null, + "donate_url": null }, { "id": 4228, @@ -136,7 +142,7 @@ "currency": "" }, "stats": { - "downloads": 1187, + "downloads": 1193, "updates": 0, "reviews": { "unique": 5, @@ -147,7 +153,9 @@ "external_download_url": "", "first_release": 1424499758, "last_update": 1424499758, - "description": "[B]To install:[/B]\nDownload: winrar\n\nFirst put the skript plugin in your plugins folder.\nSecond put the skript directory file in your plugins folder.\nthird put the potioneffects.sh directory Skripts\u003EScripts\nthen restart your server Do Not /Reload\nupon installing you can do /skript reload all\nEnjoy Particle Free unlimited Night Vision!\n\nAnd That's it! you're all done!\n\n[B]Check Out play.sencegaming.net![/B]" + "description": "[B]To install:[/B]\nDownload: winrar\n\nFirst put the skript plugin in your plugins folder.\nSecond put the skript directory file in your plugins folder.\nthird put the potioneffects.sh directory Skripts\u003EScripts\nthen restart your server Do Not /Reload\nupon installing you can do /skript reload all\nEnjoy Particle Free unlimited Night Vision!\n\nAnd That's it! you're all done!\n\n[B]Check Out play.sencegaming.net![/B]", + "source_code_url": null, + "donate_url": null }, { "id": 12582, @@ -182,7 +190,9 @@ "external_download_url": "", "first_release": 1443182430, "last_update": 1443182430, - "description": "This is a TEST-Plugin. But it not uppdated to 1.8, this pluin is on 1.5! :(\nBut Im gonna make more plugins!\nHave a nice day" + "description": "This is a TEST-Plugin. But it not uppdated to 1.8, this pluin is on 1.5! :(\nBut Im gonna make more plugins!\nHave a nice day", + "source_code_url": null, + "donate_url": null }, { "id": 36310, @@ -206,7 +216,7 @@ "currency": "" }, "stats": { - "downloads": 1307, + "downloads": 1308, "updates": 1, "reviews": { "unique": 5, @@ -217,7 +227,9 @@ "external_download_url": "", "first_release": 1487036176, "last_update": 1487037739, - "description": "[IMG]http://i.imgur.com/eqSFZfd.png[/IMG]\n\n[B]Introduction[/B]\nAdvanced NoCheat attempts to prevent cheat clients from exploiting weaknesses of Minecraft or its protocol, making your server more safe. Checks cover a wide range of issues including flying and speeding, fighting hacks, fast block breaking and nukers, inventory hacks, chat spam and other types of malicious behaviour.\n[B]Download[/B]\nThis plugin need [B][SIZE=6][URL='https://www.spigotmc.org/resources/protocollib.1997/']ProtocolLib[/URL].\nIf you want the AdvancedNoCheatPlus\nLink:[URL='https://www.spigotmc.org/resources/ntac-advanced-nocheatplus-patchwork-spigot-1-9.22746/']NTAC[/URL][/SIZE]\nMODULES ARE BLOCKED:[/B]\n[LIST]\n[*][B] autoArmor[/B]\n[*][B] autoclicker[/B]\n[*][B] autospawn[/B]\n[*][B] BadPackets(regen,step....)[/B]\n[*][B] BedMove[B](LongJump,AirMove,Hop,Blink....)[/B][/B]\n[*][B][B] reach[/B][/B]\n[*][B][B] Crash head[/B][/B]\n[*][B][B] Criticals[/B][/B]\n[*][B][B] FastClimb[/B][/B]\n[*][B][B] FastPlace[/B][/B]\n[*][B][B] Headless[/B][/B]\n[*][B][B] Killaura(AntiBot,Speed)[/B][/B]\n[*][B][B] NoSlowDown[/B][/B]\n[*][B][B] NoSwing[/B][/B]\n[*][B][B] Speed(BHop,Tick)[/B][/B]\n[*][B][B] Fly(Bypass,Vanilla)[/B][/B]\n[/LIST]" + "description": "[IMG]http://i.imgur.com/eqSFZfd.png[/IMG]\n\n[B]Introduction[/B]\nAdvanced NoCheat attempts to prevent cheat clients from exploiting weaknesses of Minecraft or its protocol, making your server more safe. Checks cover a wide range of issues including flying and speeding, fighting hacks, fast block breaking and nukers, inventory hacks, chat spam and other types of malicious behaviour.\n[B]Download[/B]\nThis plugin need [B][SIZE=6][URL='https://www.spigotmc.org/resources/protocollib.1997/']ProtocolLib[/URL].\nIf you want the AdvancedNoCheatPlus\nLink:[URL='https://www.spigotmc.org/resources/ntac-advanced-nocheatplus-patchwork-spigot-1-9.22746/']NTAC[/URL][/SIZE]\nMODULES ARE BLOCKED:[/B]\n[LIST]\n[*][B] autoArmor[/B]\n[*][B] autoclicker[/B]\n[*][B] autospawn[/B]\n[*][B] BadPackets(regen,step....)[/B]\n[*][B] BedMove[B](LongJump,AirMove,Hop,Blink....)[/B][/B]\n[*][B][B] reach[/B][/B]\n[*][B][B] Crash head[/B][/B]\n[*][B][B] Criticals[/B][/B]\n[*][B][B] FastClimb[/B][/B]\n[*][B][B] FastPlace[/B][/B]\n[*][B][B] Headless[/B][/B]\n[*][B][B] Killaura(AntiBot,Speed)[/B][/B]\n[*][B][B] NoSlowDown[/B][/B]\n[*][B][B] NoSwing[/B][/B]\n[*][B][B] Speed(BHop,Tick)[/B][/B]\n[*][B][B] Fly(Bypass,Vanilla)[/B][/B]\n[/LIST]", + "source_code_url": "", + "donate_url": null }, { "id": 88081, @@ -258,7 +270,9 @@ "external_download_url": "", "first_release": 1611142841, "last_update": 1611142841, - "description": "INFORMATION\nVoxel-AntiCrash is an advanced plugin that protects your server against all kinds of crashes and exploits.\nIt is much better than the competition (ExploitFixer, SpigotGuard, and others\nOur Discord: [URL]https://discord.gg/q7Ky8cF6CP[/URL]" + "description": "INFORMATION\nVoxel-AntiCrash is an advanced plugin that protects your server against all kinds of crashes and exploits.\nIt is much better than the competition (ExploitFixer, SpigotGuard, and others\nOur Discord: [URL]https://discord.gg/q7Ky8cF6CP[/URL]", + "source_code_url": "https://www.mediafire.com/file/gms1q223cmab77s/Voxel-AntiCrash_SRC.rar/file", + "donate_url": "https://tipply.pl/u/MatiX2K69" }, { "id": 9158, @@ -293,7 +307,9 @@ "external_download_url": "", "first_release": 1436370570, "last_update": 1436370570, - "description": "[B]Unkown Command?[/B]\nHey this is my New Plugin of German!\n\nHallo dies ist mein Neues Plugin auf Deutsch!\n\nDownload NOW!\n\nThis Plugin is German!" + "description": "[B]Unkown Command?[/B]\nHey this is my New Plugin of German!\n\nHallo dies ist mein Neues Plugin auf Deutsch!\n\nDownload NOW!\n\nThis Plugin is German!", + "source_code_url": null, + "donate_url": null }, { "id": 95534, @@ -330,7 +346,9 @@ "external_download_url": "", "first_release": 1629553268, "last_update": 1629553268, - "description": "[CENTER][B][SIZE=7]Simple AntiCrash\nv: 1.0\n\n+ OPEN SOURCE!\n[/SIZE][/B]\n[SIZE=5]The Perfect Plugin for every Server!\n\n[U]If The Player interacts with the Item, the Item will get removed.[/U]\n\n[B][I]! The Best Plugin for every Creative Server ![/I][/B][/SIZE]\n\n\n[SIZE=5][B]What does [/B][/SIZE][B][SIZE=5]it Block?[/SIZE][/B]\n[SIZE=5]It blocks following things:\n\n- Book and Quill / Books\n- ArmorStands[/SIZE]\n\n+ Messages and Sounds Ingame!\n\n\n[B]Messages & Sounds when u Interact with Books or Armorstands![/B]\n\n[ATTACH=full]646034[/ATTACH]\n[SIZE=5]\n[I]If u have Trouble with the Plugin, feel free to contact me on Discord[/I][B]: sxbi™#0001[/B]\n[/SIZE][/CENTER]" + "description": "[CENTER][B][SIZE=7]Simple AntiCrash\nv: 1.0\n\n+ OPEN SOURCE!\n[/SIZE][/B]\n[SIZE=5]The Perfect Plugin for every Server!\n\n[U]If The Player interacts with the Item, the Item will get removed.[/U]\n\n[B][I]! The Best Plugin for every Creative Server ![/I][/B][/SIZE]\n\n\n[SIZE=5][B]What does [/B][/SIZE][B][SIZE=5]it Block?[/SIZE][/B]\n[SIZE=5]It blocks following things:\n\n- Book and Quill / Books\n- ArmorStands[/SIZE]\n\n+ Messages and Sounds Ingame!\n\n\n[B]Messages & Sounds when u Interact with Books or Armorstands![/B]\n\n[ATTACH=full]646034[/ATTACH]\n[SIZE=5]\n[I]If u have Trouble with the Plugin, feel free to contact me on Discord[/I][B]: sxbi™#0001[/B]\n[/SIZE][/CENTER]", + "source_code_url": "https://workupload.com/file/rHQbBU5Rbe4", + "donate_url": "https://paypal.me/bastipy" }, { "id": 26135, @@ -370,6 +388,8 @@ "external_download_url": "", "first_release": 1468162829, "last_update": 1468162829, - "description": "[ATTACH=full]150761[/ATTACH][B][I][SIZE=6][COLOR=#ff0000]Custom Creeper Eggs is a plugin I made to be like Cosmic PvP's cegg plugin.[/COLOR][/SIZE][/I][/B]\n\n[B][U]Types:[/U][/B]\n[I]Drill Creeper Egg (1)\nGigantic Creeper Egg (2)\nSponge Creeper Egg (3)\nDuper Creeper Egg (4)\nMore To Come...[/I]\n\n[ATTACH=full]150760[/ATTACH]\n[B][U]/cegg (player) (Type)[/U][/B]\n[I]Type can be 1,2,3,4 or the names.[/I]\n\n[ATTACH=full]150758[/ATTACH]\n[B]admin.admin - Permission to /cegg[/B]\n\n[ATTACH=full]150759[/ATTACH]\n[ATTACH=full]150768[/ATTACH]\n[ATTACH=full]150769[/ATTACH]\n[ATTACH=full]150770[/ATTACH]\n[ATTACH=full]150771[/ATTACH]\n\n\nNEEDED:\nSkript\nSkQuery\n\nINSTALL:\nInstall Skript\nPlace the download Into the scripts under Skript folder\nRestart server" + "description": "[ATTACH=full]150761[/ATTACH][B][I][SIZE=6][COLOR=#ff0000]Custom Creeper Eggs is a plugin I made to be like Cosmic PvP's cegg plugin.[/COLOR][/SIZE][/I][/B]\n\n[B][U]Types:[/U][/B]\n[I]Drill Creeper Egg (1)\nGigantic Creeper Egg (2)\nSponge Creeper Egg (3)\nDuper Creeper Egg (4)\nMore To Come...[/I]\n\n[ATTACH=full]150760[/ATTACH]\n[B][U]/cegg (player) (Type)[/U][/B]\n[I]Type can be 1,2,3,4 or the names.[/I]\n\n[ATTACH=full]150758[/ATTACH]\n[B]admin.admin - Permission to /cegg[/B]\n\n[ATTACH=full]150759[/ATTACH]\n[ATTACH=full]150768[/ATTACH]\n[ATTACH=full]150769[/ATTACH]\n[ATTACH=full]150770[/ATTACH]\n[ATTACH=full]150771[/ATTACH]\n\n\nNEEDED:\nSkript\nSkQuery\n\nINSTALL:\nInstall Skript\nPlace the download Into the scripts under Skript folder\nRestart server", + "source_code_url": null, + "donate_url": null } -] \ No newline at end of file +]