Compare commits
583 commits
Author | SHA1 | Date | |
---|---|---|---|
d1515c2ab2 | |||
512a62d75c | |||
b5fd834dc7 | |||
e35e94e87c | |||
51cf31713b | |||
2242655c41 | |||
522f29ba58 | |||
10bf0e98df | |||
6c1378f370 | |||
56b9296fbb | |||
|
5c399a08ad | ||
724858ac70 | |||
9a10dcd1fc | |||
dc6df53c96 | |||
7646db4487 | |||
8e9989caee | |||
77b5a069c5 | |||
c52a6873fe | |||
c6ba0ec607 | |||
|
737016bf00 | ||
a63f2bb256 | |||
59dbc78b52 | |||
b483b7df0c | |||
4d4448fca1 | |||
02423153de | |||
ce4f40c2c4 | |||
|
372b2f49b3 | ||
7448eb7e3a | |||
c688ec9243 | |||
e4b47efd3f | |||
43525bd93c | |||
052149bcb7 | |||
5d8ae7fbd0 | |||
f3ec9e7870 | |||
0421cc6d16 | |||
aad65e0222 | |||
03b91d2fdb | |||
661534b92d | |||
6af2ad79a7 | |||
f19aa41205 | |||
4952923f9b | |||
4d0c7c170e | |||
0dbfaa65a5 | |||
30ee99d495 | |||
1dc801575a | |||
0a4cdd01ce | |||
b452170ff7 | |||
c66b212b0c | |||
2d874d7bc9 | |||
cda2a36da1 | |||
d5f500aece | |||
2a9bc58157 | |||
22c7fed75d | |||
825e327903 | |||
fd3d3df108 | |||
c0128831a7 | |||
013287cb47 | |||
cc6c477add | |||
a91ee1b842 | |||
aa455e373d | |||
6a16a3a1d5 | |||
750b71de65 | |||
bd656015bf | |||
fa375c4912 | |||
a964ce6595 | |||
4a456d9b1e | |||
a4b7f689c0 | |||
b3939f3c92 | |||
1275cdafd0 | |||
f3904a8448 | |||
415e61a401 | |||
7b2ecdbf7b | |||
4956837e5d | |||
3ad2346990 | |||
8907d5308f | |||
bbe9a8c146 | |||
80e45aa1a9 | |||
c25097b525 | |||
049ad55168 | |||
c7f04b8731 | |||
073346eb7f | |||
5b5252382e | |||
e510667215 | |||
ae49777007 | |||
8ff45ad676 | |||
4744f2edf9 | |||
f7c1106d1c | |||
40a1739951 | |||
c5e33a93ba | |||
26b44fbfe1 | |||
36655dfd84 | |||
df7f8bca5e | |||
e2a6afd16a | |||
21bf41db2b | |||
185b0df8e0 | |||
f12912c735 | |||
d0e4447126 | |||
3a29010042 | |||
0802de4b6f | |||
3f387a9775 | |||
25ce2a4c9f | |||
8ccf3ee9d7 | |||
bfe7d48760 | |||
be29caa904 | |||
2b621adefb | |||
aed7864a15 | |||
720740dea3 | |||
99a8c1b020 | |||
12072f3106 | |||
1081f3cf9d | |||
f8539a0392 | |||
cf8af73ed0 | |||
fd72e2de91 | |||
dedfbacda6 | |||
6da19877b8 | |||
71aeafadda | |||
304f5c562d | |||
df6e76086b | |||
241992571e | |||
58d8d1276f | |||
3124d41f54 | |||
e6ada0b2d0 | |||
775789a451 | |||
0ac78c9cb2 | |||
83c99df895 | |||
c080a857fd | |||
45b273e036 | |||
c5cae54aea | |||
7006f178b9 | |||
24c9e2d494 | |||
62caf31727 | |||
44488a78ad | |||
4f2abe41b8 | |||
e6ac18e0c7 | |||
01562bf769 | |||
050fd88560 | |||
f2a7a10ef7 | |||
ab5c9e3ea6 | |||
bf1a5562a0 | |||
79d0d06044 | |||
b174b8969e | |||
68de2f36cf | |||
ef2328e126 | |||
71242cc0ac | |||
6d3d24ecbf | |||
0c768b95e8 | |||
4a7d7379b0 | |||
6202e30522 | |||
991ca23918 | |||
2de3f1f6e7 | |||
e5053a0483 | |||
4006cdad58 | |||
1c0c29ae96 | |||
4340a50789 | |||
91e44c20c2 | |||
f671b6e9d6 | |||
029a7f1deb | |||
35ccf22a55 | |||
840b522a98 | |||
5a217fcb70 | |||
c129e5b18b | |||
b4de61adf8 | |||
ae3c05c14a | |||
9057ab9f15 | |||
cee69dc55b | |||
06ea519987 | |||
b5e8e0f93c | |||
9abcde610e | |||
e0459fa36f | |||
ee1430036c | |||
7174a97728 | |||
2ab6a5f4eb | |||
91c22e650b | |||
d0a990e0f1 | |||
1d1b3453b3 | |||
2f83a90553 | |||
9ab875f73b | |||
16acba643f | |||
51c3e1dec6 | |||
0de469e514 | |||
437d9e8f98 | |||
1c32dbd949 | |||
107a60eb2e | |||
5e7da1e89a | |||
bae49352ef | |||
2aa0443286 | |||
55053d635e | |||
39ef366c20 | |||
2b48aba75e | |||
4b55c76fd5 | |||
3e0a49659d | |||
2c631b28bc | |||
ad3d3ecaf9 | |||
6ee8ca0f4c | |||
9d7b244a74 | |||
c078a292ec | |||
12b1a45558 | |||
bcd6d3f194 | |||
d4c016b495 | |||
3e1df267cf | |||
28aeb35573 | |||
07fccda8d3 | |||
9e1bd49cd0 | |||
8f69e40d8b | |||
db37482134 | |||
7751defc9f | |||
5da1083067 | |||
a7a677d85a | |||
ec5c90ecc8 | |||
758332faf6 | |||
441e9a4eaf | |||
0da4a543e5 | |||
fa95891a6a | |||
a36c6b564b | |||
d13dfc3eb2 | |||
c6031a6f11 | |||
3cd1707182 | |||
d0e038cdd3 | |||
e8fa82d10d | |||
7de0ecc87d | |||
2594721152 | |||
0f74ad4cb1 | |||
eba73d6db4 | |||
81b188f338 | |||
94252e446d | |||
dc9bcd2cfd | |||
1fe200cf3f | |||
5e20689dc1 | |||
3ab97276f6 | |||
4311a567c5 | |||
1bb3ddb0ee | |||
f39ed23699 | |||
15ece1a3dc | |||
888086f427 | |||
|
596a4e422e | ||
|
e2b33f5342 | ||
|
63f7106000 | ||
da3eacc2e1 | |||
08640f404d | |||
a3b3af859a | |||
845f3e1f16 | |||
a09a30d460 | |||
6d75e9bd9e | |||
0a4ab5a46e | |||
a058990075 | |||
a2ad97faec | |||
64529eef73 | |||
9c06e22ca7 | |||
|
24d04f04c8 | ||
9ec35cbfb3 | |||
8e53762d3e | |||
55df5b5ede | |||
3aacd07691 | |||
bd55c580c9 | |||
6d38b5b9f1 | |||
57f15694ad | |||
44984d8987 | |||
8c08370220 | |||
1af101c31e | |||
d481152eb0 | |||
773b142e80 | |||
39d932bf77 | |||
9857bc5bd5 | |||
f83f8f88b7 | |||
a608998f59 | |||
80d424d6f8 | |||
98b58dd4b9 | |||
a87c71f37b | |||
5ec39c3581 | |||
e356a401e2 | |||
c534a45b73 | |||
dcc955a816 | |||
795eacf38d | |||
cffd2607aa | |||
9adf449ef2 | |||
34a309b49f | |||
9a8baf5653 | |||
cd490e5769 | |||
398912353b | |||
d2a302061f | |||
72eec3e240 | |||
711e223f2a | |||
3c46385c80 | |||
900f815e26 | |||
5b63ed08ed | |||
fe51c015db | |||
c810053558 | |||
caa63f7912 | |||
4d5c3db239 | |||
ed858502f4 | |||
0883739861 | |||
858a9704f3 | |||
b1fe758003 | |||
854ba613b5 | |||
596c929ace | |||
60d35d8eae | |||
a173cdefb2 | |||
c4e22a779e | |||
798e5903de | |||
398ec7ce25 | |||
6d9037592a | |||
9e1b1152c1 | |||
85a1defb6a | |||
0e54ce1fed | |||
9edc49a4a0 | |||
bda72749cd | |||
4a454da723 | |||
cb91125028 | |||
78a0a12d26 | |||
eb38613598 | |||
98aab1c923 | |||
2d9fbc7ce4 | |||
41ba4353d2 | |||
91ea0742f5 | |||
b88df7672c | |||
5c54998543 | |||
0bdd2e46f3 | |||
4cfa77b7f4 | |||
c8649cb5b0 | |||
9542523ab8 | |||
8339a209f8 | |||
00e336c4b2 | |||
84ba92a23b | |||
10bc057187 | |||
dc7913ca14 | |||
6648bc6901 | |||
e83e4724f7 | |||
4031d9df46 | |||
050b100819 | |||
84f87af748 | |||
abbad506cc | |||
842df1c85a | |||
bd8dbe020b | |||
3dc6f08a66 | |||
f34deb7abc | |||
fe974035aa | |||
5cdbe61166 | |||
9d18604c25 | |||
d68241eb42 | |||
247228faee | |||
7988c928ff | |||
ce75413e2c | |||
725067dc93 | |||
69d0a3f0d7 | |||
2c08cab6b5 | |||
f4eb32c35f | |||
994af42e54 | |||
a00ca2611e | |||
6d883ddbef | |||
8e091beb33 | |||
1d9b49f4bd | |||
381955ef1a | |||
13ec4e43ad | |||
fc2267d43f | |||
f1d0da594a | |||
07b5541d8d | |||
7c1f79e512 | |||
ccdb53023e | |||
61f93ecd15 | |||
|
f168931496 | ||
fb869c7662 | |||
b6bf563b4b | |||
dfdd6eec87 | |||
1e95f3773a | |||
7a39a0bc7d | |||
12963b58cb | |||
5442b41528 | |||
1543a11049 | |||
4c8f6f024e | |||
578d37c777 | |||
4ca1c6a2d7 | |||
c6ffdf1868 | |||
ea5e7ae87d | |||
18ae134294 | |||
7d78246672 | |||
88557f85cb | |||
ffa7c3f850 | |||
cc574c3450 | |||
718f43e303 | |||
47315bbdaf | |||
2d7447a46f | |||
b312f2358e | |||
6889f8ed87 | |||
76655a2c91 | |||
c96a83af07 | |||
47a73ac24d | |||
71bd4e6606 | |||
838fa9fe03 | |||
bce31de137 | |||
da87a1293e | |||
2d46c3bc20 | |||
669c5aa616 | |||
c1f0ec8bf0 | |||
1220c835cd | |||
14712d31d1 | |||
9e75f54865 | |||
|
4dc588fcf7 | ||
e712a525ce | |||
14837e1d80 | |||
9c08124716 | |||
d79b0dd687 | |||
c8bb3a4ec7 | |||
1897412d0b | |||
b13c62147a | |||
99196b7d31 | |||
7eaf6178d9 | |||
f9363a7c69 | |||
daa341ff7d | |||
7b3edfd0cf | |||
f71904c522 | |||
b39a2888d5 | |||
a23d9dfb25 | |||
53d8567148 | |||
e8ebd8c41e | |||
b0f9c9150d | |||
e922c31a0b | |||
ea62fd93e5 | |||
89387d534b | |||
ddb53c9c18 | |||
8dc253564c | |||
9300e59438 | |||
c9d66715f9 | |||
3a881addd2 | |||
09c076ec98 | |||
4edf91cbeb | |||
798a901dd6 | |||
300eaa70b9 | |||
c6a19599e0 | |||
d5f1ef24ac | |||
c54a8e2a6d | |||
|
1c65f95293 | ||
343c838ca6 | |||
7a2d11afa1 | |||
3d5893360c | |||
945604a5d6 | |||
1e01fe4e86 | |||
b75db23057 | |||
eb9da1c520 | |||
9d33b7e21f | |||
80c0756ef7 | |||
91a1cbcbdc | |||
0e55cf89da | |||
aaf19190e4 | |||
05245c05f8 | |||
330ab45b95 | |||
1495685a13 | |||
37ba5a5d5f | |||
15c6a57979 | |||
6d573a0d68 | |||
2007001562 | |||
377d6d9035 | |||
63929b7006 | |||
60620fb154 | |||
d22f2bee69 | |||
8005f715c8 | |||
b67d2a9ef6 | |||
4248f17b97 | |||
63a04d98da | |||
73b8c0ce03 | |||
14fbdaef55 | |||
a25a731e4d | |||
e24a7b663e | |||
ade248bf90 | |||
4dc5004e7c | |||
d5050d0c30 | |||
3c00e25719 | |||
668c02a1e8 | |||
4fe8085de8 | |||
47419c0925 | |||
5bbe8e12d5 | |||
3c3637f6ff | |||
8c8ad04725 | |||
199f28ac06 | |||
e1e1ffe6b3 | |||
f99c0528dd | |||
d30126e1cf | |||
d7be9fbe30 | |||
29b3c8830a | |||
43ca6c1930 | |||
8b1d70e30b | |||
87a3d1e0cb | |||
42fff2fbca | |||
93a4521293 | |||
5a37aa5d74 | |||
afb35c06eb | |||
41618831dc | |||
ffec31f75a | |||
b7e703fc2f | |||
edd3fbf8aa | |||
65aad75a14 | |||
b7da549712 | |||
ffbd560c26 | |||
08398300f4 | |||
c95c042925 | |||
3a00450e3e | |||
788e15a22d | |||
682af5c0a0 | |||
77bc93d674 | |||
a321a8444d | |||
abead0e7a7 | |||
f319889f10 | |||
7192234b18 | |||
55b2368c4c | |||
4455b27659 | |||
bfb450b0fb | |||
5beca898d3 | |||
98dd5eab64 | |||
62960dfe57 | |||
fadd7d6a7f | |||
41d820f92b | |||
0d72c9fd84 | |||
ae1505ec56 | |||
62787ee81f | |||
dd5ddde46a | |||
6d7aee5872 | |||
f66d3f5aac | |||
0cc6d040ec | |||
afbe918005 | |||
3c57bfb1b0 | |||
dadad4cf1f | |||
a16ab64a22 | |||
cb44dccf56 | |||
b98b7f202c | |||
c48aaec8da | |||
1292ce47c3 | |||
ed35a864e9 | |||
|
a319ede0da | ||
7a5d4ce0ff | |||
4cea49f0ad | |||
83c8379656 | |||
eab5ecb764 | |||
760e8f63a2 | |||
cf18b4344c | |||
0432bddaf4 | |||
4641d5f919 | |||
06c00a2ab8 | |||
5215d10748 | |||
1d0a12666a | |||
321e94af6c | |||
e8d02565cb | |||
d4fc9b8a9c | |||
993fc663e2 | |||
45b6969251 | |||
dc3e494a19 | |||
5a048c4486 | |||
|
77d08fc406 | ||
|
7e6eb5e27f | ||
832a1a0b4e | |||
23fbeda5ef | |||
d2f6a5ef07 | |||
ce58b842e7 | |||
b66c8f1214 | |||
42b85a3e0c | |||
15fdc3610a | |||
365027586e | |||
216e1e0a2e | |||
65a37fe704 | |||
5e48fc31c8 | |||
98e0610da4 | |||
3ed0d39c06 | |||
ede84612d4 | |||
5d08552a7c | |||
c075ef890a | |||
543e7c3d7e | |||
9a4677da5b | |||
2a6d6265d8 | |||
df2c2bc1ba | |||
9da95a61e0 | |||
7958bc17d3 | |||
691f247cc6 | |||
82d6f40173 | |||
34e3c2608d | |||
a85f536636 | |||
d5b6981ec7 | |||
ec76a27bdd | |||
f92b7d0f3d | |||
c60db397c8 | |||
f82f4edbfa | |||
8de31369f8 | |||
5c06f4b809 | |||
a8af0c0ee6 | |||
760c238f16 | |||
6786e63fc1 |
386 changed files with 5814 additions and 40368 deletions
19
.editorconfig
Normal file
19
.editorconfig
Normal file
|
@ -0,0 +1,19 @@
|
|||
[*]
|
||||
charset = utf-8
|
||||
end_of_line = lf
|
||||
insert_final_newline = false
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
|
||||
[*.json]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
|
||||
[*.java]
|
||||
indent_style = tab
|
||||
tab_width = 4
|
||||
|
||||
[{*.yml, *.yaml}]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
|
221
.gitignore
vendored
Normal file
221
.gitignore
vendored
Normal file
|
@ -0,0 +1,221 @@
|
|||
#################
|
||||
## Eclipse
|
||||
#################
|
||||
|
||||
*.pydevproject
|
||||
.metadata/
|
||||
bin/
|
||||
tmp/
|
||||
*.tmp
|
||||
*.bak
|
||||
*.swp
|
||||
*~.nib
|
||||
local.properties
|
||||
.classpath
|
||||
.settings/
|
||||
.loadpath
|
||||
target/
|
||||
.project
|
||||
|
||||
# External tool builders
|
||||
.externalToolBuilders/
|
||||
|
||||
# Locally stored "Eclipse launch configurations"
|
||||
*.launch
|
||||
|
||||
# CDT-specific
|
||||
.cproject
|
||||
|
||||
# PDT-specific
|
||||
.buildpath
|
||||
|
||||
|
||||
#################
|
||||
## Visual Studio
|
||||
#################
|
||||
|
||||
## Ignore Visual Studio temporary files, build results, and
|
||||
## files generated by popular Visual Studio add-ons.
|
||||
|
||||
# User-specific files
|
||||
*.suo
|
||||
*.user
|
||||
*.sln.docstates
|
||||
|
||||
# Build results
|
||||
|
||||
[Dd]ebug/
|
||||
[Rr]elease/
|
||||
x64/
|
||||
build/
|
||||
[Bb]in/
|
||||
[Oo]bj/
|
||||
|
||||
# MSTest test Results
|
||||
[Tt]est[Rr]esult*/
|
||||
[Bb]uild[Ll]og.*
|
||||
|
||||
*_i.c
|
||||
*_p.c
|
||||
*.ilk
|
||||
*.meta
|
||||
*.obj
|
||||
*.pch
|
||||
*.pdb
|
||||
*.pgc
|
||||
*.pgd
|
||||
*.rsp
|
||||
*.sbr
|
||||
*.tlb
|
||||
*.tli
|
||||
*.tlh
|
||||
*.tmp_proj
|
||||
*.log
|
||||
*.vspscc
|
||||
*.vssscc
|
||||
.builds
|
||||
*.pidb
|
||||
*.scc
|
||||
|
||||
# Visual C++ cache files
|
||||
ipch/
|
||||
*.aps
|
||||
*.ncb
|
||||
*.opensdf
|
||||
*.sdf
|
||||
*.cachefile
|
||||
|
||||
# Visual Studio profiler
|
||||
*.psess
|
||||
*.vsp
|
||||
*.vspx
|
||||
|
||||
# Guidance Automation Toolkit
|
||||
*.gpState
|
||||
|
||||
# ReSharper is a .NET coding add-in
|
||||
_ReSharper*/
|
||||
*.[Rr]e[Ss]harper
|
||||
|
||||
# TeamCity is a build add-in
|
||||
_TeamCity*
|
||||
|
||||
# DotCover is a Code Coverage Tool
|
||||
*.dotCover
|
||||
|
||||
# NCrunch
|
||||
*.ncrunch*
|
||||
.*crunch*.local.xml
|
||||
|
||||
# Installshield output folder
|
||||
[Ee]xpress/
|
||||
|
||||
# DocProject is a documentation generator add-in
|
||||
DocProject/buildhelp/
|
||||
DocProject/Help/*.HxT
|
||||
DocProject/Help/*.HxC
|
||||
DocProject/Help/*.hhc
|
||||
DocProject/Help/*.hhk
|
||||
DocProject/Help/*.hhp
|
||||
DocProject/Help/Html2
|
||||
DocProject/Help/html
|
||||
|
||||
# Click-Once directory
|
||||
publish/
|
||||
|
||||
# Publish Web Output
|
||||
*.Publish.xml
|
||||
*.pubxml
|
||||
*.publishproj
|
||||
|
||||
# NuGet Packages Directory
|
||||
## TO!DO: If you have NuGet Package Restore enabled, uncomment the next line
|
||||
#packages/
|
||||
|
||||
# Windows Azure Build Output
|
||||
csx
|
||||
*.build.csdef
|
||||
|
||||
# Windows Store app package directory
|
||||
AppPackages/
|
||||
|
||||
# Others
|
||||
sql/
|
||||
*.Cache
|
||||
ClientBin/
|
||||
[Ss]tyle[Cc]op.*
|
||||
~$*
|
||||
*~
|
||||
*.dbmdl
|
||||
*.[Pp]ublish.xml
|
||||
*.pfx
|
||||
*.publishsettings
|
||||
|
||||
# RIA/Silverlight projects
|
||||
Generated_Code/
|
||||
|
||||
# Backup & report files from converting an old project file to a newer
|
||||
# Visual Studio version. Backup files are not needed, because we have git ;-)
|
||||
_UpgradeReport_Files/
|
||||
Backup*/
|
||||
UpgradeLog*.XML
|
||||
UpgradeLog*.htm
|
||||
|
||||
# SQL Server files
|
||||
App_Data/*.mdf
|
||||
App_Data/*.ldf
|
||||
|
||||
#############
|
||||
## Windows detritus
|
||||
#############
|
||||
|
||||
# Windows image file caches
|
||||
Thumbs.db
|
||||
ehthumbs.db
|
||||
|
||||
# Folder config file
|
||||
Desktop.ini
|
||||
|
||||
# Recycle Bin used on file shares
|
||||
$RECYCLE.BIN/
|
||||
|
||||
# Mac crap
|
||||
.DS_Store
|
||||
|
||||
|
||||
#############
|
||||
## Python
|
||||
#############
|
||||
|
||||
*.py[cod]
|
||||
|
||||
# Packages
|
||||
*.egg
|
||||
*.egg-info
|
||||
dist/
|
||||
eggs/
|
||||
parts/
|
||||
var/
|
||||
sdist/
|
||||
develop-eggs/
|
||||
.installed.cfg
|
||||
|
||||
# Installer logs
|
||||
pip-log.txt
|
||||
|
||||
# Unit test / coverage reports
|
||||
.coverage
|
||||
.tox
|
||||
|
||||
#Translations
|
||||
*.mo
|
||||
|
||||
#Mr Developer
|
||||
.mr.developer.cfg
|
||||
.metadata/*
|
||||
TheButtonAutoFlair/out/artifacts/Autoflair/Autoflair.jar
|
||||
*.iml
|
||||
*.name
|
||||
.idea/compiler.xml
|
||||
*.xml
|
||||
/.apt_generated/
|
0
.metadata/.lock → .idea/ButtonChat.iml
generated
0
.metadata/.lock → .idea/ButtonChat.iml
generated
|
@ -1,22 +0,0 @@
|
|||
!SESSION 2015-07-15 15:24:45.371 -----------------------------------------------
|
||||
eclipse.buildId=M20130204-1200
|
||||
java.version=1.8.0_45
|
||||
java.vendor=Oracle Corporation
|
||||
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=hu_HU
|
||||
Framework arguments: -product org.eclipse.epp.package.jee.product -product org.eclipse.epp.package.jee.product
|
||||
Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.jee.product -data D:\Z - Norbi cucca\0 Projektek\TheButtonMCAutoFlairProto\Spigot plugin -product org.eclipse.epp.package.jee.product
|
||||
|
||||
!ENTRY org.eclipse.egit.ui 2 0 2015-07-15 15:25:41.331
|
||||
!MESSAGE Warning: EGit couldn't detect the installation path "gitPrefix" of native Git. Hence EGit can't respect system level
|
||||
Git settings which might be configured in ${gitPrefix}/etc/gitconfig under the native Git installation directory.
|
||||
The most important of these settings is core.autocrlf. Git for Windows by default sets this parameter to true in
|
||||
this system level configuration. The Git installation location can be configured on the
|
||||
Team > Git > Configuration preference page's 'System Settings' tab.
|
||||
This warning can be switched off on the Team > Git > Confirmations and Warnings preference page.
|
||||
|
||||
!ENTRY org.eclipse.egit.ui 2 0 2015-07-15 15:25:41.332
|
||||
!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git
|
||||
user global configuration and to define the default location to store repositories: 'C:\Users\Norbi'. If this is
|
||||
not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and
|
||||
EGit might behave differently since they see different configuration options.
|
||||
This warning can be switched off on the Team > Git > Confirmations and Warnings preference page.
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,48 +0,0 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class Commands implements CommandExecutor {
|
||||
// This method is called, when somebody uses our command
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
|
||||
if (sender instanceof Player) {
|
||||
Player player = (Player) sender;
|
||||
if(args.length<1)
|
||||
return false;
|
||||
if(!PluginMain.PlayerFlairs.containsKey(player.getName()))
|
||||
{
|
||||
player.sendMessage("Error: You need to write your username to the reddit thread at /r/TheButtonMinecraft");
|
||||
return true;
|
||||
}
|
||||
switch(args[0])
|
||||
{
|
||||
case "accept":
|
||||
if(PluginMain.IgnoredPlayers.contains(player.getName()))
|
||||
PluginMain.IgnoredPlayers.remove(player.getName());
|
||||
if(!PluginMain.AcceptedPlayers.contains(player.getName()))
|
||||
PluginMain.AcceptedPlayers.add(player.getName());
|
||||
String flair=PluginMain.PlayerFlairs.get(player.getName());
|
||||
player.setDisplayName(player.getDisplayName()+flair);
|
||||
player.sendMessage("§6Your flair has been set:§r "+flair);
|
||||
break;
|
||||
case "ignore":
|
||||
if(PluginMain.AcceptedPlayers.contains(player.getName()))
|
||||
PluginMain.AcceptedPlayers.remove(player.getName());
|
||||
if(!PluginMain.IgnoredPlayers.contains(player.getName()))
|
||||
PluginMain.IgnoredPlayers.add(player.getName());
|
||||
player.sendMessage("§6Your flair has been set:§r "+flair);
|
||||
break;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// If the player (or console) uses our command correct, we can return true
|
||||
return false;
|
||||
}
|
||||
}
|
|
@ -1,73 +0,0 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class Commands implements CommandExecutor {
|
||||
// This method is called, when somebody uses our command
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
|
||||
if (sender instanceof Player) {
|
||||
Player player = (Player) sender;
|
||||
if(args.length<1)
|
||||
return false;
|
||||
if(!PluginMain.PlayerFlairs.containsKey(player.getName()))
|
||||
{
|
||||
player.sendMessage("Error: You need to write your username to the reddit thread at /r/TheButtonMinecraft");
|
||||
return true;
|
||||
}
|
||||
switch(args[0])
|
||||
{
|
||||
case "accept":
|
||||
{
|
||||
if(PluginMain.IgnoredPlayers.contains(player.getName()))
|
||||
PluginMain.IgnoredPlayers.remove(player.getName());
|
||||
if(!PluginMain.AcceptedPlayers.contains(player.getName()))
|
||||
{
|
||||
String flair=PluginMain.PlayerFlairs.get(player.getName());
|
||||
player.setDisplayName(player.getDisplayName()+flair);
|
||||
PluginMain.AcceptedPlayers.add(player.getName());
|
||||
try {
|
||||
BufferedWriter bw=new BufferedWriter(new FileWriter("flairsaccepted.txt", true));
|
||||
bw.write(player.getName()+"\n");
|
||||
bw.close();
|
||||
} catch (IOException e) {
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
player.sendMessage("§6Your flair has been set:§r "+flair);
|
||||
}
|
||||
else
|
||||
player.sendMessage("§cYou already have this user's flair.§r");
|
||||
break;
|
||||
}
|
||||
case "ignore":
|
||||
{
|
||||
if(PluginMain.AcceptedPlayers.contains(player.getName()))
|
||||
PluginMain.AcceptedPlayers.remove(player.getName());
|
||||
if(!PluginMain.IgnoredPlayers.contains(player.getName()))
|
||||
{
|
||||
String dname=player.getDisplayName();
|
||||
String flair=PluginMain.PlayerFlairs.get(player.getName());
|
||||
player.setDisplayName(dname.substring(0, dname.indexOf(flair)));
|
||||
player.sendMessage("§6You have ignored this request. You can still use /u accept though.§r");
|
||||
}
|
||||
else
|
||||
player.sendMessage("§cYou already ignored this request.§r");
|
||||
break;
|
||||
}
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// If the player (or console) uses our command correct, we can return true
|
||||
return false;
|
||||
}
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
|
||||
public class PlayerListener implements Listener
|
||||
{ //2015.07.16.
|
||||
@EventHandler
|
||||
public void onPlayerJoin(PlayerJoinEvent event)
|
||||
{
|
||||
PluginMain.Players.add(event.getPlayer());
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerLeave(PlayerLeaveEvent event)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerChat(AsyncPlayerChatEvent event)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
|
@ -1,37 +0,0 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class Commands implements CommandExecutor {
|
||||
// This method is called, when somebody uses our command
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
|
||||
if (sender instanceof Player) {
|
||||
Player player = (Player) sender;
|
||||
if(args.length<1)
|
||||
return false;
|
||||
if(!PluginMain.PlayerFlairs.containsKey(player.getName()))
|
||||
{
|
||||
player.sendMessage("Error: You need to write your username to the reddit thread at /r/TheButtonMinecraft");
|
||||
return true;
|
||||
}
|
||||
switch(args[0])
|
||||
{
|
||||
case "accept":
|
||||
PluginMain.AcceptedPlayers.add(player.getName());
|
||||
player.setDisplayName(player.getDisplayName()+PluginMain.PlayerFlairs.get(player.getName()));
|
||||
break;
|
||||
case "ignore":
|
||||
PluginMain.IgnoredPlayers.add(player.getName());
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// If the player (or console) uses our command correct, we can return true
|
||||
return false;
|
||||
}
|
||||
}
|
|
@ -1,41 +0,0 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class Commands implements CommandExecutor {
|
||||
// This method is called, when somebody uses our command
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
|
||||
if (sender instanceof Player) {
|
||||
Player player = (Player) sender;
|
||||
if(args.length<1)
|
||||
return false;
|
||||
if(!PluginMain.PlayerFlairs.containsKey(player.getName()))
|
||||
{
|
||||
player.sendMessage("Error: You need to write your username to the reddit thread at /r/TheButtonMinecraft");
|
||||
return true;
|
||||
}
|
||||
switch(args[0])
|
||||
{
|
||||
case "accept":
|
||||
if(PluginMain.IgnoredPlayers.contains(player.getName()))
|
||||
PluginMain.IgnoredPlayers.remove(player.getName());
|
||||
PluginMain.AcceptedPlayers.add(player.getName());
|
||||
player.setDisplayName(player.getDisplayName()+PluginMain.PlayerFlairs.get(player.getName()));
|
||||
break;
|
||||
case "ignore":
|
||||
if(PluginMain.AcceptedPlayers.contains(player.getName()))
|
||||
PluginMain.AcceptedPlayers.remove(player.getName());
|
||||
PluginMain.IgnoredPlayers.add(player.getName());
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// If the player (or console) uses our command correct, we can return true
|
||||
return false;
|
||||
}
|
||||
}
|
|
@ -1,61 +0,0 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class Commands implements CommandExecutor {
|
||||
// This method is called, when somebody uses our command
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
|
||||
if (sender instanceof Player) {
|
||||
Player player = (Player) sender;
|
||||
if(args.length<1)
|
||||
return false;
|
||||
if(!PluginMain.PlayerFlairs.containsKey(player.getName()))
|
||||
{
|
||||
player.sendMessage("Error: You need to write your username to the reddit thread at /r/TheButtonMinecraft");
|
||||
return true;
|
||||
}
|
||||
switch(args[0])
|
||||
{
|
||||
case "accept":
|
||||
{
|
||||
if(PluginMain.IgnoredPlayers.contains(player.getName()))
|
||||
PluginMain.IgnoredPlayers.remove(player.getName());
|
||||
if(!PluginMain.AcceptedPlayers.contains(player.getName()))
|
||||
{
|
||||
String flair=PluginMain.PlayerFlairs.get(player.getName());
|
||||
player.setDisplayName(player.getDisplayName()+flair);
|
||||
PluginMain.AcceptedPlayers.add(player.getName());
|
||||
player.sendMessage("§6Your flair has been set:§r "+flair);
|
||||
}
|
||||
else
|
||||
player.sendMessage("$cYou already have this flair.§r");
|
||||
break;
|
||||
}
|
||||
case "ignore":
|
||||
{
|
||||
if(PluginMain.AcceptedPlayers.contains(player.getName()))
|
||||
PluginMain.AcceptedPlayers.remove(player.getName());
|
||||
if(!PluginMain.IgnoredPlayers.contains(player.getName()))
|
||||
{
|
||||
PluginMain.IgnoredPlayers.add(player.getName());
|
||||
String dname=player.getDisplayName();
|
||||
String flair=PluginMain.PlayerFlairs.get(player.getName());
|
||||
player.setDisplayName(dname.substring(0, dname.indexOf(flair)));
|
||||
player.sendMessage("§6You have ignored this request. You can still use /u accept though.§r");
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// If the player (or console) uses our command correct, we can return true
|
||||
return false;
|
||||
}
|
||||
}
|
|
@ -1,16 +0,0 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import java.util.function.Predicate;
|
||||
|
||||
public class MyPredicate<T> implements Predicate<T>
|
||||
{
|
||||
public MyPredicate(T first)
|
||||
{
|
||||
|
||||
}
|
||||
@Override
|
||||
public boolean test(T second) {
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,63 +0,0 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class Commands implements CommandExecutor {
|
||||
// This method is called, when somebody uses our command
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
|
||||
if (sender instanceof Player) {
|
||||
Player player = (Player) sender;
|
||||
if(args.length<1)
|
||||
return false;
|
||||
if(!PluginMain.PlayerFlairs.containsKey(player.getName()))
|
||||
{
|
||||
player.sendMessage("Error: You need to write your username to the reddit thread at /r/TheButtonMinecraft");
|
||||
return true;
|
||||
}
|
||||
switch(args[0])
|
||||
{
|
||||
case "accept":
|
||||
{
|
||||
if(PluginMain.IgnoredPlayers.contains(player.getName()))
|
||||
PluginMain.IgnoredPlayers.remove(player.getName());
|
||||
if(!PluginMain.AcceptedPlayers.contains(player.getName()))
|
||||
{
|
||||
String flair=PluginMain.PlayerFlairs.get(player.getName());
|
||||
player.setDisplayName(player.getDisplayName()+flair);
|
||||
PluginMain.AcceptedPlayers.add(player.getName());
|
||||
player.sendMessage("§6Your flair has been set:§r "+flair);
|
||||
}
|
||||
else
|
||||
player.sendMessage("$cYou already have this flair.§r");
|
||||
break;
|
||||
}
|
||||
case "ignore":
|
||||
{
|
||||
if(PluginMain.AcceptedPlayers.contains(player.getName()))
|
||||
PluginMain.AcceptedPlayers.remove(player.getName());
|
||||
if(!PluginMain.IgnoredPlayers.contains(player.getName()))
|
||||
{
|
||||
PluginMain.IgnoredPlayers.add(player.getName());
|
||||
String dname=player.getDisplayName();
|
||||
String flair=PluginMain.PlayerFlairs.get(player.getName());
|
||||
player.setDisplayName(dname.substring(0, dname.indexOf(flair)));
|
||||
player.sendMessage("§6You have ignored this request. You can still use /u accept though.§r");
|
||||
}
|
||||
else
|
||||
player.sendMessage("§cYou already ignored this request.§r";)
|
||||
break;
|
||||
}
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// If the player (or console) uses our command correct, we can return true
|
||||
return false;
|
||||
}
|
||||
}
|
|
@ -1,63 +0,0 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class Commands implements CommandExecutor {
|
||||
// This method is called, when somebody uses our command
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
|
||||
if (sender instanceof Player) {
|
||||
Player player = (Player) sender;
|
||||
if(args.length<1)
|
||||
return false;
|
||||
if(!PluginMain.PlayerFlairs.containsKey(player.getName()))
|
||||
{
|
||||
player.sendMessage("Error: You need to write your username to the reddit thread at /r/TheButtonMinecraft");
|
||||
return true;
|
||||
}
|
||||
switch(args[0])
|
||||
{
|
||||
case "accept":
|
||||
{
|
||||
if(PluginMain.IgnoredPlayers.contains(player.getName()))
|
||||
PluginMain.IgnoredPlayers.remove(player.getName());
|
||||
if(!PluginMain.AcceptedPlayers.contains(player.getName()))
|
||||
{
|
||||
String flair=PluginMain.PlayerFlairs.get(player.getName());
|
||||
player.setDisplayName(player.getDisplayName()+flair);
|
||||
PluginMain.AcceptedPlayers.add(player.getName());
|
||||
player.sendMessage("§6Your flair has been set:§r "+flair);
|
||||
}
|
||||
else
|
||||
player.sendMessage("$cYou already have this flair.§r");
|
||||
break;
|
||||
}
|
||||
case "ignore":
|
||||
{
|
||||
if(PluginMain.AcceptedPlayers.contains(player.getName()))
|
||||
PluginMain.AcceptedPlayers.remove(player.getName());
|
||||
if(!PluginMain.IgnoredPlayers.contains(player.getName()))
|
||||
{
|
||||
PluginMain.IgnoredPlayers.add(player.getName());
|
||||
String dname=player.getDisplayName();
|
||||
String flair=PluginMain.PlayerFlairs.get(player.getName());
|
||||
player.setDisplayName(dname.substring(0, dname.indexOf(flair)));
|
||||
player.sendMessage("§6You have ignored this request. You can still use /u accept though.§r");
|
||||
}
|
||||
else
|
||||
player.sendMessage("§cYou already ignored this request.§r");
|
||||
break;
|
||||
}
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// If the player (or console) uses our command correct, we can return true
|
||||
return false;
|
||||
}
|
||||
}
|
|
@ -1,21 +0,0 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
|
||||
public class PlayerListener implements Listener
|
||||
{
|
||||
@EventHandler
|
||||
public void onPlayerJoin(PlayerJoinEvent event)
|
||||
{
|
||||
PluginMain.Players.add(event.getPlayer());
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerChat(AsyncPlayerChatEvent event)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
|
@ -1,244 +0,0 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.FileReader;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import java.net.URLConnection;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONObject;
|
||||
|
||||
public class PluginMain extends JavaPlugin
|
||||
{ //Translated to Java: 2015.07.15.
|
||||
//A user, which flair isn't obtainable:
|
||||
//https://www.reddit.com/r/thebutton/comments/31c32v/i_pressed_the_button_without_really_thinking/
|
||||
// Fired when plugin is first enabled
|
||||
@Override
|
||||
public void onEnable()
|
||||
{
|
||||
System.out.println("The Button Auto-flair Plugin by NorbiPeti (:P)");
|
||||
//System.out.println("Original C# version: http://pastebin.com/tX8xCPbp");
|
||||
//System.out.println("The Java version is... Also made by the same person.");
|
||||
//System.out.println("With the help of StackOverflow and similar.");
|
||||
/*catch(MalformedURLException e)
|
||||
{
|
||||
}
|
||||
catch(IOException e)
|
||||
{
|
||||
}*/
|
||||
getServer().getPluginManager().registerEvents(new PlayerListener(), this);
|
||||
//System.out.println("Registering commands...");
|
||||
this.getCommand("u").setExecutor(new Commands());
|
||||
this.getCommand("u").setUsage(this.getCommand("u").getUsage().replace('&', '§'));
|
||||
try {
|
||||
BufferedReader br=new BufferedReader(new FileReader("flairsaccepted.txt"));
|
||||
String line;
|
||||
while ((line = br.readLine()) != null)
|
||||
{
|
||||
AcceptedPlayers.add(line.replace("\n", ""));
|
||||
}
|
||||
br.close();
|
||||
br=new BufferedReader(new FileReader("flairsignored.txt"));
|
||||
while ((line = br.readLine()) != null)
|
||||
{
|
||||
IgnoredPlayers.add(line.replace("\n", ""));
|
||||
}
|
||||
br.close();
|
||||
FileWriter fw;
|
||||
fw = new FileWriter("flairsaccepted.txt");
|
||||
fw.close();
|
||||
} catch (IOException e) {
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
//System.out.println("Registering done.");
|
||||
Runnable r=new Runnable(){public void run(){ThreadMethod();}};
|
||||
Thread t=new Thread(r);
|
||||
t.start();
|
||||
}
|
||||
Boolean stop=false;
|
||||
// Fired when plugin is disabled
|
||||
@Override
|
||||
public void onDisable()
|
||||
{
|
||||
stop=true;
|
||||
}
|
||||
|
||||
public void ThreadMethod() //<-- 2015.07.16.
|
||||
{
|
||||
while(!stop)
|
||||
{
|
||||
try
|
||||
{
|
||||
String body=DownloadString("https://www.reddit.com/r/TheButtonMinecraft/comments/3d25do/autoflair_system_comment_your_minecraft_name_and/.json?limit=1000");
|
||||
JSONArray json=new JSONArray(body).getJSONObject(1).getJSONObject("data").getJSONArray("children");
|
||||
for(Object obj : json)
|
||||
{
|
||||
JSONObject item = (JSONObject)obj;
|
||||
String author=item.getJSONObject("data").getString("author");
|
||||
String ign=item.getJSONObject("data").getString("body");
|
||||
int start = ign.indexOf("IGN:") + "IGN:".length();
|
||||
int end = ign.indexOf(' ', start);
|
||||
if (end == -1 || end == start)
|
||||
end=ign.indexOf('\n', start); //2015.07.15.
|
||||
if (end == -1 || end == start)
|
||||
ign = ign.substring(start);
|
||||
else
|
||||
ign = ign.substring(start, end);
|
||||
ign = ign.trim();
|
||||
if(HasIGFlair(ign))
|
||||
continue;
|
||||
//System.out.println("Author: "+author);
|
||||
try {
|
||||
Thread.sleep(10);
|
||||
} catch(InterruptedException ex) {
|
||||
Thread.currentThread().interrupt();
|
||||
}
|
||||
String[] flairdata = DownloadString("http://karmadecay.com/thebutton-data.php?users=" + author).replace("\"", "").split(":");
|
||||
String flair;
|
||||
if(flairdata.length > 1) //2015.07.15.
|
||||
flair = flairdata[1];
|
||||
else
|
||||
flair="";
|
||||
if (flair != "-1")
|
||||
flair = flair + "s";
|
||||
else
|
||||
flair = "non-presser";
|
||||
String flairclass;
|
||||
if(flairdata.length>1)
|
||||
flairclass = flairdata[2];
|
||||
else
|
||||
flairclass="unknown";
|
||||
SetFlair(ign, flair, flairclass, author);
|
||||
}
|
||||
Thread.sleep(10000);
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public String DownloadString(String urlstr) throws MalformedURLException, IOException
|
||||
{
|
||||
URL url = new URL(urlstr);
|
||||
URLConnection con = url.openConnection();
|
||||
con.setRequestProperty("User-Agent", "TheButtonAutoFlair");
|
||||
InputStream in = con.getInputStream();
|
||||
String encoding = con.getContentEncoding();
|
||||
encoding = encoding == null ? "UTF-8" : encoding;
|
||||
String body = IOUtils.toString(in, encoding);
|
||||
in.close();
|
||||
return body;
|
||||
}
|
||||
|
||||
//It has to store offline player flairs too, therefore it can't use Player object
|
||||
public static Map<String, String> PlayerFlairs=new HashMap<String, String>();
|
||||
public static Map<String, String> PlayerUserNames=new HashMap<String, String>();
|
||||
//public Map<Player, String> PlayerFlairs=new HashMap<Player, String>();
|
||||
public static ArrayList<Player> Players=new ArrayList<Player>();
|
||||
public static ArrayList<String> AcceptedPlayers=new ArrayList<String>(); //2015.07.16.
|
||||
public static ArrayList<String> IgnoredPlayers=new ArrayList<String>(); //2015.07.16.
|
||||
public Boolean HasIGFlair(String playername)
|
||||
{
|
||||
/*Player player=null;
|
||||
for(Player p : Players)
|
||||
{
|
||||
if(p.getName()==playername)
|
||||
{
|
||||
player=p;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(player==null)
|
||||
return false;*/
|
||||
return PlayerFlairs.containsKey(playername);
|
||||
}
|
||||
|
||||
public void SetFlair(String playername, String text, String flairclass, String username)
|
||||
{
|
||||
String finalflair;
|
||||
switch(flairclass)
|
||||
{
|
||||
case "press-1":
|
||||
finalflair="§c("+text+")§r";
|
||||
break;
|
||||
case "press-2":
|
||||
finalflair="§6("+text+")§r";
|
||||
break;
|
||||
case "press-3":
|
||||
finalflair="§e("+text+")§r";
|
||||
break;
|
||||
case "press-4":
|
||||
finalflair="§a("+text+")§r";
|
||||
break;
|
||||
case "press-5":
|
||||
finalflair="§9("+text+")§r";
|
||||
break;
|
||||
case "press-6":
|
||||
finalflair="§5("+text+")§r";
|
||||
break;
|
||||
case "no-press":
|
||||
finalflair="§7(non-pr.)§r";
|
||||
break;
|
||||
case "cheater":
|
||||
finalflair="§5("+text+")§r";
|
||||
break;
|
||||
default:
|
||||
finalflair="";
|
||||
break;
|
||||
}
|
||||
PlayerFlairs.put(playername, finalflair);
|
||||
PlayerUserNames.put(playername, username);
|
||||
/*for(Player player : Players)
|
||||
{
|
||||
if(player.getName()==playername)
|
||||
{
|
||||
PlayerFlairs.put(player, finalflair);
|
||||
break;
|
||||
}
|
||||
}*/
|
||||
//System.out.println("SetFlair - playername: "+playername+" text: "+text+" flairclass: "+flairclass);
|
||||
System.out.println("Added new flair to "+playername+": "+finalflair);
|
||||
for(Player player : Players)
|
||||
{
|
||||
//System.out.println("Online player: "+player.getName());
|
||||
//System.out.println("player.getName ("+player.getName()+") == playername ("+playername+"): "+(player.getName()==playername));
|
||||
if(player.getName().equals(playername))
|
||||
{
|
||||
//System.out.println("DisplayName: "+player.getDisplayName());
|
||||
//player.setDisplayName(player.getDisplayName()+finalflair);
|
||||
AppendPlayerDisplayFlair(player, username, finalflair);
|
||||
//System.out.println("DisplayName: "+player.getDisplayName());
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static String GetFlair(Player player)
|
||||
{ //2015.07.16.
|
||||
String flair=PlayerFlairs.get(player.getName());
|
||||
return flair==null ? "" : flair;
|
||||
}
|
||||
|
||||
public static void AppendPlayerDisplayFlair(Player player, String username, String flair)
|
||||
{
|
||||
if(IgnoredPlayers.contains(player.getName()))
|
||||
return;
|
||||
if(AcceptedPlayers.contains(player.getName()))
|
||||
player.setDisplayName(player.getDisplayName()+flair);
|
||||
else
|
||||
player.sendMessage("§9Are you Reddit user "+username+"?§r §6Type /u accept or /u ignore§r");
|
||||
|
||||
}
|
||||
}
|
|
@ -1,254 +0,0 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.FileReader;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import java.net.URLConnection;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONObject;
|
||||
|
||||
public class PluginMain extends JavaPlugin
|
||||
{ //Translated to Java: 2015.07.15.
|
||||
//A user, which flair isn't obtainable:
|
||||
//https://www.reddit.com/r/thebutton/comments/31c32v/i_pressed_the_button_without_really_thinking/
|
||||
// Fired when plugin is first enabled
|
||||
@Override
|
||||
public void onEnable()
|
||||
{
|
||||
System.out.println("The Button Auto-flair Plugin by NorbiPeti (:P)");
|
||||
//System.out.println("Original C# version: http://pastebin.com/tX8xCPbp");
|
||||
//System.out.println("The Java version is... Also made by the same person.");
|
||||
//System.out.println("With the help of StackOverflow and similar.");
|
||||
/*catch(MalformedURLException e)
|
||||
{
|
||||
}
|
||||
catch(IOException e)
|
||||
{
|
||||
}*/
|
||||
getServer().getPluginManager().registerEvents(new PlayerListener(), this);
|
||||
//System.out.println("Registering commands...");
|
||||
this.getCommand("u").setExecutor(new Commands());
|
||||
this.getCommand("u").setUsage(this.getCommand("u").getUsage().replace('&', '§'));
|
||||
try {
|
||||
BufferedReader br=new BufferedReader(new FileReader("flairsaccepted.txt"));
|
||||
String line;
|
||||
while ((line = br.readLine()) != null)
|
||||
{
|
||||
AcceptedPlayers.add(line.replace("\n", ""));
|
||||
}
|
||||
br.close();
|
||||
BufferedReader br=new BufferedReader(new FileReader("flairsignored.txt"));
|
||||
while ((line = br.readLine()) != null)
|
||||
{
|
||||
IgnoredPlayers.add(line.replace("\n", ""));
|
||||
}
|
||||
br.close();
|
||||
FileWriter fw;
|
||||
fw = new FileWriter("flairsaccepted.txt");
|
||||
fw.close();
|
||||
} catch (IOException e) {
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
//System.out.println("Registering done.");
|
||||
Runnable r=new Runnable(){public void run(){ThreadMethod();}};
|
||||
Thread t=new Thread(r);
|
||||
t.start();
|
||||
}
|
||||
Boolean stop=false;
|
||||
// Fired when plugin is disabled
|
||||
@Override
|
||||
public void onDisable()
|
||||
{
|
||||
stop=true;
|
||||
}
|
||||
|
||||
public void ThreadMethod() //<-- 2015.07.16.
|
||||
{
|
||||
while(!stop)
|
||||
{
|
||||
try
|
||||
{
|
||||
String body=DownloadString("https://www.reddit.com/r/TheButtonMinecraft/comments/3d25do/autoflair_system_comment_your_minecraft_name_and/.json?limit=1000");
|
||||
JSONArray json=new JSONArray(body).getJSONObject(1).getJSONObject("data").getJSONArray("children");
|
||||
for(Object obj : json)
|
||||
{
|
||||
JSONObject item = (JSONObject)obj;
|
||||
String author=item.getJSONObject("data").getString("author");
|
||||
String ign=item.getJSONObject("data").getString("body");
|
||||
int start = ign.indexOf("IGN:") + "IGN:".length();
|
||||
int end = ign.indexOf(' ', start);
|
||||
if (end == -1 || end == start)
|
||||
end=ign.indexOf('\n', start); //2015.07.15.
|
||||
if (end == -1 || end == start)
|
||||
ign = ign.substring(start);
|
||||
else
|
||||
ign = ign.substring(start, end);
|
||||
ign = ign.trim();
|
||||
if(HasIGFlair(ign))
|
||||
continue;
|
||||
//System.out.println("Author: "+author);
|
||||
try {
|
||||
Thread.sleep(10);
|
||||
} catch(InterruptedException ex) {
|
||||
Thread.currentThread().interrupt();
|
||||
}
|
||||
String[] flairdata = DownloadString("http://karmadecay.com/thebutton-data.php?users=" + author).replace("\"", "").split(":");
|
||||
String flair;
|
||||
if(flairdata.length > 1) //2015.07.15.
|
||||
flair = flairdata[1];
|
||||
else
|
||||
flair="";
|
||||
if (flair != "-1")
|
||||
flair = flair + "s";
|
||||
else
|
||||
flair = "non-presser";
|
||||
String flairclass;
|
||||
if(flairdata.length>1)
|
||||
flairclass = flairdata[2];
|
||||
else
|
||||
flairclass="unknown";
|
||||
SetFlair(ign, flair, flairclass, author);
|
||||
}
|
||||
Thread.sleep(10000);
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public String DownloadString(String urlstr) throws MalformedURLException, IOException
|
||||
{
|
||||
URL url = new URL(urlstr);
|
||||
URLConnection con = url.openConnection();
|
||||
con.setRequestProperty("User-Agent", "TheButtonAutoFlair");
|
||||
InputStream in = con.getInputStream();
|
||||
String encoding = con.getContentEncoding();
|
||||
encoding = encoding == null ? "UTF-8" : encoding;
|
||||
String body = IOUtils.toString(in, encoding);
|
||||
in.close();
|
||||
return body;
|
||||
}
|
||||
|
||||
//It has to store offline player flairs too, therefore it can't use Player object
|
||||
public static Map<String, String> PlayerFlairs=new HashMap<String, String>();
|
||||
public static Map<String, String> PlayerUserNames=new HashMap<String, String>();
|
||||
//public Map<Player, String> PlayerFlairs=new HashMap<Player, String>();
|
||||
public static ArrayList<Player> Players=new ArrayList<Player>();
|
||||
public static ArrayList<String> AcceptedPlayers=new ArrayList<String>(); //2015.07.16.
|
||||
public static ArrayList<String> IgnoredPlayers=new ArrayList<String>(); //2015.07.16.
|
||||
public Boolean HasIGFlair(String playername)
|
||||
{
|
||||
/*Player player=null;
|
||||
for(Player p : Players)
|
||||
{
|
||||
if(p.getName()==playername)
|
||||
{
|
||||
player=p;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(player==null)
|
||||
return false;*/
|
||||
return PlayerFlairs.containsKey(playername);
|
||||
}
|
||||
|
||||
public void SetFlair(String playername, String text, String flairclass, String username)
|
||||
{
|
||||
String finalflair;
|
||||
switch(flairclass)
|
||||
{
|
||||
case "press-1":
|
||||
finalflair="§c("+text+")§r";
|
||||
break;
|
||||
case "press-2":
|
||||
finalflair="§6("+text+")§r";
|
||||
break;
|
||||
case "press-3":
|
||||
finalflair="§e("+text+")§r";
|
||||
break;
|
||||
case "press-4":
|
||||
finalflair="§a("+text+")§r";
|
||||
break;
|
||||
case "press-5":
|
||||
finalflair="§9("+text+")§r";
|
||||
break;
|
||||
case "press-6":
|
||||
finalflair="§5("+text+")§r";
|
||||
break;
|
||||
case "no-press":
|
||||
finalflair="§7(non-pr.)§r";
|
||||
break;
|
||||
case "cheater":
|
||||
finalflair="§5("+text+")§r";
|
||||
break;
|
||||
default:
|
||||
finalflair="";
|
||||
break;
|
||||
}
|
||||
PlayerFlairs.put(playername, finalflair);
|
||||
PlayerUserNames.put(playername, username);
|
||||
/*for(Player player : Players)
|
||||
{
|
||||
if(player.getName()==playername)
|
||||
{
|
||||
PlayerFlairs.put(player, finalflair);
|
||||
break;
|
||||
}
|
||||
}*/
|
||||
//System.out.println("SetFlair - playername: "+playername+" text: "+text+" flairclass: "+flairclass);
|
||||
System.out.println("Added new flair to "+playername+": "+finalflair);
|
||||
for(Player player : Players)
|
||||
{
|
||||
//System.out.println("Online player: "+player.getName());
|
||||
//System.out.println("player.getName ("+player.getName()+") == playername ("+playername+"): "+(player.getName()==playername));
|
||||
if(player.getName().equals(playername))
|
||||
{
|
||||
//System.out.println("DisplayName: "+player.getDisplayName());
|
||||
//player.setDisplayName(player.getDisplayName()+finalflair);
|
||||
AppendPlayerDisplayFlair(player, username, finalflair);
|
||||
//System.out.println("DisplayName: "+player.getDisplayName());
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static String GetFlair(Player player)
|
||||
{ //2015.07.16.
|
||||
String flair=PlayerFlairs.get(player.getName());
|
||||
return flair==null ? "" : flair;
|
||||
}
|
||||
|
||||
public static void AppendPlayerDisplayFlair(Player player, String username, String flair)
|
||||
{
|
||||
if(IgnoredPlayers.contains(player.getName()))
|
||||
return;
|
||||
if(AcceptedPlayers.contains(player.getName()))
|
||||
player.setDisplayName(player.getDisplayName()+flair);
|
||||
{
|
||||
try {
|
||||
BufferedWriter bw=new BufferedWriter(new FileWriter("flairsaccepted.txt", true));
|
||||
bw.write(player.getName()+"\n");
|
||||
bw.close();
|
||||
} catch (IOException e) {
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
}
|
||||
else
|
||||
player.sendMessage("§9Are you Reddit user "+username+"?§r §6Type /u accept or /u ignore§r");
|
||||
|
||||
}
|
||||
}
|
|
@ -1,50 +0,0 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class Commands implements CommandExecutor {
|
||||
// This method is called, when somebody uses our command
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
|
||||
if (sender instanceof Player) {
|
||||
Player player = (Player) sender;
|
||||
if(args.length<1)
|
||||
return false;
|
||||
if(!PluginMain.PlayerFlairs.containsKey(player.getName()))
|
||||
{
|
||||
player.sendMessage("Error: You need to write your username to the reddit thread at /r/TheButtonMinecraft");
|
||||
return true;
|
||||
}
|
||||
switch(args[0])
|
||||
{
|
||||
case "accept":
|
||||
if(PluginMain.IgnoredPlayers.contains(player.getName()))
|
||||
PluginMain.IgnoredPlayers.remove(player.getName());
|
||||
if(!PluginMain.AcceptedPlayers.contains(player.getName()))
|
||||
PluginMain.AcceptedPlayers.add(player.getName());
|
||||
String flair=PluginMain.PlayerFlairs.get(player.getName());
|
||||
player.setDisplayName(player.getDisplayName()+flair);
|
||||
player.sendMessage("§6Your flair has been set:§r "+flair);
|
||||
break;
|
||||
case "ignore":
|
||||
if(PluginMain.AcceptedPlayers.contains(player.getName()))
|
||||
PluginMain.AcceptedPlayers.remove(player.getName());
|
||||
if(!PluginMain.IgnoredPlayers.contains(player.getName()))
|
||||
PluginMain.IgnoredPlayers.add(player.getName());
|
||||
String dname=player.getDisplayName();
|
||||
player.setDisplayName(.substring(0, dname));
|
||||
player.sendMessage("§6You have ignored this request. You can still use /u accept though.§r");
|
||||
break;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// If the player (or console) uses our command correct, we can return true
|
||||
return false;
|
||||
}
|
||||
}
|
|
@ -1,285 +0,0 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.File;
|
||||
import java.io.FileReader;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import java.net.URLConnection;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONObject;
|
||||
|
||||
public class PluginMain extends JavaPlugin
|
||||
{ //Translated to Java: 2015.07.15.
|
||||
//A user, which flair isn't obtainable:
|
||||
//https://www.reddit.com/r/thebutton/comments/31c32v/i_pressed_the_button_without_really_thinking/
|
||||
// Fired when plugin is first enabled
|
||||
@Override
|
||||
public void onEnable()
|
||||
{
|
||||
System.out.println("The Button Auto-flair Plugin by NorbiPeti (:P)");
|
||||
//System.out.println("Original C# version: http://pastebin.com/tX8xCPbp");
|
||||
//System.out.println("The Java version is... Also made by the same person.");
|
||||
//System.out.println("With the help of StackOverflow and similar.");
|
||||
/*catch(MalformedURLException e)
|
||||
{
|
||||
}
|
||||
catch(IOException e)
|
||||
{
|
||||
}*/
|
||||
getServer().getPluginManager().registerEvents(new PlayerListener(), this);
|
||||
//System.out.println("Registering commands...");
|
||||
this.getCommand("u").setExecutor(new Commands());
|
||||
this.getCommand("u").setUsage(this.getCommand("u").getUsage().replace('&', '§'));
|
||||
try {
|
||||
File file=new File("flairsaccepted.txt");
|
||||
if(file.exists())
|
||||
{
|
||||
BufferedReader br=new BufferedReader(new FileReader("flairsaccepted.txt"));
|
||||
String line;
|
||||
while ((line = br.readLine()) != null)
|
||||
{
|
||||
AcceptedPlayers.add(line.replace("\n", ""));
|
||||
}
|
||||
br.close();
|
||||
}
|
||||
file=new File("flairsignored.txt");
|
||||
if(file.exists())
|
||||
{
|
||||
BufferedReader br=new BufferedReader(new FileReader("flairsignored.txt"));
|
||||
String line;
|
||||
while ((line = br.readLine()) != null)
|
||||
{
|
||||
IgnoredPlayers.add(line.replace("\n", ""));
|
||||
}
|
||||
br.close();
|
||||
}
|
||||
} catch (IOException e) {
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
//System.out.println("Registering done.");
|
||||
Runnable r=new Runnable(){public void run(){ThreadMethod();}};
|
||||
Thread t=new Thread(r);
|
||||
t.start();
|
||||
}
|
||||
Boolean stop=false;
|
||||
// Fired when plugin is disabled
|
||||
@Override
|
||||
public void onDisable()
|
||||
{
|
||||
try
|
||||
{
|
||||
FileWriter fw;
|
||||
fw = new FileWriter("flairsaccepted.txt");
|
||||
fw.close();
|
||||
fw = new FileWriter("flairsignored.txt");
|
||||
fw.close();
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
for(String player : AcceptedPlayers)
|
||||
{
|
||||
File file=new File("flairsaccepted.txt");
|
||||
try {
|
||||
BufferedWriter bw=new BufferedWriter(new FileWriter(file, true));
|
||||
bw.write(player+"\n");
|
||||
bw.close();
|
||||
} catch (IOException e) {
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
}
|
||||
for(String player : IgnoredPlayers)
|
||||
{
|
||||
File file=new File("flairsignored.txt");
|
||||
try {
|
||||
BufferedWriter bw=new BufferedWriter(new FileWriter(file, true));
|
||||
bw.write(player+"\n");
|
||||
bw.close();
|
||||
} catch (IOException e) {
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
}
|
||||
stop=true;
|
||||
}
|
||||
|
||||
public void ThreadMethod() //<-- 2015.07.16.
|
||||
{
|
||||
while(!stop)
|
||||
{
|
||||
try
|
||||
{
|
||||
String body=DownloadString("https://www.reddit.com/r/TheButtonMinecraft/comments/3d25do/autoflair_system_comment_your_minecraft_name_and/.json?limit=1000");
|
||||
JSONArray json=new JSONArray(body).getJSONObject(1).getJSONObject("data").getJSONArray("children");
|
||||
for(Object obj : json)
|
||||
{
|
||||
JSONObject item = (JSONObject)obj;
|
||||
String author=item.getJSONObject("data").getString("author");
|
||||
String ign=item.getJSONObject("data").getString("body");
|
||||
int start = ign.indexOf("IGN:") + "IGN:".length();
|
||||
int end = ign.indexOf(' ', start);
|
||||
if (end == -1 || end == start)
|
||||
end=ign.indexOf('\n', start); //2015.07.15.
|
||||
if (end == -1 || end == start)
|
||||
ign = ign.substring(start);
|
||||
else
|
||||
ign = ign.substring(start, end);
|
||||
ign = ign.trim();
|
||||
if(HasIGFlair(ign))
|
||||
continue;
|
||||
//System.out.println("Author: "+author);
|
||||
try {
|
||||
Thread.sleep(10);
|
||||
} catch(InterruptedException ex) {
|
||||
Thread.currentThread().interrupt();
|
||||
}
|
||||
String[] flairdata = DownloadString("http://karmadecay.com/thebutton-data.php?users=" + author).replace("\"", "").split(":");
|
||||
String flair;
|
||||
if(flairdata.length > 1) //2015.07.15.
|
||||
flair = flairdata[1];
|
||||
else
|
||||
flair="";
|
||||
if (flair != "-1")
|
||||
flair = flair + "s";
|
||||
else
|
||||
flair = "non-presser";
|
||||
String flairclass;
|
||||
if(flairdata.length>1)
|
||||
flairclass = flairdata[2];
|
||||
else
|
||||
flairclass="unknown";
|
||||
SetFlair(ign, flair, flairclass, author);
|
||||
}
|
||||
Thread.sleep(10000);
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public String DownloadString(String urlstr) throws MalformedURLException, IOException
|
||||
{
|
||||
URL url = new URL(urlstr);
|
||||
URLConnection con = url.openConnection();
|
||||
con.setRequestProperty("User-Agent", "TheButtonAutoFlair");
|
||||
InputStream in = con.getInputStream();
|
||||
String encoding = con.getContentEncoding();
|
||||
encoding = encoding == null ? "UTF-8" : encoding;
|
||||
String body = IOUtils.toString(in, encoding);
|
||||
in.close();
|
||||
return body;
|
||||
}
|
||||
|
||||
//It has to store offline player flairs too, therefore it can't use Player object
|
||||
public static Map<String, String> PlayerFlairs=new HashMap<String, String>();
|
||||
public static Map<String, String> PlayerUserNames=new HashMap<String, String>();
|
||||
//public Map<Player, String> PlayerFlairs=new HashMap<Player, String>();
|
||||
public static ArrayList<Player> Players=new ArrayList<Player>();
|
||||
public static ArrayList<String> AcceptedPlayers=new ArrayList<String>(); //2015.07.16.
|
||||
public static ArrayList<String> IgnoredPlayers=new ArrayList<String>(); //2015.07.16.
|
||||
public Boolean HasIGFlair(String playername)
|
||||
{
|
||||
/*Player player=null;
|
||||
for(Player p : Players)
|
||||
{
|
||||
if(p.getName()==playername)
|
||||
{
|
||||
player=p;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(player==null)
|
||||
return false;*/
|
||||
return PlayerFlairs.containsKey(playername);
|
||||
}
|
||||
|
||||
public void SetFlair(String playername, String text, String flairclass, String username)
|
||||
{
|
||||
String finalflair;
|
||||
switch(flairclass)
|
||||
{
|
||||
case "press-1":
|
||||
finalflair="§c("+text+")§r";
|
||||
break;
|
||||
case "press-2":
|
||||
finalflair="§6("+text+")§r";
|
||||
break;
|
||||
case "press-3":
|
||||
finalflair="§e("+text+")§r";
|
||||
break;
|
||||
case "press-4":
|
||||
finalflair="§a("+text+")§r";
|
||||
break;
|
||||
case "press-5":
|
||||
finalflair="§9("+text+")§r";
|
||||
break;
|
||||
case "press-6":
|
||||
finalflair="§5("+text+")§r";
|
||||
break;
|
||||
case "no-press":
|
||||
finalflair="§7(non-pr.)§r";
|
||||
break;
|
||||
case "cheater":
|
||||
finalflair="§5("+text+")§r";
|
||||
break;
|
||||
default:
|
||||
finalflair="";
|
||||
break;
|
||||
}
|
||||
PlayerFlairs.put(playername, finalflair);
|
||||
PlayerUserNames.put(playername, username);
|
||||
/*for(Player player : Players)
|
||||
{
|
||||
if(player.getName()==playername)
|
||||
{
|
||||
PlayerFlairs.put(player, finalflair);
|
||||
break;
|
||||
}
|
||||
}*/
|
||||
//System.out.println("SetFlair - playername: "+playername+" text: "+text+" flairclass: "+flairclass);
|
||||
System.out.println("Added new flair to "+playername+": "+finalflair);
|
||||
for(Player player : Players)
|
||||
{
|
||||
//System.out.println("Online player: "+player.getName());
|
||||
//System.out.println("player.getName ("+player.getName()+") == playername ("+playername+"): "+(player.getName()==playername));
|
||||
if(player.getName().equals(playername))
|
||||
{
|
||||
//System.out.println("DisplayName: "+player.getDisplayName());
|
||||
//player.setDisplayName(player.getDisplayName()+finalflair);
|
||||
AppendPlayerDisplayFlair(player, username, finalflair);
|
||||
//System.out.println("DisplayName: "+player.getDisplayName());
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static String GetFlair(Player player)
|
||||
{ //2015.07.16.
|
||||
String flair=PlayerFlairs.get(player.getName());
|
||||
return flair==null ? "" : flair;
|
||||
}
|
||||
|
||||
public static void AppendPlayerDisplayFlair(Player player, String username, String flair)
|
||||
{
|
||||
if(IgnoredPlayers.contains(player.getName()))
|
||||
return;
|
||||
if(AcceptedPlayers.contains(player.getName()))
|
||||
player.setDisplayName(player.getDisplayName()+flair);
|
||||
else
|
||||
player.sendMessage("§9Are you Reddit user "+username+"?§r §6Type /u accept or /u ignore§r");
|
||||
|
||||
}
|
||||
}
|
|
@ -1,43 +0,0 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.event.player.PlayerQuitEvent;
|
||||
|
||||
public class PlayerListener implements Listener
|
||||
{ //2015.07.16.
|
||||
@EventHandler
|
||||
public void onPlayerJoin(PlayerJoinEvent event)
|
||||
{
|
||||
Player p=event.getPlayer();
|
||||
PluginMain.Players.add(p);
|
||||
event.getPlayer().setDisplayName(p.getDisplayName()+PluginMain.GetFlair(p));
|
||||
System.out.println("Added player "+event.getPlayer().getName());
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerLeave(PlayerQuitEvent event)
|
||||
{
|
||||
//for(Player player : PluginMain.Players)
|
||||
for(int i=0; i<PluginMain.Players.size();)
|
||||
{
|
||||
Player player=PluginMain.Players.get(i);
|
||||
if(player.getName()==event.getPlayer().getName())
|
||||
{
|
||||
PluginMain.Players.remove(player);
|
||||
System.out.println("Removed player "+event.getPlayer().getName());
|
||||
}
|
||||
else
|
||||
i++; //If the player is removed, the next item will be on the same index
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerChat(AsyncPlayerChatEvent event)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
|
@ -1,31 +0,0 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.event.player.PlayerQuitEvent;
|
||||
|
||||
public class PlayerListener implements Listener
|
||||
{ //2015.07.16.
|
||||
@EventHandler
|
||||
public void onPlayerJoin(PlayerJoinEvent event)
|
||||
{
|
||||
PluginMain.Players.add(event.getPlayer());
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerLeave(PlayerQuitEvent event)
|
||||
{
|
||||
for(Player player : PluginMain.Players)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerChat(AsyncPlayerChatEvent event)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
|
@ -1,41 +0,0 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class Commands implements CommandExecutor {
|
||||
// This method is called, when somebody uses our command
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
|
||||
if (sender instanceof Player) {
|
||||
Player player = (Player) sender;
|
||||
if(args.length<1)
|
||||
return false;
|
||||
if(!PluginMain.PlayerFlairs.containsKey(player.getName()))
|
||||
{
|
||||
player.sendMessage("Error: You need to write your username to the reddit thread at /r/TheButtonMinecraft");
|
||||
return true;
|
||||
}
|
||||
switch(args[0])
|
||||
{
|
||||
case "accept":
|
||||
if(PluginMain.IgnoredPlayers.contains(player.getName()))
|
||||
PluginMain.IgnoredPlayers.remove(player.getName());
|
||||
PluginMain.AcceptedPlayers.add(player.getName());
|
||||
player.setDisplayName(player.getDisplayName()+PluginMain.PlayerFlairs.get(player.getName()));
|
||||
break;
|
||||
case "ignore":
|
||||
if(PluginMain.AcceptedPlayers.contains(player.getName()))
|
||||
PluginMain.AcceptedPlayers.remove(player.getName());
|
||||
PluginMain.AcceptedPlayers.add(player.getName());
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// If the player (or console) uses our command correct, we can return true
|
||||
return false;
|
||||
}
|
||||
}
|
|
@ -1,47 +0,0 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class Commands implements CommandExecutor {
|
||||
// This method is called, when somebody uses our command
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
|
||||
if (sender instanceof Player) {
|
||||
Player player = (Player) sender;
|
||||
if(args.length<1)
|
||||
return false;
|
||||
if(!PluginMain.PlayerFlairs.containsKey(player.getName()))
|
||||
{
|
||||
player.sendMessage("Error: You need to write your username to the reddit thread at /r/TheButtonMinecraft");
|
||||
return true;
|
||||
}
|
||||
switch(args[0])
|
||||
{
|
||||
case "accept":
|
||||
if(PluginMain.IgnoredPlayers.contains(player.getName()))
|
||||
PluginMain.IgnoredPlayers.remove(player.getName());
|
||||
if(!PluginMain.AcceptedPlayers.contains(player.getName()))
|
||||
PluginMain.AcceptedPlayers.add(player.getName());
|
||||
String flair=PluginMain.PlayerFlairs.get(player.getName());
|
||||
player.setDisplayName(player.getDisplayName()+flair);
|
||||
player.sendMessage("§6Your flair has been set:§r "+flair);
|
||||
break;
|
||||
case "ignore":
|
||||
if(PluginMain.AcceptedPlayers.contains(player.getName()))
|
||||
PluginMain.AcceptedPlayers.remove(player.getName());
|
||||
if(!PluginMain.IgnoredPlayers.contains(player.getName()))
|
||||
PluginMain.IgnoredPlayers.add(player.getName());
|
||||
break;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// If the player (or console) uses our command correct, we can return true
|
||||
return false;
|
||||
}
|
||||
}
|
|
@ -1,17 +0,0 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import java.util.function.Predicate;
|
||||
|
||||
public class MyPredicate<T> implements Predicate<T>
|
||||
{
|
||||
private T First;
|
||||
public MyPredicate(T first)
|
||||
{
|
||||
First=first;
|
||||
}
|
||||
@Override
|
||||
public boolean test(T second) {
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,32 +0,0 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.event.player.PlayerQuitEvent;
|
||||
|
||||
public class PlayerListener implements Listener
|
||||
{ //2015.07.16.
|
||||
@EventHandler
|
||||
public void onPlayerJoin(PlayerJoinEvent event)
|
||||
{
|
||||
PluginMain.Players.add(event.getPlayer());
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerLeave(PlayerQuitEvent event)
|
||||
{
|
||||
PluginMain.Players.removeIf({
|
||||
public boolean test()
|
||||
event.getPlayer().getName()
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerChat(AsyncPlayerChatEvent event)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
|
@ -1,47 +0,0 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class Commands implements CommandExecutor {
|
||||
// This method is called, when somebody uses our command
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
|
||||
if (sender instanceof Player) {
|
||||
Player player = (Player) sender;
|
||||
if(args.length<1)
|
||||
return false;
|
||||
if(!PluginMain.PlayerFlairs.containsKey(player.getName()))
|
||||
{
|
||||
player.sendMessage("Error: You need to write your username to the reddit thread at /r/TheButtonMinecraft");
|
||||
return true;
|
||||
}
|
||||
switch(args[0])
|
||||
{
|
||||
case "accept":
|
||||
if(PluginMain.IgnoredPlayers.contains(player.getName()))
|
||||
PluginMain.IgnoredPlayers.remove(player.getName());
|
||||
if(!PluginMain.AcceptedPlayers.contains(player.getName()))
|
||||
PluginMain.AcceptedPlayers.add(player.getName());
|
||||
String flair=PluginMain.PlayerFlairs.get(player.getName());
|
||||
player.setDisplayName(player.getDisplayName()+flair);
|
||||
player.sendMessage("§6Your flair has been set:§r "+flair);
|
||||
break;
|
||||
case "ignore":
|
||||
if(PluginMain.AcceptedPlayers.contains(player.getName()))
|
||||
PluginMain.AcceptedPlayers.remove(player.getName());
|
||||
if(!PluginMain.IgnoredPlayers.contains(player.getName()))
|
||||
PluginMain.IgnoredPlayers.add(player.getName());
|
||||
break;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// If the player (or console) uses our command correct, we can return true
|
||||
return false;
|
||||
}
|
||||
}
|
|
@ -1,265 +0,0 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.FileReader;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import java.net.URLConnection;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONObject;
|
||||
|
||||
public class PluginMain extends JavaPlugin
|
||||
{ //Translated to Java: 2015.07.15.
|
||||
//A user, which flair isn't obtainable:
|
||||
//https://www.reddit.com/r/thebutton/comments/31c32v/i_pressed_the_button_without_really_thinking/
|
||||
// Fired when plugin is first enabled
|
||||
@Override
|
||||
public void onEnable()
|
||||
{
|
||||
System.out.println("The Button Auto-flair Plugin by NorbiPeti (:P)");
|
||||
//System.out.println("Original C# version: http://pastebin.com/tX8xCPbp");
|
||||
//System.out.println("The Java version is... Also made by the same person.");
|
||||
//System.out.println("With the help of StackOverflow and similar.");
|
||||
/*catch(MalformedURLException e)
|
||||
{
|
||||
}
|
||||
catch(IOException e)
|
||||
{
|
||||
}*/
|
||||
getServer().getPluginManager().registerEvents(new PlayerListener(), this);
|
||||
//System.out.println("Registering commands...");
|
||||
this.getCommand("u").setExecutor(new Commands());
|
||||
this.getCommand("u").setUsage(this.getCommand("u").getUsage().replace('&', '§'));
|
||||
try {
|
||||
BufferedReader br=new BufferedReader(new FileReader("flairsaccepted.txt"));
|
||||
String line;
|
||||
while ((line = br.readLine()) != null)
|
||||
{
|
||||
AcceptedPlayers.add(line.replace("\n", ""));
|
||||
}
|
||||
br.close();
|
||||
br=new BufferedReader(new FileReader("flairsignored.txt"));
|
||||
while ((line = br.readLine()) != null)
|
||||
{
|
||||
IgnoredPlayers.add(line.replace("\n", ""));
|
||||
}
|
||||
br.close();
|
||||
FileWriter fw;
|
||||
fw = new FileWriter("flairsaccepted.txt");
|
||||
fw.close();
|
||||
} catch (IOException e) {
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
//System.out.println("Registering done.");
|
||||
Runnable r=new Runnable(){public void run(){ThreadMethod();}};
|
||||
Thread t=new Thread(r);
|
||||
t.start();
|
||||
}
|
||||
Boolean stop=false;
|
||||
// Fired when plugin is disabled
|
||||
@Override
|
||||
public void onDisable()
|
||||
{
|
||||
for(String player : AcceptedPlayers)
|
||||
{
|
||||
try {
|
||||
BufferedWriter bw=new BufferedWriter(new FileWriter("flairsaccepted.txt", true));
|
||||
bw.write(player+"\n");
|
||||
bw.close();
|
||||
} catch (IOException e) {
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
}
|
||||
for(String player : AcceptedPlayers)
|
||||
{
|
||||
try {
|
||||
BufferedWriter bw=new BufferedWriter(new FileWriter("flairsaccepted.txt", true));
|
||||
bw.write(player.getName()+"\n");
|
||||
bw.close();
|
||||
} catch (IOException e) {
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
}
|
||||
stop=true;
|
||||
}
|
||||
|
||||
public void ThreadMethod() //<-- 2015.07.16.
|
||||
{
|
||||
while(!stop)
|
||||
{
|
||||
try
|
||||
{
|
||||
String body=DownloadString("https://www.reddit.com/r/TheButtonMinecraft/comments/3d25do/autoflair_system_comment_your_minecraft_name_and/.json?limit=1000");
|
||||
JSONArray json=new JSONArray(body).getJSONObject(1).getJSONObject("data").getJSONArray("children");
|
||||
for(Object obj : json)
|
||||
{
|
||||
JSONObject item = (JSONObject)obj;
|
||||
String author=item.getJSONObject("data").getString("author");
|
||||
String ign=item.getJSONObject("data").getString("body");
|
||||
int start = ign.indexOf("IGN:") + "IGN:".length();
|
||||
int end = ign.indexOf(' ', start);
|
||||
if (end == -1 || end == start)
|
||||
end=ign.indexOf('\n', start); //2015.07.15.
|
||||
if (end == -1 || end == start)
|
||||
ign = ign.substring(start);
|
||||
else
|
||||
ign = ign.substring(start, end);
|
||||
ign = ign.trim();
|
||||
if(HasIGFlair(ign))
|
||||
continue;
|
||||
//System.out.println("Author: "+author);
|
||||
try {
|
||||
Thread.sleep(10);
|
||||
} catch(InterruptedException ex) {
|
||||
Thread.currentThread().interrupt();
|
||||
}
|
||||
String[] flairdata = DownloadString("http://karmadecay.com/thebutton-data.php?users=" + author).replace("\"", "").split(":");
|
||||
String flair;
|
||||
if(flairdata.length > 1) //2015.07.15.
|
||||
flair = flairdata[1];
|
||||
else
|
||||
flair="";
|
||||
if (flair != "-1")
|
||||
flair = flair + "s";
|
||||
else
|
||||
flair = "non-presser";
|
||||
String flairclass;
|
||||
if(flairdata.length>1)
|
||||
flairclass = flairdata[2];
|
||||
else
|
||||
flairclass="unknown";
|
||||
SetFlair(ign, flair, flairclass, author);
|
||||
}
|
||||
Thread.sleep(10000);
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public String DownloadString(String urlstr) throws MalformedURLException, IOException
|
||||
{
|
||||
URL url = new URL(urlstr);
|
||||
URLConnection con = url.openConnection();
|
||||
con.setRequestProperty("User-Agent", "TheButtonAutoFlair");
|
||||
InputStream in = con.getInputStream();
|
||||
String encoding = con.getContentEncoding();
|
||||
encoding = encoding == null ? "UTF-8" : encoding;
|
||||
String body = IOUtils.toString(in, encoding);
|
||||
in.close();
|
||||
return body;
|
||||
}
|
||||
|
||||
//It has to store offline player flairs too, therefore it can't use Player object
|
||||
public static Map<String, String> PlayerFlairs=new HashMap<String, String>();
|
||||
public static Map<String, String> PlayerUserNames=new HashMap<String, String>();
|
||||
//public Map<Player, String> PlayerFlairs=new HashMap<Player, String>();
|
||||
public static ArrayList<Player> Players=new ArrayList<Player>();
|
||||
public static ArrayList<String> AcceptedPlayers=new ArrayList<String>(); //2015.07.16.
|
||||
public static ArrayList<String> IgnoredPlayers=new ArrayList<String>(); //2015.07.16.
|
||||
public Boolean HasIGFlair(String playername)
|
||||
{
|
||||
/*Player player=null;
|
||||
for(Player p : Players)
|
||||
{
|
||||
if(p.getName()==playername)
|
||||
{
|
||||
player=p;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(player==null)
|
||||
return false;*/
|
||||
return PlayerFlairs.containsKey(playername);
|
||||
}
|
||||
|
||||
public void SetFlair(String playername, String text, String flairclass, String username)
|
||||
{
|
||||
String finalflair;
|
||||
switch(flairclass)
|
||||
{
|
||||
case "press-1":
|
||||
finalflair="§c("+text+")§r";
|
||||
break;
|
||||
case "press-2":
|
||||
finalflair="§6("+text+")§r";
|
||||
break;
|
||||
case "press-3":
|
||||
finalflair="§e("+text+")§r";
|
||||
break;
|
||||
case "press-4":
|
||||
finalflair="§a("+text+")§r";
|
||||
break;
|
||||
case "press-5":
|
||||
finalflair="§9("+text+")§r";
|
||||
break;
|
||||
case "press-6":
|
||||
finalflair="§5("+text+")§r";
|
||||
break;
|
||||
case "no-press":
|
||||
finalflair="§7(non-pr.)§r";
|
||||
break;
|
||||
case "cheater":
|
||||
finalflair="§5("+text+")§r";
|
||||
break;
|
||||
default:
|
||||
finalflair="";
|
||||
break;
|
||||
}
|
||||
PlayerFlairs.put(playername, finalflair);
|
||||
PlayerUserNames.put(playername, username);
|
||||
/*for(Player player : Players)
|
||||
{
|
||||
if(player.getName()==playername)
|
||||
{
|
||||
PlayerFlairs.put(player, finalflair);
|
||||
break;
|
||||
}
|
||||
}*/
|
||||
//System.out.println("SetFlair - playername: "+playername+" text: "+text+" flairclass: "+flairclass);
|
||||
System.out.println("Added new flair to "+playername+": "+finalflair);
|
||||
for(Player player : Players)
|
||||
{
|
||||
//System.out.println("Online player: "+player.getName());
|
||||
//System.out.println("player.getName ("+player.getName()+") == playername ("+playername+"): "+(player.getName()==playername));
|
||||
if(player.getName().equals(playername))
|
||||
{
|
||||
//System.out.println("DisplayName: "+player.getDisplayName());
|
||||
//player.setDisplayName(player.getDisplayName()+finalflair);
|
||||
AppendPlayerDisplayFlair(player, username, finalflair);
|
||||
//System.out.println("DisplayName: "+player.getDisplayName());
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static String GetFlair(Player player)
|
||||
{ //2015.07.16.
|
||||
String flair=PlayerFlairs.get(player.getName());
|
||||
return flair==null ? "" : flair;
|
||||
}
|
||||
|
||||
public static void AppendPlayerDisplayFlair(Player player, String username, String flair)
|
||||
{
|
||||
if(IgnoredPlayers.contains(player.getName()))
|
||||
return;
|
||||
if(AcceptedPlayers.contains(player.getName()))
|
||||
player.setDisplayName(player.getDisplayName()+flair);
|
||||
else
|
||||
player.sendMessage("§9Are you Reddit user "+username+"?§r §6Type /u accept or /u ignore§r");
|
||||
|
||||
}
|
||||
}
|
|
@ -1,41 +0,0 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class Commands implements CommandExecutor {
|
||||
// This method is called, when somebody uses our command
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
|
||||
if (sender instanceof Player) {
|
||||
Player player = (Player) sender;
|
||||
if(args.length<1)
|
||||
return false;
|
||||
if(!PluginMain.PlayerFlairs.containsKey(player.getName()))
|
||||
{
|
||||
player.sendMessage("Error: You need to write your username to the reddit thread at /r/TheButtonMinecraft");
|
||||
return true;
|
||||
}
|
||||
switch(args[0])
|
||||
{
|
||||
case "accept":
|
||||
if(PluginMain.IgnoredPlayers.contains(player.getName()))
|
||||
PluginMain.IgnoredPlayers.remove(player.getName());
|
||||
PluginMain.AcceptedPlayers.add(player.getName());
|
||||
player.setDisplayName(player.getDisplayName()+PluginMain.PlayerFlairs.get(player.getName()));
|
||||
break;
|
||||
case "ignore":
|
||||
if(PluginMain.AcceptedPlayers.contains(player.getName()))
|
||||
PluginMain.AcceptedPlayers.remove(player.getName());
|
||||
PluginMain.IgnoredPlayers.add(player.getName());
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// If the player (or console) uses our command correct, we can return true
|
||||
return false;
|
||||
}
|
||||
}
|
|
@ -1,45 +0,0 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class Commands implements CommandExecutor {
|
||||
// This method is called, when somebody uses our command
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
|
||||
if (sender instanceof Player) {
|
||||
Player player = (Player) sender;
|
||||
if(args.length<1)
|
||||
return false;
|
||||
if(!PluginMain.PlayerFlairs.containsKey(player.getName()))
|
||||
{
|
||||
player.sendMessage("Error: You need to write your username to the reddit thread at /r/TheButtonMinecraft");
|
||||
return true;
|
||||
}
|
||||
switch(args[0])
|
||||
{
|
||||
case "accept":
|
||||
if(PluginMain.IgnoredPlayers.contains(player.getName()))
|
||||
PluginMain.IgnoredPlayers.remove(player.getName());
|
||||
if(!PluginMain.AcceptedPlayers.contains(player.getName()))
|
||||
PluginMain.AcceptedPlayers.add(player.getName());
|
||||
player.setDisplayName(player.getDisplayName()+PluginMain.PlayerFlairs.get(player.getName()));
|
||||
break;
|
||||
case "ignore":
|
||||
if(PluginMain.AcceptedPlayers.contains(player.getName()))
|
||||
PluginMain.AcceptedPlayers.remove(player.getName());
|
||||
if(!PluginMain.IgnoredPlayers.contains(player.getName()))
|
||||
PluginMain.IgnoredPlayers.add(player.getName());
|
||||
break;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// If the player (or console) uses our command correct, we can return true
|
||||
return false;
|
||||
}
|
||||
}
|
|
@ -1,42 +0,0 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class Commands implements CommandExecutor {
|
||||
// This method is called, when somebody uses our command
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
|
||||
if (sender instanceof Player) {
|
||||
Player player = (Player) sender;
|
||||
if(args.length<1)
|
||||
return false;
|
||||
if(!PluginMain.PlayerFlairs.containsKey(player.getName()))
|
||||
{
|
||||
player.sendMessage("Error: You need to write your username to the reddit thread at /r/TheButtonMinecraft");
|
||||
return true;
|
||||
}
|
||||
switch(args[0])
|
||||
{
|
||||
case "accept":
|
||||
if(PluginMain.IgnoredPlayers.contains(player.getName()))
|
||||
PluginMain.IgnoredPlayers.remove(player.getName());
|
||||
if(!PluginMain.AcceptedPlayers.contains(player.getName()))
|
||||
PluginMain.AcceptedPlayers.add(player.getName());
|
||||
player.setDisplayName(player.getDisplayName()+PluginMain.PlayerFlairs.get(player.getName()));
|
||||
break;
|
||||
case "ignore":
|
||||
if(PluginMain.AcceptedPlayers.contains(player.getName()))
|
||||
PluginMain.AcceptedPlayers.remove(player.getName());
|
||||
PluginMain.IgnoredPlayers.add(player.getName());
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// If the player (or console) uses our command correct, we can return true
|
||||
return false;
|
||||
}
|
||||
}
|
|
@ -1,278 +0,0 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.File;
|
||||
import java.io.FileReader;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import java.net.URLConnection;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONObject;
|
||||
|
||||
public class PluginMain extends JavaPlugin
|
||||
{ //Translated to Java: 2015.07.15.
|
||||
//A user, which flair isn't obtainable:
|
||||
//https://www.reddit.com/r/thebutton/comments/31c32v/i_pressed_the_button_without_really_thinking/
|
||||
// Fired when plugin is first enabled
|
||||
@Override
|
||||
public void onEnable()
|
||||
{
|
||||
System.out.println("The Button Auto-flair Plugin by NorbiPeti (:P)");
|
||||
//System.out.println("Original C# version: http://pastebin.com/tX8xCPbp");
|
||||
//System.out.println("The Java version is... Also made by the same person.");
|
||||
//System.out.println("With the help of StackOverflow and similar.");
|
||||
/*catch(MalformedURLException e)
|
||||
{
|
||||
}
|
||||
catch(IOException e)
|
||||
{
|
||||
}*/
|
||||
getServer().getPluginManager().registerEvents(new PlayerListener(), this);
|
||||
//System.out.println("Registering commands...");
|
||||
this.getCommand("u").setExecutor(new Commands());
|
||||
this.getCommand("u").setUsage(this.getCommand("u").getUsage().replace('&', '§'));
|
||||
try {
|
||||
File file=new File("flairsaccepted.txt");
|
||||
if(file.exists())
|
||||
{
|
||||
BufferedReader br=new BufferedReader(new FileReader("flairsaccepted.txt"));
|
||||
String line;
|
||||
while ((line = br.readLine()) != null)
|
||||
{
|
||||
AcceptedPlayers.add(line.replace("\n", ""));
|
||||
}
|
||||
br.close();
|
||||
}
|
||||
file=new File("flairsignored.txt");
|
||||
if(file.exists())
|
||||
{
|
||||
br=new BufferedReader(new FileReader("flairsignored.txt"));
|
||||
while ((line = br.readLine()) != null)
|
||||
{
|
||||
IgnoredPlayers.add(line.replace("\n", ""));
|
||||
}
|
||||
br.close();
|
||||
}
|
||||
FileWriter fw;
|
||||
fw = new FileWriter("flairsaccepted.txt");
|
||||
fw.close();
|
||||
fw = new FileWriter("flairsignored.txt");
|
||||
fw.close();
|
||||
} catch (IOException e) {
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
//System.out.println("Registering done.");
|
||||
Runnable r=new Runnable(){public void run(){ThreadMethod();}};
|
||||
Thread t=new Thread(r);
|
||||
t.start();
|
||||
}
|
||||
Boolean stop=false;
|
||||
// Fired when plugin is disabled
|
||||
@Override
|
||||
public void onDisable()
|
||||
{
|
||||
for(String player : AcceptedPlayers)
|
||||
{
|
||||
File file=new File("flairsaccepted.txt");
|
||||
try {
|
||||
BufferedWriter bw=new BufferedWriter(new FileWriter(file, true));
|
||||
bw.write(player+"\n");
|
||||
bw.close();
|
||||
} catch (IOException e) {
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
}
|
||||
for(String player : IgnoredPlayers)
|
||||
{
|
||||
File file=new File("flairsignored.txt");
|
||||
try {
|
||||
BufferedWriter bw=new BufferedWriter(new FileWriter(file, true));
|
||||
bw.write(player+"\n");
|
||||
bw.close();
|
||||
} catch (IOException e) {
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
}
|
||||
stop=true;
|
||||
}
|
||||
|
||||
public void ThreadMethod() //<-- 2015.07.16.
|
||||
{
|
||||
while(!stop)
|
||||
{
|
||||
try
|
||||
{
|
||||
String body=DownloadString("https://www.reddit.com/r/TheButtonMinecraft/comments/3d25do/autoflair_system_comment_your_minecraft_name_and/.json?limit=1000");
|
||||
JSONArray json=new JSONArray(body).getJSONObject(1).getJSONObject("data").getJSONArray("children");
|
||||
for(Object obj : json)
|
||||
{
|
||||
JSONObject item = (JSONObject)obj;
|
||||
String author=item.getJSONObject("data").getString("author");
|
||||
String ign=item.getJSONObject("data").getString("body");
|
||||
int start = ign.indexOf("IGN:") + "IGN:".length();
|
||||
int end = ign.indexOf(' ', start);
|
||||
if (end == -1 || end == start)
|
||||
end=ign.indexOf('\n', start); //2015.07.15.
|
||||
if (end == -1 || end == start)
|
||||
ign = ign.substring(start);
|
||||
else
|
||||
ign = ign.substring(start, end);
|
||||
ign = ign.trim();
|
||||
if(HasIGFlair(ign))
|
||||
continue;
|
||||
//System.out.println("Author: "+author);
|
||||
try {
|
||||
Thread.sleep(10);
|
||||
} catch(InterruptedException ex) {
|
||||
Thread.currentThread().interrupt();
|
||||
}
|
||||
String[] flairdata = DownloadString("http://karmadecay.com/thebutton-data.php?users=" + author).replace("\"", "").split(":");
|
||||
String flair;
|
||||
if(flairdata.length > 1) //2015.07.15.
|
||||
flair = flairdata[1];
|
||||
else
|
||||
flair="";
|
||||
if (flair != "-1")
|
||||
flair = flair + "s";
|
||||
else
|
||||
flair = "non-presser";
|
||||
String flairclass;
|
||||
if(flairdata.length>1)
|
||||
flairclass = flairdata[2];
|
||||
else
|
||||
flairclass="unknown";
|
||||
SetFlair(ign, flair, flairclass, author);
|
||||
}
|
||||
Thread.sleep(10000);
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public String DownloadString(String urlstr) throws MalformedURLException, IOException
|
||||
{
|
||||
URL url = new URL(urlstr);
|
||||
URLConnection con = url.openConnection();
|
||||
con.setRequestProperty("User-Agent", "TheButtonAutoFlair");
|
||||
InputStream in = con.getInputStream();
|
||||
String encoding = con.getContentEncoding();
|
||||
encoding = encoding == null ? "UTF-8" : encoding;
|
||||
String body = IOUtils.toString(in, encoding);
|
||||
in.close();
|
||||
return body;
|
||||
}
|
||||
|
||||
//It has to store offline player flairs too, therefore it can't use Player object
|
||||
public static Map<String, String> PlayerFlairs=new HashMap<String, String>();
|
||||
public static Map<String, String> PlayerUserNames=new HashMap<String, String>();
|
||||
//public Map<Player, String> PlayerFlairs=new HashMap<Player, String>();
|
||||
public static ArrayList<Player> Players=new ArrayList<Player>();
|
||||
public static ArrayList<String> AcceptedPlayers=new ArrayList<String>(); //2015.07.16.
|
||||
public static ArrayList<String> IgnoredPlayers=new ArrayList<String>(); //2015.07.16.
|
||||
public Boolean HasIGFlair(String playername)
|
||||
{
|
||||
/*Player player=null;
|
||||
for(Player p : Players)
|
||||
{
|
||||
if(p.getName()==playername)
|
||||
{
|
||||
player=p;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(player==null)
|
||||
return false;*/
|
||||
return PlayerFlairs.containsKey(playername);
|
||||
}
|
||||
|
||||
public void SetFlair(String playername, String text, String flairclass, String username)
|
||||
{
|
||||
String finalflair;
|
||||
switch(flairclass)
|
||||
{
|
||||
case "press-1":
|
||||
finalflair="§c("+text+")§r";
|
||||
break;
|
||||
case "press-2":
|
||||
finalflair="§6("+text+")§r";
|
||||
break;
|
||||
case "press-3":
|
||||
finalflair="§e("+text+")§r";
|
||||
break;
|
||||
case "press-4":
|
||||
finalflair="§a("+text+")§r";
|
||||
break;
|
||||
case "press-5":
|
||||
finalflair="§9("+text+")§r";
|
||||
break;
|
||||
case "press-6":
|
||||
finalflair="§5("+text+")§r";
|
||||
break;
|
||||
case "no-press":
|
||||
finalflair="§7(non-pr.)§r";
|
||||
break;
|
||||
case "cheater":
|
||||
finalflair="§5("+text+")§r";
|
||||
break;
|
||||
default:
|
||||
finalflair="";
|
||||
break;
|
||||
}
|
||||
PlayerFlairs.put(playername, finalflair);
|
||||
PlayerUserNames.put(playername, username);
|
||||
/*for(Player player : Players)
|
||||
{
|
||||
if(player.getName()==playername)
|
||||
{
|
||||
PlayerFlairs.put(player, finalflair);
|
||||
break;
|
||||
}
|
||||
}*/
|
||||
//System.out.println("SetFlair - playername: "+playername+" text: "+text+" flairclass: "+flairclass);
|
||||
System.out.println("Added new flair to "+playername+": "+finalflair);
|
||||
for(Player player : Players)
|
||||
{
|
||||
//System.out.println("Online player: "+player.getName());
|
||||
//System.out.println("player.getName ("+player.getName()+") == playername ("+playername+"): "+(player.getName()==playername));
|
||||
if(player.getName().equals(playername))
|
||||
{
|
||||
//System.out.println("DisplayName: "+player.getDisplayName());
|
||||
//player.setDisplayName(player.getDisplayName()+finalflair);
|
||||
AppendPlayerDisplayFlair(player, username, finalflair);
|
||||
//System.out.println("DisplayName: "+player.getDisplayName());
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static String GetFlair(Player player)
|
||||
{ //2015.07.16.
|
||||
String flair=PlayerFlairs.get(player.getName());
|
||||
return flair==null ? "" : flair;
|
||||
}
|
||||
|
||||
public static void AppendPlayerDisplayFlair(Player player, String username, String flair)
|
||||
{
|
||||
if(IgnoredPlayers.contains(player.getName()))
|
||||
return;
|
||||
if(AcceptedPlayers.contains(player.getName()))
|
||||
player.setDisplayName(player.getDisplayName()+flair);
|
||||
else
|
||||
player.sendMessage("§9Are you Reddit user "+username+"?§r §6Type /u accept or /u ignore§r");
|
||||
|
||||
}
|
||||
}
|
|
@ -1,16 +0,0 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import java.util.function.Predicate;
|
||||
|
||||
public class MyPredicate<T> implements Predicate<T>
|
||||
{
|
||||
public MyPredicate<T>()
|
||||
{
|
||||
|
||||
}
|
||||
@Override
|
||||
public boolean test(T arg0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,11 +0,0 @@
|
|||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
|
||||
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
||||
org.eclipse.jdt.core.compiler.compliance=1.4
|
||||
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
||||
org.eclipse.jdt.core.compiler.debug.localVariable=generate
|
||||
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
||||
org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
|
||||
org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
|
||||
org.eclipse.jdt.core.compiler.source=1.3
|
|
@ -1,32 +0,0 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.event.player.PlayerQuitEvent;
|
||||
|
||||
public class PlayerListener implements Listener
|
||||
{ //2015.07.16.
|
||||
@EventHandler
|
||||
public void onPlayerJoin(PlayerJoinEvent event)
|
||||
{
|
||||
PluginMain.Players.add(event.getPlayer());
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerLeave(PlayerQuitEvent event)
|
||||
{
|
||||
PluginMain.Players.removeIf({
|
||||
public boolean
|
||||
event.getPlayer().getName()
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerChat(AsyncPlayerChatEvent event)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
|
@ -1,280 +0,0 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.File;
|
||||
import java.io.FileReader;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import java.net.URLConnection;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONObject;
|
||||
|
||||
public class PluginMain extends JavaPlugin
|
||||
{ //Translated to Java: 2015.07.15.
|
||||
//A user, which flair isn't obtainable:
|
||||
//https://www.reddit.com/r/thebutton/comments/31c32v/i_pressed_the_button_without_really_thinking/
|
||||
// Fired when plugin is first enabled
|
||||
@Override
|
||||
public void onEnable()
|
||||
{
|
||||
System.out.println("The Button Auto-flair Plugin by NorbiPeti (:P)");
|
||||
//System.out.println("Original C# version: http://pastebin.com/tX8xCPbp");
|
||||
//System.out.println("The Java version is... Also made by the same person.");
|
||||
//System.out.println("With the help of StackOverflow and similar.");
|
||||
/*catch(MalformedURLException e)
|
||||
{
|
||||
}
|
||||
catch(IOException e)
|
||||
{
|
||||
}*/
|
||||
getServer().getPluginManager().registerEvents(new PlayerListener(), this);
|
||||
//System.out.println("Registering commands...");
|
||||
this.getCommand("u").setExecutor(new Commands());
|
||||
this.getCommand("u").setUsage(this.getCommand("u").getUsage().replace('&', '§'));
|
||||
try {
|
||||
File file=new File("flairsaccepted.txt");
|
||||
if(file.exists())
|
||||
{
|
||||
BufferedReader br=new BufferedReader(new FileReader("flairsaccepted.txt"));
|
||||
String line;
|
||||
while ((line = br.readLine()) != null)
|
||||
{
|
||||
AcceptedPlayers.add(line.replace("\n", ""));
|
||||
}
|
||||
br.close();
|
||||
}
|
||||
file=new File("flairsignored.txt");
|
||||
if(file.exists())
|
||||
{
|
||||
br=new BufferedReader(new FileReader("flairsignored.txt"));
|
||||
while ((line = br.readLine()) != null)
|
||||
{
|
||||
IgnoredPlayers.add(line.replace("\n", ""));
|
||||
}
|
||||
br.close();
|
||||
FileWriter fw;
|
||||
fw = new FileWriter("flairsaccepted.txt");
|
||||
fw.close();
|
||||
fw = new FileWriter("flairsignored.txt");
|
||||
fw.close();
|
||||
} catch (IOException e) {
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
//System.out.println("Registering done.");
|
||||
Runnable r=new Runnable(){public void run(){ThreadMethod();}};
|
||||
Thread t=new Thread(r);
|
||||
t.start();
|
||||
}
|
||||
Boolean stop=false;
|
||||
// Fired when plugin is disabled
|
||||
@Override
|
||||
public void onDisable()
|
||||
{
|
||||
for(String player : AcceptedPlayers)
|
||||
{
|
||||
File file=new File("flairsaccepted.txt");
|
||||
try {
|
||||
BufferedWriter bw=new BufferedWriter(new FileWriter(file, true));
|
||||
bw.write(player+"\n");
|
||||
bw.close();
|
||||
} catch (IOException e) {
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
}
|
||||
for(String player : IgnoredPlayers)
|
||||
{
|
||||
File file=new File("flairsignored.txt");
|
||||
if(file.exists())
|
||||
{
|
||||
try {
|
||||
BufferedWriter bw=new BufferedWriter(new FileWriter(file, true));
|
||||
bw.write(player+"\n");
|
||||
bw.close();
|
||||
} catch (IOException e) {
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
}
|
||||
}
|
||||
stop=true;
|
||||
}
|
||||
|
||||
public void ThreadMethod() //<-- 2015.07.16.
|
||||
{
|
||||
while(!stop)
|
||||
{
|
||||
try
|
||||
{
|
||||
String body=DownloadString("https://www.reddit.com/r/TheButtonMinecraft/comments/3d25do/autoflair_system_comment_your_minecraft_name_and/.json?limit=1000");
|
||||
JSONArray json=new JSONArray(body).getJSONObject(1).getJSONObject("data").getJSONArray("children");
|
||||
for(Object obj : json)
|
||||
{
|
||||
JSONObject item = (JSONObject)obj;
|
||||
String author=item.getJSONObject("data").getString("author");
|
||||
String ign=item.getJSONObject("data").getString("body");
|
||||
int start = ign.indexOf("IGN:") + "IGN:".length();
|
||||
int end = ign.indexOf(' ', start);
|
||||
if (end == -1 || end == start)
|
||||
end=ign.indexOf('\n', start); //2015.07.15.
|
||||
if (end == -1 || end == start)
|
||||
ign = ign.substring(start);
|
||||
else
|
||||
ign = ign.substring(start, end);
|
||||
ign = ign.trim();
|
||||
if(HasIGFlair(ign))
|
||||
continue;
|
||||
//System.out.println("Author: "+author);
|
||||
try {
|
||||
Thread.sleep(10);
|
||||
} catch(InterruptedException ex) {
|
||||
Thread.currentThread().interrupt();
|
||||
}
|
||||
String[] flairdata = DownloadString("http://karmadecay.com/thebutton-data.php?users=" + author).replace("\"", "").split(":");
|
||||
String flair;
|
||||
if(flairdata.length > 1) //2015.07.15.
|
||||
flair = flairdata[1];
|
||||
else
|
||||
flair="";
|
||||
if (flair != "-1")
|
||||
flair = flair + "s";
|
||||
else
|
||||
flair = "non-presser";
|
||||
String flairclass;
|
||||
if(flairdata.length>1)
|
||||
flairclass = flairdata[2];
|
||||
else
|
||||
flairclass="unknown";
|
||||
SetFlair(ign, flair, flairclass, author);
|
||||
}
|
||||
Thread.sleep(10000);
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public String DownloadString(String urlstr) throws MalformedURLException, IOException
|
||||
{
|
||||
URL url = new URL(urlstr);
|
||||
URLConnection con = url.openConnection();
|
||||
con.setRequestProperty("User-Agent", "TheButtonAutoFlair");
|
||||
InputStream in = con.getInputStream();
|
||||
String encoding = con.getContentEncoding();
|
||||
encoding = encoding == null ? "UTF-8" : encoding;
|
||||
String body = IOUtils.toString(in, encoding);
|
||||
in.close();
|
||||
return body;
|
||||
}
|
||||
|
||||
//It has to store offline player flairs too, therefore it can't use Player object
|
||||
public static Map<String, String> PlayerFlairs=new HashMap<String, String>();
|
||||
public static Map<String, String> PlayerUserNames=new HashMap<String, String>();
|
||||
//public Map<Player, String> PlayerFlairs=new HashMap<Player, String>();
|
||||
public static ArrayList<Player> Players=new ArrayList<Player>();
|
||||
public static ArrayList<String> AcceptedPlayers=new ArrayList<String>(); //2015.07.16.
|
||||
public static ArrayList<String> IgnoredPlayers=new ArrayList<String>(); //2015.07.16.
|
||||
public Boolean HasIGFlair(String playername)
|
||||
{
|
||||
/*Player player=null;
|
||||
for(Player p : Players)
|
||||
{
|
||||
if(p.getName()==playername)
|
||||
{
|
||||
player=p;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(player==null)
|
||||
return false;*/
|
||||
return PlayerFlairs.containsKey(playername);
|
||||
}
|
||||
|
||||
public void SetFlair(String playername, String text, String flairclass, String username)
|
||||
{
|
||||
String finalflair;
|
||||
switch(flairclass)
|
||||
{
|
||||
case "press-1":
|
||||
finalflair="§c("+text+")§r";
|
||||
break;
|
||||
case "press-2":
|
||||
finalflair="§6("+text+")§r";
|
||||
break;
|
||||
case "press-3":
|
||||
finalflair="§e("+text+")§r";
|
||||
break;
|
||||
case "press-4":
|
||||
finalflair="§a("+text+")§r";
|
||||
break;
|
||||
case "press-5":
|
||||
finalflair="§9("+text+")§r";
|
||||
break;
|
||||
case "press-6":
|
||||
finalflair="§5("+text+")§r";
|
||||
break;
|
||||
case "no-press":
|
||||
finalflair="§7(non-pr.)§r";
|
||||
break;
|
||||
case "cheater":
|
||||
finalflair="§5("+text+")§r";
|
||||
break;
|
||||
default:
|
||||
finalflair="";
|
||||
break;
|
||||
}
|
||||
PlayerFlairs.put(playername, finalflair);
|
||||
PlayerUserNames.put(playername, username);
|
||||
/*for(Player player : Players)
|
||||
{
|
||||
if(player.getName()==playername)
|
||||
{
|
||||
PlayerFlairs.put(player, finalflair);
|
||||
break;
|
||||
}
|
||||
}*/
|
||||
//System.out.println("SetFlair - playername: "+playername+" text: "+text+" flairclass: "+flairclass);
|
||||
System.out.println("Added new flair to "+playername+": "+finalflair);
|
||||
for(Player player : Players)
|
||||
{
|
||||
//System.out.println("Online player: "+player.getName());
|
||||
//System.out.println("player.getName ("+player.getName()+") == playername ("+playername+"): "+(player.getName()==playername));
|
||||
if(player.getName().equals(playername))
|
||||
{
|
||||
//System.out.println("DisplayName: "+player.getDisplayName());
|
||||
//player.setDisplayName(player.getDisplayName()+finalflair);
|
||||
AppendPlayerDisplayFlair(player, username, finalflair);
|
||||
//System.out.println("DisplayName: "+player.getDisplayName());
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static String GetFlair(Player player)
|
||||
{ //2015.07.16.
|
||||
String flair=PlayerFlairs.get(player.getName());
|
||||
return flair==null ? "" : flair;
|
||||
}
|
||||
|
||||
public static void AppendPlayerDisplayFlair(Player player, String username, String flair)
|
||||
{
|
||||
if(IgnoredPlayers.contains(player.getName()))
|
||||
return;
|
||||
if(AcceptedPlayers.contains(player.getName()))
|
||||
player.setDisplayName(player.getDisplayName()+flair);
|
||||
else
|
||||
player.sendMessage("§9Are you Reddit user "+username+"?§r §6Type /u accept or /u ignore§r");
|
||||
|
||||
}
|
||||
}
|
|
@ -1,263 +0,0 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.FileReader;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import java.net.URLConnection;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONObject;
|
||||
|
||||
public class PluginMain extends JavaPlugin
|
||||
{ //Translated to Java: 2015.07.15.
|
||||
//A user, which flair isn't obtainable:
|
||||
//https://www.reddit.com/r/thebutton/comments/31c32v/i_pressed_the_button_without_really_thinking/
|
||||
// Fired when plugin is first enabled
|
||||
@Override
|
||||
public void onEnable()
|
||||
{
|
||||
System.out.println("The Button Auto-flair Plugin by NorbiPeti (:P)");
|
||||
//System.out.println("Original C# version: http://pastebin.com/tX8xCPbp");
|
||||
//System.out.println("The Java version is... Also made by the same person.");
|
||||
//System.out.println("With the help of StackOverflow and similar.");
|
||||
/*catch(MalformedURLException e)
|
||||
{
|
||||
}
|
||||
catch(IOException e)
|
||||
{
|
||||
}*/
|
||||
getServer().getPluginManager().registerEvents(new PlayerListener(), this);
|
||||
//System.out.println("Registering commands...");
|
||||
this.getCommand("u").setExecutor(new Commands());
|
||||
this.getCommand("u").setUsage(this.getCommand("u").getUsage().replace('&', '§'));
|
||||
try {
|
||||
BufferedReader br=new BufferedReader(new FileReader("flairsaccepted.txt"));
|
||||
String line;
|
||||
while ((line = br.readLine()) != null)
|
||||
{
|
||||
AcceptedPlayers.add(line.replace("\n", ""));
|
||||
}
|
||||
br.close();
|
||||
BufferedReader br=new BufferedReader(new FileReader("flairsignored.txt"));
|
||||
while ((line = br.readLine()) != null)
|
||||
{
|
||||
IgnoredPlayers.add(line.replace("\n", ""));
|
||||
}
|
||||
br.close();
|
||||
FileWriter fw;
|
||||
fw = new FileWriter("flairsaccepted.txt");
|
||||
fw.close();
|
||||
} catch (IOException e) {
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
//System.out.println("Registering done.");
|
||||
Runnable r=new Runnable(){public void run(){ThreadMethod();}};
|
||||
Thread t=new Thread(r);
|
||||
t.start();
|
||||
}
|
||||
Boolean stop=false;
|
||||
// Fired when plugin is disabled
|
||||
@Override
|
||||
public void onDisable()
|
||||
{
|
||||
stop=true;
|
||||
}
|
||||
|
||||
public void ThreadMethod() //<-- 2015.07.16.
|
||||
{
|
||||
while(!stop)
|
||||
{
|
||||
try
|
||||
{
|
||||
String body=DownloadString("https://www.reddit.com/r/TheButtonMinecraft/comments/3d25do/autoflair_system_comment_your_minecraft_name_and/.json?limit=1000");
|
||||
JSONArray json=new JSONArray(body).getJSONObject(1).getJSONObject("data").getJSONArray("children");
|
||||
for(Object obj : json)
|
||||
{
|
||||
JSONObject item = (JSONObject)obj;
|
||||
String author=item.getJSONObject("data").getString("author");
|
||||
String ign=item.getJSONObject("data").getString("body");
|
||||
int start = ign.indexOf("IGN:") + "IGN:".length();
|
||||
int end = ign.indexOf(' ', start);
|
||||
if (end == -1 || end == start)
|
||||
end=ign.indexOf('\n', start); //2015.07.15.
|
||||
if (end == -1 || end == start)
|
||||
ign = ign.substring(start);
|
||||
else
|
||||
ign = ign.substring(start, end);
|
||||
ign = ign.trim();
|
||||
if(HasIGFlair(ign))
|
||||
continue;
|
||||
//System.out.println("Author: "+author);
|
||||
try {
|
||||
Thread.sleep(10);
|
||||
} catch(InterruptedException ex) {
|
||||
Thread.currentThread().interrupt();
|
||||
}
|
||||
String[] flairdata = DownloadString("http://karmadecay.com/thebutton-data.php?users=" + author).replace("\"", "").split(":");
|
||||
String flair;
|
||||
if(flairdata.length > 1) //2015.07.15.
|
||||
flair = flairdata[1];
|
||||
else
|
||||
flair="";
|
||||
if (flair != "-1")
|
||||
flair = flair + "s";
|
||||
else
|
||||
flair = "non-presser";
|
||||
String flairclass;
|
||||
if(flairdata.length>1)
|
||||
flairclass = flairdata[2];
|
||||
else
|
||||
flairclass="unknown";
|
||||
SetFlair(ign, flair, flairclass, author);
|
||||
}
|
||||
Thread.sleep(10000);
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public String DownloadString(String urlstr) throws MalformedURLException, IOException
|
||||
{
|
||||
URL url = new URL(urlstr);
|
||||
URLConnection con = url.openConnection();
|
||||
con.setRequestProperty("User-Agent", "TheButtonAutoFlair");
|
||||
InputStream in = con.getInputStream();
|
||||
String encoding = con.getContentEncoding();
|
||||
encoding = encoding == null ? "UTF-8" : encoding;
|
||||
String body = IOUtils.toString(in, encoding);
|
||||
in.close();
|
||||
return body;
|
||||
}
|
||||
|
||||
//It has to store offline player flairs too, therefore it can't use Player object
|
||||
public static Map<String, String> PlayerFlairs=new HashMap<String, String>();
|
||||
public static Map<String, String> PlayerUserNames=new HashMap<String, String>();
|
||||
//public Map<Player, String> PlayerFlairs=new HashMap<Player, String>();
|
||||
public static ArrayList<Player> Players=new ArrayList<Player>();
|
||||
public static ArrayList<String> AcceptedPlayers=new ArrayList<String>(); //2015.07.16.
|
||||
public static ArrayList<String> IgnoredPlayers=new ArrayList<String>(); //2015.07.16.
|
||||
public Boolean HasIGFlair(String playername)
|
||||
{
|
||||
/*Player player=null;
|
||||
for(Player p : Players)
|
||||
{
|
||||
if(p.getName()==playername)
|
||||
{
|
||||
player=p;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(player==null)
|
||||
return false;*/
|
||||
return PlayerFlairs.containsKey(playername);
|
||||
}
|
||||
|
||||
public void SetFlair(String playername, String text, String flairclass, String username)
|
||||
{
|
||||
String finalflair;
|
||||
switch(flairclass)
|
||||
{
|
||||
case "press-1":
|
||||
finalflair="§c("+text+")§r";
|
||||
break;
|
||||
case "press-2":
|
||||
finalflair="§6("+text+")§r";
|
||||
break;
|
||||
case "press-3":
|
||||
finalflair="§e("+text+")§r";
|
||||
break;
|
||||
case "press-4":
|
||||
finalflair="§a("+text+")§r";
|
||||
break;
|
||||
case "press-5":
|
||||
finalflair="§9("+text+")§r";
|
||||
break;
|
||||
case "press-6":
|
||||
finalflair="§5("+text+")§r";
|
||||
break;
|
||||
case "no-press":
|
||||
finalflair="§7(non-pr.)§r";
|
||||
break;
|
||||
case "cheater":
|
||||
finalflair="§5("+text+")§r";
|
||||
break;
|
||||
default:
|
||||
finalflair="";
|
||||
break;
|
||||
}
|
||||
PlayerFlairs.put(playername, finalflair);
|
||||
PlayerUserNames.put(playername, username);
|
||||
/*for(Player player : Players)
|
||||
{
|
||||
if(player.getName()==playername)
|
||||
{
|
||||
PlayerFlairs.put(player, finalflair);
|
||||
break;
|
||||
}
|
||||
}*/
|
||||
//System.out.println("SetFlair - playername: "+playername+" text: "+text+" flairclass: "+flairclass);
|
||||
System.out.println("Added new flair to "+playername+": "+finalflair);
|
||||
for(Player player : Players)
|
||||
{
|
||||
//System.out.println("Online player: "+player.getName());
|
||||
//System.out.println("player.getName ("+player.getName()+") == playername ("+playername+"): "+(player.getName()==playername));
|
||||
if(player.getName().equals(playername))
|
||||
{
|
||||
//System.out.println("DisplayName: "+player.getDisplayName());
|
||||
//player.setDisplayName(player.getDisplayName()+finalflair);
|
||||
AppendPlayerDisplayFlair(player, username, finalflair);
|
||||
//System.out.println("DisplayName: "+player.getDisplayName());
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static String GetFlair(Player player)
|
||||
{ //2015.07.16.
|
||||
String flair=PlayerFlairs.get(player.getName());
|
||||
return flair==null ? "" : flair;
|
||||
}
|
||||
|
||||
public static void AppendPlayerDisplayFlair(Player player, String username, String flair)
|
||||
{
|
||||
if(IgnoredPlayers.contains(player.getName()))
|
||||
{
|
||||
try {
|
||||
BufferedWriter bw=new BufferedWriter(new FileWriter("flairsaccepted.txt", true));
|
||||
bw.write(player.getName()+"\n");
|
||||
bw.close();
|
||||
} catch (IOException e) {
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
return;
|
||||
}
|
||||
if(AcceptedPlayers.contains(player.getName()))
|
||||
{
|
||||
player.setDisplayName(player.getDisplayName()+flair);
|
||||
try {
|
||||
BufferedWriter bw=new BufferedWriter(new FileWriter("flairsaccepted.txt", true));
|
||||
bw.write(player.getName()+"\n");
|
||||
bw.close();
|
||||
} catch (IOException e) {
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
}
|
||||
else
|
||||
player.sendMessage("§9Are you Reddit user "+username+"?§r §6Type /u accept or /u ignore§r");
|
||||
|
||||
}
|
||||
}
|
|
@ -1,37 +0,0 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.event.player.PlayerQuitEvent;
|
||||
|
||||
public class PlayerListener implements Listener
|
||||
{ //2015.07.16.
|
||||
@EventHandler
|
||||
public void onPlayerJoin(PlayerJoinEvent event)
|
||||
{
|
||||
PluginMain.Players.add(event.getPlayer());
|
||||
System.out.println("Added player "+event.getPlayer().getName());
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerLeave(PlayerQuitEvent event)
|
||||
{
|
||||
for(Player player : PluginMain.Players)
|
||||
{
|
||||
if(player.getName()==event.getPlayer().getName())
|
||||
{
|
||||
PluginMain.Players.remove(player);
|
||||
System.out.println("Removed player "+event.getPlayer().getName());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerChat(AsyncPlayerChatEvent event)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
|
@ -1,41 +0,0 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.event.player.PlayerQuitEvent;
|
||||
|
||||
public class PlayerListener implements Listener
|
||||
{ //2015.07.16.
|
||||
@EventHandler
|
||||
public void onPlayerJoin(PlayerJoinEvent event)
|
||||
{
|
||||
PluginMain.Players.add(event.getPlayer());
|
||||
System.out.println("Added player "+event.getPlayer().getName());
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerLeave(PlayerQuitEvent event)
|
||||
{
|
||||
//for(Player player : PluginMain.Players)
|
||||
for(int i=0; i<PluginMain.Players.size();)
|
||||
{
|
||||
Player player=PluginMain.Players.get(i);
|
||||
if(player.getName()==event.getPlayer().getName())
|
||||
{
|
||||
PluginMain.Players.remove(player);
|
||||
System.out.println("Removed player "+event.getPlayer().getName());
|
||||
}
|
||||
else
|
||||
i++; //If the player is removed, the next item will be on the same index
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerChat(AsyncPlayerChatEvent event)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
|
@ -1,17 +0,0 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import java.util.function.Predicate;
|
||||
|
||||
public class MyPredicate<T> implements Predicate<T>
|
||||
{
|
||||
private T First;
|
||||
public MyPredicate(T first)
|
||||
{
|
||||
|
||||
}
|
||||
@Override
|
||||
public boolean test(T second) {
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,28 +0,0 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.event.player.PlayerQuitEvent;
|
||||
|
||||
public class PlayerListener implements Listener
|
||||
{ //2015.07.16.
|
||||
@EventHandler
|
||||
public void onPlayerJoin(PlayerJoinEvent event)
|
||||
{
|
||||
PluginMain.Players.add(event.getPlayer());
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerLeave(PlayerQuitEvent event)
|
||||
{
|
||||
PluginMain.Players.remove(event.getPlayer());
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerChat(AsyncPlayerChatEvent event)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
|
@ -1,43 +0,0 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.event.player.PlayerQuitEvent;
|
||||
|
||||
public class PlayerListener implements Listener
|
||||
{ //2015.07.16.
|
||||
@EventHandler
|
||||
public void onPlayerJoin(PlayerJoinEvent event)
|
||||
{
|
||||
Player p=event.getPlayer();
|
||||
PluginMain.Players.add(p);
|
||||
event.getPlayer().setDisplayName(p.getDisplayName()+PluginMain.GetFlair(p));
|
||||
System.out.println("Added player "+p.getName());
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerLeave(PlayerQuitEvent event)
|
||||
{
|
||||
//for(Player player : PluginMain.Players)
|
||||
for(int i=0; i<PluginMain.Players.size();)
|
||||
{
|
||||
Player player=PluginMain.Players.get(i);
|
||||
if(player.getName()==event.getPlayer().getName())
|
||||
{
|
||||
PluginMain.Players.remove(player);
|
||||
System.out.println("Removed player "+event.getPlayer().getName());
|
||||
}
|
||||
else
|
||||
i++; //If the player is removed, the next item will be on the same index
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerChat(AsyncPlayerChatEvent event)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
|
@ -1,21 +0,0 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
|
||||
public class PlayerListener implements Listener
|
||||
{ //2015.07.16.
|
||||
@EventHandler
|
||||
public void onPlayerJoin(PlayerJoinEvent event)
|
||||
{
|
||||
PluginMain.Players.add(event.getPlayer());
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerChat(AsyncPlayerChatEvent event)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
|
@ -1,278 +0,0 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.File;
|
||||
import java.io.FileReader;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import java.net.URLConnection;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONObject;
|
||||
|
||||
public class PluginMain extends JavaPlugin
|
||||
{ //Translated to Java: 2015.07.15.
|
||||
//A user, which flair isn't obtainable:
|
||||
//https://www.reddit.com/r/thebutton/comments/31c32v/i_pressed_the_button_without_really_thinking/
|
||||
// Fired when plugin is first enabled
|
||||
@Override
|
||||
public void onEnable()
|
||||
{
|
||||
System.out.println("The Button Auto-flair Plugin by NorbiPeti (:P)");
|
||||
//System.out.println("Original C# version: http://pastebin.com/tX8xCPbp");
|
||||
//System.out.println("The Java version is... Also made by the same person.");
|
||||
//System.out.println("With the help of StackOverflow and similar.");
|
||||
/*catch(MalformedURLException e)
|
||||
{
|
||||
}
|
||||
catch(IOException e)
|
||||
{
|
||||
}*/
|
||||
getServer().getPluginManager().registerEvents(new PlayerListener(), this);
|
||||
//System.out.println("Registering commands...");
|
||||
this.getCommand("u").setExecutor(new Commands());
|
||||
this.getCommand("u").setUsage(this.getCommand("u").getUsage().replace('&', '§'));
|
||||
try {
|
||||
File file=new File("flairsaccepted.txt");
|
||||
if(file.exists())
|
||||
{
|
||||
BufferedReader br=new BufferedReader(new FileReader("flairsaccepted.txt"));
|
||||
String line;
|
||||
while ((line = br.readLine()) != null)
|
||||
{
|
||||
AcceptedPlayers.add(line.replace("\n", ""));
|
||||
}
|
||||
br.close();
|
||||
}
|
||||
file=new File("flairsignored.txt");
|
||||
if(file.exists())
|
||||
{
|
||||
BufferedReader br=new BufferedReader(new FileReader("flairsignored.txt"));
|
||||
while ((line = br.readLine()) != null)
|
||||
{
|
||||
IgnoredPlayers.add(line.replace("\n", ""));
|
||||
}
|
||||
br.close();
|
||||
}
|
||||
FileWriter fw;
|
||||
fw = new FileWriter("flairsaccepted.txt");
|
||||
fw.close();
|
||||
fw = new FileWriter("flairsignored.txt");
|
||||
fw.close();
|
||||
} catch (IOException e) {
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
//System.out.println("Registering done.");
|
||||
Runnable r=new Runnable(){public void run(){ThreadMethod();}};
|
||||
Thread t=new Thread(r);
|
||||
t.start();
|
||||
}
|
||||
Boolean stop=false;
|
||||
// Fired when plugin is disabled
|
||||
@Override
|
||||
public void onDisable()
|
||||
{
|
||||
for(String player : AcceptedPlayers)
|
||||
{
|
||||
File file=new File("flairsaccepted.txt");
|
||||
try {
|
||||
BufferedWriter bw=new BufferedWriter(new FileWriter(file, true));
|
||||
bw.write(player+"\n");
|
||||
bw.close();
|
||||
} catch (IOException e) {
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
}
|
||||
for(String player : IgnoredPlayers)
|
||||
{
|
||||
File file=new File("flairsignored.txt");
|
||||
try {
|
||||
BufferedWriter bw=new BufferedWriter(new FileWriter(file, true));
|
||||
bw.write(player+"\n");
|
||||
bw.close();
|
||||
} catch (IOException e) {
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
}
|
||||
stop=true;
|
||||
}
|
||||
|
||||
public void ThreadMethod() //<-- 2015.07.16.
|
||||
{
|
||||
while(!stop)
|
||||
{
|
||||
try
|
||||
{
|
||||
String body=DownloadString("https://www.reddit.com/r/TheButtonMinecraft/comments/3d25do/autoflair_system_comment_your_minecraft_name_and/.json?limit=1000");
|
||||
JSONArray json=new JSONArray(body).getJSONObject(1).getJSONObject("data").getJSONArray("children");
|
||||
for(Object obj : json)
|
||||
{
|
||||
JSONObject item = (JSONObject)obj;
|
||||
String author=item.getJSONObject("data").getString("author");
|
||||
String ign=item.getJSONObject("data").getString("body");
|
||||
int start = ign.indexOf("IGN:") + "IGN:".length();
|
||||
int end = ign.indexOf(' ', start);
|
||||
if (end == -1 || end == start)
|
||||
end=ign.indexOf('\n', start); //2015.07.15.
|
||||
if (end == -1 || end == start)
|
||||
ign = ign.substring(start);
|
||||
else
|
||||
ign = ign.substring(start, end);
|
||||
ign = ign.trim();
|
||||
if(HasIGFlair(ign))
|
||||
continue;
|
||||
//System.out.println("Author: "+author);
|
||||
try {
|
||||
Thread.sleep(10);
|
||||
} catch(InterruptedException ex) {
|
||||
Thread.currentThread().interrupt();
|
||||
}
|
||||
String[] flairdata = DownloadString("http://karmadecay.com/thebutton-data.php?users=" + author).replace("\"", "").split(":");
|
||||
String flair;
|
||||
if(flairdata.length > 1) //2015.07.15.
|
||||
flair = flairdata[1];
|
||||
else
|
||||
flair="";
|
||||
if (flair != "-1")
|
||||
flair = flair + "s";
|
||||
else
|
||||
flair = "non-presser";
|
||||
String flairclass;
|
||||
if(flairdata.length>1)
|
||||
flairclass = flairdata[2];
|
||||
else
|
||||
flairclass="unknown";
|
||||
SetFlair(ign, flair, flairclass, author);
|
||||
}
|
||||
Thread.sleep(10000);
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public String DownloadString(String urlstr) throws MalformedURLException, IOException
|
||||
{
|
||||
URL url = new URL(urlstr);
|
||||
URLConnection con = url.openConnection();
|
||||
con.setRequestProperty("User-Agent", "TheButtonAutoFlair");
|
||||
InputStream in = con.getInputStream();
|
||||
String encoding = con.getContentEncoding();
|
||||
encoding = encoding == null ? "UTF-8" : encoding;
|
||||
String body = IOUtils.toString(in, encoding);
|
||||
in.close();
|
||||
return body;
|
||||
}
|
||||
|
||||
//It has to store offline player flairs too, therefore it can't use Player object
|
||||
public static Map<String, String> PlayerFlairs=new HashMap<String, String>();
|
||||
public static Map<String, String> PlayerUserNames=new HashMap<String, String>();
|
||||
//public Map<Player, String> PlayerFlairs=new HashMap<Player, String>();
|
||||
public static ArrayList<Player> Players=new ArrayList<Player>();
|
||||
public static ArrayList<String> AcceptedPlayers=new ArrayList<String>(); //2015.07.16.
|
||||
public static ArrayList<String> IgnoredPlayers=new ArrayList<String>(); //2015.07.16.
|
||||
public Boolean HasIGFlair(String playername)
|
||||
{
|
||||
/*Player player=null;
|
||||
for(Player p : Players)
|
||||
{
|
||||
if(p.getName()==playername)
|
||||
{
|
||||
player=p;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(player==null)
|
||||
return false;*/
|
||||
return PlayerFlairs.containsKey(playername);
|
||||
}
|
||||
|
||||
public void SetFlair(String playername, String text, String flairclass, String username)
|
||||
{
|
||||
String finalflair;
|
||||
switch(flairclass)
|
||||
{
|
||||
case "press-1":
|
||||
finalflair="§c("+text+")§r";
|
||||
break;
|
||||
case "press-2":
|
||||
finalflair="§6("+text+")§r";
|
||||
break;
|
||||
case "press-3":
|
||||
finalflair="§e("+text+")§r";
|
||||
break;
|
||||
case "press-4":
|
||||
finalflair="§a("+text+")§r";
|
||||
break;
|
||||
case "press-5":
|
||||
finalflair="§9("+text+")§r";
|
||||
break;
|
||||
case "press-6":
|
||||
finalflair="§5("+text+")§r";
|
||||
break;
|
||||
case "no-press":
|
||||
finalflair="§7(non-pr.)§r";
|
||||
break;
|
||||
case "cheater":
|
||||
finalflair="§5("+text+")§r";
|
||||
break;
|
||||
default:
|
||||
finalflair="";
|
||||
break;
|
||||
}
|
||||
PlayerFlairs.put(playername, finalflair);
|
||||
PlayerUserNames.put(playername, username);
|
||||
/*for(Player player : Players)
|
||||
{
|
||||
if(player.getName()==playername)
|
||||
{
|
||||
PlayerFlairs.put(player, finalflair);
|
||||
break;
|
||||
}
|
||||
}*/
|
||||
//System.out.println("SetFlair - playername: "+playername+" text: "+text+" flairclass: "+flairclass);
|
||||
System.out.println("Added new flair to "+playername+": "+finalflair);
|
||||
for(Player player : Players)
|
||||
{
|
||||
//System.out.println("Online player: "+player.getName());
|
||||
//System.out.println("player.getName ("+player.getName()+") == playername ("+playername+"): "+(player.getName()==playername));
|
||||
if(player.getName().equals(playername))
|
||||
{
|
||||
//System.out.println("DisplayName: "+player.getDisplayName());
|
||||
//player.setDisplayName(player.getDisplayName()+finalflair);
|
||||
AppendPlayerDisplayFlair(player, username, finalflair);
|
||||
//System.out.println("DisplayName: "+player.getDisplayName());
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static String GetFlair(Player player)
|
||||
{ //2015.07.16.
|
||||
String flair=PlayerFlairs.get(player.getName());
|
||||
return flair==null ? "" : flair;
|
||||
}
|
||||
|
||||
public static void AppendPlayerDisplayFlair(Player player, String username, String flair)
|
||||
{
|
||||
if(IgnoredPlayers.contains(player.getName()))
|
||||
return;
|
||||
if(AcceptedPlayers.contains(player.getName()))
|
||||
player.setDisplayName(player.getDisplayName()+flair);
|
||||
else
|
||||
player.sendMessage("§9Are you Reddit user "+username+"?§r §6Type /u accept or /u ignore§r");
|
||||
|
||||
}
|
||||
}
|
|
@ -1,32 +0,0 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.event.player.PlayerQuitEvent;
|
||||
|
||||
public class PlayerListener implements Listener
|
||||
{ //2015.07.16.
|
||||
@EventHandler
|
||||
public void onPlayerJoin(PlayerJoinEvent event)
|
||||
{
|
||||
PluginMain.Players.add(event.getPlayer());
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerLeave(PlayerQuitEvent event)
|
||||
{
|
||||
for(Player player : PluginMain.Players)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerChat(AsyncPlayerChatEvent event)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
|
@ -1,44 +0,0 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.event.player.PlayerQuitEvent;
|
||||
|
||||
public class PlayerListener implements Listener
|
||||
{ //2015.07.16.
|
||||
@EventHandler
|
||||
public void onPlayerJoin(PlayerJoinEvent event)
|
||||
{
|
||||
Player p=event.getPlayer();
|
||||
PluginMain.Players.add(p);
|
||||
//event.getPlayer().setDisplayName(p.getDisplayName()+PluginMain.GetFlair(p));
|
||||
|
||||
System.out.println("Added player "+p.getName());
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerLeave(PlayerQuitEvent event)
|
||||
{
|
||||
//for(Player player : PluginMain.Players)
|
||||
for(int i=0; i<PluginMain.Players.size();)
|
||||
{
|
||||
Player player=PluginMain.Players.get(i);
|
||||
if(player.getName().equals(event.getPlayer().getName()))
|
||||
{
|
||||
PluginMain.Players.remove(player);
|
||||
System.out.println("Removed player "+event.getPlayer().getName());
|
||||
}
|
||||
else
|
||||
i++; //If the player is removed, the next item will be on the same index
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerChat(AsyncPlayerChatEvent event)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
|
@ -1,279 +0,0 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.File;
|
||||
import java.io.FileReader;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import java.net.URLConnection;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONObject;
|
||||
|
||||
public class PluginMain extends JavaPlugin
|
||||
{ //Translated to Java: 2015.07.15.
|
||||
//A user, which flair isn't obtainable:
|
||||
//https://www.reddit.com/r/thebutton/comments/31c32v/i_pressed_the_button_without_really_thinking/
|
||||
// Fired when plugin is first enabled
|
||||
@Override
|
||||
public void onEnable()
|
||||
{
|
||||
System.out.println("The Button Auto-flair Plugin by NorbiPeti (:P)");
|
||||
//System.out.println("Original C# version: http://pastebin.com/tX8xCPbp");
|
||||
//System.out.println("The Java version is... Also made by the same person.");
|
||||
//System.out.println("With the help of StackOverflow and similar.");
|
||||
/*catch(MalformedURLException e)
|
||||
{
|
||||
}
|
||||
catch(IOException e)
|
||||
{
|
||||
}*/
|
||||
getServer().getPluginManager().registerEvents(new PlayerListener(), this);
|
||||
//System.out.println("Registering commands...");
|
||||
this.getCommand("u").setExecutor(new Commands());
|
||||
this.getCommand("u").setUsage(this.getCommand("u").getUsage().replace('&', '§'));
|
||||
try {
|
||||
File file=new File("flairsaccepted.txt");
|
||||
if(file.exists())
|
||||
{
|
||||
BufferedReader br=new BufferedReader(new FileReader("flairsaccepted.txt"));
|
||||
String line;
|
||||
while ((line = br.readLine()) != null)
|
||||
{
|
||||
AcceptedPlayers.add(line.replace("\n", ""));
|
||||
}
|
||||
br.close();
|
||||
}
|
||||
file=new File("flairsignored.txt");
|
||||
if(file.exists())
|
||||
{
|
||||
BufferedReader br=new BufferedReader(new FileReader("flairsignored.txt"));
|
||||
String line;
|
||||
while ((line = br.readLine()) != null)
|
||||
{
|
||||
IgnoredPlayers.add(line.replace("\n", ""));
|
||||
}
|
||||
br.close();
|
||||
}
|
||||
} catch (IOException e) {
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
//System.out.println("Registering done.");
|
||||
Runnable r=new Runnable(){public void run(){ThreadMethod();}};
|
||||
Thread t=new Thread(r);
|
||||
t.start();
|
||||
}
|
||||
Boolean stop=false;
|
||||
// Fired when plugin is disabled
|
||||
@Override
|
||||
public void onDisable()
|
||||
{
|
||||
FileWriter fw;
|
||||
fw = new FileWriter("flairsaccepted.txt");
|
||||
fw.close();
|
||||
fw = new FileWriter("flairsignored.txt");
|
||||
fw.close();
|
||||
for(String player : AcceptedPlayers)
|
||||
{
|
||||
File file=new File("flairsaccepted.txt");
|
||||
try {
|
||||
BufferedWriter bw=new BufferedWriter(new FileWriter(file, true));
|
||||
bw.write(player+"\n");
|
||||
bw.close();
|
||||
} catch (IOException e) {
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
}
|
||||
for(String player : IgnoredPlayers)
|
||||
{
|
||||
File file=new File("flairsignored.txt");
|
||||
try {
|
||||
BufferedWriter bw=new BufferedWriter(new FileWriter(file, true));
|
||||
bw.write(player+"\n");
|
||||
bw.close();
|
||||
} catch (IOException e) {
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
}
|
||||
stop=true;
|
||||
}
|
||||
|
||||
public void ThreadMethod() //<-- 2015.07.16.
|
||||
{
|
||||
while(!stop)
|
||||
{
|
||||
try
|
||||
{
|
||||
String body=DownloadString("https://www.reddit.com/r/TheButtonMinecraft/comments/3d25do/autoflair_system_comment_your_minecraft_name_and/.json?limit=1000");
|
||||
JSONArray json=new JSONArray(body).getJSONObject(1).getJSONObject("data").getJSONArray("children");
|
||||
for(Object obj : json)
|
||||
{
|
||||
JSONObject item = (JSONObject)obj;
|
||||
String author=item.getJSONObject("data").getString("author");
|
||||
String ign=item.getJSONObject("data").getString("body");
|
||||
int start = ign.indexOf("IGN:") + "IGN:".length();
|
||||
int end = ign.indexOf(' ', start);
|
||||
if (end == -1 || end == start)
|
||||
end=ign.indexOf('\n', start); //2015.07.15.
|
||||
if (end == -1 || end == start)
|
||||
ign = ign.substring(start);
|
||||
else
|
||||
ign = ign.substring(start, end);
|
||||
ign = ign.trim();
|
||||
if(HasIGFlair(ign))
|
||||
continue;
|
||||
//System.out.println("Author: "+author);
|
||||
try {
|
||||
Thread.sleep(10);
|
||||
} catch(InterruptedException ex) {
|
||||
Thread.currentThread().interrupt();
|
||||
}
|
||||
String[] flairdata = DownloadString("http://karmadecay.com/thebutton-data.php?users=" + author).replace("\"", "").split(":");
|
||||
String flair;
|
||||
if(flairdata.length > 1) //2015.07.15.
|
||||
flair = flairdata[1];
|
||||
else
|
||||
flair="";
|
||||
if (flair != "-1")
|
||||
flair = flair + "s";
|
||||
else
|
||||
flair = "non-presser";
|
||||
String flairclass;
|
||||
if(flairdata.length>1)
|
||||
flairclass = flairdata[2];
|
||||
else
|
||||
flairclass="unknown";
|
||||
SetFlair(ign, flair, flairclass, author);
|
||||
}
|
||||
Thread.sleep(10000);
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public String DownloadString(String urlstr) throws MalformedURLException, IOException
|
||||
{
|
||||
URL url = new URL(urlstr);
|
||||
URLConnection con = url.openConnection();
|
||||
con.setRequestProperty("User-Agent", "TheButtonAutoFlair");
|
||||
InputStream in = con.getInputStream();
|
||||
String encoding = con.getContentEncoding();
|
||||
encoding = encoding == null ? "UTF-8" : encoding;
|
||||
String body = IOUtils.toString(in, encoding);
|
||||
in.close();
|
||||
return body;
|
||||
}
|
||||
|
||||
//It has to store offline player flairs too, therefore it can't use Player object
|
||||
public static Map<String, String> PlayerFlairs=new HashMap<String, String>();
|
||||
public static Map<String, String> PlayerUserNames=new HashMap<String, String>();
|
||||
//public Map<Player, String> PlayerFlairs=new HashMap<Player, String>();
|
||||
public static ArrayList<Player> Players=new ArrayList<Player>();
|
||||
public static ArrayList<String> AcceptedPlayers=new ArrayList<String>(); //2015.07.16.
|
||||
public static ArrayList<String> IgnoredPlayers=new ArrayList<String>(); //2015.07.16.
|
||||
public Boolean HasIGFlair(String playername)
|
||||
{
|
||||
/*Player player=null;
|
||||
for(Player p : Players)
|
||||
{
|
||||
if(p.getName()==playername)
|
||||
{
|
||||
player=p;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(player==null)
|
||||
return false;*/
|
||||
return PlayerFlairs.containsKey(playername);
|
||||
}
|
||||
|
||||
public void SetFlair(String playername, String text, String flairclass, String username)
|
||||
{
|
||||
String finalflair;
|
||||
switch(flairclass)
|
||||
{
|
||||
case "press-1":
|
||||
finalflair="§c("+text+")§r";
|
||||
break;
|
||||
case "press-2":
|
||||
finalflair="§6("+text+")§r";
|
||||
break;
|
||||
case "press-3":
|
||||
finalflair="§e("+text+")§r";
|
||||
break;
|
||||
case "press-4":
|
||||
finalflair="§a("+text+")§r";
|
||||
break;
|
||||
case "press-5":
|
||||
finalflair="§9("+text+")§r";
|
||||
break;
|
||||
case "press-6":
|
||||
finalflair="§5("+text+")§r";
|
||||
break;
|
||||
case "no-press":
|
||||
finalflair="§7(non-pr.)§r";
|
||||
break;
|
||||
case "cheater":
|
||||
finalflair="§5("+text+")§r";
|
||||
break;
|
||||
default:
|
||||
finalflair="";
|
||||
break;
|
||||
}
|
||||
PlayerFlairs.put(playername, finalflair);
|
||||
PlayerUserNames.put(playername, username);
|
||||
/*for(Player player : Players)
|
||||
{
|
||||
if(player.getName()==playername)
|
||||
{
|
||||
PlayerFlairs.put(player, finalflair);
|
||||
break;
|
||||
}
|
||||
}*/
|
||||
//System.out.println("SetFlair - playername: "+playername+" text: "+text+" flairclass: "+flairclass);
|
||||
System.out.println("Added new flair to "+playername+": "+finalflair);
|
||||
for(Player player : Players)
|
||||
{
|
||||
//System.out.println("Online player: "+player.getName());
|
||||
//System.out.println("player.getName ("+player.getName()+") == playername ("+playername+"): "+(player.getName()==playername));
|
||||
if(player.getName().equals(playername))
|
||||
{
|
||||
//System.out.println("DisplayName: "+player.getDisplayName());
|
||||
//player.setDisplayName(player.getDisplayName()+finalflair);
|
||||
AppendPlayerDisplayFlair(player, username, finalflair);
|
||||
//System.out.println("DisplayName: "+player.getDisplayName());
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static String GetFlair(Player player)
|
||||
{ //2015.07.16.
|
||||
String flair=PlayerFlairs.get(player.getName());
|
||||
return flair==null ? "" : flair;
|
||||
}
|
||||
|
||||
public static void AppendPlayerDisplayFlair(Player player, String username, String flair)
|
||||
{
|
||||
if(IgnoredPlayers.contains(player.getName()))
|
||||
return;
|
||||
if(AcceptedPlayers.contains(player.getName()))
|
||||
player.setDisplayName(player.getDisplayName()+flair);
|
||||
else
|
||||
player.sendMessage("§9Are you Reddit user "+username+"?§r §6Type /u accept or /u ignore§r");
|
||||
|
||||
}
|
||||
}
|
|
@ -1,277 +0,0 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.File;
|
||||
import java.io.FileReader;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import java.net.URLConnection;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONObject;
|
||||
|
||||
public class PluginMain extends JavaPlugin
|
||||
{ //Translated to Java: 2015.07.15.
|
||||
//A user, which flair isn't obtainable:
|
||||
//https://www.reddit.com/r/thebutton/comments/31c32v/i_pressed_the_button_without_really_thinking/
|
||||
// Fired when plugin is first enabled
|
||||
@Override
|
||||
public void onEnable()
|
||||
{
|
||||
System.out.println("The Button Auto-flair Plugin by NorbiPeti (:P)");
|
||||
//System.out.println("Original C# version: http://pastebin.com/tX8xCPbp");
|
||||
//System.out.println("The Java version is... Also made by the same person.");
|
||||
//System.out.println("With the help of StackOverflow and similar.");
|
||||
/*catch(MalformedURLException e)
|
||||
{
|
||||
}
|
||||
catch(IOException e)
|
||||
{
|
||||
}*/
|
||||
getServer().getPluginManager().registerEvents(new PlayerListener(), this);
|
||||
//System.out.println("Registering commands...");
|
||||
this.getCommand("u").setExecutor(new Commands());
|
||||
this.getCommand("u").setUsage(this.getCommand("u").getUsage().replace('&', '§'));
|
||||
try {
|
||||
File file=new File("flairsaccepted.txt");
|
||||
if(file.exists())
|
||||
{
|
||||
BufferedReader br=new BufferedReader(new FileReader("flairsaccepted.txt"));
|
||||
String line;
|
||||
while ((line = br.readLine()) != null)
|
||||
{
|
||||
AcceptedPlayers.add(line.replace("\n", ""));
|
||||
}
|
||||
br.close();
|
||||
}
|
||||
br=new BufferedReader(new FileReader("flairsignored.txt"));
|
||||
while ((line = br.readLine()) != null)
|
||||
{
|
||||
IgnoredPlayers.add(line.replace("\n", ""));
|
||||
}
|
||||
br.close();
|
||||
FileWriter fw;
|
||||
fw = new FileWriter("flairsaccepted.txt");
|
||||
fw.close();
|
||||
fw = new FileWriter("flairsignored.txt");
|
||||
fw.close();
|
||||
} catch (IOException e) {
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
//System.out.println("Registering done.");
|
||||
Runnable r=new Runnable(){public void run(){ThreadMethod();}};
|
||||
Thread t=new Thread(r);
|
||||
t.start();
|
||||
}
|
||||
Boolean stop=false;
|
||||
// Fired when plugin is disabled
|
||||
@Override
|
||||
public void onDisable()
|
||||
{
|
||||
for(String player : AcceptedPlayers)
|
||||
{
|
||||
File file=new File("flairsaccepted.txt");
|
||||
try {
|
||||
BufferedWriter bw=new BufferedWriter(new FileWriter(file, true));
|
||||
bw.write(player+"\n");
|
||||
bw.close();
|
||||
} catch (IOException e) {
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
}
|
||||
for(String player : IgnoredPlayers)
|
||||
{
|
||||
File file=new File("flairsignored.txt");
|
||||
if(file.exists())
|
||||
{
|
||||
try {
|
||||
BufferedWriter bw=new BufferedWriter(new FileWriter(file, true));
|
||||
bw.write(player+"\n");
|
||||
bw.close();
|
||||
} catch (IOException e) {
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
}
|
||||
}
|
||||
stop=true;
|
||||
}
|
||||
|
||||
public void ThreadMethod() //<-- 2015.07.16.
|
||||
{
|
||||
while(!stop)
|
||||
{
|
||||
try
|
||||
{
|
||||
String body=DownloadString("https://www.reddit.com/r/TheButtonMinecraft/comments/3d25do/autoflair_system_comment_your_minecraft_name_and/.json?limit=1000");
|
||||
JSONArray json=new JSONArray(body).getJSONObject(1).getJSONObject("data").getJSONArray("children");
|
||||
for(Object obj : json)
|
||||
{
|
||||
JSONObject item = (JSONObject)obj;
|
||||
String author=item.getJSONObject("data").getString("author");
|
||||
String ign=item.getJSONObject("data").getString("body");
|
||||
int start = ign.indexOf("IGN:") + "IGN:".length();
|
||||
int end = ign.indexOf(' ', start);
|
||||
if (end == -1 || end == start)
|
||||
end=ign.indexOf('\n', start); //2015.07.15.
|
||||
if (end == -1 || end == start)
|
||||
ign = ign.substring(start);
|
||||
else
|
||||
ign = ign.substring(start, end);
|
||||
ign = ign.trim();
|
||||
if(HasIGFlair(ign))
|
||||
continue;
|
||||
//System.out.println("Author: "+author);
|
||||
try {
|
||||
Thread.sleep(10);
|
||||
} catch(InterruptedException ex) {
|
||||
Thread.currentThread().interrupt();
|
||||
}
|
||||
String[] flairdata = DownloadString("http://karmadecay.com/thebutton-data.php?users=" + author).replace("\"", "").split(":");
|
||||
String flair;
|
||||
if(flairdata.length > 1) //2015.07.15.
|
||||
flair = flairdata[1];
|
||||
else
|
||||
flair="";
|
||||
if (flair != "-1")
|
||||
flair = flair + "s";
|
||||
else
|
||||
flair = "non-presser";
|
||||
String flairclass;
|
||||
if(flairdata.length>1)
|
||||
flairclass = flairdata[2];
|
||||
else
|
||||
flairclass="unknown";
|
||||
SetFlair(ign, flair, flairclass, author);
|
||||
}
|
||||
Thread.sleep(10000);
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public String DownloadString(String urlstr) throws MalformedURLException, IOException
|
||||
{
|
||||
URL url = new URL(urlstr);
|
||||
URLConnection con = url.openConnection();
|
||||
con.setRequestProperty("User-Agent", "TheButtonAutoFlair");
|
||||
InputStream in = con.getInputStream();
|
||||
String encoding = con.getContentEncoding();
|
||||
encoding = encoding == null ? "UTF-8" : encoding;
|
||||
String body = IOUtils.toString(in, encoding);
|
||||
in.close();
|
||||
return body;
|
||||
}
|
||||
|
||||
//It has to store offline player flairs too, therefore it can't use Player object
|
||||
public static Map<String, String> PlayerFlairs=new HashMap<String, String>();
|
||||
public static Map<String, String> PlayerUserNames=new HashMap<String, String>();
|
||||
//public Map<Player, String> PlayerFlairs=new HashMap<Player, String>();
|
||||
public static ArrayList<Player> Players=new ArrayList<Player>();
|
||||
public static ArrayList<String> AcceptedPlayers=new ArrayList<String>(); //2015.07.16.
|
||||
public static ArrayList<String> IgnoredPlayers=new ArrayList<String>(); //2015.07.16.
|
||||
public Boolean HasIGFlair(String playername)
|
||||
{
|
||||
/*Player player=null;
|
||||
for(Player p : Players)
|
||||
{
|
||||
if(p.getName()==playername)
|
||||
{
|
||||
player=p;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(player==null)
|
||||
return false;*/
|
||||
return PlayerFlairs.containsKey(playername);
|
||||
}
|
||||
|
||||
public void SetFlair(String playername, String text, String flairclass, String username)
|
||||
{
|
||||
String finalflair;
|
||||
switch(flairclass)
|
||||
{
|
||||
case "press-1":
|
||||
finalflair="§c("+text+")§r";
|
||||
break;
|
||||
case "press-2":
|
||||
finalflair="§6("+text+")§r";
|
||||
break;
|
||||
case "press-3":
|
||||
finalflair="§e("+text+")§r";
|
||||
break;
|
||||
case "press-4":
|
||||
finalflair="§a("+text+")§r";
|
||||
break;
|
||||
case "press-5":
|
||||
finalflair="§9("+text+")§r";
|
||||
break;
|
||||
case "press-6":
|
||||
finalflair="§5("+text+")§r";
|
||||
break;
|
||||
case "no-press":
|
||||
finalflair="§7(non-pr.)§r";
|
||||
break;
|
||||
case "cheater":
|
||||
finalflair="§5("+text+")§r";
|
||||
break;
|
||||
default:
|
||||
finalflair="";
|
||||
break;
|
||||
}
|
||||
PlayerFlairs.put(playername, finalflair);
|
||||
PlayerUserNames.put(playername, username);
|
||||
/*for(Player player : Players)
|
||||
{
|
||||
if(player.getName()==playername)
|
||||
{
|
||||
PlayerFlairs.put(player, finalflair);
|
||||
break;
|
||||
}
|
||||
}*/
|
||||
//System.out.println("SetFlair - playername: "+playername+" text: "+text+" flairclass: "+flairclass);
|
||||
System.out.println("Added new flair to "+playername+": "+finalflair);
|
||||
for(Player player : Players)
|
||||
{
|
||||
//System.out.println("Online player: "+player.getName());
|
||||
//System.out.println("player.getName ("+player.getName()+") == playername ("+playername+"): "+(player.getName()==playername));
|
||||
if(player.getName().equals(playername))
|
||||
{
|
||||
//System.out.println("DisplayName: "+player.getDisplayName());
|
||||
//player.setDisplayName(player.getDisplayName()+finalflair);
|
||||
AppendPlayerDisplayFlair(player, username, finalflair);
|
||||
//System.out.println("DisplayName: "+player.getDisplayName());
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static String GetFlair(Player player)
|
||||
{ //2015.07.16.
|
||||
String flair=PlayerFlairs.get(player.getName());
|
||||
return flair==null ? "" : flair;
|
||||
}
|
||||
|
||||
public static void AppendPlayerDisplayFlair(Player player, String username, String flair)
|
||||
{
|
||||
if(IgnoredPlayers.contains(player.getName()))
|
||||
return;
|
||||
if(AcceptedPlayers.contains(player.getName()))
|
||||
player.setDisplayName(player.getDisplayName()+flair);
|
||||
else
|
||||
player.sendMessage("§9Are you Reddit user "+username+"?§r §6Type /u accept or /u ignore§r");
|
||||
|
||||
}
|
||||
}
|
|
@ -1,274 +0,0 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.File;
|
||||
import java.io.FileReader;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import java.net.URLConnection;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONObject;
|
||||
|
||||
public class PluginMain extends JavaPlugin
|
||||
{ //Translated to Java: 2015.07.15.
|
||||
//A user, which flair isn't obtainable:
|
||||
//https://www.reddit.com/r/thebutton/comments/31c32v/i_pressed_the_button_without_really_thinking/
|
||||
// Fired when plugin is first enabled
|
||||
@Override
|
||||
public void onEnable()
|
||||
{
|
||||
System.out.println("The Button Auto-flair Plugin by NorbiPeti (:P)");
|
||||
//System.out.println("Original C# version: http://pastebin.com/tX8xCPbp");
|
||||
//System.out.println("The Java version is... Also made by the same person.");
|
||||
//System.out.println("With the help of StackOverflow and similar.");
|
||||
/*catch(MalformedURLException e)
|
||||
{
|
||||
}
|
||||
catch(IOException e)
|
||||
{
|
||||
}*/
|
||||
getServer().getPluginManager().registerEvents(new PlayerListener(), this);
|
||||
//System.out.println("Registering commands...");
|
||||
this.getCommand("u").setExecutor(new Commands());
|
||||
this.getCommand("u").setUsage(this.getCommand("u").getUsage().replace('&', '§'));
|
||||
try {
|
||||
File file=new File("flairsaccepted.txt");
|
||||
if(file.exists())
|
||||
{
|
||||
BufferedReader br=new BufferedReader(new FileReader("flairsaccepted.txt"));
|
||||
String line;
|
||||
while ((line = br.readLine()) != null)
|
||||
{
|
||||
AcceptedPlayers.add(line.replace("\n", ""));
|
||||
}
|
||||
br.close();
|
||||
}
|
||||
file=new File("flairsignored.txt");
|
||||
if(file.exists())
|
||||
{
|
||||
BufferedReader br=new BufferedReader(new FileReader("flairsignored.txt"));
|
||||
String line;
|
||||
while ((line = br.readLine()) != null)
|
||||
{
|
||||
IgnoredPlayers.add(line.replace("\n", ""));
|
||||
}
|
||||
br.close();
|
||||
}
|
||||
} catch (IOException e) {
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
//System.out.println("Registering done.");
|
||||
Runnable r=new Runnable(){public void run(){ThreadMethod();}};
|
||||
Thread t=new Thread(r);
|
||||
t.start();
|
||||
}
|
||||
Boolean stop=false;
|
||||
// Fired when plugin is disabled
|
||||
@Override
|
||||
public void onDisable()
|
||||
{
|
||||
for(String player : AcceptedPlayers)
|
||||
{
|
||||
File file=new File("flairsaccepted.txt");
|
||||
try {
|
||||
BufferedWriter bw=new BufferedWriter(new FileWriter(file, true));
|
||||
bw.write(player+"\n");
|
||||
bw.close();
|
||||
} catch (IOException e) {
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
}
|
||||
for(String player : IgnoredPlayers)
|
||||
{
|
||||
File file=new File("flairsignored.txt");
|
||||
try {
|
||||
BufferedWriter bw=new BufferedWriter(new FileWriter(file, true));
|
||||
bw.write(player+"\n");
|
||||
bw.close();
|
||||
} catch (IOException e) {
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
}
|
||||
stop=true;
|
||||
}
|
||||
|
||||
public void ThreadMethod() //<-- 2015.07.16.
|
||||
{
|
||||
while(!stop)
|
||||
{
|
||||
try
|
||||
{
|
||||
String body=DownloadString("https://www.reddit.com/r/TheButtonMinecraft/comments/3d25do/autoflair_system_comment_your_minecraft_name_and/.json?limit=1000");
|
||||
JSONArray json=new JSONArray(body).getJSONObject(1).getJSONObject("data").getJSONArray("children");
|
||||
for(Object obj : json)
|
||||
{
|
||||
JSONObject item = (JSONObject)obj;
|
||||
String author=item.getJSONObject("data").getString("author");
|
||||
String ign=item.getJSONObject("data").getString("body");
|
||||
int start = ign.indexOf("IGN:") + "IGN:".length();
|
||||
int end = ign.indexOf(' ', start);
|
||||
if (end == -1 || end == start)
|
||||
end=ign.indexOf('\n', start); //2015.07.15.
|
||||
if (end == -1 || end == start)
|
||||
ign = ign.substring(start);
|
||||
else
|
||||
ign = ign.substring(start, end);
|
||||
ign = ign.trim();
|
||||
if(HasIGFlair(ign))
|
||||
continue;
|
||||
//System.out.println("Author: "+author);
|
||||
try {
|
||||
Thread.sleep(10);
|
||||
} catch(InterruptedException ex) {
|
||||
Thread.currentThread().interrupt();
|
||||
}
|
||||
String[] flairdata = DownloadString("http://karmadecay.com/thebutton-data.php?users=" + author).replace("\"", "").split(":");
|
||||
String flair;
|
||||
if(flairdata.length > 1) //2015.07.15.
|
||||
flair = flairdata[1];
|
||||
else
|
||||
flair="";
|
||||
if (flair != "-1")
|
||||
flair = flair + "s";
|
||||
else
|
||||
flair = "non-presser";
|
||||
String flairclass;
|
||||
if(flairdata.length>1)
|
||||
flairclass = flairdata[2];
|
||||
else
|
||||
flairclass="unknown";
|
||||
SetFlair(ign, flair, flairclass, author);
|
||||
}
|
||||
Thread.sleep(10000);
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public String DownloadString(String urlstr) throws MalformedURLException, IOException
|
||||
{
|
||||
URL url = new URL(urlstr);
|
||||
URLConnection con = url.openConnection();
|
||||
con.setRequestProperty("User-Agent", "TheButtonAutoFlair");
|
||||
InputStream in = con.getInputStream();
|
||||
String encoding = con.getContentEncoding();
|
||||
encoding = encoding == null ? "UTF-8" : encoding;
|
||||
String body = IOUtils.toString(in, encoding);
|
||||
in.close();
|
||||
return body;
|
||||
}
|
||||
|
||||
//It has to store offline player flairs too, therefore it can't use Player object
|
||||
public static Map<String, String> PlayerFlairs=new HashMap<String, String>();
|
||||
public static Map<String, String> PlayerUserNames=new HashMap<String, String>();
|
||||
//public Map<Player, String> PlayerFlairs=new HashMap<Player, String>();
|
||||
public static ArrayList<Player> Players=new ArrayList<Player>();
|
||||
public static ArrayList<String> AcceptedPlayers=new ArrayList<String>(); //2015.07.16.
|
||||
public static ArrayList<String> IgnoredPlayers=new ArrayList<String>(); //2015.07.16.
|
||||
public Boolean HasIGFlair(String playername)
|
||||
{
|
||||
/*Player player=null;
|
||||
for(Player p : Players)
|
||||
{
|
||||
if(p.getName()==playername)
|
||||
{
|
||||
player=p;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(player==null)
|
||||
return false;*/
|
||||
return PlayerFlairs.containsKey(playername);
|
||||
}
|
||||
|
||||
public void SetFlair(String playername, String text, String flairclass, String username)
|
||||
{
|
||||
String finalflair;
|
||||
switch(flairclass)
|
||||
{
|
||||
case "press-1":
|
||||
finalflair="§c("+text+")§r";
|
||||
break;
|
||||
case "press-2":
|
||||
finalflair="§6("+text+")§r";
|
||||
break;
|
||||
case "press-3":
|
||||
finalflair="§e("+text+")§r";
|
||||
break;
|
||||
case "press-4":
|
||||
finalflair="§a("+text+")§r";
|
||||
break;
|
||||
case "press-5":
|
||||
finalflair="§9("+text+")§r";
|
||||
break;
|
||||
case "press-6":
|
||||
finalflair="§5("+text+")§r";
|
||||
break;
|
||||
case "no-press":
|
||||
finalflair="§7(non-pr.)§r";
|
||||
break;
|
||||
case "cheater":
|
||||
finalflair="§5("+text+")§r";
|
||||
break;
|
||||
default:
|
||||
finalflair="";
|
||||
break;
|
||||
}
|
||||
PlayerFlairs.put(playername, finalflair);
|
||||
PlayerUserNames.put(playername, username);
|
||||
/*for(Player player : Players)
|
||||
{
|
||||
if(player.getName()==playername)
|
||||
{
|
||||
PlayerFlairs.put(player, finalflair);
|
||||
break;
|
||||
}
|
||||
}*/
|
||||
//System.out.println("SetFlair - playername: "+playername+" text: "+text+" flairclass: "+flairclass);
|
||||
System.out.println("Added new flair to "+playername+": "+finalflair);
|
||||
for(Player player : Players)
|
||||
{
|
||||
//System.out.println("Online player: "+player.getName());
|
||||
//System.out.println("player.getName ("+player.getName()+") == playername ("+playername+"): "+(player.getName()==playername));
|
||||
if(player.getName().equals(playername))
|
||||
{
|
||||
//System.out.println("DisplayName: "+player.getDisplayName());
|
||||
//player.setDisplayName(player.getDisplayName()+finalflair);
|
||||
AppendPlayerDisplayFlair(player, username, finalflair);
|
||||
//System.out.println("DisplayName: "+player.getDisplayName());
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static String GetFlair(Player player)
|
||||
{ //2015.07.16.
|
||||
String flair=PlayerFlairs.get(player.getName());
|
||||
return flair==null ? "" : flair;
|
||||
}
|
||||
|
||||
public static void AppendPlayerDisplayFlair(Player player, String username, String flair)
|
||||
{
|
||||
if(IgnoredPlayers.contains(player.getName()))
|
||||
return;
|
||||
if(AcceptedPlayers.contains(player.getName()))
|
||||
player.setDisplayName(player.getDisplayName()+flair);
|
||||
else
|
||||
player.sendMessage("§9Are you Reddit user "+username+"?§r §6Type /u accept or /u ignore§r");
|
||||
|
||||
}
|
||||
}
|
|
@ -1,44 +0,0 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.event.player.PlayerQuitEvent;
|
||||
|
||||
public class PlayerListener implements Listener
|
||||
{ //2015.07.16.
|
||||
@EventHandler
|
||||
public void onPlayerJoin(PlayerJoinEvent event)
|
||||
{
|
||||
Player p=event.getPlayer();
|
||||
PluginMain.Players.add(p);
|
||||
//event.getPlayer().setDisplayName(p.getDisplayName()+PluginMain.GetFlair(p));
|
||||
PluginMain.AppendPlayerDisplayFlair(p, PluginMain.GetFlair(p));
|
||||
System.out.println("Added player "+p.getName());
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerLeave(PlayerQuitEvent event)
|
||||
{
|
||||
//for(Player player : PluginMain.Players)
|
||||
for(int i=0; i<PluginMain.Players.size();)
|
||||
{
|
||||
Player player=PluginMain.Players.get(i);
|
||||
if(player.getName().equals(event.getPlayer().getName()))
|
||||
{
|
||||
PluginMain.Players.remove(player);
|
||||
System.out.println("Removed player "+event.getPlayer().getName());
|
||||
}
|
||||
else
|
||||
i++; //If the player is removed, the next item will be on the same index
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerChat(AsyncPlayerChatEvent event)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
|
@ -1,36 +0,0 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class Commands implements CommandExecutor {
|
||||
// This method is called, when somebody uses our command
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
|
||||
if (sender instanceof Player) {
|
||||
Player player = (Player) sender;
|
||||
if(args.length<1)
|
||||
return false;
|
||||
if(!PluginMain.PlayerFlairs.containsKey(player.getName()))
|
||||
{
|
||||
player.sendMessage("Error: You need to write your username to the reddit thread at /r/TheButtonMinecraft");
|
||||
return true;
|
||||
}
|
||||
switch(args[0])
|
||||
{
|
||||
case "accept":
|
||||
PluginMain.AcceptedPlayers.add(player.getName());
|
||||
player.setDisplayName(player.getDisplayName()+PluginMain.PlayerFlairs.get(player.getName()));
|
||||
break;
|
||||
case "ignore":
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// If the player (or console) uses our command correct, we can return true
|
||||
return false;
|
||||
}
|
||||
}
|
|
@ -1,267 +0,0 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.FileReader;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import java.net.URLConnection;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONObject;
|
||||
|
||||
public class PluginMain extends JavaPlugin
|
||||
{ //Translated to Java: 2015.07.15.
|
||||
//A user, which flair isn't obtainable:
|
||||
//https://www.reddit.com/r/thebutton/comments/31c32v/i_pressed_the_button_without_really_thinking/
|
||||
// Fired when plugin is first enabled
|
||||
@Override
|
||||
public void onEnable()
|
||||
{
|
||||
System.out.println("The Button Auto-flair Plugin by NorbiPeti (:P)");
|
||||
//System.out.println("Original C# version: http://pastebin.com/tX8xCPbp");
|
||||
//System.out.println("The Java version is... Also made by the same person.");
|
||||
//System.out.println("With the help of StackOverflow and similar.");
|
||||
/*catch(MalformedURLException e)
|
||||
{
|
||||
}
|
||||
catch(IOException e)
|
||||
{
|
||||
}*/
|
||||
getServer().getPluginManager().registerEvents(new PlayerListener(), this);
|
||||
//System.out.println("Registering commands...");
|
||||
this.getCommand("u").setExecutor(new Commands());
|
||||
this.getCommand("u").setUsage(this.getCommand("u").getUsage().replace('&', '§'));
|
||||
try {
|
||||
BufferedReader br=new BufferedReader(new FileReader("flairsaccepted.txt"));
|
||||
String line;
|
||||
while ((line = br.readLine()) != null)
|
||||
{
|
||||
AcceptedPlayers.add(line.replace("\n", ""));
|
||||
}
|
||||
br.close();
|
||||
br=new BufferedReader(new FileReader("flairsignored.txt"));
|
||||
while ((line = br.readLine()) != null)
|
||||
{
|
||||
IgnoredPlayers.add(line.replace("\n", ""));
|
||||
}
|
||||
br.close();
|
||||
FileWriter fw;
|
||||
fw = new FileWriter("flairsaccepted.txt");
|
||||
fw.close();
|
||||
fw = new FileWriter("flairsignored.txt");
|
||||
fw.close();
|
||||
} catch (IOException e) {
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
//System.out.println("Registering done.");
|
||||
Runnable r=new Runnable(){public void run(){ThreadMethod();}};
|
||||
Thread t=new Thread(r);
|
||||
t.start();
|
||||
}
|
||||
Boolean stop=false;
|
||||
// Fired when plugin is disabled
|
||||
@Override
|
||||
public void onDisable()
|
||||
{
|
||||
for(String player : AcceptedPlayers)
|
||||
{
|
||||
try {
|
||||
BufferedWriter bw=new BufferedWriter(new FileWriter("flairsaccepted.txt", true));
|
||||
bw.write(player+"\n");
|
||||
bw.close();
|
||||
} catch (IOException e) {
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
}
|
||||
for(String player : IgnoredPlayers)
|
||||
{
|
||||
try {
|
||||
BufferedWriter bw=new BufferedWriter(new FileWriter("flairsignored.txt", true));
|
||||
bw.write(player+"\n");
|
||||
bw.close();
|
||||
} catch (IOException e) {
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
}
|
||||
stop=true;
|
||||
}
|
||||
|
||||
public void ThreadMethod() //<-- 2015.07.16.
|
||||
{
|
||||
while(!stop)
|
||||
{
|
||||
try
|
||||
{
|
||||
String body=DownloadString("https://www.reddit.com/r/TheButtonMinecraft/comments/3d25do/autoflair_system_comment_your_minecraft_name_and/.json?limit=1000");
|
||||
JSONArray json=new JSONArray(body).getJSONObject(1).getJSONObject("data").getJSONArray("children");
|
||||
for(Object obj : json)
|
||||
{
|
||||
JSONObject item = (JSONObject)obj;
|
||||
String author=item.getJSONObject("data").getString("author");
|
||||
String ign=item.getJSONObject("data").getString("body");
|
||||
int start = ign.indexOf("IGN:") + "IGN:".length();
|
||||
int end = ign.indexOf(' ', start);
|
||||
if (end == -1 || end == start)
|
||||
end=ign.indexOf('\n', start); //2015.07.15.
|
||||
if (end == -1 || end == start)
|
||||
ign = ign.substring(start);
|
||||
else
|
||||
ign = ign.substring(start, end);
|
||||
ign = ign.trim();
|
||||
if(HasIGFlair(ign))
|
||||
continue;
|
||||
//System.out.println("Author: "+author);
|
||||
try {
|
||||
Thread.sleep(10);
|
||||
} catch(InterruptedException ex) {
|
||||
Thread.currentThread().interrupt();
|
||||
}
|
||||
String[] flairdata = DownloadString("http://karmadecay.com/thebutton-data.php?users=" + author).replace("\"", "").split(":");
|
||||
String flair;
|
||||
if(flairdata.length > 1) //2015.07.15.
|
||||
flair = flairdata[1];
|
||||
else
|
||||
flair="";
|
||||
if (flair != "-1")
|
||||
flair = flair + "s";
|
||||
else
|
||||
flair = "non-presser";
|
||||
String flairclass;
|
||||
if(flairdata.length>1)
|
||||
flairclass = flairdata[2];
|
||||
else
|
||||
flairclass="unknown";
|
||||
SetFlair(ign, flair, flairclass, author);
|
||||
}
|
||||
Thread.sleep(10000);
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public String DownloadString(String urlstr) throws MalformedURLException, IOException
|
||||
{
|
||||
URL url = new URL(urlstr);
|
||||
URLConnection con = url.openConnection();
|
||||
con.setRequestProperty("User-Agent", "TheButtonAutoFlair");
|
||||
InputStream in = con.getInputStream();
|
||||
String encoding = con.getContentEncoding();
|
||||
encoding = encoding == null ? "UTF-8" : encoding;
|
||||
String body = IOUtils.toString(in, encoding);
|
||||
in.close();
|
||||
return body;
|
||||
}
|
||||
|
||||
//It has to store offline player flairs too, therefore it can't use Player object
|
||||
public static Map<String, String> PlayerFlairs=new HashMap<String, String>();
|
||||
public static Map<String, String> PlayerUserNames=new HashMap<String, String>();
|
||||
//public Map<Player, String> PlayerFlairs=new HashMap<Player, String>();
|
||||
public static ArrayList<Player> Players=new ArrayList<Player>();
|
||||
public static ArrayList<String> AcceptedPlayers=new ArrayList<String>(); //2015.07.16.
|
||||
public static ArrayList<String> IgnoredPlayers=new ArrayList<String>(); //2015.07.16.
|
||||
public Boolean HasIGFlair(String playername)
|
||||
{
|
||||
/*Player player=null;
|
||||
for(Player p : Players)
|
||||
{
|
||||
if(p.getName()==playername)
|
||||
{
|
||||
player=p;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(player==null)
|
||||
return false;*/
|
||||
return PlayerFlairs.containsKey(playername);
|
||||
}
|
||||
|
||||
public void SetFlair(String playername, String text, String flairclass, String username)
|
||||
{
|
||||
String finalflair;
|
||||
switch(flairclass)
|
||||
{
|
||||
case "press-1":
|
||||
finalflair="§c("+text+")§r";
|
||||
break;
|
||||
case "press-2":
|
||||
finalflair="§6("+text+")§r";
|
||||
break;
|
||||
case "press-3":
|
||||
finalflair="§e("+text+")§r";
|
||||
break;
|
||||
case "press-4":
|
||||
finalflair="§a("+text+")§r";
|
||||
break;
|
||||
case "press-5":
|
||||
finalflair="§9("+text+")§r";
|
||||
break;
|
||||
case "press-6":
|
||||
finalflair="§5("+text+")§r";
|
||||
break;
|
||||
case "no-press":
|
||||
finalflair="§7(non-pr.)§r";
|
||||
break;
|
||||
case "cheater":
|
||||
finalflair="§5("+text+")§r";
|
||||
break;
|
||||
default:
|
||||
finalflair="";
|
||||
break;
|
||||
}
|
||||
PlayerFlairs.put(playername, finalflair);
|
||||
PlayerUserNames.put(playername, username);
|
||||
/*for(Player player : Players)
|
||||
{
|
||||
if(player.getName()==playername)
|
||||
{
|
||||
PlayerFlairs.put(player, finalflair);
|
||||
break;
|
||||
}
|
||||
}*/
|
||||
//System.out.println("SetFlair - playername: "+playername+" text: "+text+" flairclass: "+flairclass);
|
||||
System.out.println("Added new flair to "+playername+": "+finalflair);
|
||||
for(Player player : Players)
|
||||
{
|
||||
//System.out.println("Online player: "+player.getName());
|
||||
//System.out.println("player.getName ("+player.getName()+") == playername ("+playername+"): "+(player.getName()==playername));
|
||||
if(player.getName().equals(playername))
|
||||
{
|
||||
//System.out.println("DisplayName: "+player.getDisplayName());
|
||||
//player.setDisplayName(player.getDisplayName()+finalflair);
|
||||
AppendPlayerDisplayFlair(player, username, finalflair);
|
||||
//System.out.println("DisplayName: "+player.getDisplayName());
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static String GetFlair(Player player)
|
||||
{ //2015.07.16.
|
||||
String flair=PlayerFlairs.get(player.getName());
|
||||
return flair==null ? "" : flair;
|
||||
}
|
||||
|
||||
public static void AppendPlayerDisplayFlair(Player player, String username, String flair)
|
||||
{
|
||||
if(IgnoredPlayers.contains(player.getName()))
|
||||
return;
|
||||
if(AcceptedPlayers.contains(player.getName()))
|
||||
player.setDisplayName(player.getDisplayName()+flair);
|
||||
else
|
||||
player.sendMessage("§9Are you Reddit user "+username+"?§r §6Type /u accept or /u ignore§r");
|
||||
|
||||
}
|
||||
}
|
|
@ -1,262 +0,0 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.FileReader;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import java.net.URLConnection;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONObject;
|
||||
|
||||
public class PluginMain extends JavaPlugin
|
||||
{ //Translated to Java: 2015.07.15.
|
||||
//A user, which flair isn't obtainable:
|
||||
//https://www.reddit.com/r/thebutton/comments/31c32v/i_pressed_the_button_without_really_thinking/
|
||||
// Fired when plugin is first enabled
|
||||
@Override
|
||||
public void onEnable()
|
||||
{
|
||||
System.out.println("The Button Auto-flair Plugin by NorbiPeti (:P)");
|
||||
//System.out.println("Original C# version: http://pastebin.com/tX8xCPbp");
|
||||
//System.out.println("The Java version is... Also made by the same person.");
|
||||
//System.out.println("With the help of StackOverflow and similar.");
|
||||
/*catch(MalformedURLException e)
|
||||
{
|
||||
}
|
||||
catch(IOException e)
|
||||
{
|
||||
}*/
|
||||
getServer().getPluginManager().registerEvents(new PlayerListener(), this);
|
||||
//System.out.println("Registering commands...");
|
||||
this.getCommand("u").setExecutor(new Commands());
|
||||
this.getCommand("u").setUsage(this.getCommand("u").getUsage().replace('&', '§'));
|
||||
try {
|
||||
BufferedReader br=new BufferedReader(new FileReader("flairsaccepted.txt"));
|
||||
String line;
|
||||
while ((line = br.readLine()) != null)
|
||||
{
|
||||
AcceptedPlayers.add(line.replace("\n", ""));
|
||||
}
|
||||
br.close();
|
||||
br=new BufferedReader(new FileReader("flairsignored.txt"));
|
||||
while ((line = br.readLine()) != null)
|
||||
{
|
||||
IgnoredPlayers.add(line.replace("\n", ""));
|
||||
}
|
||||
br.close();
|
||||
FileWriter fw;
|
||||
fw = new FileWriter("flairsaccepted.txt");
|
||||
fw.close();
|
||||
} catch (IOException e) {
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
//System.out.println("Registering done.");
|
||||
Runnable r=new Runnable(){public void run(){ThreadMethod();}};
|
||||
Thread t=new Thread(r);
|
||||
t.start();
|
||||
}
|
||||
Boolean stop=false;
|
||||
// Fired when plugin is disabled
|
||||
@Override
|
||||
public void onDisable()
|
||||
{
|
||||
for(String player : AcceptedPlayers)
|
||||
{
|
||||
try {
|
||||
BufferedWriter bw=new BufferedWriter(new FileWriter("flairsaccepted.txt", true));
|
||||
bw.write(player+"\n");
|
||||
bw.close();
|
||||
} catch (IOException e) {
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
}
|
||||
try {
|
||||
BufferedWriter bw=new BufferedWriter(new FileWriter("flairsaccepted.txt", true));
|
||||
bw.write(player.getName()+"\n");
|
||||
bw.close();
|
||||
} catch (IOException e) {
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
stop=true;
|
||||
}
|
||||
|
||||
public void ThreadMethod() //<-- 2015.07.16.
|
||||
{
|
||||
while(!stop)
|
||||
{
|
||||
try
|
||||
{
|
||||
String body=DownloadString("https://www.reddit.com/r/TheButtonMinecraft/comments/3d25do/autoflair_system_comment_your_minecraft_name_and/.json?limit=1000");
|
||||
JSONArray json=new JSONArray(body).getJSONObject(1).getJSONObject("data").getJSONArray("children");
|
||||
for(Object obj : json)
|
||||
{
|
||||
JSONObject item = (JSONObject)obj;
|
||||
String author=item.getJSONObject("data").getString("author");
|
||||
String ign=item.getJSONObject("data").getString("body");
|
||||
int start = ign.indexOf("IGN:") + "IGN:".length();
|
||||
int end = ign.indexOf(' ', start);
|
||||
if (end == -1 || end == start)
|
||||
end=ign.indexOf('\n', start); //2015.07.15.
|
||||
if (end == -1 || end == start)
|
||||
ign = ign.substring(start);
|
||||
else
|
||||
ign = ign.substring(start, end);
|
||||
ign = ign.trim();
|
||||
if(HasIGFlair(ign))
|
||||
continue;
|
||||
//System.out.println("Author: "+author);
|
||||
try {
|
||||
Thread.sleep(10);
|
||||
} catch(InterruptedException ex) {
|
||||
Thread.currentThread().interrupt();
|
||||
}
|
||||
String[] flairdata = DownloadString("http://karmadecay.com/thebutton-data.php?users=" + author).replace("\"", "").split(":");
|
||||
String flair;
|
||||
if(flairdata.length > 1) //2015.07.15.
|
||||
flair = flairdata[1];
|
||||
else
|
||||
flair="";
|
||||
if (flair != "-1")
|
||||
flair = flair + "s";
|
||||
else
|
||||
flair = "non-presser";
|
||||
String flairclass;
|
||||
if(flairdata.length>1)
|
||||
flairclass = flairdata[2];
|
||||
else
|
||||
flairclass="unknown";
|
||||
SetFlair(ign, flair, flairclass, author);
|
||||
}
|
||||
Thread.sleep(10000);
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public String DownloadString(String urlstr) throws MalformedURLException, IOException
|
||||
{
|
||||
URL url = new URL(urlstr);
|
||||
URLConnection con = url.openConnection();
|
||||
con.setRequestProperty("User-Agent", "TheButtonAutoFlair");
|
||||
InputStream in = con.getInputStream();
|
||||
String encoding = con.getContentEncoding();
|
||||
encoding = encoding == null ? "UTF-8" : encoding;
|
||||
String body = IOUtils.toString(in, encoding);
|
||||
in.close();
|
||||
return body;
|
||||
}
|
||||
|
||||
//It has to store offline player flairs too, therefore it can't use Player object
|
||||
public static Map<String, String> PlayerFlairs=new HashMap<String, String>();
|
||||
public static Map<String, String> PlayerUserNames=new HashMap<String, String>();
|
||||
//public Map<Player, String> PlayerFlairs=new HashMap<Player, String>();
|
||||
public static ArrayList<Player> Players=new ArrayList<Player>();
|
||||
public static ArrayList<String> AcceptedPlayers=new ArrayList<String>(); //2015.07.16.
|
||||
public static ArrayList<String> IgnoredPlayers=new ArrayList<String>(); //2015.07.16.
|
||||
public Boolean HasIGFlair(String playername)
|
||||
{
|
||||
/*Player player=null;
|
||||
for(Player p : Players)
|
||||
{
|
||||
if(p.getName()==playername)
|
||||
{
|
||||
player=p;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(player==null)
|
||||
return false;*/
|
||||
return PlayerFlairs.containsKey(playername);
|
||||
}
|
||||
|
||||
public void SetFlair(String playername, String text, String flairclass, String username)
|
||||
{
|
||||
String finalflair;
|
||||
switch(flairclass)
|
||||
{
|
||||
case "press-1":
|
||||
finalflair="§c("+text+")§r";
|
||||
break;
|
||||
case "press-2":
|
||||
finalflair="§6("+text+")§r";
|
||||
break;
|
||||
case "press-3":
|
||||
finalflair="§e("+text+")§r";
|
||||
break;
|
||||
case "press-4":
|
||||
finalflair="§a("+text+")§r";
|
||||
break;
|
||||
case "press-5":
|
||||
finalflair="§9("+text+")§r";
|
||||
break;
|
||||
case "press-6":
|
||||
finalflair="§5("+text+")§r";
|
||||
break;
|
||||
case "no-press":
|
||||
finalflair="§7(non-pr.)§r";
|
||||
break;
|
||||
case "cheater":
|
||||
finalflair="§5("+text+")§r";
|
||||
break;
|
||||
default:
|
||||
finalflair="";
|
||||
break;
|
||||
}
|
||||
PlayerFlairs.put(playername, finalflair);
|
||||
PlayerUserNames.put(playername, username);
|
||||
/*for(Player player : Players)
|
||||
{
|
||||
if(player.getName()==playername)
|
||||
{
|
||||
PlayerFlairs.put(player, finalflair);
|
||||
break;
|
||||
}
|
||||
}*/
|
||||
//System.out.println("SetFlair - playername: "+playername+" text: "+text+" flairclass: "+flairclass);
|
||||
System.out.println("Added new flair to "+playername+": "+finalflair);
|
||||
for(Player player : Players)
|
||||
{
|
||||
//System.out.println("Online player: "+player.getName());
|
||||
//System.out.println("player.getName ("+player.getName()+") == playername ("+playername+"): "+(player.getName()==playername));
|
||||
if(player.getName().equals(playername))
|
||||
{
|
||||
//System.out.println("DisplayName: "+player.getDisplayName());
|
||||
//player.setDisplayName(player.getDisplayName()+finalflair);
|
||||
AppendPlayerDisplayFlair(player, username, finalflair);
|
||||
//System.out.println("DisplayName: "+player.getDisplayName());
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static String GetFlair(Player player)
|
||||
{ //2015.07.16.
|
||||
String flair=PlayerFlairs.get(player.getName());
|
||||
return flair==null ? "" : flair;
|
||||
}
|
||||
|
||||
public static void AppendPlayerDisplayFlair(Player player, String username, String flair)
|
||||
{
|
||||
if(IgnoredPlayers.contains(player.getName()))
|
||||
return;
|
||||
if(AcceptedPlayers.contains(player.getName()))
|
||||
player.setDisplayName(player.getDisplayName()+flair);
|
||||
else
|
||||
player.sendMessage("§9Are you Reddit user "+username+"?§r §6Type /u accept or /u ignore§r");
|
||||
|
||||
}
|
||||
}
|
|
@ -1,28 +0,0 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.event.player.PlayerQuitEvent;
|
||||
|
||||
public class PlayerListener implements Listener
|
||||
{ //2015.07.16.
|
||||
@EventHandler
|
||||
public void onPlayerJoin(PlayerJoinEvent event)
|
||||
{
|
||||
PluginMain.Players.add(event.getPlayer());
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerLeave(PlayerQuitEvent event)
|
||||
{
|
||||
PluginMain.Players.removeIf(new MyPredicate<Player>(event.getPlayer().getName()))
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerChat(AsyncPlayerChatEvent event)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
|
@ -1,278 +0,0 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.File;
|
||||
import java.io.FileReader;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import java.net.URLConnection;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONObject;
|
||||
|
||||
public class PluginMain extends JavaPlugin
|
||||
{ //Translated to Java: 2015.07.15.
|
||||
//A user, which flair isn't obtainable:
|
||||
//https://www.reddit.com/r/thebutton/comments/31c32v/i_pressed_the_button_without_really_thinking/
|
||||
// Fired when plugin is first enabled
|
||||
@Override
|
||||
public void onEnable()
|
||||
{
|
||||
System.out.println("The Button Auto-flair Plugin by NorbiPeti (:P)");
|
||||
//System.out.println("Original C# version: http://pastebin.com/tX8xCPbp");
|
||||
//System.out.println("The Java version is... Also made by the same person.");
|
||||
//System.out.println("With the help of StackOverflow and similar.");
|
||||
/*catch(MalformedURLException e)
|
||||
{
|
||||
}
|
||||
catch(IOException e)
|
||||
{
|
||||
}*/
|
||||
getServer().getPluginManager().registerEvents(new PlayerListener(), this);
|
||||
//System.out.println("Registering commands...");
|
||||
this.getCommand("u").setExecutor(new Commands());
|
||||
this.getCommand("u").setUsage(this.getCommand("u").getUsage().replace('&', '§'));
|
||||
try {
|
||||
File file=new File("flairsaccepted.txt");
|
||||
if(file.exists())
|
||||
{
|
||||
BufferedReader br=new BufferedReader(new FileReader("flairsaccepted.txt"));
|
||||
String line;
|
||||
while ((line = br.readLine()) != null)
|
||||
{
|
||||
AcceptedPlayers.add(line.replace("\n", ""));
|
||||
}
|
||||
br.close();
|
||||
}
|
||||
file=new File("flairsignored.txt");
|
||||
if(file.exists())
|
||||
{
|
||||
br=new BufferedReader(new FileReader("flairsignored.txt"));
|
||||
while ((line = br.readLine()) != null)
|
||||
{
|
||||
IgnoredPlayers.add(line.replace("\n", ""));
|
||||
}
|
||||
br.close();
|
||||
}
|
||||
FileWriter fw;
|
||||
fw = new FileWriter("flairsaccepted.txt");
|
||||
fw.close();
|
||||
fw = new FileWriter("flairsignored.txt");
|
||||
fw.close();
|
||||
} catch (IOException e) {
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
//System.out.println("Registering done.");
|
||||
Runnable r=new Runnable(){public void run(){ThreadMethod();}};
|
||||
Thread t=new Thread(r);
|
||||
t.start();
|
||||
}
|
||||
Boolean stop=false;
|
||||
// Fired when plugin is disabled
|
||||
@Override
|
||||
public void onDisable()
|
||||
{
|
||||
for(String player : AcceptedPlayers)
|
||||
{
|
||||
File file=new File("flairsaccepted.txt");
|
||||
try {
|
||||
BufferedWriter bw=new BufferedWriter(new FileWriter(file, true));
|
||||
bw.write(player+"\n");
|
||||
bw.close();
|
||||
} catch (IOException e) {
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
}
|
||||
for(String player : IgnoredPlayers)
|
||||
{
|
||||
File file=new File("flairsignored.txt");
|
||||
try {
|
||||
BufferedWriter bw=new BufferedWriter(new FileWriter(file, true));
|
||||
bw.write(player+"\n");
|
||||
bw.close();
|
||||
} catch (IOException e) {
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
}
|
||||
stop=true;
|
||||
}
|
||||
|
||||
public void ThreadMethod() //<-- 2015.07.16.
|
||||
{
|
||||
while(!stop)
|
||||
{
|
||||
try
|
||||
{
|
||||
String body=DownloadString("https://www.reddit.com/r/TheButtonMinecraft/comments/3d25do/autoflair_system_comment_your_minecraft_name_and/.json?limit=1000");
|
||||
JSONArray json=new JSONArray(body).getJSONObject(1).getJSONObject("data").getJSONArray("children");
|
||||
for(Object obj : json)
|
||||
{
|
||||
JSONObject item = (JSONObject)obj;
|
||||
String author=item.getJSONObject("data").getString("author");
|
||||
String ign=item.getJSONObject("data").getString("body");
|
||||
int start = ign.indexOf("IGN:") + "IGN:".length();
|
||||
int end = ign.indexOf(' ', start);
|
||||
if (end == -1 || end == start)
|
||||
end=ign.indexOf('\n', start); //2015.07.15.
|
||||
if (end == -1 || end == start)
|
||||
ign = ign.substring(start);
|
||||
else
|
||||
ign = ign.substring(start, end);
|
||||
ign = ign.trim();
|
||||
if(HasIGFlair(ign))
|
||||
continue;
|
||||
//System.out.println("Author: "+author);
|
||||
try {
|
||||
Thread.sleep(10);
|
||||
} catch(InterruptedException ex) {
|
||||
Thread.currentThread().interrupt();
|
||||
}
|
||||
String[] flairdata = DownloadString("http://karmadecay.com/thebutton-data.php?users=" + author).replace("\"", "").split(":");
|
||||
String flair;
|
||||
if(flairdata.length > 1) //2015.07.15.
|
||||
flair = flairdata[1];
|
||||
else
|
||||
flair="";
|
||||
if (flair != "-1")
|
||||
flair = flair + "s";
|
||||
else
|
||||
flair = "non-presser";
|
||||
String flairclass;
|
||||
if(flairdata.length>1)
|
||||
flairclass = flairdata[2];
|
||||
else
|
||||
flairclass="unknown";
|
||||
SetFlair(ign, flair, flairclass, author);
|
||||
}
|
||||
Thread.sleep(10000);
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public String DownloadString(String urlstr) throws MalformedURLException, IOException
|
||||
{
|
||||
URL url = new URL(urlstr);
|
||||
URLConnection con = url.openConnection();
|
||||
con.setRequestProperty("User-Agent", "TheButtonAutoFlair");
|
||||
InputStream in = con.getInputStream();
|
||||
String encoding = con.getContentEncoding();
|
||||
encoding = encoding == null ? "UTF-8" : encoding;
|
||||
String body = IOUtils.toString(in, encoding);
|
||||
in.close();
|
||||
return body;
|
||||
}
|
||||
|
||||
//It has to store offline player flairs too, therefore it can't use Player object
|
||||
public static Map<String, String> PlayerFlairs=new HashMap<String, String>();
|
||||
public static Map<String, String> PlayerUserNames=new HashMap<String, String>();
|
||||
//public Map<Player, String> PlayerFlairs=new HashMap<Player, String>();
|
||||
public static ArrayList<Player> Players=new ArrayList<Player>();
|
||||
public static ArrayList<String> AcceptedPlayers=new ArrayList<String>(); //2015.07.16.
|
||||
public static ArrayList<String> IgnoredPlayers=new ArrayList<String>(); //2015.07.16.
|
||||
public Boolean HasIGFlair(String playername)
|
||||
{
|
||||
/*Player player=null;
|
||||
for(Player p : Players)
|
||||
{
|
||||
if(p.getName()==playername)
|
||||
{
|
||||
player=p;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(player==null)
|
||||
return false;*/
|
||||
return PlayerFlairs.containsKey(playername);
|
||||
}
|
||||
|
||||
public void SetFlair(String playername, String text, String flairclass, String username)
|
||||
{
|
||||
String finalflair;
|
||||
switch(flairclass)
|
||||
{
|
||||
case "press-1":
|
||||
finalflair="§c("+text+")§r";
|
||||
break;
|
||||
case "press-2":
|
||||
finalflair="§6("+text+")§r";
|
||||
break;
|
||||
case "press-3":
|
||||
finalflair="§e("+text+")§r";
|
||||
break;
|
||||
case "press-4":
|
||||
finalflair="§a("+text+")§r";
|
||||
break;
|
||||
case "press-5":
|
||||
finalflair="§9("+text+")§r";
|
||||
break;
|
||||
case "press-6":
|
||||
finalflair="§5("+text+")§r";
|
||||
break;
|
||||
case "no-press":
|
||||
finalflair="§7(non-pr.)§r";
|
||||
break;
|
||||
case "cheater":
|
||||
finalflair="§5("+text+")§r";
|
||||
break;
|
||||
default:
|
||||
finalflair="";
|
||||
break;
|
||||
}
|
||||
PlayerFlairs.put(playername, finalflair);
|
||||
PlayerUserNames.put(playername, username);
|
||||
/*for(Player player : Players)
|
||||
{
|
||||
if(player.getName()==playername)
|
||||
{
|
||||
PlayerFlairs.put(player, finalflair);
|
||||
break;
|
||||
}
|
||||
}*/
|
||||
//System.out.println("SetFlair - playername: "+playername+" text: "+text+" flairclass: "+flairclass);
|
||||
System.out.println("Added new flair to "+playername+": "+finalflair);
|
||||
for(Player player : Players)
|
||||
{
|
||||
//System.out.println("Online player: "+player.getName());
|
||||
//System.out.println("player.getName ("+player.getName()+") == playername ("+playername+"): "+(player.getName()==playername));
|
||||
if(player.getName().equals(playername))
|
||||
{
|
||||
//System.out.println("DisplayName: "+player.getDisplayName());
|
||||
//player.setDisplayName(player.getDisplayName()+finalflair);
|
||||
AppendPlayerDisplayFlair(player, username, finalflair);
|
||||
//System.out.println("DisplayName: "+player.getDisplayName());
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static String GetFlair(Player player)
|
||||
{ //2015.07.16.
|
||||
String flair=PlayerFlairs.get(player.getName());
|
||||
return flair==null ? "" : flair;
|
||||
}
|
||||
|
||||
public static void AppendPlayerDisplayFlair(Player player, String username, String flair)
|
||||
{
|
||||
if(IgnoredPlayers.contains(player.getName()))
|
||||
return;
|
||||
if(AcceptedPlayers.contains(player.getName()))
|
||||
player.setDisplayName(player.getDisplayName()+flair);
|
||||
else
|
||||
player.sendMessage("§9Are you Reddit user "+username+"?§r §6Type /u accept or /u ignore§r");
|
||||
|
||||
}
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import java.util.function.Predicate;
|
||||
|
||||
public class MyPredicate<T> implements Predicate<T>
|
||||
{
|
||||
@Override
|
||||
public boolean test(T arg0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,47 +0,0 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class Commands implements CommandExecutor {
|
||||
// This method is called, when somebody uses our command
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
|
||||
if (sender instanceof Player) {
|
||||
Player player = (Player) sender;
|
||||
if(args.length<1)
|
||||
return false;
|
||||
if(!PluginMain.PlayerFlairs.containsKey(player.getName()))
|
||||
{
|
||||
player.sendMessage("Error: You need to write your username to the reddit thread at /r/TheButtonMinecraft");
|
||||
return true;
|
||||
}
|
||||
switch(args[0])
|
||||
{
|
||||
case "accept":
|
||||
if(PluginMain.IgnoredPlayers.contains(player.getName()))
|
||||
PluginMain.IgnoredPlayers.remove(player.getName());
|
||||
if(!PluginMain.AcceptedPlayers.contains(player.getName()))
|
||||
PluginMain.AcceptedPlayers.add(player.getName());
|
||||
String flair=PluginMain.PlayerFlairs.get(player.getName());
|
||||
player.setDisplayName(player.getDisplayName()+flair);
|
||||
player.sendMessage("§6Your flair has been set:§r "+flair);
|
||||
break;
|
||||
case "ignore":
|
||||
if(PluginMain.AcceptedPlayers.contains(player.getName()))
|
||||
PluginMain.AcceptedPlayers.remove(player.getName());
|
||||
if(!PluginMain.IgnoredPlayers.contains(player.getName()))
|
||||
PluginMain.IgnoredPlayers.add(player.getName());
|
||||
break;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// If the player (or console) uses our command correct, we can return true
|
||||
return false;
|
||||
}
|
||||
}
|
|
@ -1,262 +0,0 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.FileReader;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import java.net.URLConnection;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONObject;
|
||||
|
||||
public class PluginMain extends JavaPlugin
|
||||
{ //Translated to Java: 2015.07.15.
|
||||
//A user, which flair isn't obtainable:
|
||||
//https://www.reddit.com/r/thebutton/comments/31c32v/i_pressed_the_button_without_really_thinking/
|
||||
// Fired when plugin is first enabled
|
||||
@Override
|
||||
public void onEnable()
|
||||
{
|
||||
System.out.println("The Button Auto-flair Plugin by NorbiPeti (:P)");
|
||||
//System.out.println("Original C# version: http://pastebin.com/tX8xCPbp");
|
||||
//System.out.println("The Java version is... Also made by the same person.");
|
||||
//System.out.println("With the help of StackOverflow and similar.");
|
||||
/*catch(MalformedURLException e)
|
||||
{
|
||||
}
|
||||
catch(IOException e)
|
||||
{
|
||||
}*/
|
||||
getServer().getPluginManager().registerEvents(new PlayerListener(), this);
|
||||
//System.out.println("Registering commands...");
|
||||
this.getCommand("u").setExecutor(new Commands());
|
||||
this.getCommand("u").setUsage(this.getCommand("u").getUsage().replace('&', '§'));
|
||||
try {
|
||||
BufferedReader br=new BufferedReader(new FileReader("flairsaccepted.txt"));
|
||||
String line;
|
||||
while ((line = br.readLine()) != null)
|
||||
{
|
||||
AcceptedPlayers.add(line.replace("\n", ""));
|
||||
}
|
||||
br.close();
|
||||
br=new BufferedReader(new FileReader("flairsignored.txt"));
|
||||
while ((line = br.readLine()) != null)
|
||||
{
|
||||
IgnoredPlayers.add(line.replace("\n", ""));
|
||||
}
|
||||
br.close();
|
||||
FileWriter fw;
|
||||
fw = new FileWriter("flairsaccepted.txt");
|
||||
fw.close();
|
||||
} catch (IOException e) {
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
//System.out.println("Registering done.");
|
||||
Runnable r=new Runnable(){public void run(){ThreadMethod();}};
|
||||
Thread t=new Thread(r);
|
||||
t.start();
|
||||
}
|
||||
Boolean stop=false;
|
||||
// Fired when plugin is disabled
|
||||
@Override
|
||||
public void onDisable()
|
||||
{
|
||||
for(String player : AcceptedPlayers)
|
||||
{
|
||||
try {
|
||||
BufferedWriter bw=new BufferedWriter(new FileWriter("flairsaccepted.txt", true));
|
||||
bw.write(player+"\n");
|
||||
bw.close();
|
||||
} catch (IOException e) {
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
}
|
||||
try {
|
||||
BufferedWriter bw=new BufferedWriter(new FileWriter("flairsaccepted.txt", true));
|
||||
bw.write(player.getName()+"\n");
|
||||
bw.close();
|
||||
} catch (IOException e) {
|
||||
System.out.println("Error!\n"+e);
|
||||
}
|
||||
stop=true;
|
||||
}
|
||||
|
||||
public void ThreadMethod() //<-- 2015.07.16.
|
||||