This commit is contained in:
Ghost_chu committed 2021-09-08 14:58:24 +08:00
1 parent fc1ad38876
commit 9ca3d5f0a9
24 files changed
+438 -289

No files matched your search

+7 -7
View File
@@ -1,10 +1,10 @@
component_depth: 100
languages:
- java
- script
- java
- script
exclude:
- /src/main/resources
- /src/test/
- /.github
- /.idea
- /lib
- /src/main/resources
- /src/test/
- /.github
- /.idea
- /lib
+16 -12
View File
@@ -1,34 +1,38 @@
---
name: Bug report
about: Report the bugs
title: "[BUG]"
labels: 'bug'
assignees: ''
name: Bug report about: Report the bugs title: "[BUG]"
labels: 'bug' assignees: ''
---
### Describe the bug:
A clear and concise description of what the bug is.
### To Reproduce:
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
### Expected behavior:
A clear and concise description of what you expected to happen.
### Screenshots:
If applicable, add screenshots to help explain your problem.
Leave this section body empty if no screenshots provided.
If applicable, add screenshots to help explain your problem. Leave this section body empty if no screenshots provided.
### Paste link:
Execute command `/qs paste`, and you will get a link contains your server information, paste it under this text.
**You must create a paste, except plugin completely won't work.**
If you create failed, you should find a paste file under the `plugins/QuickShop` folder.
Execute command `/qs paste`, and you will get a link contains your server information, paste it under this text.
**You must create a paste, except plugin completely won't work.**
If you create failed, you should find a paste file under the `plugins/QuickShop` folder.
- 【REPLACE ME TO PASTE LINK】
### Additional context:
Add any other context about the problem here.
Leave this section body empty if no additional context provided.
Add any other context about the problem here. Leave this section body empty if no additional context provided.
+8 -9
View File
@@ -1,18 +1,17 @@
---
name: Feature request
about: Request a feature
title: "[Feature]"
labels: 'enhancement'
assignees: ''
name: Feature request about: Request a feature title: "[Feature]"
labels: 'enhancement' assignees: ''
---
### Describe the Feature:
A clear and concise description of what the feature is.
### Screenshots:
If applicable, add screenshots to help explain your feature.
Leave this section body empty if no screenshots provided.
If applicable, add screenshots to help explain your feature. Leave this section body empty if no screenshots provided.
### Additional context:
Add any other context about the feature here.
Leave this section body empty if no additional context provided.
Add any other context about the feature here. Leave this section body empty if no additional context provided.
+10 -10
View File
@@ -1,9 +1,6 @@
---
name: Performance report
about: Report the performance issue
title: "[PERFORMANCE]"
labels: 'performance'
assignees: ''
name: Performance report about: Report the performance issue title: "[PERFORMANCE]"
labels: 'performance' assignees: ''
---
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@@ -17,6 +14,7 @@ A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
@@ -29,15 +27,17 @@ A clear and concise description of what you expected to happen.
If applicable, add screenshots to help explain your problem.
**Paste link:**
Execute command /qs paste, you will get a link contains your server information, paste it under this text.
You must create a paste, except plugin completely won't work.
If you create failed, you should find a paste file under the plugin/QuickShop folder.
Execute command /qs paste, you will get a link contains your server information, paste it under this text. You must
create a paste, except plugin completely won't work. If you create failed, you should find a paste file under the
plugin/QuickShop folder.
- 【REPLACE ME TO PASTE LINK】
**Spark result link: (Require)**
Install the spark at https://www.spigotmc.org/resources/spark.57242/, and execute /spark sampler --start to enable the spark sampler, wait 10mins and execute /spark sampler --stop to get sample result.
- 【REPLACE ME TO SPARK PASTE LINK】
Install the spark at https://www.spigotmc.org/resources/spark.57242/, and execute /spark sampler --start to enable the
spark sampler, wait 10mins and execute /spark sampler --stop to get sample result.
- 【REPLACE ME TO SPARK PASTE LINK】
**Additional context**
Add any other context about the problem here.
+2 -5
View File
@@ -1,9 +1,6 @@
---
name: Wiki Contribute
about: Contributing the wiki
title: "[Contribute WIKI]"
labels: 'wiki'
assignees: ''
name: Wiki Contribute about: Contributing the wiki title: "[Contribute WIKI]"
labels: 'wiki' assignees: ''
---
**Repository Address**
+47 -47
View File
@@ -1,49 +1,49 @@
version: 2
updates:
- package-ecosystem: maven
directory: "/"
schedule:
interval: daily
open-pull-requests-limit: 10
ignore:
- dependency-name: com.github.ben-manes.caffeine:caffeine
versions:
- "> 2.8.8"
- dependency-name: com.github.TownyAdvanced:Towny
versions:
- "> 0.96.2.0"
- dependency-name: io.sentry:sentry
versions:
- "> 3.1.1"
- dependency-name: net.kyori:adventure-text-serializer-gson
versions:
- "> 4.2.0, < 5"
- dependency-name: net.minidev:json-smart
versions:
- "> 1.3.2"
- dependency-name: net.tnemc:Reserve
versions:
- "> 0.1.3.0"
- dependency-name: org.junit.jupiter:junit-jupiter
versions:
- "> RELEASE"
- dependency-name: org.slf4j:slf4j-nop
versions:
- "> 1.7.6"
- dependency-name: com.massivecraft:Factions
versions:
- 1.6.9.5-2.6.8-STABLE
- dependency-name: com.github.angeschossen:LandsAPI
versions:
- 5.2.1
- 5.2.2
- 5.3.2
- 5.3.3
- 5.5.5
- dependency-name: com.github.seeseemelk:MockBukkit-v1.16
versions:
- 0.25.0
- 0.27.0
- 0.28.0
- 0.32.1
- 0.32.2
- package-ecosystem: maven
directory: "/"
schedule:
interval: daily
open-pull-requests-limit: 10
ignore:
- dependency-name: com.github.ben-manes.caffeine:caffeine
versions:
- "> 2.8.8"
- dependency-name: com.github.TownyAdvanced:Towny
versions:
- "> 0.96.2.0"
- dependency-name: io.sentry:sentry
versions:
- "> 3.1.1"
- dependency-name: net.kyori:adventure-text-serializer-gson
versions:
- "> 4.2.0, < 5"
- dependency-name: net.minidev:json-smart
versions:
- "> 1.3.2"
- dependency-name: net.tnemc:Reserve
versions:
- "> 0.1.3.0"
- dependency-name: org.junit.jupiter:junit-jupiter
versions:
- "> RELEASE"
- dependency-name: org.slf4j:slf4j-nop
versions:
- "> 1.7.6"
- dependency-name: com.massivecraft:Factions
versions:
- 1.6.9.5-2.6.8-STABLE
- dependency-name: com.github.angeschossen:LandsAPI
versions:
- 5.2.1
- 5.2.2
- 5.3.2
- 5.3.3
- 5.5.5
- dependency-name: com.github.seeseemelk:MockBukkit-v1.16
versions:
- 0.25.0
- 0.27.0
- 0.28.0
- 0.32.1
- 0.32.2
+23 -1
View File
@@ -1 +1,23 @@
<svg xmlns="http://www.w3.org/2000/svg" width="71" height="80" fill="none" viewBox="0 0 71 80"><path fill="#5865F2" d="M60.1045 13.8978C55.5792 11.8214 50.7265 10.2916 45.6527 9.41542C45.5603 9.39851 45.468 9.44077 45.4204 9.52529C44.7963 10.6353 44.105 12.0834 43.6209 13.2216C38.1637 12.4046 32.7345 12.4046 27.3892 13.2216C26.905 12.0581 26.1886 10.6353 25.5617 9.52529C25.5141 9.44359 25.4218 9.40133 25.3294 9.41542C20.2584 10.2888 15.4057 11.8186 10.8776 13.8978C10.8384 13.9147 10.8048 13.9429 10.7825 13.9795C1.57795 27.7309 -0.943561 41.1443 0.293408 54.3914C0.299005 54.4562 0.335386 54.5182 0.385761 54.5576C6.45866 59.0174 12.3413 61.7249 18.1147 63.5195C18.2071 63.5477 18.305 63.5139 18.3638 63.4378C19.7295 61.5728 20.9469 59.6063 21.9907 57.5383C22.0523 57.4172 21.9935 57.2735 21.8676 57.2256C19.9366 56.4931 18.0979 55.6 16.3292 54.5858C16.1893 54.5041 16.1781 54.304 16.3068 54.2082C16.679 53.9293 17.0513 53.6391 17.4067 53.3461C17.471 53.2926 17.5606 53.2813 17.6362 53.3151C29.2558 58.6202 41.8354 58.6202 53.3179 53.3151C53.3935 53.2785 53.4831 53.2898 53.5502 53.3433C53.9057 53.6363 54.2779 53.9293 54.6529 54.2082C54.7816 54.304 54.7732 54.5041 54.6333 54.5858C52.8646 55.6197 51.0259 56.4931 49.0921 57.2228C48.9662 57.2707 48.9102 57.4172 48.9718 57.5383C50.038 59.6034 51.2554 61.5699 52.5959 63.435C52.6519 63.5139 52.7526 63.5477 52.845 63.5195C58.6464 61.7249 64.529 59.0174 70.6019 54.5576C70.6551 54.5182 70.6887 54.459 70.6943 54.3942C72.1747 39.0791 68.2147 25.7757 60.1968 13.9823C60.1772 13.9429 60.1437 13.9147 60.1045 13.8978ZM23.7259 46.3253C20.2276 46.3253 17.3451 43.1136 17.3451 39.1693C17.3451 35.225 20.1717 32.0133 23.7259 32.0133C27.308 32.0133 30.1626 35.2532 30.1066 39.1693C30.1066 43.1136 27.28 46.3253 23.7259 46.3253ZM47.3178 46.3253C43.8196 46.3253 40.9371 43.1136 40.9371 39.1693C40.9371 35.225 43.7636 32.0133 47.3178 32.0133C50.9 32.0133 53.7545 35.2532 53.6986 39.1693C53.6986 43.1136 50.9 46.3253 47.3178 46.3253Z"/></svg>
<!--
- This file is a part of project QuickShop, the name is Discord.svg
- Copyright (C) PotatoCraft Studio and contributors
-
- This program is free software: you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by the
- Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful, but WITHOUT
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-->
<svg xmlns="http://www.w3.org/2000/svg" width="71" height="80" fill="none" viewBox="0 0 71 80">
<path fill="#5865F2"
d="M60.1045 13.8978C55.5792 11.8214 50.7265 10.2916 45.6527 9.41542C45.5603 9.39851 45.468 9.44077 45.4204 9.52529C44.7963 10.6353 44.105 12.0834 43.6209 13.2216C38.1637 12.4046 32.7345 12.4046 27.3892 13.2216C26.905 12.0581 26.1886 10.6353 25.5617 9.52529C25.5141 9.44359 25.4218 9.40133 25.3294 9.41542C20.2584 10.2888 15.4057 11.8186 10.8776 13.8978C10.8384 13.9147 10.8048 13.9429 10.7825 13.9795C1.57795 27.7309 -0.943561 41.1443 0.293408 54.3914C0.299005 54.4562 0.335386 54.5182 0.385761 54.5576C6.45866 59.0174 12.3413 61.7249 18.1147 63.5195C18.2071 63.5477 18.305 63.5139 18.3638 63.4378C19.7295 61.5728 20.9469 59.6063 21.9907 57.5383C22.0523 57.4172 21.9935 57.2735 21.8676 57.2256C19.9366 56.4931 18.0979 55.6 16.3292 54.5858C16.1893 54.5041 16.1781 54.304 16.3068 54.2082C16.679 53.9293 17.0513 53.6391 17.4067 53.3461C17.471 53.2926 17.5606 53.2813 17.6362 53.3151C29.2558 58.6202 41.8354 58.6202 53.3179 53.3151C53.3935 53.2785 53.4831 53.2898 53.5502 53.3433C53.9057 53.6363 54.2779 53.9293 54.6529 54.2082C54.7816 54.304 54.7732 54.5041 54.6333 54.5858C52.8646 55.6197 51.0259 56.4931 49.0921 57.2228C48.9662 57.2707 48.9102 57.4172 48.9718 57.5383C50.038 59.6034 51.2554 61.5699 52.5959 63.435C52.6519 63.5139 52.7526 63.5477 52.845 63.5195C58.6464 61.7249 64.529 59.0174 70.6019 54.5576C70.6551 54.5182 70.6887 54.459 70.6943 54.3942C72.1747 39.0791 68.2147 25.7757 60.1968 13.9823C60.1772 13.9429 60.1437 13.9147 60.1045 13.8978ZM23.7259 46.3253C20.2276 46.3253 17.3451 43.1136 17.3451 39.1693C17.3451 35.225 20.1717 32.0133 23.7259 32.0133C27.308 32.0133 30.1626 35.2532 30.1066 39.1693C30.1066 43.1136 27.28 46.3253 23.7259 46.3253ZM47.3178 46.3253C43.8196 46.3253 40.9371 43.1136 40.9371 39.1693C40.9371 35.225 43.7636 32.0133 47.3178 32.0133C50.9 32.0133 53.7545 35.2532 53.6986 39.1693C53.6986 43.1136 50.9 46.3253 47.3178 46.3253Z"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

+140 -1
View File
@@ -1 +1,140 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg" id="svg2" width="226" height="312" version="1.1" xml:space="preserve"><metadata id="metadata8"/><defs id="defs6"><clipPath id="clipPath18" clipPathUnits="userSpaceOnUse"><path id="path20" d="M 0,2494.84 0,0 l 1804.34,0 0,2494.84 -1804.34,0 z"/></clipPath></defs><g id="g10" transform="matrix(1.25,0,0,-1.25,0,312)"><g id="g3393"><path style="fill:#d33833;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path22" d="m 177.718,129.264 c 0,-49.4288 -39.175,-89.4992 -87.5,-89.4992 -48.3242,0 -87.49925,40.0704 -87.49925,89.4992 0,49.43 39.17505,89.501 87.49925,89.501 48.325,0 87.5,-40.071 87.5,-89.501"/><path style="fill:#ef3d3a;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path24" d="m 6.28438,107.098 c 0,0 -6.33438,93.333 79.66602,96 l -5.9996,10 -46.6664,-15.667 -13.3336,-15.333 -11.66642,-22.334 -6.66719,-26 2,-17.333"/><path style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path26" d="M 30.2883,190.319 C 14.9363,174.611 5.43633,152.923 5.43633,128.93 l 0,0 c 0,-23.988 9.49997,-45.6788 24.85197,-61.3839 l 0,0 C 45.6477,51.841 66.8152,42.15 90.2168,42.15 l 0,0 c 23.4022,0 44.5712,9.691 59.9292,25.3961 l 0,0 c 15.351,15.7051 24.853,37.3959 24.853,61.3839 l 0,0 c 0,23.993 -9.502,45.681 -24.853,61.389 l 0,0 c -15.358,15.702 -36.527,25.393 -59.9292,25.395 l 0,0 C 66.8152,215.712 45.6477,206.021 30.2883,190.319 l 0,0 z M 26.4023,63.7469 C 10.0867,80.4328 0,103.493 0,128.93 l 0,0 c 0,25.441 10.0867,48.499 26.4023,65.186 l 0,0 c 16.3118,16.69 38.8915,27.035 63.8145,27.032 l 0,0 c 24.9232,0.003 47.5052,-10.342 63.8142,-27.032 l 0,0 c 16.317,-16.687 26.405,-39.747 26.403,-65.186 l 0,0 c 0.002,-25.437 -10.086,-48.4972 -26.403,-65.1831 l 0,0 C 137.722,47.0578 115.14,36.7141 90.2168,36.7141 l 0,0 c -24.923,0 -47.5027,10.3437 -63.8145,27.0328 l 0,0"/><path style="fill:#f0d6b7;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path28" d="m 127.051,128.768 -13.334,-2 -18.0002,-2 -11.6672,-0.333 -11.3328,0.333 -8.6672,2.667 -7.6668,8.333 -6,17 -1.3332,3.667 -8,2.666 -4.6668,7.667 -3.3332,11 3.6672,9.667 8.666,3 7,-3.334 3.334,-7.333 4,0.667 1.3328,1.666 -1.3328,7.667 -0.334,9.667 2,13.333 -0.0781,7.616 6.0781,9.717 10.6668,7.667 18.6672,8 20.6662,-3 18,-13 8.334,-13.333 5.333,-9.667 1.333,-24 -4,-20.667 -7.333,-18.333 -7,-9.667"/><path style="fill:#335061;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path30" d="m 115.717,71.102 -47.6674,-2 0,-8 4,-28 -2,-2.334 -33.3328,11.334 -2.334,4 -3.3332,37.666 -7.6656,22.667 -1.6672,5.333 26.666,18.333 8.334,3.334 7.3328,-9 6.3332,-5.667 7.334,-2.333 3.3328,-1 4,-17.333 3,-3.6668 7.6672,2.6668 -5.334,-10.334 29.0002,-13.666 -3.666,-2"/><path style="fill:#6d6b6d;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path32" d="m 36.7168,187.435 8.666,3 7,-3.334 3.334,-7.333 4,0.667 1,4 -2,7.666 2,18.334 -1.6672,10 6,7 13,10.333 -3.6668,5 -18.3332,-9 -7.6668,-6 -4.3332,-9.333 -6.6668,-9 -2,-10.667 1.334,-11.333"/><path style="fill:#dcd9d8;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path34" d="m 50.3828,218.768 c 0,0 5,12.333 25,18.333 20,6 1,4.334 1,4.334 l -21.666,-8.334 -8.334,-8.333 -3.666,-6.667 7.666,0.667"/><path style="fill:#dcd9d8;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path36" d="m 40.3828,189.768 c 0,0 -7,23.334 19.6668,26.667 l -1,4 -18.3328,-4.334 -5.334,-17.333 1.334,-11.333 3.666,2.333"/><path style="fill:#f7e4cd;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path38" d="m 51.0496,158.768 4.3645,4.229 c 0,0 1.9699,-0.229 2.3027,-2.562 0.3328,-2.334 1.3328,-23.334 15.666,-34.668 1.3074,-1.034 -10.666,1.668 -10.666,1.668 l -10.6672,16.666"/><path style="fill:#f7e4cd;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path40" d="m 112.385,165.101 c 0,0 0.777,10.104 3.498,9.327 2.721,-0.777 2.721,-3.498 2.721,-3.498 0,0 -6.608,-4.275 -6.219,-5.829"/><path style="fill:#f7e4cd;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path42" d="m 140.05,202.101 c 0,0 -5.494,-1.16 -6,-6 -0.506,-4.841 6,-1 7,-0.667"/><path style="fill:#f7e4cd;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path44" d="m 99.7168,201.767 c 0,0 -7.334,-1 -7.334,-5.666 0,-4.667 8.3342,-4.334 10.6672,-2.334"/><path style="fill:#f7e4cd;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path46" d="m 54.3828,180.101 c 0,0 -12.6672,7.667 -14,0.333 -1.3332,-7.333 -4.334,-12.667 2,-20.333 l -4.3332,1.333 -4,10.333 -1.3328,10 7.666,8.001 8.6668,-0.667 5,-4 0.3332,-5"/><path style="fill:#f7e4cd;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path48" d="m 60.3828,201.101 c 0,0 5.6668,29.333 34.334,35 23.6012,4.665 35.9992,-1 40.6662,-6.333 0,0 -21,24.999 -41.0002,17.333 -20,-7.667 -34.666,-21.667 -34.3332,-30.666 0.5676,-15.328 0.3332,-15.334 0.3332,-15.334"/><path style="fill:#f7e4cd;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path50" d="m 137.717,226.435 c 0,0 -9.666,0.333 -10,-8.334 0,0 -0.001,-1.333 0.666,-2.666 0,0 7.668,8.667 12.334,4"/><path style="fill:#f7e4cd;fill-opacity:1;fill-rule:evenodLine truncated
<!--
- This file is a part of project QuickShop, the name is Jenkins.svg
- Copyright (C) PotatoCraft Studio and contributors
-
- This program is free software: you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by the
- Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful, but WITHOUT
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-->
<svg xmlns="http://www.w3.org/2000/svg" id="svg2" width="226" height="312"
version="1.1" xml:space="preserve"><metadata id="metadata8"/>
<defs id="defs6"><clipPath id="clipPath18" clipPathUnits="userSpaceOnUse"><path id="path20" d="M 0,2494.84 0,0 l 1804.34,0 0,2494.84 -1804.34,0 z"/></clipPath></defs>
<g id="g10" transform="matrix(1.25,0,0,-1.25,0,312)"><g id="g3393"><path style="fill:#d33833;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path22" d="m 177.718,129.264 c 0,-49.4288 -39.175,-89.4992 -87.5,-89.4992 -48.3242,0 -87.49925,40.0704 -87.49925,89.4992 0,49.43 39.17505,89.501 87.49925,89.501 48.325,0 87.5,-40.071 87.5,-89.501"/><path
style="fill:#ef3d3a;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path24"
d="m 6.28438,107.098 c 0,0 -6.33438,93.333 79.66602,96 l -5.9996,10 -46.6664,-15.667 -13.3336,-15.333 -11.66642,-22.334 -6.66719,-26 2,-17.333"/><path
style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path26"
d="M 30.2883,190.319 C 14.9363,174.611 5.43633,152.923 5.43633,128.93 l 0,0 c 0,-23.988 9.49997,-45.6788 24.85197,-61.3839 l 0,0 C 45.6477,51.841 66.8152,42.15 90.2168,42.15 l 0,0 c 23.4022,0 44.5712,9.691 59.9292,25.3961 l 0,0 c 15.351,15.7051 24.853,37.3959 24.853,61.3839 l 0,0 c 0,23.993 -9.502,45.681 -24.853,61.389 l 0,0 c -15.358,15.702 -36.527,25.393 -59.9292,25.395 l 0,0 C 66.8152,215.712 45.6477,206.021 30.2883,190.319 l 0,0 z M 26.4023,63.7469 C 10.0867,80.4328 0,103.493 0,128.93 l 0,0 c 0,25.441 10.0867,48.499 26.4023,65.186 l 0,0 c 16.3118,16.69 38.8915,27.035 63.8145,27.032 l 0,0 c 24.9232,0.003 47.5052,-10.342 63.8142,-27.032 l 0,0 c 16.317,-16.687 26.405,-39.747 26.403,-65.186 l 0,0 c 0.002,-25.437 -10.086,-48.4972 -26.403,-65.1831 l 0,0 C 137.722,47.0578 115.14,36.7141 90.2168,36.7141 l 0,0 c -24.923,0 -47.5027,10.3437 -63.8145,27.0328 l 0,0"/><path
style="fill:#f0d6b7;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path28"
d="m 127.051,128.768 -13.334,-2 -18.0002,-2 -11.6672,-0.333 -11.3328,0.333 -8.6672,2.667 -7.6668,8.333 -6,17 -1.3332,3.667 -8,2.666 -4.6668,7.667 -3.3332,11 3.6672,9.667 8.666,3 7,-3.334 3.334,-7.333 4,0.667 1.3328,1.666 -1.3328,7.667 -0.334,9.667 2,13.333 -0.0781,7.616 6.0781,9.717 10.6668,7.667 18.6672,8 20.6662,-3 18,-13 8.334,-13.333 5.333,-9.667 1.333,-24 -4,-20.667 -7.333,-18.333 -7,-9.667"/><path
style="fill:#335061;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path30"
d="m 115.717,71.102 -47.6674,-2 0,-8 4,-28 -2,-2.334 -33.3328,11.334 -2.334,4 -3.3332,37.666 -7.6656,22.667 -1.6672,5.333 26.666,18.333 8.334,3.334 7.3328,-9 6.3332,-5.667 7.334,-2.333 3.3328,-1 4,-17.333 3,-3.6668 7.6672,2.6668 -5.334,-10.334 29.0002,-13.666 -3.666,-2"/><path
style="fill:#6d6b6d;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path32"
d="m 36.7168,187.435 8.666,3 7,-3.334 3.334,-7.333 4,0.667 1,4 -2,7.666 2,18.334 -1.6672,10 6,7 13,10.333 -3.6668,5 -18.3332,-9 -7.6668,-6 -4.3332,-9.333 -6.6668,-9 -2,-10.667 1.334,-11.333"/><path
style="fill:#dcd9d8;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path34"
d="m 50.3828,218.768 c 0,0 5,12.333 25,18.333 20,6 1,4.334 1,4.334 l -21.666,-8.334 -8.334,-8.333 -3.666,-6.667 7.666,0.667"/><path
style="fill:#dcd9d8;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path36"
d="m 40.3828,189.768 c 0,0 -7,23.334 19.6668,26.667 l -1,4 -18.3328,-4.334 -5.334,-17.333 1.334,-11.333 3.666,2.333"/><path
style="fill:#f7e4cd;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path38"
d="m 51.0496,158.768 4.3645,4.229 c 0,0 1.9699,-0.229 2.3027,-2.562 0.3328,-2.334 1.3328,-23.334 15.666,-34.668 1.3074,-1.034 -10.666,1.668 -10.666,1.668 l -10.6672,16.666"/><path
style="fill:#f7e4cd;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path40"
d="m 112.385,165.101 c 0,0 0.777,10.104 3.498,9.327 2.721,-0.777 2.721,-3.498 2.721,-3.498 0,0 -6.608,-4.275 -6.219,-5.829"/><path
style="fill:#f7e4cd;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path42"
d="m 140.05,202.101 c 0,0 -5.494,-1.16 -6,-6 -0.506,-4.841 6,-1 7,-0.667"/><path
style="fill:#f7e4cd;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path44"
d="m 99.7168,201.767 c 0,0 -7.334,-1 -7.334,-5.666 0,-4.667 8.3342,-4.334 10.6672,-2.334"/><path
style="fill:#f7e4cd;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path46"
d="m 54.3828,180.101 c 0,0 -12.6672,7.667 -14,0.333 -1.3332,-7.333 -4.334,-12.667 2,-20.333 l -4.3332,1.333 -4,10.333 -1.3328,10 7.666,8.001 8.6668,-0.667 5,-4 0.3332,-5"/><path
style="fill:#f7e4cd;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path48"
d="m 60.3828,201.101 c 0,0 5.6668,29.333 34.334,35 23.6012,4.665 35.9992,-1 40.6662,-6.333 0,0 -21,24.999 -41.0002,17.333 -20,-7.667 -34.666,-21.667 -34.3332,-30.666 0.5676,-15.328 0.3332,-15.334 0.3332,-15.334"/><path
style="fill:#f7e4cd;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path50"
d="m 137.717,226.435 c 0,0 -9.666,0.333 -10,-8.334 0,0 -0.001,-1.333 0.666,-2.666 0,0 7.668,8.667 12.334,4"/><path
style="fill:#f7e4cd;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path52"
d="m 95.3887,214.532 c 0,0 -1.6641,13.303 -13.0059,5.569 -7.3332,-5 -6.666,-12 -5.3332,-13.333 1.3332,-1.334 0.9707,-4.019 1.9856,-2.176 1.0144,1.843 0.6804,7.843 4.3476,9.509 3.6668,1.667 9.6777,3.529 12.0059,0.431"/><path
style="fill:#49728b;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path54"
d="m 64.0496,124.435 -31.3328,-14 c 0,0 13,-51.667 6.3328,-67.667 l -4.6668,1.666 -0.3332,19.6672 -8.6656,37.3328 -3.6672,10.334 32.666,21.999 9.6668,-9.332"/><path
style="fill:#49728b;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path56"
d="m 67.2715,95.8578 4.4453,-5.4238 0,-20 -5.334,0 c 0,0 -0.666,14 -0.666,15.6672 0,1.6668 0.666,7.6668 0.666,7.6668"/><path
style="fill:#49728b;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path58"
d="m 67.3828,67.434 -15,-0.666 4.334,-3 10.666,-1.6668"/><path
style="fill:#335061;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path60"
d="m 118.717,70.768 12.333,0.3332 3,-30.6672 -12.667,-1.666 -2.666,32"/><path
style="fill:#335061;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path62"
d="m 122.05,70.768 18.667,1 c 0,0 7.666,19.3332 7.666,20.3332 0,1 6.667,27.9998 6.667,27.9998 l -15,15.666 -3,2.667 -8,-8 0,-31 -7,-28.666"/><path
style="fill:#49728b;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path64"
d="m 130.383,73.1012 -11.666,-2.3332 1.666,-9.334 c 4.333,-2 11.667,3.334 11.667,3.334"/><path
style="fill:#49728b;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path66"
d="m 130.717,131.434 23.333,-17.333 0.667,8 -17.667,16.333 -6.333,-7"/><path
style="fill:#fff;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path68"
d="M 78.9508,5.09805 72.0496,33.102 68.6172,53.7648 68.0496,69.102 l 31.2348,1.6628 19.4326,0.0032 -1.767,-35.0032 3,-26.99996 -0.333,-5 -25.3326,-2 -15.3336,3.33321"/><path
style="fill:#dcd9d8;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path70"
d="m 114.383,71.1012 c 0,0 -1.666,-34.6672 3.334,-59.3332 0,0 -10,-6.33402 -24.6674,-8.00003 l 28.0004,1 3.333,2 -4,54.66603 -1,11.668"/><path
style="fill:#fff;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path72"
d="m 134.618,43.098 13,3.6668 24.666,1.3332 3.667,11.3329 -6.667,19.6671 -7.666,1 -10.667,-3.3332 -10.234,-4.9968 -5.433,0.9968 -4.234,-1.6636"/><path
style="fill:#dcd9d8;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path74"
d="m 134.383,49.768 c 0,0 8.666,3.9992 10,3.666 l -3.666,18.334 4.333,1.666 c 0,0 3,-17.3328 3,-19.3328 0,0 18.666,-1 20.333,-1 0,0 4,7.6668 3,15.6668 l 3.667,-10.6668 0.333,-6 -5.333,-8 -6,-1.3332 -10,0.3332 -3.333,4.3328 -11.667,-1.666 -3.667,-1.334"/><path
style="fill:#fff;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path76"
d="m 121.284,73.4309 -7.333,18.6671 -7.667,11 c 0,0 1.666,4.667 4,4.667 2.334,0 7.667,0 7.667,0 l 7.333,-2.667 -0.666,-12.3332 -3.334,-19.3339"/><path
style="fill:#dcd9d8;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path78"
d="m 122.717,79.768 c 0,0 -9.334,17.9992 -9.334,20.666 0,0 1.666,4 4,3 2.334,-1 7.334,-3.666 7.334,-3.666 l 0,6.333 -11.334,2.334 -7.666,-1 13,-30.667 2.666,-0.334"/><path
style="fill:#fff;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path80"
d="m 81.9512,123.764 -9.2344,1.004 -8.6672,2.667 0,-3 4.2348,-4.67 13.3332,-6"/><path
style="fill:#dcd9d8;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path82"
d="m 67.0508,122.765 c 0,0 10.334,-4.334 13.6672,-3.334 l 0.3316,-3.996 -9.3316,1.996 -5.6672,4 1,1.334"/><path
style="fill:#d33833;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path84"
d="m 134.582,106.63 c -5.656,0.166 -10.766,0.838 -15.24,2.1 0.304,1.834 -0.265,3.634 0.192,4.955 1.247,0.898 3.337,0.884 5.222,1.095 -1.63,0.801 -3.92,1.118 -5.801,0.655 -0.044,1.273 -0.615,2.062 -0.961,3.058 3.18,1.135 10.687,8.576 14.91,6.112 2.012,-1.172 2.867,-7.866 3.023,-11.121 0.13,-2.7 -0.245,-5.424 -1.345,-6.854"/><path
style="fill:none;stroke:#d33833;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="path86"
d="m 134.582,106.63 c -5.656,0.166 -10.766,0.838 -15.24,2.1 0.304,1.834 -0.265,3.634 0.192,4.955 1.247,0.898 3.337,0.884 5.222,1.095 -1.63,0.801 -3.92,1.118 -5.801,0.655 -0.044,1.273 -0.615,2.062 -0.961,3.058 3.18,1.135 10.687,8.576 14.91,6.112 2.012,-1.172 2.867,-7.866 3.023,-11.121 0.13,-2.7 -0.245,-5.424 -1.345,-6.854 z"/><path
style="fill:#d33833;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path88"
d="m 107.535,115.876 c -0.015,-0.428 -0.033,-0.859 -0.05,-1.291 -1.766,-1.16 -4.617,-1.146 -6.555,-2.121 2.857,-0.125 5.106,-0.813 7.052,-1.783 -0.043,-1.078 -0.084,-2.155 -0.126,-3.233 -3.237,-2.216 -6.194,-5.516 -10.0052,-7.5941 -1.802,-0.9828 -8.1262,-3.5117 -10.0434,-3.0648 -1.0847,0.2519 -1.1824,1.598 -1.616,2.8668 -0.9238,2.7171 -3.0508,7.0421 -3.2363,11.1321 -0.2363,5.166 -0.7578,13.824 4.8094,12.76 4.4914,-0.857 9.7152,-2.926 13.1925,-4.826 2.125,-1.162 3.354,-2.598 6.578,-2.846"/><path
style="fill:none;stroke:#d33833;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="path90"
d="m 107.535,115.876 c -0.015,-0.428 -0.033,-0.859 -0.05,-1.291 -1.766,-1.16 -4.617,-1.146 -6.555,-2.121 2.857,-0.125 5.106,-0.813 7.052,-1.783 -0.043,-1.078 -0.084,-2.155 -0.126,-3.233 -3.237,-2.216 -6.194,-5.516 -10.0052,-7.5941 -1.802,-0.9828 -8.1262,-3.5117 -10.0434,-3.0648 -1.0847,0.2519 -1.1824,1.598 -1.616,2.8668 -0.9238,2.7171 -3.0508,7.0421 -3.2363,11.1321 -0.2363,5.166 -0.7578,13.824 4.8094,12.76 4.4914,-0.857 9.7152,-2.926 13.1925,-4.826 2.125,-1.162 3.354,-2.598 6.578,-2.846 z"/><path
style="fill:#d33833;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path92"
d="m 110.75,109.712 c -0.494,2.814 -1.065,3.617 -0.844,6.072 7.505,5.004 8.914,-8.595 0.844,-6.072"/><path
style="fill:none;stroke:#d33833;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="path94"
d="m 110.75,109.712 c -0.494,2.814 -1.065,3.617 -0.844,6.072 7.505,5.004 8.914,-8.595 0.844,-6.072 z"/><path
style="fill:#ef3d3a;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path96"
d="m 121.617,107.431 c 0,0 -2.334,3.334 -0.667,4.334 1.667,1 3.334,-0.001 4.334,1.666 1,1.667 0,2.667 0.333,4.667 0.333,2 2.001,2.334 3.667,2.667 1.666,0.333 6.334,1 7,-0.667 l -2,6 -4,1.333 -12.667,-7.333 -0.667,-3.667 0,-7.333"/><path
style="fill:#ef3d3a;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path98"
d="m 86.6172,96.4309 c -0.4004,5.2021 -0.8242,10.3971 -1.2957,15.5941 -0.7055,7.76 1.864,6.406 8.5906,6.406 1.0274,0 6.3259,-1.225 6.7049,-2 1.818,-3.713 -3.04,-2.888 2.094,-5.688 4.334,-2.363 11.99,1.435 10.239,6.688 -0.98,1.168 -5.106,0.364 -6.585,1.131 -2.604,1.35 -5.208,2.7 -7.8123,4.05 -3.3132,1.719 -10.9707,4.225 -14.5031,1.823 -8.9504,-6.087 0.5649,-21.296 3.7578,-27.6459"/><path
style="fill:#231f20;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path100"
d="m 95.3887,214.532 c -9.0852,2.116 -13.5996,-3.802 -16.3535,-9.94 -2.459,0.596 -1.4805,3.94 -0.8594,5.644 1.6262,4.472 8.1797,10.425 13.5344,9.618 2.3043,-0.347 5.4226,-2.454 3.6785,-5.322"/><path
style="fill:#231f20;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path102"
d="m 139.655,204.186 c 0.143,-0.006 0.288,-0.011 0.431,-0.017 2.053,-4.265 3.83,-8.783 6.42,-12.548 -1.735,-4.041 -13.138,-7.617 -12.962,-0.361 2.466,1.078 6.723,0.22 8.909,1.597 -1.264,3.469 -3.088,6.422 -2.798,11.329"/><path
style="fill:#231f20;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path104"
d="m 100.04,204.075 c 1.948,-3.571 2.582,-7.323 5.351,-10.022 1.247,-1.215 3.672,-2.696 2.47,-6.075 -0.281,-0.797 -2.334,-2.574 -3.519,-2.923 -4.329,-1.278 -14.4162,-0.264 -11.0002,5.133 3.5801,-0.167 8.3922,-2.325 11.0682,0.274 -2.055,3.285 -5.7186,9.784 -4.37,13.613"/><path
style="fill:#231f20;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path106"
d="m 138.03,167.781 c -6.518,-4.187 -13.786,-8.74 -24.466,-7.684 -2.282,1.984 -3.152,6.399 -0.935,9.315 1.154,-1.984 0.429,-5.633 3.645,-6.182 6.06,-1.037 13.113,3.707 17.472,5.365 2.703,4.557 -0.233,6.233 -2.668,9.166 -4.985,6.009 -11.672,13.457 -11.429,22.453 2.015,1.461 2.189,-2.23 2.478,-2.902 2.603,-6.092 9.154,-13.883 13.935,-19.097 1.174,-1.284 3.107,-2.516 3.322,-3.365 0.62,-2.469 -1.613,-5.427 -1.354,-7.069"/><path
style="fill:#231f20;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path108"
d="m 52.1016,172.189 c -2.043,1.166 -2.5293,6.302 -4.9278,6.448 -3.4277,0.208 -2.8027,-6.663 -2.789,-10.681 -2.3594,2.142 -2.7743,8.737 -1.041,12.124 -1.9754,0.97 -2.8575,-1.07 -3.9532,-1.789 1.4082,10.23 14.9649,4.745 12.711,-6.102"/><path
style="fill:#231f20;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path110"
d="m 142.18,163.521 c -3.034,-5.775 -7.326,-12.135 -16.229,-12.32 -0.181,1.865 -0.32,4.703 0.01,5.826 6.806,0.654 11.008,4.118 16.219,6.494"/><path
style="fill:#231f20;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path112"
d="m 99.5266,159.777 c 5.6784,-2.986 16.1144,-3.307 23.8324,-3.081 0.414,-1.691 0.404,-3.78 0.42,-5.842 -9.921,-0.495 -21.651,1.96 -24.2524,8.923"/><path
style="fill:#231f20;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path114"
d="m 98.4473,154.209 c 3.9267,-9.859 17.4227,-8.724 28.8037,-8.452 -0.501,-1.28 -1.587,-2.792 -2.937,-3.339 -3.647,-1.484 -13.706,-2.61 -18.769,0.079 -3.211,1.707 -5.274,5.564 -7.0333,7.825 -0.8496,1.092 -5.0801,3.881 -0.0644,3.887"/><path
style="fill:#81b0c4;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path116"
d="m 137.556,99.8262 c -4.608,-7.8922 -9.017,-15.9981 -14.484,-22.9594 2.292,6.7391 3.273,18.0184 3.619,26.6172 4.795,2.244 8.901,-0.505 10.865,-3.6578"/><path
style="fill:#231f20;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path118"
d="m 162.352,71.4609 c -5.159,-1.0328 -8.784,-6.0468 -13.817,-5.725 2.766,3.8993 7.613,5.543 13.817,5.725"/><path
style="fill:#231f20;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path120"
d="m 164.628,63.3871 c -4.205,-0.4441 -9.144,-1.125 -13.409,-0.7742 2.019,3.084 9.798,2.0199 13.409,0.7742"/><path
style="fill:#231f20;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path122"
d="m 166.085,56.4262 c -4.726,-0.1024 -10.6,-0.0082 -15.092,0.3687 2.657,2.8539 12.027,1.059 15.092,-0.3687"/><path
style="fill:#dcd9d8;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path124"
d="m 128.664,37.377 c 0.678,-5.9352 3.031,-11.9489 2.736,-18.4489 -2.613,-0.8812 -4.114,-1.6519 -7.615,-1.6472 -0.247,5.5242 -0.986,13.9691 -0.765,19.2351 1.722,-0.114 4.261,1.2301 5.644,0.861"/><path
style="fill:#f0d6b7;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path126"
d="m 121.045,124.849 c -2.373,-1.549 -4.394,-3.483 -6.673,-5.137 -5.054,-0.25 -7.812,0.35 -11.525,3.252 0.061,0.233 0.434,0.129 0.448,0.415 5.41,-2.411 12.287,0.982 17.75,1.47"/><path
style="fill:#81b0c4;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path128"
d="m 92.6445,87.9711 c 1.4864,6.441 7.3106,9.7769 12.5995,13.3239 5.459,-6.9282 8.779,-15.838 12.435,-24.436 -8.638,2.6039 -17.464,6.8289 -25.0345,11.1121"/><path
style="fill:#231f20;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path130"
d="m 123.02,36.516 c -0.221,-5.266 0.518,-13.7109 0.765,-19.2351 3.501,-0.0047 5.002,0.766 7.615,1.6472 0.295,6.5 -2.058,12.5137 -2.736,18.4489 -1.383,0.3691 -3.922,-0.975 -5.644,-0.861 z M 68.5059,66.4648 C 70.8145,45.2418 74.1582,27.4012 80.291,8.60781 93.9023,4.475 110.311,4.11484 122.342,7.84414 120.133,18.4512 121.098,31.3648 119.807,42.684 c -0.973,8.5078 -0.477,17.068 -1.811,25.748 -14.578,3.0328 -35.1835,0.709 -49.4901,-1.9672 z m 52.9371,1.834 c -0.123,-9.1148 0.408,-18.1058 1.104,-27.232 3.5,0.5254 5.875,0.8762 9.127,1.5891 -1.056,8.7859 -0.926,18.6722 -3.077,26.4441 -2.486,-0.0238 -4.675,0.0289 -7.154,-0.8012 z m 17.755,1.4692 c -1.661,0.3808 -3.595,0.0148 -5.182,-0.016 0.746,-7.4301 2.556,-15.629 3.193,-23.4282 2.497,-0.0777 3.831,1.1 5.885,1.4961 0.11,6.8461 -0.598,16.2781 -3.896,21.9481 z m 26.884,-24.5629 c 5.205,1.264 8.478,7.639 7.022,14.1859 -0.977,4.4 -2.717,12.6852 -4.579,15.5 -1.376,2.082 -5.107,4.8078 -8.086,2.9 -4.846,-3.1031 -13.383,-4.0039 -16.917,-7.7601 1.772,-5.9 2.322,-14.0039 3.053,-21.4797 6.054,-0.3774 13.503,1.666 18.538,-0.5024 -3.515,-1.1386 -8.076,-1.1476 -11.113,-2.807 2.482,-1.1988 8.293,-0.9566 12.082,-0.0367 z M 117.679,76.859 c -3.656,8.598 -6.976,17.5078 -12.435,24.436 C 99.9551,97.748 94.1309,94.4121 92.6445,87.9711 100.215,83.6879 109.041,79.4629 117.679,76.859 z m 9.012,26.625 c -0.346,-8.5988 -1.327,-19.8781 -3.619,-26.6172 5.467,6.9613 9.876,15.0672 14.484,22.9594 -1.964,3.1528 -6.07,5.9018 -10.865,3.6578 z m -10.216,3.63 c -2.071,0.223 -3.829,-2.381 -6.522,-1.255 -0.617,-0.682 -1.178,-1.421 -1.807,-2.087 5.948,-7.1681 8.651,-17.338 13.245,-25.7618 2.465,8.0918 2.181,16.957 2.724,25.7888 -3.387,-0.215 -5.266,3.063 -7.64,3.315 z m -6.569,8.67 c -0.221,-2.455 0.35,-3.258 0.844,-6.072 8.07,-2.523 6.661,11.076 -0.844,6.072 z m -8.949,2.938 c -3.4773,1.9 -8.7011,3.969 -13.1925,4.826 -5.5672,1.065 -5.0457,-7.594 -4.8094,-12.76 0.1855,-4.09 2.3125,-8.415 3.2363,-11.1321 0.4336,-1.2688 0.5313,-2.6149 1.616,-2.8668 1.9172,-0.4469 8.2414,2.082 10.0434,3.0648 3.8112,2.0781 6.7682,5.3781 10.0052,7.5941 0.042,1.078 0.083,2.155 0.126,3.233 -1.946,0.97 -4.195,1.658 -7.052,1.783 1.938,0.975 4.789,0.961 6.555,2.121 0.017,0.432 0.035,0.863 0.05,1.291 -3.224,0.248 -4.453,1.684 -6.578,2.846 z m -33.2136,6.033 c -2.886,-2.93 8.0945,-6.924 11.5906,-7.139 -0.0195,1.854 1.0566,3.602 0.8398,4.932 -4.1523,0.729 -9.6093,0.248 -12.4304,2.207 z m 35.5516,-1.376 c -0.014,-0.286 -0.387,-0.182 -0.448,-0.415 3.713,-2.902 6.471,-3.502 11.525,-3.252 2.279,1.654 4.3,3.588 6.673,5.137 -5.463,-0.488 -12.34,-3.881 -17.75,-1.47 z m 32.632,-9.895 c -0.156,3.255 -1.011,9.949 -3.023,11.121 -4.223,2.465 -11.73,-4.977 -14.91,-6.112 0.346,-0.996 0.917,-1.785 0.961,-3.058 1.881,0.463 4.171,0.146 5.801,-0.655 -1.885,-0.211 -3.975,-0.197 -5.222,-1.095 -0.457,-1.321 0.112,-3.121 -0.192,-4.955 4.474,-1.262 9.584,-1.934 15.24,-2.1 1.1,1.43 1.475,4.154 1.345,6.854 z m -73.0422,8.437 c -0.9063,0.646 -7.0371,8.623 -7.877,8.292 C 43.9141,125.838 33.541,118.273 24.2715,111.118 33.1094,92.1539 36.677,68.9199 37.3074,46.5262 47.4316,41.791 56.3242,34.9648 70.0625,34.252 68.4727,45.5 67.0215,55.5352 66.1191,66.125 c -3.4519,1.4551 -8.4043,-0.066 -11.6347,0.4512 -0.0274,3.8929 4.9336,1.7047 5.3468,4.3226 0.3114,1.9801 -2.7296,2.1301 -1.7394,5.2481 2.5254,-0.918 3.8516,-2.9457 6.5449,-3.7071 2.461,5.384 -0.0344,14.9102 0.3203,19.4102 0.0672,0.8449 0.4219,4.6809 2.3145,4.0078 1.675,-0.5957 -0.0957,-10.2019 0.0879,-14.4609 0.1672,-3.9239 -0.4739,-7.7207 1.1152,-10.184 13.2754,1.807 26.7656,2.975 41.1294,3.3691 -3.16,1.3559 -6.914,2.6391 -11.0298,4.959 -2.2312,1.2578 -9.2644,3.875 -9.9082,5.9942 -1.0273,3.3769 2.6953,5.1757 3.332,8.0707 -6.7011,-3.6547 -8.0085,3.5031 -9.5937,8.5741 -1.4363,4.593 -2.2539,8.024 -2.6063,10.673 -5.7726,2.752 -11.9445,5.539 -16.9132,9.068 z m 67.1792,7.327 c 9.243,4.482 10.909,-16.751 7.286,-23.591 0.56,-2.04 2.486,-2.821 3.272,-4.655 -5.158,-9.2399 -10.887,-17.8649 -16.15,-26.9961 3.915,2.4371 9.507,0.4359 14.114,2.2601 1.684,0.666 2.903,4.5211 4.178,7.6051 3.507,8.4848 7.189,19.1819 8.827,27.2789 0.37,1.845 1.378,5.865 1.152,7.507 -0.403,2.94 -4.392,5.12 -6.421,6.938 -3.738,3.358 -6.092,6.313 -9.991,9.453 -1.581,-2.334 -4.974,-3.902 -6.267,-5.8 z m -88.3179,81.968 c -4.4043,-4.846 -3.4824,-13.926 -2.9492,-20.386 7.9609,5.008 18.5273,-0.396 18.4277,-8.914 3.8008,0.101 1.4199,4.747 0.7324,7.74 -2.2468,9.776 3.7852,20.397 0.2735,29.337 -6.8184,-0.517 -12.42,-3.302 -16.4844,-7.777 z m 31.5137,28.126 c -9.9707,-2.826 -22.7493,-10.071 -26.8465,-19.028 3.1726,0.461 5.375,2.061 8.5047,2.259 1.1828,0.077 2.7324,-0.496 4.0918,-0.158 2.709,0.672 4.9953,6.746 7.039,9.006 1.9922,2.207 4.3867,3.15 6.0254,5.162 1.0528,0.508 2.6094,0.473 2.6692,2.054 -0.4563,0.488 -0.9368,0.86 -1.4836,0.705 z m 51.9032,-2.658 c -10.349,5.839 -27.8661,10.231 -38.8747,4.743 -8.8828,-4.429 -20.8899,-11.757 -24.9836,-21.043 3.8242,-8.961 -1.1328,-17.172 -1.4492,-26.27 -0.168,-4.841 2.2793,-9.067 2.4668,-14.337 -1.3086Line truncated
style="fill:#f7e4cd;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path132"
d="m 90.491,157.255 c 0.4387,0.584 2.8508,1.471 6.2258,-0.154 0,0 -4,-0.667 -3.6672,-7.336 l -1.6668,0.334 c 0,0 -1.7226,6.047 -0.8918,7.156"/><path
style="fill:#1d1919;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path134"
d="m 119.717,99.934 c 0,-1.0121 -0.821,-1.8328 -1.834,-1.8328 -1.012,0 -1.833,0.8207 -1.833,1.8328 0,1.012 0.821,1.834 1.833,1.834 1.013,0 1.834,-0.822 1.834,-1.834"/><path
style="fill:#1d1919;fill-opacity:1;fill-rule:evenodd;stroke:none" id="path136"
d="m 121.55,91.434 c 0,-1.0121 -0.821,-1.8328 -1.834,-1.8328 -1.012,0 -1.833,0.8207 -1.833,1.8328 0,1.0121 0.821,1.834 1.833,1.834 1.013,0 1.834,-0.8219 1.834,-1.834"/></g></g></svg>

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 26 KiB

+11 -8
View File
@@ -15,15 +15,17 @@
![Rating](https://img.shields.io/spiget/rating/62575?label=rating)
---
QuickShop is a shop plugin that allows players to easily sell/buy any items from a chest without any commands.
In fact, none of the commands that QuickShop provides are ever needed by a player.
QuickShop-Reremake is a fork of QuickShop NotLikeMe with more features, bug fixes and other improvements.
QuickShop-Reremake is made by PotatoCraft Studio from [KaiKikuchi's QuickShop upstream repository](https://github.com/KaiKikuchi/QuickShop).
QuickShop is a shop plugin that allows players to easily sell/buy any items from a chest without any commands. In fact,
none of the commands that QuickShop provides are ever needed by a player. QuickShop-Reremake is a fork of QuickShop
NotLikeMe with more features, bug fixes and other improvements.
QuickShop-Reremake is made by PotatoCraft Studio
from [KaiKikuchi's QuickShop upstream repository](https://github.com/KaiKikuchi/QuickShop).
## Support
| <a href="https://discord.gg/bfefw2E"/> <img src="/.github/icons/Discord.svg" width="100" height="100" /> | <a href="https://github.com/Ghost-chu/QuickShop-Reremake/issues"><img src="/.github/icons/Github.png" width="100" height="100" /> |
| :-: | :-: |
| **Discord** | **Github Issues** |
| <a href="https://discord.gg/bfefw2E"/> <img src="/.github/icons/Discord.svg" width="100" height="100" />
| <a href="https://github.com/Ghost-chu/QuickShop-Reremake/issues"><img src="/.github/icons/Github.png" width="100" height="100" />
| | :-: | :-: | | **Discord** | **Github Issues** |
## Features
@@ -45,9 +47,10 @@ QuickShop-Reremake is made by PotatoCraft Studio from [KaiKikuchi's QuickShop up
- Optimized performance [Reremake]
## Downloads
| <a href="https://www.spigotmc.org/resources/62575/"><img src="/.github/icons/Spigot.png" width="100" height="90" /></a> | <a href="https://dev.bukkit.org/projects/quickshop-reremake"><img src="/.github/icons/Bukkit.png" width="100" height="100" /></a></a> | <a href="http://www.mcbbs.net/thread-809496-1-1.html"><img src="/.github/icons/MCBBS.png" width="100" height="100" /></a> | <a href="https://ci.codemc.io/job/Ghost-chu/job/QuickShop-Reremake-SNAPSHOT/"><img src="/.github/icons/Jenkins.svg" width="85" height="100" /></a>
| --- | --- | --- | --- |
| **Spigot** | **BukkitDev** | **MCBBS** | **Jenkins** |
| **Spigot** | **BukkitDev** | **MCBBS** | **Jenkins** |
## Contribute
+2 -1
View File
@@ -216,7 +216,8 @@
</relocations>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>org.maxgamer.quickshop.javaw.bootstrap.Bootstrap</mainClass>
</transformer>
</transformers>
@@ -119,6 +119,8 @@ public class QuickShop extends JavaPlugin {
private final List<BukkitTask> timerTaskList = new ArrayList<>(3);
@Getter
private final GameVersion gameVersion = GameVersion.get(Util.getNMSVersion());
@Getter
private final ReloadManager reloadManager = new ReloadManager();
boolean onLoadCalled = false;
@Getter
private IntegrationHelper integrationHelper;
@@ -172,7 +174,6 @@ public class QuickShop extends JavaPlugin {
*/
@Getter
private boolean limit = false;
@Nullable
@Getter
private LogWatcher logWatcher;
@@ -267,8 +268,6 @@ public class QuickShop extends JavaPlugin {
private Plugin worldEditPlugin;
@Getter
private WorldEditAdapter worldEditAdapter;
@Getter
private final ReloadManager reloadManager = new ReloadManager();
/**
* Use for mock bukkit
@@ -734,6 +733,7 @@ public class QuickShop extends JavaPlugin {
getLogger().log(Level.WARNING, "Failed to update configuration", exception);
}
}
private void runtimeCheck(@NotNull EnvCheckEntry.Stage stage) {
testing = true;
environmentChecker = new org.maxgamer.quickshop.util.envcheck.EnvironmentChecker(this);
@@ -1872,11 +1872,11 @@ public class QuickShop extends JavaPlugin {
getConfig().set("integration.griefprevention.trade", null);
getConfig().set("integration.griefprevention.trade", Collections.emptyList());
boolean oldValueUntrusted = getConfig().getBoolean("integration.griefprevention.delete-on-untrusted", false);
boolean oldValueUntrusted = getConfig().getBoolean("integration.griefprevention.delete-on-untrusted", false);
getConfig().set("integration.griefprevention.delete-on-untrusted", null);
getConfig().set("integration.griefprevention.delete-on-claim-trust-changed", oldValueUntrusted);
boolean oldValueUnclaim = getConfig().getBoolean("integration.griefprevention.delete-on-unclaim", false);
boolean oldValueUnclaim = getConfig().getBoolean("integration.griefprevention.delete-on-unclaim", false);
getConfig().set("integration.griefprevention.delete-on-unclaim", null);
getConfig().set("integration.griefprevention.delete-on-claim-unclaimed", oldValueUnclaim);
@@ -159,56 +159,56 @@ public class DatabaseManager implements Reloadable {
* Internal method, runTasks in queue.
*/
private synchronized void runTask() { // synchronized for QUICKSHOP-WX
if (sqlQueue.isEmpty()) {
return;
}
DatabaseConnection dbconnection = this.database.getConnection();
if (sqlQueue.isEmpty()) {
return;
}
DatabaseConnection dbconnection = this.database.getConnection();
try (Connection connection = dbconnection.get()) {
//start our commit
connection.setAutoCommit(false);
Timer ctimer = new Timer(true);
while (true) {
if (!dbconnection.isValid()) {
warningSender.sendWarn("Database connection may lost, we are trying reconnecting, if this message appear too many times, you should check your database file(sqlite) and internet connection(mysql).");
return; // Waiting next crycle and hope it success reconnected.
}
Timer timer = new Timer(true);
DatabaseTask task = sqlQueue.poll();
if (task == null) {
break;
}
task.run(connection);
long tookTime = timer.stopAndGetTimePassed();
if (tookTime > 300) {
warningSender.sendWarn(
"Database performance warning: It took too long time ("
+ tookTime
+ "ms) to execute the task, it may cause the network connection with MySQL server or just MySQL server too slow, change to a better MySQL server or switch to a local SQLite database!");
}
try (Connection connection = dbconnection.get()) {
//start our commit
connection.setAutoCommit(false);
Timer ctimer = new Timer(true);
while (true) {
if (!dbconnection.isValid()) {
warningSender.sendWarn("Database connection may lost, we are trying reconnecting, if this message appear too many times, you should check your database file(sqlite) and internet connection(mysql).");
return; // Waiting next crycle and hope it success reconnected.
}
if (!connection.getAutoCommit()) {
connection.commit();
connection.setAutoCommit(true);
Timer timer = new Timer(true);
DatabaseTask task = sqlQueue.poll();
if (task == null) {
break;
}
long tookTime = ctimer.stopAndGetTimePassed();
if (tookTime > 5500) {
task.run(connection);
long tookTime = timer.stopAndGetTimePassed();
if (tookTime > 300) {
warningSender.sendWarn(
"Database performance warning: It took too long time ("
+ tookTime
+ "ms) to execute the task, it may cause the network connection with MySQL server or just MySQL server too slow, change to a better MySQL server or switch to a local SQLite database!");
}
} catch (SQLException sqle) {
plugin.getSentryErrorReporter().ignoreThrow();
this.plugin
.getLogger()
.log(Level.WARNING, "Database connection may lost, we are trying reconnecting, if this message appear too many times, you should check your database file(sqlite) and internet connection(mysql).", sqle);
} finally {
dbconnection.release();
}
if (!connection.getAutoCommit()) {
connection.commit();
connection.setAutoCommit(true);
}
long tookTime = ctimer.stopAndGetTimePassed();
if (tookTime > 5500) {
warningSender.sendWarn(
"Database performance warning: It took too long time ("
+ tookTime
+ "ms) to execute the task, it may cause the network connection with MySQL server or just MySQL server too slow, change to a better MySQL server or switch to a local SQLite database!");
}
} catch (SQLException sqle) {
plugin.getSentryErrorReporter().ignoreThrow();
this.plugin
.getLogger()
.log(Level.WARNING, "Database connection may lost, we are trying reconnecting, if this message appear too many times, you should check your database file(sqlite) and internet connection(mysql).", sqle);
} finally {
dbconnection.release();
}
// try {
// this.database.getConnection().commit();
@@ -28,10 +28,6 @@ public abstract class QSEvent extends Event {
private static final HandlerList handlers = new HandlerList();
public static HandlerList getHandlerList() {
return handlers;
}
public QSEvent() {
}
@@ -40,6 +36,10 @@ public abstract class QSEvent extends Event {
super(async);
}
public static HandlerList getHandlerList() {
return handlers;
}
@NotNull
@Override
public HandlerList getHandlers() {
@@ -48,22 +48,14 @@ import java.util.Map;
public class GriefPreventionIntegration extends QSIntegratedPlugin {
final GriefPrevention griefPrevention = GriefPrevention.instance;
private boolean whiteList;
private boolean deleteOnClaimTrustChanged;
private boolean deleteOnClaimUnclaimed;
private boolean deleteOnClaimExpired;
private boolean deleteOnClaimResized;
private boolean deleteOnSubClaimCreated;
private Flag createLimit;
private final List<Flag> tradeLimits = new ArrayList<>(3);
private boolean whiteList;
private boolean deleteOnClaimTrustChanged;
private boolean deleteOnClaimUnclaimed;
private boolean deleteOnClaimExpired;
private boolean deleteOnClaimResized;
private boolean deleteOnSubClaimCreated;
private Flag createLimit;
public GriefPreventionIntegration(QuickShop plugin) {
super(plugin);
@@ -151,7 +143,7 @@ public class GriefPreventionIntegration extends QSIntegratedPlugin {
if (!deleteOnClaimExpired) {
return;
}
handleMainClaimUnclaimedOrExpired(event.getClaim(),"[SHOP DELETE] GP Integration: Single delete (Claim Expired) #");
handleMainClaimUnclaimedOrExpired(event.getClaim(), "[SHOP DELETE] GP Integration: Single delete (Claim Expired) #");
}
// Player can resize the main claim or the subclaim.
@@ -178,7 +170,7 @@ public class GriefPreventionIntegration extends QSIntegratedPlugin {
if (!deleteOnSubClaimCreated) {
return;
}
if(event.getClaim().parent == null) {
if (event.getClaim().parent == null) {
return;
}
for (Chunk chunk : event.getClaim().getChunks()) {
@@ -350,6 +342,7 @@ public class GriefPreventionIntegration extends QSIntegratedPlugin {
boolean check(Claim claim, Player player) {
return claim.allowContainers(player) == null;
}
@Override
ClaimPermission toClaimPermission() {
return ClaimPermission.Inventory;
@@ -359,16 +352,13 @@ public class GriefPreventionIntegration extends QSIntegratedPlugin {
boolean check(Claim claim, Player player) {
return claim.allowAccess(player) == null;
}
@Override
ClaimPermission toClaimPermission() {
return ClaimPermission.Access;
}
};
abstract boolean check(Claim claim, Player player);
abstract ClaimPermission toClaimPermission();
public static Flag getFlag(String flag) {
for (Flag value : Flag.values()) {
if (value.name().equalsIgnoreCase(flag)) {
@@ -377,6 +367,10 @@ public class GriefPreventionIntegration extends QSIntegratedPlugin {
}
return null;
}
abstract boolean check(Claim claim, Player player);
abstract ClaimPermission toClaimPermission();
}
}
@@ -62,16 +62,16 @@ public class ContainerShop implements Shop {
@NotNull
private final Location location;
private final YamlConfiguration extra;
@EqualsAndHashCode.Exclude
private final QuickShop plugin;
@EqualsAndHashCode.Exclude
private final UUID runtimeRandomUniqueId = UUID.randomUUID();
private ShopModerator moderator;
private double price;
private ShopType shopType;
private boolean unlimited;
@NotNull
private ItemStack item;
@EqualsAndHashCode.Exclude
private final QuickShop plugin;
@EqualsAndHashCode.Exclude
private final UUID runtimeRandomUniqueId = UUID.randomUUID();
@Nullable
@EqualsAndHashCode.Exclude
private DisplayItem displayItem;
@@ -91,7 +91,7 @@ public class ContainerShop implements Shop {
private volatile boolean isDisplayItemChanged = false;
@EqualsAndHashCode.Exclude
private volatile boolean dirty;
private volatile boolean updating = false;
@SuppressWarnings("CopyConstructorMissesField")
private ContainerShop(@NotNull ContainerShop s) {
@@ -433,13 +433,13 @@ public class ContainerShop implements Shop {
*/
@Override
public boolean matches(@Nullable ItemStack item) {
if(item == null)
if (item == null)
return false;
ItemStack guest = item.clone();
guest.setAmount(1);
ItemStack owner = this.item.clone();
owner.setAmount(1);
return plugin.getItemMatcher().matches(guest,owner);
return plugin.getItemMatcher().matches(guest, owner);
}
@Override
@@ -714,8 +714,6 @@ public class ContainerShop implements Shop {
this.setSignText(getSignText());
}
private volatile boolean updating = false;
/**
* Updates the shop into the database.
*/
@@ -1198,10 +1196,10 @@ public class ContainerShop implements Shop {
&& plugin.getOpenInvPlugin() != null) { //FIXME: Need better impl
OpenInv openInv = ((OpenInv) plugin.getOpenInvPlugin());
return openInv.getSpecialEnderChest(
Objects.requireNonNull(
openInv.loadPlayer(
plugin.getServer().getOfflinePlayer(this.moderator.getOwner()))),
plugin.getServer().getOfflinePlayer((this.moderator.getOwner())).isOnline())
Objects.requireNonNull(
openInv.loadPlayer(
plugin.getServer().getOfflinePlayer(this.moderator.getOwner()))),
plugin.getServer().getOfflinePlayer((this.moderator.getOwner())).isOnline())
.getBukkitInventory();
}
} catch (Exception e) {
@@ -63,22 +63,6 @@ public abstract class DisplayItem implements Reloadable {
init();
}
protected void init() {
displayAllowStacks = plugin.getConfig().getBoolean("shop.display-allow-stacks");
if (displayAllowStacks) {
//Prevent stack over the normal size
originalItemStack.setAmount(Math.min(originalItemStack.getAmount(), originalItemStack.getMaxStackSize()));
} else {
this.originalItemStack.setAmount(1);
}
}
@Override
public ReloadResult reloadModule() throws Exception {
init();
return ReloadResult.builder().status(ReloadStatus.SUCCESS).build();
}
/**
* Check the itemStack is contains protect flag.
*
@@ -248,6 +232,22 @@ public abstract class DisplayItem implements Reloadable {
return new ShopProtectionFlag(shop.getLocation().toString(), Util.serialize(itemStack));
}
protected void init() {
displayAllowStacks = plugin.getConfig().getBoolean("shop.display-allow-stacks");
if (displayAllowStacks) {
//Prevent stack over the normal size
originalItemStack.setAmount(Math.min(originalItemStack.getAmount(), originalItemStack.getMaxStackSize()));
} else {
this.originalItemStack.setAmount(1);
}
}
@Override
public ReloadResult reloadModule() throws Exception {
init();
return ReloadResult.builder().status(ReloadStatus.SUCCESS).build();
}
/**
* Gets the original ItemStack (without protection mark, should same with shop trading item.
*
@@ -68,6 +68,13 @@ public class ShopManager implements Reloadable {
private final Map<UUID, Info> actions = Maps.newConcurrentMap();
private final QuickShop plugin;
private final Cache<UUID, Shop> shopRuntimeUUIDCaching =
CacheBuilder.newBuilder()
.expireAfterAccess(10, TimeUnit.MINUTES)
.maximumSize(50)
.weakValues()
.initialCapacity(50)
.build();
@Getter
@Nullable
private Trader cacheTaxAccount;
@@ -78,13 +85,6 @@ public class ShopManager implements Reloadable {
private boolean useFastShopSearchAlgorithm;
private boolean useOldCanBuildAlgorithm;
private boolean autoSign;
private final Cache<UUID, Shop> shopRuntimeUUIDCaching =
CacheBuilder.newBuilder()
.expireAfterAccess(10, TimeUnit.MINUTES)
.maximumSize(50)
.weakValues()
.initialCapacity(50)
.build();
public ShopManager(@NotNull QuickShop plugin) {
@@ -56,34 +56,26 @@ public class VirtualDisplayItem extends DisplayItem {
private static final GameVersion version = QuickShop.getInstance().getGameVersion();
private static final ProtocolManager protocolManager = ProtocolLibrary.getProtocolManager();
private static PacketAdapter packetAdapter = null;
//unique EntityID
private final int entityID = counter.decrementAndGet();
//The List which store packet sender
private final Set<UUID> packetSenders = new ConcurrentSkipListSet<>();
//cache chunk x and z
private ShopChunk chunkLocation;
private volatile boolean isDisplay;
//If packet initialized
private volatile boolean initialized = false;
//packets
private PacketContainer fakeItemSpawnPacket;
private PacketContainer fakeItemMetaPacket;
private PacketContainer fakeItemVelocityPacket;
private PacketContainer fakeItemDestroyPacket;
public VirtualDisplayItem(@NotNull Shop shop) throws RuntimeException {
super(shop);
VirtualDisplayItemManager.load();
}
//unique EntityID
private final int entityID = counter.decrementAndGet();
//The List which store packet sender
private final Set<UUID> packetSenders = new ConcurrentSkipListSet<>();
private volatile boolean isDisplay;
//If packet initialized
private volatile boolean initialized = false;
//packets
private PacketContainer fakeItemSpawnPacket;
private PacketContainer fakeItemMetaPacket;
private PacketContainer fakeItemVelocityPacket;
private PacketContainer fakeItemDestroyPacket;
//Due to the delay task in ChunkListener
//We must move load task to first spawn to prevent some bug and make the check lesser
private void load() {
@@ -225,6 +217,29 @@ public class VirtualDisplayItem extends DisplayItem {
VirtualDisplayItemManager.remove(chunkLocation, this);
}
public void sendFakeItem(@NotNull Player player) {
sendPacket(player, fakeItemSpawnPacket);
sendPacket(player, fakeItemMetaPacket);
sendPacket(player, fakeItemVelocityPacket);
}
@Override
public @Nullable Entity getDisplay() {
return null;
}
@Override
public boolean isSpawned() {
if (shop.isLeftShop()) {
Shop aShop = shop.getAttachedShop();
if (aShop instanceof ContainerShop) {
return (Objects.requireNonNull(((ContainerShop) aShop).getDisplayItem())).isSpawned();
}
}
return isDisplay;
}
public static class VirtualDisplayItemManager {
private static final AtomicBoolean loaded = new AtomicBoolean(false);
private static final Map<ShopChunk, List<VirtualDisplayItem>> chunksMapping = new ConcurrentHashMap<>();
@@ -302,29 +317,6 @@ public class VirtualDisplayItem extends DisplayItem {
}
}
public void sendFakeItem(@NotNull Player player) {
sendPacket(player, fakeItemSpawnPacket);
sendPacket(player, fakeItemMetaPacket);
sendPacket(player, fakeItemVelocityPacket);
}
@Override
public @Nullable Entity getDisplay() {
return null;
}
@Override
public boolean isSpawned() {
if (shop.isLeftShop()) {
Shop aShop = shop.getAttachedShop();
if (aShop instanceof ContainerShop) {
return (Objects.requireNonNull(((ContainerShop) aShop).getDisplayItem())).isSpawned();
}
}
return isDisplay;
}
public static class PacketFactory {
public static Throwable testFakeItem() {
try {
@@ -68,8 +68,8 @@ public class MsgUtil {
private static final String invaildMsg = "Invaild message";
private static final Map<UUID, List<TransactionMessage>> outGoingPlayerMessages = Maps.newConcurrentMap();
private static DecimalFormat decimalFormat;
public static GameLanguage gameLanguage;
private static DecimalFormat decimalFormat;
private static QuickShop plugin = QuickShop.getInstance();
@Getter
private static YamlConfiguration enchi18n;
@@ -81,6 +81,7 @@ public class Util {
private static final ReentrantReadWriteLock lock = new ReentrantReadWriteLock();
@Getter
private static final Map<String, String> currency2Symbol = new HashMap<>();
private static final ThreadLocal<MineDown> mineDown = ThreadLocal.withInitial(() -> new MineDown(""));
private static int bypassedCustomStackSize = -1;
private static Yaml yaml = null;
private static boolean devMode = false;
@@ -94,6 +95,7 @@ public class Util {
private static DyeColor dyeColor = null;
@Nullable
private static Class<?> cachedNMSClass = null;
private volatile static String nmsVersion;
/**
* Convert strArray to String. E.g "Foo, Bar"
@@ -545,6 +547,27 @@ public class Util {
return chestBlockData.getType() != org.bukkit.block.data.type.Chest.Type.SINGLE;
}
// /**
// * Use yaw to calc the BlockFace
// *
// * @param yaw Yaw (Player.getLocation().getYaw())
// * @return BlockFace blockFace
// * @deprecated Use Bukkit util not this one.
// */
// @Deprecated
// @NotNull
// public static BlockFace getYawFace(float yaw) {
// if (yaw > 315 && yaw <= 45) {
// return BlockFace.NORTH;
// } else if (yaw > 45 && yaw <= 135) {
// return BlockFace.EAST;
// } else if (yaw > 135 && yaw <= 225) {
// return BlockFace.SOUTH;
// } else {
// return BlockFace.WEST;
// }
// }
/**
* Get how many shop in the target world.
*
@@ -581,27 +604,6 @@ public class Util {
return formatter.format((1 - dura / max) * 100.0);
}
// /**
// * Use yaw to calc the BlockFace
// *
// * @param yaw Yaw (Player.getLocation().getYaw())
// * @return BlockFace blockFace
// * @deprecated Use Bukkit util not this one.
// */
// @Deprecated
// @NotNull
// public static BlockFace getYawFace(float yaw) {
// if (yaw > 315 && yaw <= 45) {
// return BlockFace.NORTH;
// } else if (yaw > 45 && yaw <= 135) {
// return BlockFace.EAST;
// } else if (yaw > 135 && yaw <= 225) {
// return BlockFace.SOUTH;
// } else {
// return BlockFace.WEST;
// }
// }
/**
* Initialize the Util tools.
*/
@@ -826,8 +828,6 @@ public class Util {
}
}
private volatile static String nmsVersion;
public static boolean isDisplayAllowBlock(@NotNull Material mat) {
return mat.isTransparent() || isWallSign(mat);
}
@@ -996,8 +996,6 @@ public class Util {
return loc;
}
private static final ThreadLocal<MineDown> mineDown = ThreadLocal.withInitial(() -> new MineDown(""));
/**
* Parse colors for the YamlConfiguration.
*
@@ -50,15 +50,15 @@ public class CompatibilityManager extends QuickShopInstanceHolder implements Lis
Bukkit.getPluginManager().registerEvents(this, plugin);
}
public static Map<String, Class<? extends CompatibilityModule>> getCompatibilityModuleNameMap() {
return compatibilityModuleNameMap;
}
@EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR)
public void scan(PluginEnableEvent event) {
searchAndRegisterPlugins();
}
public static Map<String, Class<? extends CompatibilityModule>> getCompatibilityModuleNameMap() {
return compatibilityModuleNameMap;
}
public void searchAndRegisterPlugins() {
PluginManager pluginManager = plugin.getServer().getPluginManager();
for (Map.Entry<String, Class<? extends CompatibilityModule>> entry : compatibilityModuleNameMap.entrySet()) {
@@ -25,6 +25,7 @@ import org.maxgamer.quickshop.economy.EconomyTransaction;
import org.maxgamer.quickshop.shop.Shop;
import java.util.UUID;
// TODO
public interface ShopLogLogger {
void recordPurchase(@NotNull UUID trader, @NotNull Shop shop, @NotNull EconomyTransaction transaction, long timestamp);
@@ -42,6 +42,7 @@ import java.util.UUID;
public class OngoingFeeWatcher extends BukkitRunnable {
private final QuickShop plugin;
private final WarningSender warningSender;
public OngoingFeeWatcher(@NotNull QuickShop plugin) {
this.plugin = plugin;
this.warningSender = new WarningSender(plugin, 6000);
+8 -8
View File
@@ -369,7 +369,7 @@ shop:
#Format: <itemname>;<minprice>;<maxprice>
#e.g:
# - DIAMOND;100;200
price-restriction: []
price-restriction: [ ]
#The maximum number of digits after the decimal.
#Set this to -1 to disable it. (Unlimited maximum digits)
@@ -594,7 +594,7 @@ integration:
#OWN = The player must own the plot to trade with a shop.
#MODIFY = The player must have the ability to build on the target plot to trade with a shop.
#SHOPTYPE = The player must trade with the shop on a SHOP type plot.
trade: []
trade: [ ]
delete-shop-on-resident-leave: false
delete-shop-on-plot-clear: true
#Should we prevent the creation of a shop or trade with a shop outside Towny's area
@@ -631,7 +631,7 @@ integration:
#BUILD = The player must have the ability to build in the target region.
#CHEST_ACCESS = The player must be able to access chests.
#INTERACT = The player must have the ability to interact in the target region.
trade: []
trade: [ ]
#PlotSquared Integration
plotsquared:
#If a player wants to create a shop, the player must have the quickshop-create flag.
@@ -721,14 +721,14 @@ integration:
- FLAG
- interact
- use
#Which checks does a player need to pass to trade with a shop?
#You can use multiple checks at the same time.
#Priority: UP > DOWN
#
#Which checks does a player need to pass to trade with a shop?
#You can use multiple checks at the same time.
#Priority: UP > DOWN
#
#Available fields:
#FLAG = The region must have the quickshop.trade flag set.
#<OTHER> = Other available registered flags in the Residence plugin or addons.
trade: []
trade: [ ]
#Factions Integration
factions:
enable: false