From 45b69692511f191fc52321232a908ad42be6f99c Mon Sep 17 00:00:00 2001 From: NorbiPeti Date: Wed, 19 Aug 2015 21:30:27 +0200 Subject: [PATCH] Added announce messages and made some fixes - Added a bunch of commands (/u announce) - Fixed some stuff --- .metadata/.mylyn/.tasks.xml.zip | Bin 250 -> 250 bytes .metadata/.mylyn/tasks.xml.zip | Bin 250 -> 250 bytes .../0/d057cb01fa3d00151c31fb33fff4337f | 7 - .../10/70a9b080083e00151c31fb33fff4337f | 25 -- .../11/50857fe1f93d00151c31fb33fff4337f | 5 - .../15/6060baa6313e00151cbdba8b5f0a340e | 70 ---- .../17/d004cf02fd3d00151c31fb33fff4337f | 24 -- .../19/a03f959e6b3f00151fb6edb183f9215c | 277 ------------- .../1e/50995637313e00151cbdba8b5f0a340e | 66 --- .../20/10fb34ff313e00151cbdba8b5f0a340e | 70 ---- .../22/50b446ea313e00151cbdba8b5f0a340e | 70 ---- .../24/40ebdecc6b3f00151fb6edb183f9215c | 285 ------------- .../24/f05e1fe03f3f00151fb6edb183f9215c | 31 -- .../28/50c3d09efd3d00151c31fb33fff4337f | 26 -- .../29/500adc32083e00151c31fb33fff4337f | 25 -- .../2a/e01483b3313e00151cbdba8b5f0a340e | 70 ---- .../2a/e078d72f343e00151cbdba8b5f0a340e | 70 ---- .../2b/8042c3dd6b3f00151fb6edb183f9215c | 285 ------------- .../2f/70a2035a333e00151cbdba8b5f0a340e | 7 - .../34/e07767e9313e00151cbdba8b5f0a340e | 74 ---- .../36/e04434aa313e00151cbdba8b5f0a340e | 70 ---- .../38/f01dd9d8333e00151cbdba8b5f0a340e | 8 - .../39/30814aea6b3f00151fb6edb183f9215c | 286 ------------- .../39/e05f8acf313e00151cbdba8b5f0a340e | 74 ---- .../3a/d0a96a2e313e00151cbdba8b5f0a340e | 66 --- .../3c/508e5c2c053e00151c31fb33fff4337f | 25 -- .../3f/5082b24efd3d00151c31fb33fff4337f | 24 -- .../4/d01b9292fc3d00151c31fb33fff4337f | 15 - .../42/50bc64c9313e00151cbdba8b5f0a340e | 74 ---- .../43/b06648906c3f00151fb6edb183f9215c | 290 ------------- .../43/f011b9b4333e00151cbdba8b5f0a340e | 347 ---------------- .../44/40c13c85083e00151c31fb33fff4337f | 25 -- .../47/b0efe5c83f3f00151fb6edb183f9215c | 31 -- .../49/c0672b28053e00151c31fb33fff4337f | 25 -- .../4e/e0d3ac3b0c3e00151089cca86c5b1a99 | 25 -- .../5/c0df337dfd3d00151c31fb33fff4337f | 27 -- .../53/d0e9bcd5333e00151cbdba8b5f0a340e | 6 - .../5a/602205ac333e00151cbdba8b5f0a340e | 8 - .../5d/608dcfff313e00151cbdba8b5f0a340e | 70 ---- .../60/009554caf93d00151c31fb33fff4337f | 0 .../60/607ba075fd3d00151c31fb33fff4337f | 26 -- .../65/e0e09818313e00151cbdba8b5f0a340e | 67 --- .../66/40244c64fd3d00151c31fb33fff4337f | 25 -- .../67/f0473bebf93d00151c31fb33fff4337f | 6 - .../68/5008c7fc313e00151cbdba8b5f0a340e | 70 ---- .../6a/303f85d66d3f00151fb6edb183f9215c | 293 ------------- .../6b/501ffbd8fb3d00151c31fb33fff4337f | 14 - .../6c/e07524e9f93d00151c31fb33fff4337f | 6 - .../6e/f0362afd313e00151cbdba8b5f0a340e | 70 ---- .../6f/d08b30cdf93d00151c31fb33fff4337f | 5 - .../72/008777b4313e00151cbdba8b5f0a340e | 71 ---- .../72/704702fe313e00151cbdba8b5f0a340e | 70 ---- .../74/70e4dd2b313e00151cbdba8b5f0a340e | 66 --- .../77/c062443b883e00151ce8ff6d4f74dabd | 30 -- .../7b/004a78fdfc3d00151c31fb33fff4337f | 21 - .../7f/500624aa333e00151cbdba8b5f0a340e | 6 - .../8/608aaa5d333e00151cbdba8b5f0a340e | 7 - .../80/30fd52f56d3f00151fb6edb183f9215c | 7 - .../87/b0b359446e3f00151fb6edb183f9215c | 294 ------------- .../8c/303a3a836b3f00151fb6edb183f9215c | 277 ------------- .../8e/603503de313e00151cbdba8b5f0a340e | 74 ---- .../90/e0cf9548333e00151cbdba8b5f0a340e | 0 .../93/e0833e34313e00151cbdba8b5f0a340e | 66 --- .../97/d0e97d74fc3d00151c31fb33fff4337f | 15 - .../98/a09a052a343e00151cbdba8b5f0a340e | 6 - .../99/6080b854333e00151cbdba8b5f0a340e | 5 - .../9a/309bd1b16c3f00151fb6edb183f9215c | 291 ------------- .../9b/50bbab1a313e00151cbdba8b5f0a340e | 25 -- .../a5/40a714b86b3f00151fb6edb183f9215c | 278 ------------- .../aa/80130ae1833e00151ce8ff6d4f74dabd | 70 ---- .../aa/b06bd2ac6b3f00151fb6edb183f9215c | 278 ------------- .../ab/30c56ef06b3f00151fb6edb183f9215c | 290 ------------- .../ab/c074771bfa3d00151c31fb33fff4337f | 11 - .../ab/e0694d38883e00151ce8ff6d4f74dabd | 24 -- .../b1/d01b5059313e00151cbdba8b5f0a340e | 67 --- .../b2/e05c77a7333e00151cbdba8b5f0a340e | 386 ------------------ .../b5/60e643b8333e00151cbdba8b5f0a340e | 331 --------------- .../b5/d0028812fa3d00151c31fb33fff4337f | 10 - .../b7/308c4f936c3f00151fb6edb183f9215c | 291 ------------- .../b7/500aa169fd3d00151c31fb33fff4337f | 25 -- .../ba/50775507fd3d00151c31fb33fff4337f | 24 -- .../bd/c0c10ce46b3f00151fb6edb183f9215c | 287 ------------- .../bd/d05bd96d083e00151c31fb33fff4337f | 26 -- .../bf/b03cb8c36b3f00151fb6edb183f9215c | 285 ------------- .../c/609f275f313e00151cbdba8b5f0a340e | 70 ---- .../c/b022c7a5213f00151fb6edb183f9215c | 71 ---- .../c0/b0b29cfe313e00151cbdba8b5f0a340e | 70 ---- .../c2/e08d9071fc3d00151c31fb33fff4337f | 14 - .../c4/50682add833e00151ce8ff6d4f74dabd | 70 ---- .../c7/b027ea9c6b3f00151fb6edb183f9215c | 277 ------------- .../ce/b03944c06d3f00151fb6edb183f9215c | 293 ------------- .../cf/50fc0176fd3d00151c31fb33fff4337f | 27 -- .../d0/40969eebfc3d00151c31fb33fff4337f | 19 - .../d1/d0e5e980a03e00151ce8ff6d4f74dabd | 70 ---- .../d5/60556449313e00151cbdba8b5f0a340e | 67 --- .../d6/d059d3b7fd3d00151c31fb33fff4337f | 25 -- .../d7/d06d9fe5f93d00151c31fb33fff4337f | 5 - .../d9/305eeba36b3f00151fb6edb183f9215c | 277 ------------- .../d9/30852a8e6b3f00151fb6edb183f9215c | 277 ------------- .../db/d0069951053e00151c31fb33fff4337f | 26 -- .../de/500da46afb3d00151c31fb33fff4337f | 11 - .../de/d037d008fa3d00151c31fb33fff4337f | 9 - .../e1/b07ff7bc6d3f00151fb6edb183f9215c | 291 ------------- .../e1/d020d619fa3d00151c31fb33fff4337f | 10 - .../e3/602ab6bd313e00151cbdba8b5f0a340e | 71 ---- .../e4/60215032313e00151cbdba8b5f0a340e | 66 --- .../e4/60f9a9af313e00151cbdba8b5f0a340e | 70 ---- .../e7/d06d6706fd3d00151c31fb33fff4337f | 24 -- .../ec/c0d3c395fc3d00151c31fb33fff4337f | 19 - .../f0/d01b9bcffc3d00151c31fb33fff4337f | 19 - .../f1/b00a25cf6b3f00151fb6edb183f9215c | 284 ------------- .../f3/d0a2d21dfa3d00151c31fb33fff4337f | 11 - .../f4/303fdacd3f3f00151fb6edb183f9215c | 31 -- .../f4/d034285bfd3d00151c31fb33fff4337f | 25 -- .../.indexes/e4/77/69/e/history.index | Bin 6030 -> 4440 bytes .../TheButtonAutoFlair/.indexes/history.index | Bin 116 -> 68 bytes .../.projects/TheButtonAutoFlair/.markers | Bin 1774 -> 1235 bytes .../.safetable/org.eclipse.core.resources | Bin 12486 -> 1763 bytes .../.settings/org.eclipse.jdt.ui.prefs | 2 +- .../org.eclipse.e4.workbench/workbench.xmi | 116 +++--- .../org.eclipse.jdt.core/1508644233.index | Bin 17899 -> 18476 bytes .../QualifiedTypeNameHistory.xml | 10 +- .../dialog_settings.xml | 2 + .../tk/sznp/thebuttonautoflair/Commands.class | Bin 9429 -> 13018 bytes .../thebuttonautoflair/PluginMain$1.class | Bin 679 -> 679 bytes .../sznp/thebuttonautoflair/PluginMain.class | Bin 13721 -> 15142 bytes .../thebuttonautoflair/AnnouncerThread.java | 23 ++ .../tk/sznp/thebuttonautoflair/Commands.java | 142 +++++++ .../sznp/thebuttonautoflair/PluginMain.java | 82 +++- 129 files changed, 309 insertions(+), 10246 deletions(-) delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/0/d057cb01fa3d00151c31fb33fff4337f delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/10/70a9b080083e00151c31fb33fff4337f delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/11/50857fe1f93d00151c31fb33fff4337f delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/15/6060baa6313e00151cbdba8b5f0a340e delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/17/d004cf02fd3d00151c31fb33fff4337f delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/19/a03f959e6b3f00151fb6edb183f9215c delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/1e/50995637313e00151cbdba8b5f0a340e delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/20/10fb34ff313e00151cbdba8b5f0a340e delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/22/50b446ea313e00151cbdba8b5f0a340e delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/24/40ebdecc6b3f00151fb6edb183f9215c delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/24/f05e1fe03f3f00151fb6edb183f9215c delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/28/50c3d09efd3d00151c31fb33fff4337f delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/29/500adc32083e00151c31fb33fff4337f delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/2a/e01483b3313e00151cbdba8b5f0a340e delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/2a/e078d72f343e00151cbdba8b5f0a340e delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/2b/8042c3dd6b3f00151fb6edb183f9215c delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/2f/70a2035a333e00151cbdba8b5f0a340e delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/34/e07767e9313e00151cbdba8b5f0a340e delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/36/e04434aa313e00151cbdba8b5f0a340e delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/38/f01dd9d8333e00151cbdba8b5f0a340e delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/39/30814aea6b3f00151fb6edb183f9215c delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/39/e05f8acf313e00151cbdba8b5f0a340e delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/3a/d0a96a2e313e00151cbdba8b5f0a340e delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/3c/508e5c2c053e00151c31fb33fff4337f delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/3f/5082b24efd3d00151c31fb33fff4337f delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/4/d01b9292fc3d00151c31fb33fff4337f delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/42/50bc64c9313e00151cbdba8b5f0a340e delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/43/b06648906c3f00151fb6edb183f9215c delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/43/f011b9b4333e00151cbdba8b5f0a340e delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/44/40c13c85083e00151c31fb33fff4337f delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/47/b0efe5c83f3f00151fb6edb183f9215c delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/49/c0672b28053e00151c31fb33fff4337f delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/4e/e0d3ac3b0c3e00151089cca86c5b1a99 delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/5/c0df337dfd3d00151c31fb33fff4337f delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/53/d0e9bcd5333e00151cbdba8b5f0a340e delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/5a/602205ac333e00151cbdba8b5f0a340e delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/5d/608dcfff313e00151cbdba8b5f0a340e delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/60/009554caf93d00151c31fb33fff4337f delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/60/607ba075fd3d00151c31fb33fff4337f delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/65/e0e09818313e00151cbdba8b5f0a340e delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/66/40244c64fd3d00151c31fb33fff4337f delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/67/f0473bebf93d00151c31fb33fff4337f delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/68/5008c7fc313e00151cbdba8b5f0a340e delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/6a/303f85d66d3f00151fb6edb183f9215c delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/6b/501ffbd8fb3d00151c31fb33fff4337f delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/6c/e07524e9f93d00151c31fb33fff4337f delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/6e/f0362afd313e00151cbdba8b5f0a340e delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/6f/d08b30cdf93d00151c31fb33fff4337f delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/72/008777b4313e00151cbdba8b5f0a340e delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/72/704702fe313e00151cbdba8b5f0a340e delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/74/70e4dd2b313e00151cbdba8b5f0a340e delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/77/c062443b883e00151ce8ff6d4f74dabd delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/7b/004a78fdfc3d00151c31fb33fff4337f delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/7f/500624aa333e00151cbdba8b5f0a340e delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/8/608aaa5d333e00151cbdba8b5f0a340e delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/80/30fd52f56d3f00151fb6edb183f9215c delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/87/b0b359446e3f00151fb6edb183f9215c delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/8c/303a3a836b3f00151fb6edb183f9215c delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/8e/603503de313e00151cbdba8b5f0a340e delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/90/e0cf9548333e00151cbdba8b5f0a340e delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/93/e0833e34313e00151cbdba8b5f0a340e delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/97/d0e97d74fc3d00151c31fb33fff4337f delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/98/a09a052a343e00151cbdba8b5f0a340e delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/99/6080b854333e00151cbdba8b5f0a340e delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/9a/309bd1b16c3f00151fb6edb183f9215c delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/9b/50bbab1a313e00151cbdba8b5f0a340e delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/a5/40a714b86b3f00151fb6edb183f9215c delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/aa/80130ae1833e00151ce8ff6d4f74dabd delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/aa/b06bd2ac6b3f00151fb6edb183f9215c delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/ab/30c56ef06b3f00151fb6edb183f9215c delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/ab/c074771bfa3d00151c31fb33fff4337f delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/ab/e0694d38883e00151ce8ff6d4f74dabd delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/b1/d01b5059313e00151cbdba8b5f0a340e delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/b2/e05c77a7333e00151cbdba8b5f0a340e delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/b5/60e643b8333e00151cbdba8b5f0a340e delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/b5/d0028812fa3d00151c31fb33fff4337f delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/b7/308c4f936c3f00151fb6edb183f9215c delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/b7/500aa169fd3d00151c31fb33fff4337f delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/ba/50775507fd3d00151c31fb33fff4337f delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/bd/c0c10ce46b3f00151fb6edb183f9215c delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/bd/d05bd96d083e00151c31fb33fff4337f delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/bf/b03cb8c36b3f00151fb6edb183f9215c delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/c/609f275f313e00151cbdba8b5f0a340e delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/c/b022c7a5213f00151fb6edb183f9215c delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/c0/b0b29cfe313e00151cbdba8b5f0a340e delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/c2/e08d9071fc3d00151c31fb33fff4337f delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/c4/50682add833e00151ce8ff6d4f74dabd delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/c7/b027ea9c6b3f00151fb6edb183f9215c delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/ce/b03944c06d3f00151fb6edb183f9215c delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/cf/50fc0176fd3d00151c31fb33fff4337f delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/d0/40969eebfc3d00151c31fb33fff4337f delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/d1/d0e5e980a03e00151ce8ff6d4f74dabd delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/d5/60556449313e00151cbdba8b5f0a340e delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/d6/d059d3b7fd3d00151c31fb33fff4337f delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/d7/d06d9fe5f93d00151c31fb33fff4337f delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/d9/305eeba36b3f00151fb6edb183f9215c delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/d9/30852a8e6b3f00151fb6edb183f9215c delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/db/d0069951053e00151c31fb33fff4337f delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/de/500da46afb3d00151c31fb33fff4337f delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/de/d037d008fa3d00151c31fb33fff4337f delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/e1/b07ff7bc6d3f00151fb6edb183f9215c delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/e1/d020d619fa3d00151c31fb33fff4337f delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/e3/602ab6bd313e00151cbdba8b5f0a340e delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/e4/60215032313e00151cbdba8b5f0a340e delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/e4/60f9a9af313e00151cbdba8b5f0a340e delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/e7/d06d6706fd3d00151c31fb33fff4337f delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/ec/c0d3c395fc3d00151c31fb33fff4337f delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/f0/d01b9bcffc3d00151c31fb33fff4337f delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/f1/b00a25cf6b3f00151fb6edb183f9215c delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/f3/d0a2d21dfa3d00151c31fb33fff4337f delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/f4/303fdacd3f3f00151fb6edb183f9215c delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.history/f4/d034285bfd3d00151c31fb33fff4337f create mode 100644 TheButtonAutoFlair/src/tk/sznp/thebuttonautoflair/AnnouncerThread.java diff --git a/.metadata/.mylyn/.tasks.xml.zip b/.metadata/.mylyn/.tasks.xml.zip index 1eca0c906abeff3ffbc72ba5ec06880cce25c141..5d0e7db1a97684821c45f660dc3a3801914edc54 100644 GIT binary patch delta 26 gcmeyx_=}Mzz?+#xgn@&DgW AllPlayers=new HashMap<>(); //2015.08.08. - public static MaybeOfflinePlayer AddPlayerIfNeeded(String playername) - { - if(!AllPlayers.containsKey(playername)) - { - MaybeOfflinePlayer player=new MaybeOfflinePlayer(); - player.PlayerName=playername; - AllPlayers.put(playername, player); - return player; - } - return AllPlayers.get(playername); - } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/11/50857fe1f93d00151c31fb33fff4337f b/.metadata/.plugins/org.eclipse.core.resources/.history/11/50857fe1f93d00151c31fb33fff4337f deleted file mode 100644 index cf0bfb7..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/11/50857fe1f93d00151c31fb33fff4337f +++ /dev/null @@ -1,5 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -public class MaybeOfflinePlayer { - -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/15/6060baa6313e00151cbdba8b5f0a340e b/.metadata/.plugins/org.eclipse.core.resources/.history/15/6060baa6313e00151cbdba8b5f0a340e deleted file mode 100644 index 3ec657c..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/15/6060baa6313e00151cbdba8b5f0a340e +++ /dev/null @@ -1,70 +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; - -import de.inventivegames.TellRawAutoMessage.Reflection; - -public class PlayerListener implements Listener -{ //2015.07.16. - @EventHandler - public void onPlayerJoin(PlayerJoinEvent event) - { - Player p=event.getPlayer(); - MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); //2015.08.08. - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AllPlayers.get(p.getName()); //2015.08.08. - if(mp.Flair!=null) - PluginMain.AppendPlayerDisplayFlair(p, mp.UserName, mp.Flair); - else - { //2015.07.20. - String json="[\"\",{\"text\":\"§6Hi! If you'd like your flair displayed ingame, write your Minecraft name to \"},{\"text\":\"[this thread.]\",\"clickEvent\":{\"action\":\"open_url\",\"value\":\"https://www.reddit.com/r/TheButtonMinecraft/comments/3d25do/\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[{\"text\":\"Click here to go to the Reddit thread§r\"}]}}}]"; - sendRawMessage(p, json); - } - } - - @EventHandler - public void onPlayerLeave(PlayerQuitEvent event) - { - } - - @EventHandler - public void onPlayerChat(AsyncPlayerChatEvent event) - { - MaybeOfflinePlayer player = MaybeOfflinePlayer.AllPlayers.get(event.getPlayer().getName()); - String flair=player.Flair; //2015.08.08. - if(flair==null || !player.AcceptedFlair) - flair=""; //2015.08.08. - String message=event.getMessage(); //2015.08.08. - for(Player p : PluginMain.GetPlayers()) - { - - } - event.setFormat(event.getFormat().substring(0, event.getFormat().indexOf(">"))+flair+"> "+message); //2015.08.08. - } - - private static Class nmsChatSerializer = Reflection.getNMSClass("IChatBaseComponent$ChatSerializer"); - private static Class nmsPacketPlayOutChat = Reflection.getNMSClass("PacketPlayOutChat"); - public static void sendRawMessage(Player player, String message) - { - try { - System.out.println("1"); - Object handle = Reflection.getHandle(player); - System.out.println("2"); - Object connection = Reflection.getField(handle.getClass(), "playerConnection").get(handle); - System.out.println("3"); - Object serialized = Reflection.getMethod(nmsChatSerializer, "a", String.class).invoke(null, message); - System.out.println("4"); - Object packet = nmsPacketPlayOutChat.getConstructor(Reflection.getNMSClass("IChatBaseComponent")).newInstance(serialized); - System.out.println("5"); - Reflection.getMethod(connection.getClass(), "sendPacket").invoke(connection, packet); - System.out.println("6"); - } catch (Exception e) { - e.printStackTrace(); - } - } - -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/17/d004cf02fd3d00151c31fb33fff4337f b/.metadata/.plugins/org.eclipse.core.resources/.history/17/d004cf02fd3d00151c31fb33fff4337f deleted file mode 100644 index 95612ac..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/17/d004cf02fd3d00151c31fb33fff4337f +++ /dev/null @@ -1,24 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.util.ArrayList; -import java.util.HashMap; - -public class MaybeOfflinePlayer { - public String PlayerName; - public String UserName; - public String Flair; - public boolean AcceptedFlair; - public boolean IgnoredFlair; - public String TownColors; - public String DisplayName; - public static HashMap AllPlayers=new HashMap<>(); //2015.08.08. - public static void AddPlayer(String playername) - { - if(!AllPlayers.contains(name)) - { - MaybeOfflinePlayer player=new MaybeOfflinePlayer(); - player.PlayerName=playername; - AllPlayers.put(playername, player); - } - } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/19/a03f959e6b3f00151fb6edb183f9215c b/.metadata/.plugins/org.eclipse.core.resources/.history/19/a03f959e6b3f00151fb6edb183f9215c deleted file mode 100644 index 16db329..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/19/a03f959e6b3f00151fb6edb183f9215c +++ /dev/null @@ -1,277 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; - -import org.apache.commons.io.FileUtils; -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; - MaybeOfflinePlayer p=MaybeOfflinePlayer.AllPlayers.get(player.getName()); //2015.08.08. - //if(!PluginMain.PlayerFlairs.containsKey(player.getName())) - if(p.Flair==null) - { - player.sendMessage("Error: You need to write your username to the reddit thread at /r/TheButtonMinecraft"); - return true; - } - switch(args[0].toLowerCase()) //toLowerCase: 2015.08.09. - { - case "accept": - { - if(p.IgnoredFlair) - p.IgnoredFlair=false; //2015.08.08. - if(!p.AcceptedFlair) - { - String flair=p.Flair; //2015.08.08. - //PluginMain.AppendPlayerDisplayFlairFinal(player, flair); //2015.07.20. - p.AcceptedFlair=true; //2015.08.08. - PluginMain.AppendPlayerDisplayFlair(p, player); - player.sendMessage("§6Your flair has been set:§r "+flair); - } - else - player.sendMessage("§cYou already have this user's flair.§r"); - break; - } - case "ignore": - { - if(p.AcceptedFlair) - p.AcceptedFlair=false; //2015.08.08. - if(!p.IgnoredFlair) - { - p.IgnoredFlair=true; - //String flair=p.Flair; //2015.08.08. - //PluginMain.RemovePlayerDisplayFlairFinal(player, flair); //2015.07.20. - 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; - } - /*case "reload": //2015.07.20. - DoReload(player); - break;*/ - case "admin": //2015.08.09. - DoAdmin(player, args); - break; - case "nonpresser": //2015.08.09. - if(!p.AcceptedFlair) - { - player.sendMessage("§cYou need to accept the flair first.§r"); - break; - } - if(p.FlairDecided) - { - player.sendMessage("§cYou have already set the flair type.§r"); - break; - } - //p.Flair="§7(non-pr.)§r"; - SetPlayerFlair(player, p, "§7(non-pr.)§r"); - break; - case "cantpress": //2015.08.09. - if(!p.AcceptedFlair) - { - player.sendMessage("§cYou need to accept the flair first.§r"); - break; - } - if(p.FlairDecided) - { - player.sendMessage("§cYou have already set the flair type or your flair type is known.§r"); - break; - } - //p.Flair="§r(can't press)§r"; - SetPlayerFlair(player, p, "§r(can't pr.)§r"); - break; - default: - return false; - } - return true; - } - /*if(args[0].toLowerCase()=="reload") - DoReload(null); //2015.07.20.*/ - else if(args.length>0 && args[0].toLowerCase().equals("admin")) //2015.08.09. - { - DoAdmin(null, args); //2015.08.09. - return true; //2015.08.09. - } - return false; - } - private static void DoReload(Player player) - { //2015.07.20. - //if(player==null || player.isOp() || player.getName()=="NorbiPeti") - //{ - try - { - File file=new File("autoflairconfig.txt"); - if(file.exists()) - { - PluginMain.LoadFiles(true); //2015.08.09. - for(Player p : PluginMain.GetPlayers()) - { - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); - if(mp.Flair!=null) - { - //String flair=mp.Flair; - //PluginMain.RemovePlayerDisplayFlairFinal(p, flair); - //PluginMain.AppendPlayerDisplayFlairFinal(p, flair); - PluginMain.AppendPlayerDisplayFlair(mp, p); //2015.08.09. - } - String msg="§6Note: The auto-flair plugin has been reloaded. You might need to wait 10s to have your flair.§r"; //2015.08.09. - p.sendMessage(msg); //2015.08.09. - } - //String msg="§6Reloaded config file.§r"; - //SendMessage(player, msg); //2015.08.09. - } - } - catch(Exception e) - { - System.out.println("Error!\n"+e); - if(player!=null) - player.sendMessage("§cAn error occured. See console for details.§r"); - PluginMain.LastException=e; //2015.08.09. - } - //} - //else - //player.sendMessage("§cYou need to be OP to use this command.§r"); - } - private static Player ReloadPlayer; //2015.08.09. - private static void DoAdmin(Player player, String[] args) - { //2015.08.09. - if(player==null || player.isOp() || player.getName()=="NorbiPeti") - { - //System.out.println("Args length: " + args.length); - if(args.length==1) - { - String message="§cUsage: /u admin reload|playerinfo|getlasterror|save|setflair|updateplugin§r"; - SendMessage(player, message); - return; - } - //args[0] is "admin" - switch(args[1].toLowerCase()) - { - case "reload": - ReloadPlayer=player; //2015.08.09. - SendMessage(player, "§6Make sure to save the current settings before you modify and reload them! Type /u admin confirm when done.§r"); - break; - case "playerinfo": - DoPlayerInfo(player, args); - break; - case "getlasterror": - DoGetLastError(player, args); - break; //<-- 2015.08.10. - case "confirm": - if(ReloadPlayer==player) - DoReload(player); //2015.08.09. - else - SendMessage(player, "§cYou need to do /u admin reload first.§r"); - break; - case "save": - PluginMain.SaveFiles(); //2015.08.09. - SendMessage(player, "§6Saved files. Now you can edit them and reload if you want.§r"); - break; - case "setflair": - DoSetFlair(player, args); - break; - case "updateplugin": //2015.08.10. - DoUpdatePlugin(player); - break; - default: - String message="§cUsage: /u admin reload|playerinfo|getlasterror|save|setflair|updateplugin§r"; - SendMessage(player, message); - return; - } - } - else - player.sendMessage("§cYou need to be OP to use this command.§r"); - } - private static void DoPlayerInfo(Player player, String[] args) - { //2015.08.09. - //args[0] is "admin" - args[1] is "playerinfo" - if(args.length==2) - { - String message="§cUsage: /u admin playerinfo §r"; - SendMessage(player, message); - return; - } - if(!MaybeOfflinePlayer.AllPlayers.containsKey(args[2])) - { - String message="§cPlayer not found: "+args[2]+"§r"; - SendMessage(player, message); - return; - } - MaybeOfflinePlayer p = MaybeOfflinePlayer.AllPlayers.get(args[2]); - SendMessage(player, "Player name: "+p.PlayerName); - SendMessage(player, "User flair: "+p.Flair); - SendMessage(player, "Username: "+p.UserName); - SendMessage(player, "Flair accepted: "+p.AcceptedFlair); - SendMessage(player, "Flair ignored: "+p.IgnoredFlair); - } - private static void SendMessage(Player player, String message) - { //2015.08.09. - if(player==null) - System.out.println(message); - else - player.sendMessage(message); - } - private static void DoGetLastError(Player player, String[] args) - { //2015.08.09. - //args[0] is "admin" - args[1] is "getlasterror" - if(PluginMain.LastException!=null) - { - SendMessage(player, "Last error:"); - SendMessage(player, PluginMain.LastException.toString()); - PluginMain.LastException=null; - } - else - SendMessage(player, "There were no exceptions."); - } - private static void SetPlayerFlair(Player player, MaybeOfflinePlayer targetplayer, String flair) - { //2015.08.09. - flair=flair.replace('&', '§'); - targetplayer.Flair=flair; - if(!PluginMain.RemoveLineFromFile("customflairs.txt", targetplayer.PlayerName)) - { - SendMessage(player, "§cError removing previous custom flair!§r"); - return; - } - File file=new File("customflairs.txt"); - try { - BufferedWriter bw; - bw = new BufferedWriter(new FileWriter(file, true)); - bw.write(targetplayer.PlayerName+"\n"); - bw.close(); - } catch (IOException e) { - System.out.println("Error!\n"+e); - PluginMain.LastException=e; //2015.08.09. - } - SendMessage(player, "§6The flair has been set. Player: "+targetplayer.PlayerName+" Flair: "+flair+"§r"); - } - private static void DoSetFlair(Player player, String[] args) - { - //args[0] is "admin" - args[1] is "setflair" - if(args.length<4) - { - SendMessage(player, "§cUsage: /u admin setflair "); - return; - } - SetPlayerFlair(player, MaybeOfflinePlayer.AddPlayerIfNeeded(args[2]), args[3]); - } - private static void DoUpdatePlugin(Player player) - { //2015.08.10. - SendMessage(player, "Updating Auto-Flair plugin..."); - System.out.println("Forced updating of Auto-Flair plugin..."); - URL url="https://github.com/NorbiPeti/thebuttonautoflairmc/raw/master/TheButtonAutoFlair.jar"; - FileUtils.copyURLToFile(URL, new File("plugins/TheButtonAutoFlair.jar")); - } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/1e/50995637313e00151cbdba8b5f0a340e b/.metadata/.plugins/org.eclipse.core.resources/.history/1e/50995637313e00151cbdba8b5f0a340e deleted file mode 100644 index d33e6dc..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/1e/50995637313e00151cbdba8b5f0a340e +++ /dev/null @@ -1,66 +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; - -import de.inventivegames.TellRawAutoMessage.Reflection; - -public class PlayerListener implements Listener -{ //2015.07.16. - @EventHandler - public void onPlayerJoin(PlayerJoinEvent event) - { - Player p=event.getPlayer(); - MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); //2015.08.08. - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AllPlayers.get(p.getName()); //2015.08.08. - if(mp.Flair!=null) - PluginMain.AppendPlayerDisplayFlair(p, mp.UserName, mp.Flair); - else - { //2015.07.20. - String json="[\"\",{\"text\":\"§6Hi! If you'd like your flair displayed ingame, write your Minecraft name to \"},{\"text\":\"[this thread.]\",\"clickEvent\":{\"action\":\"open_url\",\"value\":\"https://www.reddit.com/r/TheButtonMinecraft/comments/3d25do/\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[{\"text\":\"Click here to go to the Reddit thread§r\"}]}}}]"; - sendRawMessage(p, json); - } - } - - @EventHandler - public void onPlayerLeave(PlayerQuitEvent event) - { - } - - @EventHandler - public void onPlayerChat(AsyncPlayerChatEvent event) - { - MaybeOfflinePlayer player = MaybeOfflinePlayer.AllPlayers.get(event.getPlayer().getName()); - String flair=player.Flair; //2015.08.08. - if(flair==null || !player.AcceptedFlair) - flair=""; //2015.08.08. - String message=event.getMessage(); - event.setFormat(event.getFormat().substring(0, event.getFormat().indexOf(">"))+flair+"> "+message); //2015.08.08. - } - - private static Class nmsChatSerializer = Reflection.getNMSClass("IChatBaseComponent$ChatSerializer"); - private static Class nmsPacketPlayOutChat = Reflection.getNMSClass("PacketPlayOutChat"); - public static void sendRawMessage(Player player, String message) - { - try { - System.out.println("1"); - Object handle = Reflection.getHandle(player); - System.out.println("2"); - Object connection = Reflection.getField(handle.getClass(), "playerConnection").get(handle); - System.out.println("3"); - Object serialized = Reflection.getMethod(nmsChatSerializer, "a", String.class).invoke(null, message); - System.out.println("4"); - Object packet = nmsPacketPlayOutChat.getConstructor(Reflection.getNMSClass("IChatBaseComponent")).newInstance(serialized); - System.out.println("5"); - Reflection.getMethod(connection.getClass(), "sendPacket").invoke(connection, packet); - System.out.println("6"); - } catch (Exception e) { - e.printStackTrace(); - } - } - -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/20/10fb34ff313e00151cbdba8b5f0a340e b/.metadata/.plugins/org.eclipse.core.resources/.history/20/10fb34ff313e00151cbdba8b5f0a340e deleted file mode 100644 index 2ade719..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/20/10fb34ff313e00151cbdba8b5f0a340e +++ /dev/null @@ -1,70 +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; - -import de.inventivegames.TellRawAutoMessage.Reflection; - -public class PlayerListener implements Listener -{ //2015.07.16. - @EventHandler - public void onPlayerJoin(PlayerJoinEvent event) - { - Player p=event.getPlayer(); - MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); //2015.08.08. - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AllPlayers.get(p.getName()); //2015.08.08. - if(mp.Flair!=null) - PluginMain.AppendPlayerDisplayFlair(p, mp.UserName, mp.Flair); - else - { //2015.07.20. - String json="[\"\",{\"text\":\"§6Hi! If you'd like your flair displayed ingame, write your Minecraft name to \"},{\"text\":\"[this thread.]\",\"clickEvent\":{\"action\":\"open_url\",\"value\":\"https://www.reddit.com/r/TheButtonMinecraft/comments/3d25do/\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[{\"text\":\"Click here to go to the Reddit thread§r\"}]}}}]"; - sendRawMessage(p, json); - } - } - - @EventHandler - public void onPlayerLeave(PlayerQuitEvent event) - { - } - - @EventHandler - public void onPlayerChat(AsyncPlayerChatEvent event) - { - MaybeOfflinePlayer player = MaybeOfflinePlayer.AllPlayers.get(event.getPlayer().getName()); - String flair=player.Flair; //2015.08.08. - if(flair==null || !player.AcceptedFlair) - flair=""; //2015.08.08. - String message=event.getMessage(); //2015.08.08. - for(Player p : PluginMain.GetPlayers()) - { //2015.08.08. - message.replaceAll(p.getName(), p.getDisplayName()); - } - event.setFormat(event.getFormat().substring(0, event.getFormat().indexOf(">"))+flair+"> "+message); //2015.08.08. - } - - private static Class nmsChatSerializer = Reflection.getNMSClass("IChatBaseComponent$ChatSerializer"); - private static Class nmsPacketPlayOutChat = Reflection.getNMSClass("PacketPlayOutChat"); - public static void sendRawMessage(Player player, String message) - { - try { - System.out.println("1"); - Object handle = Reflection.getHandle(player); - System.out.println("2"); - Object connection = Reflection.getField(handle.getClass(), "playerConnection").get(handle); - System.out.println("3"); - Object serialized = Reflection.getMethod(nmsChatSerializer, "a", String.class).invoke(null, message); - System.out.println("4"); - Object packet = nmsPacketPlayOutChat.getConstructor(Reflection.getNMSClass("IChatBaseComponent")).newInstance(serialized); - System.out.println("5"); - Reflection.getMethod(connection.getClass(), "sendPacket").invoke(connection, packet); - System.out.println("6"); - } catch (Exception e) { - e.printStackTrace(); - } - } - -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/22/50b446ea313e00151cbdba8b5f0a340e b/.metadata/.plugins/org.eclipse.core.resources/.history/22/50b446ea313e00151cbdba8b5f0a340e deleted file mode 100644 index eda6b64..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/22/50b446ea313e00151cbdba8b5f0a340e +++ /dev/null @@ -1,70 +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; - -import de.inventivegames.TellRawAutoMessage.Reflection; - -public class PlayerListener implements Listener -{ //2015.07.16. - @EventHandler - public void onPlayerJoin(PlayerJoinEvent event) - { - Player p=event.getPlayer(); - MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); //2015.08.08. - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AllPlayers.get(p.getName()); //2015.08.08. - if(mp.Flair!=null) - PluginMain.AppendPlayerDisplayFlair(p, mp.UserName, mp.Flair); - else - { //2015.07.20. - String json="[\"\",{\"text\":\"§6Hi! If you'd like your flair displayed ingame, write your Minecraft name to \"},{\"text\":\"[this thread.]\",\"clickEvent\":{\"action\":\"open_url\",\"value\":\"https://www.reddit.com/r/TheButtonMinecraft/comments/3d25do/\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[{\"text\":\"Click here to go to the Reddit thread§r\"}]}}}]"; - sendRawMessage(p, json); - } - } - - @EventHandler - public void onPlayerLeave(PlayerQuitEvent event) - { - } - - @EventHandler - public void onPlayerChat(AsyncPlayerChatEvent event) - { - MaybeOfflinePlayer player = MaybeOfflinePlayer.AllPlayers.get(event.getPlayer().getName()); - String flair=player.Flair; //2015.08.08. - if(flair==null || !player.AcceptedFlair) - flair=""; //2015.08.08. - String message=event.getMessage(); //2015.08.08. - for(Player p : PluginMain.GetPlayers()) - { //2015.08.08. - message.replaceAll(arg0, arg1) - } - event.setFormat(event.getFormat().substring(0, event.getFormat().indexOf(">"))+flair+"> "+message); //2015.08.08. - } - - private static Class nmsChatSerializer = Reflection.getNMSClass("IChatBaseComponent$ChatSerializer"); - private static Class nmsPacketPlayOutChat = Reflection.getNMSClass("PacketPlayOutChat"); - public static void sendRawMessage(Player player, String message) - { - try { - System.out.println("1"); - Object handle = Reflection.getHandle(player); - System.out.println("2"); - Object connection = Reflection.getField(handle.getClass(), "playerConnection").get(handle); - System.out.println("3"); - Object serialized = Reflection.getMethod(nmsChatSerializer, "a", String.class).invoke(null, message); - System.out.println("4"); - Object packet = nmsPacketPlayOutChat.getConstructor(Reflection.getNMSClass("IChatBaseComponent")).newInstance(serialized); - System.out.println("5"); - Reflection.getMethod(connection.getClass(), "sendPacket").invoke(connection, packet); - System.out.println("6"); - } catch (Exception e) { - e.printStackTrace(); - } - } - -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/24/40ebdecc6b3f00151fb6edb183f9215c b/.metadata/.plugins/org.eclipse.core.resources/.history/24/40ebdecc6b3f00151fb6edb183f9215c deleted file mode 100644 index 8a95c0c..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/24/40ebdecc6b3f00151fb6edb183f9215c +++ /dev/null @@ -1,285 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.net.MalformedURLException; -import java.net.URL; - -import org.apache.commons.io.FileUtils; -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; - MaybeOfflinePlayer p=MaybeOfflinePlayer.AllPlayers.get(player.getName()); //2015.08.08. - //if(!PluginMain.PlayerFlairs.containsKey(player.getName())) - if(p.Flair==null) - { - player.sendMessage("Error: You need to write your username to the reddit thread at /r/TheButtonMinecraft"); - return true; - } - switch(args[0].toLowerCase()) //toLowerCase: 2015.08.09. - { - case "accept": - { - if(p.IgnoredFlair) - p.IgnoredFlair=false; //2015.08.08. - if(!p.AcceptedFlair) - { - String flair=p.Flair; //2015.08.08. - //PluginMain.AppendPlayerDisplayFlairFinal(player, flair); //2015.07.20. - p.AcceptedFlair=true; //2015.08.08. - PluginMain.AppendPlayerDisplayFlair(p, player); - player.sendMessage("§6Your flair has been set:§r "+flair); - } - else - player.sendMessage("§cYou already have this user's flair.§r"); - break; - } - case "ignore": - { - if(p.AcceptedFlair) - p.AcceptedFlair=false; //2015.08.08. - if(!p.IgnoredFlair) - { - p.IgnoredFlair=true; - //String flair=p.Flair; //2015.08.08. - //PluginMain.RemovePlayerDisplayFlairFinal(player, flair); //2015.07.20. - 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; - } - /*case "reload": //2015.07.20. - DoReload(player); - break;*/ - case "admin": //2015.08.09. - DoAdmin(player, args); - break; - case "nonpresser": //2015.08.09. - if(!p.AcceptedFlair) - { - player.sendMessage("§cYou need to accept the flair first.§r"); - break; - } - if(p.FlairDecided) - { - player.sendMessage("§cYou have already set the flair type.§r"); - break; - } - //p.Flair="§7(non-pr.)§r"; - SetPlayerFlair(player, p, "§7(non-pr.)§r"); - break; - case "cantpress": //2015.08.09. - if(!p.AcceptedFlair) - { - player.sendMessage("§cYou need to accept the flair first.§r"); - break; - } - if(p.FlairDecided) - { - player.sendMessage("§cYou have already set the flair type or your flair type is known.§r"); - break; - } - //p.Flair="§r(can't press)§r"; - SetPlayerFlair(player, p, "§r(can't pr.)§r"); - break; - default: - return false; - } - return true; - } - /*if(args[0].toLowerCase()=="reload") - DoReload(null); //2015.07.20.*/ - else if(args.length>0 && args[0].toLowerCase().equals("admin")) //2015.08.09. - { - DoAdmin(null, args); //2015.08.09. - return true; //2015.08.09. - } - return false; - } - private static void DoReload(Player player) - { //2015.07.20. - //if(player==null || player.isOp() || player.getName()=="NorbiPeti") - //{ - try - { - File file=new File("autoflairconfig.txt"); - if(file.exists()) - { - PluginMain.LoadFiles(true); //2015.08.09. - for(Player p : PluginMain.GetPlayers()) - { - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); - if(mp.Flair!=null) - { - //String flair=mp.Flair; - //PluginMain.RemovePlayerDisplayFlairFinal(p, flair); - //PluginMain.AppendPlayerDisplayFlairFinal(p, flair); - PluginMain.AppendPlayerDisplayFlair(mp, p); //2015.08.09. - } - String msg="§6Note: The auto-flair plugin has been reloaded. You might need to wait 10s to have your flair.§r"; //2015.08.09. - p.sendMessage(msg); //2015.08.09. - } - //String msg="§6Reloaded config file.§r"; - //SendMessage(player, msg); //2015.08.09. - } - } - catch(Exception e) - { - System.out.println("Error!\n"+e); - if(player!=null) - player.sendMessage("§cAn error occured. See console for details.§r"); - PluginMain.LastException=e; //2015.08.09. - } - //} - //else - //player.sendMessage("§cYou need to be OP to use this command.§r"); - } - private static Player ReloadPlayer; //2015.08.09. - private static void DoAdmin(Player player, String[] args) - { //2015.08.09. - if(player==null || player.isOp() || player.getName()=="NorbiPeti") - { - //System.out.println("Args length: " + args.length); - if(args.length==1) - { - String message="§cUsage: /u admin reload|playerinfo|getlasterror|save|setflair|updateplugin§r"; - SendMessage(player, message); - return; - } - //args[0] is "admin" - switch(args[1].toLowerCase()) - { - case "reload": - ReloadPlayer=player; //2015.08.09. - SendMessage(player, "§6Make sure to save the current settings before you modify and reload them! Type /u admin confirm when done.§r"); - break; - case "playerinfo": - DoPlayerInfo(player, args); - break; - case "getlasterror": - DoGetLastError(player, args); - break; //<-- 2015.08.10. - case "confirm": - if(ReloadPlayer==player) - DoReload(player); //2015.08.09. - else - SendMessage(player, "§cYou need to do /u admin reload first.§r"); - break; - case "save": - PluginMain.SaveFiles(); //2015.08.09. - SendMessage(player, "§6Saved files. Now you can edit them and reload if you want.§r"); - break; - case "setflair": - DoSetFlair(player, args); - break; - case "updateplugin": //2015.08.10. - DoUpdatePlugin(player); - break; - default: - String message="§cUsage: /u admin reload|playerinfo|getlasterror|save|setflair|updateplugin§r"; - SendMessage(player, message); - return; - } - } - else - player.sendMessage("§cYou need to be OP to use this command.§r"); - } - private static void DoPlayerInfo(Player player, String[] args) - { //2015.08.09. - //args[0] is "admin" - args[1] is "playerinfo" - if(args.length==2) - { - String message="§cUsage: /u admin playerinfo §r"; - SendMessage(player, message); - return; - } - if(!MaybeOfflinePlayer.AllPlayers.containsKey(args[2])) - { - String message="§cPlayer not found: "+args[2]+"§r"; - SendMessage(player, message); - return; - } - MaybeOfflinePlayer p = MaybeOfflinePlayer.AllPlayers.get(args[2]); - SendMessage(player, "Player name: "+p.PlayerName); - SendMessage(player, "User flair: "+p.Flair); - SendMessage(player, "Username: "+p.UserName); - SendMessage(player, "Flair accepted: "+p.AcceptedFlair); - SendMessage(player, "Flair ignored: "+p.IgnoredFlair); - } - private static void SendMessage(Player player, String message) - { //2015.08.09. - if(player==null) - System.out.println(message); - else - player.sendMessage(message); - } - private static void DoGetLastError(Player player, String[] args) - { //2015.08.09. - //args[0] is "admin" - args[1] is "getlasterror" - if(PluginMain.LastException!=null) - { - SendMessage(player, "Last error:"); - SendMessage(player, PluginMain.LastException.toString()); - PluginMain.LastException=null; - } - else - SendMessage(player, "There were no exceptions."); - } - private static void SetPlayerFlair(Player player, MaybeOfflinePlayer targetplayer, String flair) - { //2015.08.09. - flair=flair.replace('&', '§'); - targetplayer.Flair=flair; - if(!PluginMain.RemoveLineFromFile("customflairs.txt", targetplayer.PlayerName)) - { - SendMessage(player, "§cError removing previous custom flair!§r"); - return; - } - File file=new File("customflairs.txt"); - try { - BufferedWriter bw; - bw = new BufferedWriter(new FileWriter(file, true)); - bw.write(targetplayer.PlayerName+"\n"); - bw.close(); - } catch (IOException e) { - System.out.println("Error!\n"+e); - PluginMain.LastException=e; //2015.08.09. - } - SendMessage(player, "§6The flair has been set. Player: "+targetplayer.PlayerName+" Flair: "+flair+"§r"); - } - private static void DoSetFlair(Player player, String[] args) - { - //args[0] is "admin" - args[1] is "setflair" - if(args.length<4) - { - SendMessage(player, "§cUsage: /u admin setflair "); - return; - } - SetPlayerFlair(player, MaybeOfflinePlayer.AddPlayerIfNeeded(args[2]), args[3]); - } - private static void DoUpdatePlugin(Player player) - { //2015.08.10. - SendMessage(player, "Updating Auto-Flair plugin..."); - System.out.println("Forced updating of Auto-Flair plugin..."); - URL url; - try { - url = new URL("https://github.com/NorbiPeti/thebuttonautoflairmc/raw/master/TheButtonAutoFlair.jar"); - FileUtils.copyURLToFile(url, new File("plugins/TheButtonAutoFlair.jar")); - } - } catch (MalformedURLException e) { - System.out.println("Error!\n"+e); - PluginMain.LastException=e; //2015.08.09. - } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/24/f05e1fe03f3f00151fb6edb183f9215c b/.metadata/.plugins/org.eclipse.core.resources/.history/24/f05e1fe03f3f00151fb6edb183f9215c deleted file mode 100644 index ade377b..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/24/f05e1fe03f3f00151fb6edb183f9215c +++ /dev/null @@ -1,31 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.util.HashMap; - -public class MaybeOfflinePlayer -{ //2015.08.08. - public String PlayerName; - public String UserName; - public String Flair; //If the user comments their name, it gets set, it doesn't matter if they accepted it or not - public boolean AcceptedFlair; - public boolean IgnoredFlair; - public boolean FlairDecided; //2015.08.09. - private static HashMap AllPlayers=new HashMap<>(); - public static MaybeOfflinePlayer AddPlayerIfNeeded(String playername) - { - if(!AllPlayers.containsKey(playername)) - { - MaybeOfflinePlayer player=new MaybeOfflinePlayer(); - player.PlayerName=playername; - AllPlayers.put(playername, player); - return player; - } - return AllPlayers.get(playername); - } - /*public enum FlairClassType - { //2015.08.09. - NonPresser, - CantPress, - Undecided - }*/ -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/28/50c3d09efd3d00151c31fb33fff4337f b/.metadata/.plugins/org.eclipse.core.resources/.history/28/50c3d09efd3d00151c31fb33fff4337f deleted file mode 100644 index 52c12fe..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/28/50c3d09efd3d00151c31fb33fff4337f +++ /dev/null @@ -1,26 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.util.HashMap; - -public class MaybeOfflinePlayer -{ //2015.08.08. - public String PlayerName; - public String UserName; - public String Flair; - public boolean AcceptedFlair; - public boolean IgnoredFlair; - public String TownColors; - public String DisplayName; - public static HashMap AllPlayers=new HashMap<>(); //2015.08.08. - public static MaybeOfflinePlayer AddPlayerIfNeeded(String playername) - { - if(!AllPlayers.containsKey(playername)) - { - MaybeOfflinePlayer player=new MaybeOfflinePlayer(); - player.PlayerName=playername; - AllPlayers.put(playername, player); - return player; - } - return AllPlayers.get(playername); - } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/29/500adc32083e00151c31fb33fff4337f b/.metadata/.plugins/org.eclipse.core.resources/.history/29/500adc32083e00151c31fb33fff4337f deleted file mode 100644 index 3c5dbca..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/29/500adc32083e00151c31fb33fff4337f +++ /dev/null @@ -1,25 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.util.HashMap; - -public class MaybeOfflinePlayer -{ //2015.08.08. - public String PlayerName; - public String UserName; - public String Flair; - public boolean AcceptedFlair; - public boolean IgnoredFlair; - public String DisplayName; - public static HashMap AllPlayers=new HashMap<>(); //2015.08.08. - public static MaybeOfflinePlayer AddPlayerIfNeeded(String playername) - { - if(!AllPlayers.containsKey(playername)) - { - MaybeOfflinePlayer player=new MaybeOfflinePlayer(); - player.PlayerName=playername; - AllPlayers.put(playername, player); - return player; - } - return AllPlayers.get(playername); - } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/2a/e01483b3313e00151cbdba8b5f0a340e b/.metadata/.plugins/org.eclipse.core.resources/.history/2a/e01483b3313e00151cbdba8b5f0a340e deleted file mode 100644 index 2fd48b2..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/2a/e01483b3313e00151cbdba8b5f0a340e +++ /dev/null @@ -1,70 +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; - -import de.inventivegames.TellRawAutoMessage.Reflection; - -public class PlayerListener implements Listener -{ //2015.07.16. - @EventHandler - public void onPlayerJoin(PlayerJoinEvent event) - { - Player p=event.getPlayer(); - MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); //2015.08.08. - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AllPlayers.get(p.getName()); //2015.08.08. - if(mp.Flair!=null) - PluginMain.AppendPlayerDisplayFlair(p, mp.UserName, mp.Flair); - else - { //2015.07.20. - String json="[\"\",{\"text\":\"§6Hi! If you'd like your flair displayed ingame, write your Minecraft name to \"},{\"text\":\"[this thread.]\",\"clickEvent\":{\"action\":\"open_url\",\"value\":\"https://www.reddit.com/r/TheButtonMinecraft/comments/3d25do/\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[{\"text\":\"Click here to go to the Reddit thread§r\"}]}}}]"; - sendRawMessage(p, json); - } - } - - @EventHandler - public void onPlayerLeave(PlayerQuitEvent event) - { - } - - @EventHandler - public void onPlayerChat(AsyncPlayerChatEvent event) - { - MaybeOfflinePlayer player = MaybeOfflinePlayer.AllPlayers.get(event.getPlayer().getName()); - String flair=player.Flair; //2015.08.08. - if(flair==null || !player.AcceptedFlair) - flair=""; //2015.08.08. - String message=event.getMessage(); //2015.08.08. - for(Player p : PluginMain.GetPlayers()) - { //2015.08.08. - int index = message.indexOf(p.getName()); - } - event.setFormat(event.getFormat().substring(0, event.getFormat().indexOf(">"))+flair+"> "+message); //2015.08.08. - } - - private static Class nmsChatSerializer = Reflection.getNMSClass("IChatBaseComponent$ChatSerializer"); - private static Class nmsPacketPlayOutChat = Reflection.getNMSClass("PacketPlayOutChat"); - public static void sendRawMessage(Player player, String message) - { - try { - System.out.println("1"); - Object handle = Reflection.getHandle(player); - System.out.println("2"); - Object connection = Reflection.getField(handle.getClass(), "playerConnection").get(handle); - System.out.println("3"); - Object serialized = Reflection.getMethod(nmsChatSerializer, "a", String.class).invoke(null, message); - System.out.println("4"); - Object packet = nmsPacketPlayOutChat.getConstructor(Reflection.getNMSClass("IChatBaseComponent")).newInstance(serialized); - System.out.println("5"); - Reflection.getMethod(connection.getClass(), "sendPacket").invoke(connection, packet); - System.out.println("6"); - } catch (Exception e) { - e.printStackTrace(); - } - } - -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/2a/e078d72f343e00151cbdba8b5f0a340e b/.metadata/.plugins/org.eclipse.core.resources/.history/2a/e078d72f343e00151cbdba8b5f0a340e deleted file mode 100644 index d263650..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/2a/e078d72f343e00151cbdba8b5f0a340e +++ /dev/null @@ -1,70 +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; - -import de.inventivegames.TellRawAutoMessage.Reflection; - -public class PlayerListener implements Listener -{ //2015.07.16. - @EventHandler - public void onPlayerJoin(PlayerJoinEvent event) - { - Player p=event.getPlayer(); - MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); //2015.08.08. - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AllPlayers.get(p.getName()); //2015.08.08. - if(mp.Flair!=null) - PluginMain.AppendPlayerDisplayFlair(p, mp.UserName, mp.Flair); - else - { //2015.07.20. - String json="[\"\",{\"text\":\"§6Hi! If you'd like your flair displayed ingame, write your Minecraft name to \"},{\"text\":\"[this thread.]\",\"clickEvent\":{\"action\":\"open_url\",\"value\":\"https://www.reddit.com/r/TheButtonMinecraft/comments/3d25do/\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[{\"text\":\"Click here to go to the Reddit thread§r\"}]}}}]"; - sendRawMessage(p, json); - } - } - - @EventHandler - public void onPlayerLeave(PlayerQuitEvent event) - { - } - - @EventHandler - public void onPlayerChat(AsyncPlayerChatEvent event) - { - MaybeOfflinePlayer player = MaybeOfflinePlayer.AllPlayers.get(event.getPlayer().getName()); - String flair=player.Flair; //2015.08.08. - if(flair==null || !player.AcceptedFlair) - flair=""; //2015.08.08. - String message=event.getMessage(); //2015.08.08. - for(Player p : PluginMain.GetPlayers()) - { //2015.08.08. - message.replaceAll(p.getName(), p.getDisplayName; - } - event.setFormat(event.getFormat().substring(0, event.getFormat().indexOf(">"))+flair+"> "+message); //2015.08.08. - } - - private static Class nmsChatSerializer = Reflection.getNMSClass("IChatBaseComponent$ChatSerializer"); - private static Class nmsPacketPlayOutChat = Reflection.getNMSClass("PacketPlayOutChat"); - public static void sendRawMessage(Player player, String message) - { - try { - System.out.println("1"); - Object handle = Reflection.getHandle(player); - System.out.println("2"); - Object connection = Reflection.getField(handle.getClass(), "playerConnection").get(handle); - System.out.println("3"); - Object serialized = Reflection.getMethod(nmsChatSerializer, "a", String.class).invoke(null, message); - System.out.println("4"); - Object packet = nmsPacketPlayOutChat.getConstructor(Reflection.getNMSClass("IChatBaseComponent")).newInstance(serialized); - System.out.println("5"); - Reflection.getMethod(connection.getClass(), "sendPacket").invoke(connection, packet); - System.out.println("6"); - } catch (Exception e) { - e.printStackTrace(); - } - } - -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/2b/8042c3dd6b3f00151fb6edb183f9215c b/.metadata/.plugins/org.eclipse.core.resources/.history/2b/8042c3dd6b3f00151fb6edb183f9215c deleted file mode 100644 index 5012a4d..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/2b/8042c3dd6b3f00151fb6edb183f9215c +++ /dev/null @@ -1,285 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.net.MalformedURLException; -import java.net.URL; - -import org.apache.commons.io.FileUtils; -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; - MaybeOfflinePlayer p=MaybeOfflinePlayer.AllPlayers.get(player.getName()); //2015.08.08. - //if(!PluginMain.PlayerFlairs.containsKey(player.getName())) - if(p.Flair==null) - { - player.sendMessage("Error: You need to write your username to the reddit thread at /r/TheButtonMinecraft"); - return true; - } - switch(args[0].toLowerCase()) //toLowerCase: 2015.08.09. - { - case "accept": - { - if(p.IgnoredFlair) - p.IgnoredFlair=false; //2015.08.08. - if(!p.AcceptedFlair) - { - String flair=p.Flair; //2015.08.08. - //PluginMain.AppendPlayerDisplayFlairFinal(player, flair); //2015.07.20. - p.AcceptedFlair=true; //2015.08.08. - PluginMain.AppendPlayerDisplayFlair(p, player); - player.sendMessage("§6Your flair has been set:§r "+flair); - } - else - player.sendMessage("§cYou already have this user's flair.§r"); - break; - } - case "ignore": - { - if(p.AcceptedFlair) - p.AcceptedFlair=false; //2015.08.08. - if(!p.IgnoredFlair) - { - p.IgnoredFlair=true; - //String flair=p.Flair; //2015.08.08. - //PluginMain.RemovePlayerDisplayFlairFinal(player, flair); //2015.07.20. - 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; - } - /*case "reload": //2015.07.20. - DoReload(player); - break;*/ - case "admin": //2015.08.09. - DoAdmin(player, args); - break; - case "nonpresser": //2015.08.09. - if(!p.AcceptedFlair) - { - player.sendMessage("§cYou need to accept the flair first.§r"); - break; - } - if(p.FlairDecided) - { - player.sendMessage("§cYou have already set the flair type.§r"); - break; - } - //p.Flair="§7(non-pr.)§r"; - SetPlayerFlair(player, p, "§7(non-pr.)§r"); - break; - case "cantpress": //2015.08.09. - if(!p.AcceptedFlair) - { - player.sendMessage("§cYou need to accept the flair first.§r"); - break; - } - if(p.FlairDecided) - { - player.sendMessage("§cYou have already set the flair type or your flair type is known.§r"); - break; - } - //p.Flair="§r(can't press)§r"; - SetPlayerFlair(player, p, "§r(can't pr.)§r"); - break; - default: - return false; - } - return true; - } - /*if(args[0].toLowerCase()=="reload") - DoReload(null); //2015.07.20.*/ - else if(args.length>0 && args[0].toLowerCase().equals("admin")) //2015.08.09. - { - DoAdmin(null, args); //2015.08.09. - return true; //2015.08.09. - } - return false; - } - private static void DoReload(Player player) - { //2015.07.20. - //if(player==null || player.isOp() || player.getName()=="NorbiPeti") - //{ - try - { - File file=new File("autoflairconfig.txt"); - if(file.exists()) - { - PluginMain.LoadFiles(true); //2015.08.09. - for(Player p : PluginMain.GetPlayers()) - { - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); - if(mp.Flair!=null) - { - //String flair=mp.Flair; - //PluginMain.RemovePlayerDisplayFlairFinal(p, flair); - //PluginMain.AppendPlayerDisplayFlairFinal(p, flair); - PluginMain.AppendPlayerDisplayFlair(mp, p); //2015.08.09. - } - String msg="§6Note: The auto-flair plugin has been reloaded. You might need to wait 10s to have your flair.§r"; //2015.08.09. - p.sendMessage(msg); //2015.08.09. - } - //String msg="§6Reloaded config file.§r"; - //SendMessage(player, msg); //2015.08.09. - } - } - catch(Exception e) - { - System.out.println("Error!\n"+e); - if(player!=null) - player.sendMessage("§cAn error occured. See console for details.§r"); - PluginMain.LastException=e; //2015.08.09. - } - //} - //else - //player.sendMessage("§cYou need to be OP to use this command.§r"); - } - private static Player ReloadPlayer; //2015.08.09. - private static void DoAdmin(Player player, String[] args) - { //2015.08.09. - if(player==null || player.isOp() || player.getName()=="NorbiPeti") - { - //System.out.println("Args length: " + args.length); - if(args.length==1) - { - String message="§cUsage: /u admin reload|playerinfo|getlasterror|save|setflair|updateplugin§r"; - SendMessage(player, message); - return; - } - //args[0] is "admin" - switch(args[1].toLowerCase()) - { - case "reload": - ReloadPlayer=player; //2015.08.09. - SendMessage(player, "§6Make sure to save the current settings before you modify and reload them! Type /u admin confirm when done.§r"); - break; - case "playerinfo": - DoPlayerInfo(player, args); - break; - case "getlasterror": - DoGetLastError(player, args); - break; //<-- 2015.08.10. - case "confirm": - if(ReloadPlayer==player) - DoReload(player); //2015.08.09. - else - SendMessage(player, "§cYou need to do /u admin reload first.§r"); - break; - case "save": - PluginMain.SaveFiles(); //2015.08.09. - SendMessage(player, "§6Saved files. Now you can edit them and reload if you want.§r"); - break; - case "setflair": - DoSetFlair(player, args); - break; - case "updateplugin": //2015.08.10. - DoUpdatePlugin(player); - break; - default: - String message="§cUsage: /u admin reload|playerinfo|getlasterror|save|setflair|updateplugin§r"; - SendMessage(player, message); - return; - } - } - else - player.sendMessage("§cYou need to be OP to use this command.§r"); - } - private static void DoPlayerInfo(Player player, String[] args) - { //2015.08.09. - //args[0] is "admin" - args[1] is "playerinfo" - if(args.length==2) - { - String message="§cUsage: /u admin playerinfo §r"; - SendMessage(player, message); - return; - } - if(!MaybeOfflinePlayer.AllPlayers.containsKey(args[2])) - { - String message="§cPlayer not found: "+args[2]+"§r"; - SendMessage(player, message); - return; - } - MaybeOfflinePlayer p = MaybeOfflinePlayer.AllPlayers.get(args[2]); - SendMessage(player, "Player name: "+p.PlayerName); - SendMessage(player, "User flair: "+p.Flair); - SendMessage(player, "Username: "+p.UserName); - SendMessage(player, "Flair accepted: "+p.AcceptedFlair); - SendMessage(player, "Flair ignored: "+p.IgnoredFlair); - } - private static void SendMessage(Player player, String message) - { //2015.08.09. - if(player==null) - System.out.println(message); - else - player.sendMessage(message); - } - private static void DoGetLastError(Player player, String[] args) - { //2015.08.09. - //args[0] is "admin" - args[1] is "getlasterror" - if(PluginMain.LastException!=null) - { - SendMessage(player, "Last error:"); - SendMessage(player, PluginMain.LastException.toString()); - PluginMain.LastException=null; - } - else - SendMessage(player, "There were no exceptions."); - } - private static void SetPlayerFlair(Player player, MaybeOfflinePlayer targetplayer, String flair) - { //2015.08.09. - flair=flair.replace('&', '§'); - targetplayer.Flair=flair; - if(!PluginMain.RemoveLineFromFile("customflairs.txt", targetplayer.PlayerName)) - { - SendMessage(player, "§cError removing previous custom flair!§r"); - return; - } - File file=new File("customflairs.txt"); - try { - BufferedWriter bw; - bw = new BufferedWriter(new FileWriter(file, true)); - bw.write(targetplayer.PlayerName+"\n"); - bw.close(); - } catch (IOException e) { - System.out.println("Error!\n"+e); - PluginMain.LastException=e; //2015.08.09. - } - SendMessage(player, "§6The flair has been set. Player: "+targetplayer.PlayerName+" Flair: "+flair+"§r"); - } - private static void DoSetFlair(Player player, String[] args) - { - //args[0] is "admin" - args[1] is "setflair" - if(args.length<4) - { - SendMessage(player, "§cUsage: /u admin setflair "); - return; - } - SetPlayerFlair(player, MaybeOfflinePlayer.AddPlayerIfNeeded(args[2]), args[3]); - } - private static void DoUpdatePlugin(Player player) - { //2015.08.10. - SendMessage(player, "Updating Auto-Flair plugin..."); - System.out.println("Forced updating of Auto-Flair plugin..."); - URL url; - try { - url = new URL("https://github.com/NorbiPeti/thebuttonautoflairmc/raw/master/TheButtonAutoFlair.jar"); - FileUtils.copyURLToFile(url, new File("plugins/TheButtonAutoFlair.jar")); - } catch (MalformedURLException e) { - System.out.println("Error!\n"+e); - PluginMain.LastException=e; //2015.08.09. - } - } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/2f/70a2035a333e00151cbdba8b5f0a340e b/.metadata/.plugins/org.eclipse.core.resources/.history/2f/70a2035a333e00151cbdba8b5f0a340e deleted file mode 100644 index a45dd73..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/2f/70a2035a333e00151cbdba8b5f0a340e +++ /dev/null @@ -1,7 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import com.earth2me.essentials.IEssentials; - -public class Essentials implements IEssentials { - -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/34/e07767e9313e00151cbdba8b5f0a340e b/.metadata/.plugins/org.eclipse.core.resources/.history/34/e07767e9313e00151cbdba8b5f0a340e deleted file mode 100644 index 4531ada..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/34/e07767e9313e00151cbdba8b5f0a340e +++ /dev/null @@ -1,74 +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; - -import de.inventivegames.TellRawAutoMessage.Reflection; - -public class PlayerListener implements Listener -{ //2015.07.16. - @EventHandler - public void onPlayerJoin(PlayerJoinEvent event) - { - Player p=event.getPlayer(); - MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); //2015.08.08. - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AllPlayers.get(p.getName()); //2015.08.08. - if(mp.Flair!=null) - PluginMain.AppendPlayerDisplayFlair(p, mp.UserName, mp.Flair); - else - { //2015.07.20. - String json="[\"\",{\"text\":\"§6Hi! If you'd like your flair displayed ingame, write your Minecraft name to \"},{\"text\":\"[this thread.]\",\"clickEvent\":{\"action\":\"open_url\",\"value\":\"https://www.reddit.com/r/TheButtonMinecraft/comments/3d25do/\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[{\"text\":\"Click here to go to the Reddit thread§r\"}]}}}]"; - sendRawMessage(p, json); - } - } - - @EventHandler - public void onPlayerLeave(PlayerQuitEvent event) - { - } - - @EventHandler - public void onPlayerChat(AsyncPlayerChatEvent event) - { - MaybeOfflinePlayer player = MaybeOfflinePlayer.AllPlayers.get(event.getPlayer().getName()); - String flair=player.Flair; //2015.08.08. - if(flair==null || !player.AcceptedFlair) - flair=""; //2015.08.08. - String message=event.getMessage(); //2015.08.08. - for(Player p : PluginMain.GetPlayers()) - { //2015.08.08. - int index=0; - while((index = message.indexOf(p.getName()))!=-1) - { - - } - } - event.setFormat(event.getFormat().substring(0, event.getFormat().indexOf(">"))+flair+"> "+message); //2015.08.08. - } - - private static Class nmsChatSerializer = Reflection.getNMSClass("IChatBaseComponent$ChatSerializer"); - private static Class nmsPacketPlayOutChat = Reflection.getNMSClass("PacketPlayOutChat"); - public static void sendRawMessage(Player player, String message) - { - try { - System.out.println("1"); - Object handle = Reflection.getHandle(player); - System.out.println("2"); - Object connection = Reflection.getField(handle.getClass(), "playerConnection").get(handle); - System.out.println("3"); - Object serialized = Reflection.getMethod(nmsChatSerializer, "a", String.class).invoke(null, message); - System.out.println("4"); - Object packet = nmsPacketPlayOutChat.getConstructor(Reflection.getNMSClass("IChatBaseComponent")).newInstance(serialized); - System.out.println("5"); - Reflection.getMethod(connection.getClass(), "sendPacket").invoke(connection, packet); - System.out.println("6"); - } catch (Exception e) { - e.printStackTrace(); - } - } - -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/36/e04434aa313e00151cbdba8b5f0a340e b/.metadata/.plugins/org.eclipse.core.resources/.history/36/e04434aa313e00151cbdba8b5f0a340e deleted file mode 100644 index d2a72bd..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/36/e04434aa313e00151cbdba8b5f0a340e +++ /dev/null @@ -1,70 +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; - -import de.inventivegames.TellRawAutoMessage.Reflection; - -public class PlayerListener implements Listener -{ //2015.07.16. - @EventHandler - public void onPlayerJoin(PlayerJoinEvent event) - { - Player p=event.getPlayer(); - MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); //2015.08.08. - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AllPlayers.get(p.getName()); //2015.08.08. - if(mp.Flair!=null) - PluginMain.AppendPlayerDisplayFlair(p, mp.UserName, mp.Flair); - else - { //2015.07.20. - String json="[\"\",{\"text\":\"§6Hi! If you'd like your flair displayed ingame, write your Minecraft name to \"},{\"text\":\"[this thread.]\",\"clickEvent\":{\"action\":\"open_url\",\"value\":\"https://www.reddit.com/r/TheButtonMinecraft/comments/3d25do/\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[{\"text\":\"Click here to go to the Reddit thread§r\"}]}}}]"; - sendRawMessage(p, json); - } - } - - @EventHandler - public void onPlayerLeave(PlayerQuitEvent event) - { - } - - @EventHandler - public void onPlayerChat(AsyncPlayerChatEvent event) - { - MaybeOfflinePlayer player = MaybeOfflinePlayer.AllPlayers.get(event.getPlayer().getName()); - String flair=player.Flair; //2015.08.08. - if(flair==null || !player.AcceptedFlair) - flair=""; //2015.08.08. - String message=event.getMessage(); //2015.08.08. - for(Player p : PluginMain.GetPlayers()) - { - int index = message.indexOf(p.getName()); - } - event.setFormat(event.getFormat().substring(0, event.getFormat().indexOf(">"))+flair+"> "+message); //2015.08.08. - } - - private static Class nmsChatSerializer = Reflection.getNMSClass("IChatBaseComponent$ChatSerializer"); - private static Class nmsPacketPlayOutChat = Reflection.getNMSClass("PacketPlayOutChat"); - public static void sendRawMessage(Player player, String message) - { - try { - System.out.println("1"); - Object handle = Reflection.getHandle(player); - System.out.println("2"); - Object connection = Reflection.getField(handle.getClass(), "playerConnection").get(handle); - System.out.println("3"); - Object serialized = Reflection.getMethod(nmsChatSerializer, "a", String.class).invoke(null, message); - System.out.println("4"); - Object packet = nmsPacketPlayOutChat.getConstructor(Reflection.getNMSClass("IChatBaseComponent")).newInstance(serialized); - System.out.println("5"); - Reflection.getMethod(connection.getClass(), "sendPacket").invoke(connection, packet); - System.out.println("6"); - } catch (Exception e) { - e.printStackTrace(); - } - } - -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/38/f01dd9d8333e00151cbdba8b5f0a340e b/.metadata/.plugins/org.eclipse.core.resources/.history/38/f01dd9d8333e00151cbdba8b5f0a340e deleted file mode 100644 index 41c7113..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/38/f01dd9d8333e00151cbdba8b5f0a340e +++ /dev/null @@ -1,8 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import net.ess3.api.IUser; - -public class Essentials -{ - -} \ No newline at end of file diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/39/30814aea6b3f00151fb6edb183f9215c b/.metadata/.plugins/org.eclipse.core.resources/.history/39/30814aea6b3f00151fb6edb183f9215c deleted file mode 100644 index a3a4f6f..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/39/30814aea6b3f00151fb6edb183f9215c +++ /dev/null @@ -1,286 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.net.MalformedURLException; -import java.net.URL; - -import org.apache.commons.io.FileUtils; -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; - MaybeOfflinePlayer p=MaybeOfflinePlayer.AllPlayers.get(player.getName()); //2015.08.08. - //if(!PluginMain.PlayerFlairs.containsKey(player.getName())) - if(p.Flair==null) - { - player.sendMessage("Error: You need to write your username to the reddit thread at /r/TheButtonMinecraft"); - return true; - } - switch(args[0].toLowerCase()) //toLowerCase: 2015.08.09. - { - case "accept": - { - if(p.IgnoredFlair) - p.IgnoredFlair=false; //2015.08.08. - if(!p.AcceptedFlair) - { - String flair=p.Flair; //2015.08.08. - //PluginMain.AppendPlayerDisplayFlairFinal(player, flair); //2015.07.20. - p.AcceptedFlair=true; //2015.08.08. - PluginMain.AppendPlayerDisplayFlair(p, player); - player.sendMessage("§6Your flair has been set:§r "+flair); - } - else - player.sendMessage("§cYou already have this user's flair.§r"); - break; - } - case "ignore": - { - if(p.AcceptedFlair) - p.AcceptedFlair=false; //2015.08.08. - if(!p.IgnoredFlair) - { - p.IgnoredFlair=true; - //String flair=p.Flair; //2015.08.08. - //PluginMain.RemovePlayerDisplayFlairFinal(player, flair); //2015.07.20. - 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; - } - /*case "reload": //2015.07.20. - DoReload(player); - break;*/ - case "admin": //2015.08.09. - DoAdmin(player, args); - break; - case "nonpresser": //2015.08.09. - if(!p.AcceptedFlair) - { - player.sendMessage("§cYou need to accept the flair first.§r"); - break; - } - if(p.FlairDecided) - { - player.sendMessage("§cYou have already set the flair type.§r"); - break; - } - //p.Flair="§7(non-pr.)§r"; - SetPlayerFlair(player, p, "§7(non-pr.)§r"); - break; - case "cantpress": //2015.08.09. - if(!p.AcceptedFlair) - { - player.sendMessage("§cYou need to accept the flair first.§r"); - break; - } - if(p.FlairDecided) - { - player.sendMessage("§cYou have already set the flair type or your flair type is known.§r"); - break; - } - //p.Flair="§r(can't press)§r"; - SetPlayerFlair(player, p, "§r(can't pr.)§r"); - break; - default: - return false; - } - return true; - } - /*if(args[0].toLowerCase()=="reload") - DoReload(null); //2015.07.20.*/ - else if(args.length>0 && args[0].toLowerCase().equals("admin")) //2015.08.09. - { - DoAdmin(null, args); //2015.08.09. - return true; //2015.08.09. - } - return false; - } - private static void DoReload(Player player) - { //2015.07.20. - //if(player==null || player.isOp() || player.getName()=="NorbiPeti") - //{ - try - { - File file=new File("autoflairconfig.txt"); - if(file.exists()) - { - PluginMain.LoadFiles(true); //2015.08.09. - for(Player p : PluginMain.GetPlayers()) - { - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); - if(mp.Flair!=null) - { - //String flair=mp.Flair; - //PluginMain.RemovePlayerDisplayFlairFinal(p, flair); - //PluginMain.AppendPlayerDisplayFlairFinal(p, flair); - PluginMain.AppendPlayerDisplayFlair(mp, p); //2015.08.09. - } - String msg="§6Note: The auto-flair plugin has been reloaded. You might need to wait 10s to have your flair.§r"; //2015.08.09. - p.sendMessage(msg); //2015.08.09. - } - //String msg="§6Reloaded config file.§r"; - //SendMessage(player, msg); //2015.08.09. - } - } - catch(Exception e) - { - System.out.println("Error!\n"+e); - if(player!=null) - player.sendMessage("§cAn error occured. See console for details.§r"); - PluginMain.LastException=e; //2015.08.09. - } - //} - //else - //player.sendMessage("§cYou need to be OP to use this command.§r"); - } - private static Player ReloadPlayer; //2015.08.09. - private static void DoAdmin(Player player, String[] args) - { //2015.08.09. - if(player==null || player.isOp() || player.getName()=="NorbiPeti") - { - //System.out.println("Args length: " + args.length); - if(args.length==1) - { - String message="§cUsage: /u admin reload|playerinfo|getlasterror|save|setflair|updateplugin§r"; - SendMessage(player, message); - return; - } - //args[0] is "admin" - switch(args[1].toLowerCase()) - { - case "reload": - ReloadPlayer=player; //2015.08.09. - SendMessage(player, "§6Make sure to save the current settings before you modify and reload them! Type /u admin confirm when done.§r"); - break; - case "playerinfo": - DoPlayerInfo(player, args); - break; - case "getlasterror": - DoGetLastError(player, args); - break; //<-- 2015.08.10. - case "confirm": - if(ReloadPlayer==player) - DoReload(player); //2015.08.09. - else - SendMessage(player, "§cYou need to do /u admin reload first.§r"); - break; - case "save": - PluginMain.SaveFiles(); //2015.08.09. - SendMessage(player, "§6Saved files. Now you can edit them and reload if you want.§r"); - break; - case "setflair": - DoSetFlair(player, args); - break; - case "updateplugin": //2015.08.10. - DoUpdatePlugin(player); - break; - default: - String message="§cUsage: /u admin reload|playerinfo|getlasterror|save|setflair|updateplugin§r"; - SendMessage(player, message); - return; - } - } - else - player.sendMessage("§cYou need to be OP to use this command.§r"); - } - private static void DoPlayerInfo(Player player, String[] args) - { //2015.08.09. - //args[0] is "admin" - args[1] is "playerinfo" - if(args.length==2) - { - String message="§cUsage: /u admin playerinfo §r"; - SendMessage(player, message); - return; - } - if(!MaybeOfflinePlayer.AllPlayers.containsKey(args[2])) - { - String message="§cPlayer not found: "+args[2]+"§r"; - SendMessage(player, message); - return; - } - MaybeOfflinePlayer p = MaybeOfflinePlayer.AllPlayers.get(args[2]); - SendMessage(player, "Player name: "+p.PlayerName); - SendMessage(player, "User flair: "+p.Flair); - SendMessage(player, "Username: "+p.UserName); - SendMessage(player, "Flair accepted: "+p.AcceptedFlair); - SendMessage(player, "Flair ignored: "+p.IgnoredFlair); - } - private static void SendMessage(Player player, String message) - { //2015.08.09. - if(player==null) - System.out.println(message); - else - player.sendMessage(message); - } - private static void DoGetLastError(Player player, String[] args) - { //2015.08.09. - //args[0] is "admin" - args[1] is "getlasterror" - if(PluginMain.LastException!=null) - { - SendMessage(player, "Last error:"); - SendMessage(player, PluginMain.LastException.toString()); - PluginMain.LastException=null; - } - else - SendMessage(player, "There were no exceptions."); - } - private static void SetPlayerFlair(Player player, MaybeOfflinePlayer targetplayer, String flair) - { //2015.08.09. - flair=flair.replace('&', '§'); - targetplayer.Flair=flair; - if(!PluginMain.RemoveLineFromFile("customflairs.txt", targetplayer.PlayerName)) - { - SendMessage(player, "§cError removing previous custom flair!§r"); - return; - } - File file=new File("customflairs.txt"); - try { - BufferedWriter bw; - bw = new BufferedWriter(new FileWriter(file, true)); - bw.write(targetplayer.PlayerName+"\n"); - bw.close(); - } catch (IOException e) { - System.out.println("Error!\n"+e); - PluginMain.LastException=e; //2015.08.09. - } - SendMessage(player, "§6The flair has been set. Player: "+targetplayer.PlayerName+" Flair: "+flair+"§r"); - } - private static void DoSetFlair(Player player, String[] args) - { - //args[0] is "admin" - args[1] is "setflair" - if(args.length<4) - { - SendMessage(player, "§cUsage: /u admin setflair "); - return; - } - SetPlayerFlair(player, MaybeOfflinePlayer.AddPlayerIfNeeded(args[2]), args[3]); - } - private static void DoUpdatePlugin(Player player) - { //2015.08.10. - SendMessage(player, "Updating Auto-Flair plugin..."); - System.out.println("Forced updating of Auto-Flair plugin..."); - URL url; - try { - url = new URL("https://github.com/NorbiPeti/thebuttonautoflairmc/raw/master/TheButtonAutoFlair.jar"); - FileUtils.copyURLToFile(url, new File("plugins/TheButtonAutoFlair.jar")); - } - catch (MalformedURLException e) { - System.out.println("Error!\n"+e); - PluginMain.LastException=e; //2015.08.09. - } - } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/39/e05f8acf313e00151cbdba8b5f0a340e b/.metadata/.plugins/org.eclipse.core.resources/.history/39/e05f8acf313e00151cbdba8b5f0a340e deleted file mode 100644 index 153978e..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/39/e05f8acf313e00151cbdba8b5f0a340e +++ /dev/null @@ -1,74 +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; - -import de.inventivegames.TellRawAutoMessage.Reflection; - -public class PlayerListener implements Listener -{ //2015.07.16. - @EventHandler - public void onPlayerJoin(PlayerJoinEvent event) - { - Player p=event.getPlayer(); - MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); //2015.08.08. - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AllPlayers.get(p.getName()); //2015.08.08. - if(mp.Flair!=null) - PluginMain.AppendPlayerDisplayFlair(p, mp.UserName, mp.Flair); - else - { //2015.07.20. - String json="[\"\",{\"text\":\"§6Hi! If you'd like your flair displayed ingame, write your Minecraft name to \"},{\"text\":\"[this thread.]\",\"clickEvent\":{\"action\":\"open_url\",\"value\":\"https://www.reddit.com/r/TheButtonMinecraft/comments/3d25do/\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[{\"text\":\"Click here to go to the Reddit thread§r\"}]}}}]"; - sendRawMessage(p, json); - } - } - - @EventHandler - public void onPlayerLeave(PlayerQuitEvent event) - { - } - - @EventHandler - public void onPlayerChat(AsyncPlayerChatEvent event) - { - MaybeOfflinePlayer player = MaybeOfflinePlayer.AllPlayers.get(event.getPlayer().getName()); - String flair=player.Flair; //2015.08.08. - if(flair==null || !player.AcceptedFlair) - flair=""; //2015.08.08. - String message=event.getMessage(); //2015.08.08. - for(Player p : PluginMain.GetPlayers()) - { //2015.08.08. - int index=0; - while((index = message.indexOf(p.getName()))!=-1) - { - - } - } - event.setFormat(event.getFormat().substring(0, event.getFormat().indexOf(">"))+flair+"> "+message); //2015.08.08. - } - - private static Class nmsChatSerializer = Reflection.getNMSClass("IChatBaseComponent$ChatSerializer"); - private static Class nmsPacketPlayOutChat = Reflection.getNMSClass("PacketPlayOutChat"); - public static void sendRawMessage(Player player, String message) - { - try { - System.out.println("1"); - Object handle = Reflection.getHandle(player); - System.out.println("2"); - Object connection = Reflection.getField(handle.getClass(), "playerConnection").get(handle); - System.out.println("3"); - Object serialized = Reflection.getMethod(nmsChatSerializer, "a", String.class).invoke(null, message); - System.out.println("4"); - Object packet = nmsPacketPlayOutChat.getConstructor(Reflection.getNMSClass("IChatBaseComponent")).newInstance(serialized); - System.out.println("5"); - Reflection.getMethod(connection.getClass(), "sendPacket").invoke(connection, packet); - System.out.println("6"); - } catch (Exception e) { - e.printStackTrace(); - } - } - -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/3a/d0a96a2e313e00151cbdba8b5f0a340e b/.metadata/.plugins/org.eclipse.core.resources/.history/3a/d0a96a2e313e00151cbdba8b5f0a340e deleted file mode 100644 index 5dd7da9..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/3a/d0a96a2e313e00151cbdba8b5f0a340e +++ /dev/null @@ -1,66 +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; - -import de.inventivegames.TellRawAutoMessage.Reflection; - -public class PlayerListener implements Listener -{ //2015.07.16. - @EventHandler - public void onPlayerJoin(PlayerJoinEvent event) - { - Player p=event.getPlayer(); - MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); //2015.08.08. - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AllPlayers.get(p.getName()); //2015.08.08. - if(mp.Flair!=null) - PluginMain.AppendPlayerDisplayFlair(p, mp.UserName, mp.Flair); - else - { //2015.07.20. - String json="[\"\",{\"text\":\"§6Hi! If you'd like your flair displayed ingame, write your Minecraft name to \"},{\"text\":\"[this thread.]\",\"clickEvent\":{\"action\":\"open_url\",\"value\":\"https://www.reddit.com/r/TheButtonMinecraft/comments/3d25do/\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[{\"text\":\"Click here to go to the Reddit thread§r\"}]}}}]"; - sendRawMessage(p, json); - } - } - - @EventHandler - public void onPlayerLeave(PlayerQuitEvent event) - { - } - - @EventHandler - public void onPlayerChat(AsyncPlayerChatEvent event) - { - MaybeOfflinePlayer player = MaybeOfflinePlayer.AllPlayers.get(event.getPlayer().getName()); - String flair=player.Flair; //2015.08.08. - if(flair==null || !player.AcceptedFlair) - flair=""; //2015.08.08. - String message; - event.setFormat(event.getFormat().substring(0, event.getFormat().indexOf(">"))+flair+"> "+event.getMessage()); //2015.08.08. - } - - private static Class nmsChatSerializer = Reflection.getNMSClass("IChatBaseComponent$ChatSerializer"); - private static Class nmsPacketPlayOutChat = Reflection.getNMSClass("PacketPlayOutChat"); - public static void sendRawMessage(Player player, String message) - { - try { - System.out.println("1"); - Object handle = Reflection.getHandle(player); - System.out.println("2"); - Object connection = Reflection.getField(handle.getClass(), "playerConnection").get(handle); - System.out.println("3"); - Object serialized = Reflection.getMethod(nmsChatSerializer, "a", String.class).invoke(null, message); - System.out.println("4"); - Object packet = nmsPacketPlayOutChat.getConstructor(Reflection.getNMSClass("IChatBaseComponent")).newInstance(serialized); - System.out.println("5"); - Reflection.getMethod(connection.getClass(), "sendPacket").invoke(connection, packet); - System.out.println("6"); - } catch (Exception e) { - e.printStackTrace(); - } - } - -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/3c/508e5c2c053e00151c31fb33fff4337f b/.metadata/.plugins/org.eclipse.core.resources/.history/3c/508e5c2c053e00151c31fb33fff4337f deleted file mode 100644 index 3c5dbca..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/3c/508e5c2c053e00151c31fb33fff4337f +++ /dev/null @@ -1,25 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.util.HashMap; - -public class MaybeOfflinePlayer -{ //2015.08.08. - public String PlayerName; - public String UserName; - public String Flair; - public boolean AcceptedFlair; - public boolean IgnoredFlair; - public String DisplayName; - public static HashMap AllPlayers=new HashMap<>(); //2015.08.08. - public static MaybeOfflinePlayer AddPlayerIfNeeded(String playername) - { - if(!AllPlayers.containsKey(playername)) - { - MaybeOfflinePlayer player=new MaybeOfflinePlayer(); - player.PlayerName=playername; - AllPlayers.put(playername, player); - return player; - } - return AllPlayers.get(playername); - } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/3f/5082b24efd3d00151c31fb33fff4337f b/.metadata/.plugins/org.eclipse.core.resources/.history/3f/5082b24efd3d00151c31fb33fff4337f deleted file mode 100644 index cad1a26..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/3f/5082b24efd3d00151c31fb33fff4337f +++ /dev/null @@ -1,24 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.util.ArrayList; -import java.util.HashMap; - -public class MaybeOfflinePlayer { - public String PlayerName; - public String UserName; - public String Flair; - public boolean AcceptedFlair; - public boolean IgnoredFlair; - public String TownColors; - public String DisplayName; - public static HashMap AllPlayers=new HashMap<>(); //2015.08.08. - public static void AddPlayer(String playername) - { - if(!AllPlayers.containsKey(playername)) - { - MaybeOfflinePlayer player=new MaybeOfflinePlayer(); - player.PlayerName=playername; - AllPlayers.put(playername, player); - } - } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/4/d01b9292fc3d00151c31fb33fff4337f b/.metadata/.plugins/org.eclipse.core.resources/.history/4/d01b9292fc3d00151c31fb33fff4337f deleted file mode 100644 index 153d7e5..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/4/d01b9292fc3d00151c31fb33fff4337f +++ /dev/null @@ -1,15 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.util.ArrayList; -import java.util.HashMap; - -public class MaybeOfflinePlayer { - public String PlayerName; - public String UserName; - public String Flair; - public boolean AcceptedFlair; - public boolean IgnoredFlair; - public String TownColors; - public String DisplayName; - public static HashMap AllPlayers=new HashMap<>(); //2015.08.08. -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/42/50bc64c9313e00151cbdba8b5f0a340e b/.metadata/.plugins/org.eclipse.core.resources/.history/42/50bc64c9313e00151cbdba8b5f0a340e deleted file mode 100644 index 05f0ff1..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/42/50bc64c9313e00151cbdba8b5f0a340e +++ /dev/null @@ -1,74 +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; - -import de.inventivegames.TellRawAutoMessage.Reflection; - -public class PlayerListener implements Listener -{ //2015.07.16. - @EventHandler - public void onPlayerJoin(PlayerJoinEvent event) - { - Player p=event.getPlayer(); - MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); //2015.08.08. - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AllPlayers.get(p.getName()); //2015.08.08. - if(mp.Flair!=null) - PluginMain.AppendPlayerDisplayFlair(p, mp.UserName, mp.Flair); - else - { //2015.07.20. - String json="[\"\",{\"text\":\"§6Hi! If you'd like your flair displayed ingame, write your Minecraft name to \"},{\"text\":\"[this thread.]\",\"clickEvent\":{\"action\":\"open_url\",\"value\":\"https://www.reddit.com/r/TheButtonMinecraft/comments/3d25do/\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[{\"text\":\"Click here to go to the Reddit thread§r\"}]}}}]"; - sendRawMessage(p, json); - } - } - - @EventHandler - public void onPlayerLeave(PlayerQuitEvent event) - { - } - - @EventHandler - public void onPlayerChat(AsyncPlayerChatEvent event) - { - MaybeOfflinePlayer player = MaybeOfflinePlayer.AllPlayers.get(event.getPlayer().getName()); - String flair=player.Flair; //2015.08.08. - if(flair==null || !player.AcceptedFlair) - flair=""; //2015.08.08. - String message=event.getMessage(); //2015.08.08. - for(Player p : PluginMain.GetPlayers()) - { //2015.08.08. - int index=0; - while((index = message.indexOf(p.getName())!=-1) - { - - } - } - event.setFormat(event.getFormat().substring(0, event.getFormat().indexOf(">"))+flair+"> "+message); //2015.08.08. - } - - private static Class nmsChatSerializer = Reflection.getNMSClass("IChatBaseComponent$ChatSerializer"); - private static Class nmsPacketPlayOutChat = Reflection.getNMSClass("PacketPlayOutChat"); - public static void sendRawMessage(Player player, String message) - { - try { - System.out.println("1"); - Object handle = Reflection.getHandle(player); - System.out.println("2"); - Object connection = Reflection.getField(handle.getClass(), "playerConnection").get(handle); - System.out.println("3"); - Object serialized = Reflection.getMethod(nmsChatSerializer, "a", String.class).invoke(null, message); - System.out.println("4"); - Object packet = nmsPacketPlayOutChat.getConstructor(Reflection.getNMSClass("IChatBaseComponent")).newInstance(serialized); - System.out.println("5"); - Reflection.getMethod(connection.getClass(), "sendPacket").invoke(connection, packet); - System.out.println("6"); - } catch (Exception e) { - e.printStackTrace(); - } - } - -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/43/b06648906c3f00151fb6edb183f9215c b/.metadata/.plugins/org.eclipse.core.resources/.history/43/b06648906c3f00151fb6edb183f9215c deleted file mode 100644 index 2e1e4d0..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/43/b06648906c3f00151fb6edb183f9215c +++ /dev/null @@ -1,290 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.net.MalformedURLException; -import java.net.URL; - -import org.apache.commons.io.FileUtils; -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; - MaybeOfflinePlayer p=MaybeOfflinePlayer.AllPlayers.get(player.getName()); //2015.08.08. - //if(!PluginMain.PlayerFlairs.containsKey(player.getName())) - if(p.Flair==null) - { - player.sendMessage("Error: You need to write your username to the reddit thread at /r/TheButtonMinecraft"); - return true; - } - switch(args[0].toLowerCase()) //toLowerCase: 2015.08.09. - { - case "accept": - { - if(p.IgnoredFlair) - p.IgnoredFlair=false; //2015.08.08. - if(!p.AcceptedFlair) - { - String flair=p.Flair; //2015.08.08. - //PluginMain.AppendPlayerDisplayFlairFinal(player, flair); //2015.07.20. - p.AcceptedFlair=true; //2015.08.08. - PluginMain.AppendPlayerDisplayFlair(p, player); - player.sendMessage("§6Your flair has been set:§r "+flair); - } - else - player.sendMessage("§cYou already have this user's flair.§r"); - break; - } - case "ignore": - { - if(p.AcceptedFlair) - p.AcceptedFlair=false; //2015.08.08. - if(!p.IgnoredFlair) - { - p.IgnoredFlair=true; - //String flair=p.Flair; //2015.08.08. - //PluginMain.RemovePlayerDisplayFlairFinal(player, flair); //2015.07.20. - 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; - } - /*case "reload": //2015.07.20. - DoReload(player); - break;*/ - case "admin": //2015.08.09. - DoAdmin(player, args); - break; - case "nonpresser": //2015.08.09. - if(!p.AcceptedFlair) - { - player.sendMessage("§cYou need to accept the flair first.§r"); - break; - } - if(p.FlairDecided) - { - player.sendMessage("§cYou have already set the flair type.§r"); - break; - } - //p.Flair="§7(non-pr.)§r"; - SetPlayerFlair(player, p, "§7(non-pr.)§r"); - break; - case "cantpress": //2015.08.09. - if(!p.AcceptedFlair) - { - player.sendMessage("§cYou need to accept the flair first.§r"); - break; - } - if(p.FlairDecided) - { - player.sendMessage("§cYou have already set the flair type or your flair type is known.§r"); - break; - } - //p.Flair="§r(can't press)§r"; - SetPlayerFlair(player, p, "§r(can't pr.)§r"); - break; - default: - return false; - } - return true; - } - /*if(args[0].toLowerCase()=="reload") - DoReload(null); //2015.07.20.*/ - else if(args.length>0 && args[0].toLowerCase().equals("admin")) //2015.08.09. - { - DoAdmin(null, args); //2015.08.09. - return true; //2015.08.09. - } - return false; - } - private static void DoReload(Player player) - { //2015.07.20. - //if(player==null || player.isOp() || player.getName()=="NorbiPeti") - //{ - try - { - File file=new File("autoflairconfig.txt"); - if(file.exists()) - { - PluginMain.LoadFiles(true); //2015.08.09. - for(Player p : PluginMain.GetPlayers()) - { - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); - if(mp.Flair!=null) - { - //String flair=mp.Flair; - //PluginMain.RemovePlayerDisplayFlairFinal(p, flair); - //PluginMain.AppendPlayerDisplayFlairFinal(p, flair); - PluginMain.AppendPlayerDisplayFlair(mp, p); //2015.08.09. - } - String msg="§6Note: The auto-flair plugin has been reloaded. You might need to wait 10s to have your flair.§r"; //2015.08.09. - p.sendMessage(msg); //2015.08.09. - } - //String msg="§6Reloaded config file.§r"; - //SendMessage(player, msg); //2015.08.09. - } - } - catch(Exception e) - { - System.out.println("Error!\n"+e); - if(player!=null) - player.sendMessage("§cAn error occured. See console for details.§r"); - PluginMain.LastException=e; //2015.08.09. - } - //} - //else - //player.sendMessage("§cYou need to be OP to use this command.§r"); - } - private static Player ReloadPlayer; //2015.08.09. - private static void DoAdmin(Player player, String[] args) - { //2015.08.09. - if(player==null || player.isOp() || player.getName()=="NorbiPeti") - { - //System.out.println("Args length: " + args.length); - if(args.length==1) - { - String message="§cUsage: /u admin reload|playerinfo|getlasterror|save|setflair|updateplugin§r"; - SendMessage(player, message); - return; - } - //args[0] is "admin" - switch(args[1].toLowerCase()) - { - case "reload": - ReloadPlayer=player; //2015.08.09. - SendMessage(player, "§6Make sure to save the current settings before you modify and reload them! Type /u admin confirm when done.§r"); - break; - case "playerinfo": - DoPlayerInfo(player, args); - break; - case "getlasterror": - DoGetLastError(player, args); - break; //<-- 2015.08.10. - case "confirm": - if(ReloadPlayer==player) - DoReload(player); //2015.08.09. - else - SendMessage(player, "§cYou need to do /u admin reload first.§r"); - break; - case "save": - PluginMain.SaveFiles(); //2015.08.09. - SendMessage(player, "§6Saved files. Now you can edit them and reload if you want.§r"); - break; - case "setflair": - DoSetFlair(player, args); - break; - case "updateplugin": //2015.08.10. - DoUpdatePlugin(player); - break; - default: - String message="§cUsage: /u admin reload|playerinfo|getlasterror|save|setflair|updateplugin§r"; - SendMessage(player, message); - return; - } - } - else - player.sendMessage("§cYou need to be OP to use this command.§r"); - } - private static void DoPlayerInfo(Player player, String[] args) - { //2015.08.09. - //args[0] is "admin" - args[1] is "playerinfo" - if(args.length==2) - { - String message="§cUsage: /u admin playerinfo §r"; - SendMessage(player, message); - return; - } - if(!MaybeOfflinePlayer.AllPlayers.containsKey(args[2])) - { - String message="§cPlayer not found: "+args[2]+"§r"; - SendMessage(player, message); - return; - } - MaybeOfflinePlayer p = MaybeOfflinePlayer.AllPlayers.get(args[2]); - SendMessage(player, "Player name: "+p.PlayerName); - SendMessage(player, "User flair: "+p.Flair); - SendMessage(player, "Username: "+p.UserName); - SendMessage(player, "Flair accepted: "+p.AcceptedFlair); - SendMessage(player, "Flair ignored: "+p.IgnoredFlair); - } - private static void SendMessage(Player player, String message) - { //2015.08.09. - if(player==null) - System.out.println(message); - else - player.sendMessage(message); - } - private static void DoGetLastError(Player player, String[] args) - { //2015.08.09. - //args[0] is "admin" - args[1] is "getlasterror" - if(PluginMain.LastException!=null) - { - SendMessage(player, "Last error:"); - SendMessage(player, PluginMain.LastException.toString()); - PluginMain.LastException=null; - } - else - SendMessage(player, "There were no exceptions."); - } - private static void SetPlayerFlair(Player player, MaybeOfflinePlayer targetplayer, String flair) - { //2015.08.09. - flair=flair.replace('&', '§'); - targetplayer.Flair=flair; - if(!PluginMain.RemoveLineFromFile("customflairs.txt", targetplayer.PlayerName)) - { - SendMessage(player, "§cError removing previous custom flair!§r"); - return; - } - File file=new File("customflairs.txt"); - try { - BufferedWriter bw; - bw = new BufferedWriter(new FileWriter(file, true)); - bw.write(targetplayer.PlayerName+"\n"); - bw.close(); - } catch (IOException e) { - System.out.println("Error!\n"+e); - PluginMain.LastException=e; //2015.08.09. - } - SendMessage(player, "§6The flair has been set. Player: "+targetplayer.PlayerName+" Flair: "+flair+"§r"); - } - private static void DoSetFlair(Player player, String[] args) - { - //args[0] is "admin" - args[1] is "setflair" - if(args.length<4) - { - SendMessage(player, "§cUsage: /u admin setflair "); - return; - } - SetPlayerFlair(player, MaybeOfflinePlayer.AddPlayerIfNeeded(args[2]), args[3]); - } - private static void DoUpdatePlugin(Player player) - { //2015.08.10. - SendMessage(player, "Updating Auto-Flair plugin..."); - System.out.println("Forced updating of Auto-Flair plugin..."); - URL url; - try { - url = new URL("https://github.com/NorbiPeti/thebuttonautoflairmc/raw/master/TheButtonAutoFlair.jar"); - FileUtils.copyURLToFile(url, new File("plugins/TheButtonAutoFlair.jar")); - } - catch (MalformedURLException e) { - System.out.println("Error!\n"+e); - PluginMain.LastException=e; //2015.08.09. - } - catch (IOException e) { - System.out.println("Error!\n"+e); - PluginMain.LastException=e; //2015.08.09. - } - } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/43/f011b9b4333e00151cbdba8b5f0a340e b/.metadata/.plugins/org.eclipse.core.resources/.history/43/f011b9b4333e00151cbdba8b5f0a340e deleted file mode 100644 index 3cde012..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/43/f011b9b4333e00151cbdba8b5f0a340e +++ /dev/null @@ -1,347 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.math.BigDecimal; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import org.bukkit.Location; -import org.bukkit.entity.Player; - -import com.earth2me.essentials.CommandSource; -import com.earth2me.essentials.User; -import com.earth2me.essentials.commands.IEssentialsCommand; - -import net.ess3.api.ITeleport; -import net.ess3.api.IUser; -import net.ess3.api.MaxMoneyException; - -public class Essentials implements IUser -{ - - @Override - public void addMail(String arg0) { - // TODO Auto-generated method stub - - } - - @Override - public boolean canAfford(BigDecimal arg0) { - // TODO Auto-generated method stub - return false; - } - - @Override - public boolean canBuild() { - // TODO Auto-generated method stub - return false; - } - - @Override - public Boolean canSpawnItem(int arg0) { - // TODO Auto-generated method stub - return null; - } - - @Override - public void delHome(String arg0) throws Exception { - // TODO Auto-generated method stub - - } - - @Override - public void enableInvulnerabilityAfterTeleport() { - // TODO Auto-generated method stub - - } - - @Override - public Player getBase() { - // TODO Auto-generated method stub - return null; - } - - @Override - public Set getConfigKeys() { - // TODO Auto-generated method stub - return null; - } - - @Override - public Map getConfigMap() { - // TODO Auto-generated method stub - return null; - } - - @Override - public Map getConfigMap(String arg0) { - // TODO Auto-generated method stub - return null; - } - - @Override - public String getGroup() { - // TODO Auto-generated method stub - return null; - } - - @Override - public Location getHome(String arg0) throws Exception { - // TODO Auto-generated method stub - return null; - } - - @Override - public Location getHome(Location arg0) throws Exception { - // TODO Auto-generated method stub - return null; - } - - @Override - public List getHomes() { - // TODO Auto-generated method stub - return null; - } - - @Override - public String getJail() { - // TODO Auto-generated method stub - return null; - } - - @Override - public Location getLastLocation() { - // TODO Auto-generated method stub - return null; - } - - @Override - public long getLastTeleportTimestamp() { - // TODO Auto-generated method stub - return 0; - } - - @Override - public Location getLogoutLocation() { - // TODO Auto-generated method stub - return null; - } - - @Override - public List getMails() { - // TODO Auto-generated method stub - return null; - } - - @Override - public BigDecimal getMoney() { - // TODO Auto-generated method stub - return null; - } - - @Override - public String getName() { - // TODO Auto-generated method stub - return null; - } - - @Override - public CommandSource getSource() { - // TODO Auto-generated method stub - return null; - } - - @Override - public ITeleport getTeleport() { - // TODO Auto-generated method stub - return null; - } - - @Override - public long getTeleportRequestTime() { - // TODO Auto-generated method stub - return 0; - } - - @Override - public void giveMoney(BigDecimal arg0) throws MaxMoneyException { - // TODO Auto-generated method stub - - } - - @Override - public void giveMoney(BigDecimal arg0, CommandSource arg1) - throws MaxMoneyException { - // TODO Auto-generated method stub - - } - - @Override - public boolean hasHome() { - // TODO Auto-generated method stub - return false; - } - - @Override - public boolean hasInvulnerabilityAfterTeleport() { - // TODO Auto-generated method stub - return false; - } - - @Override - public void healCooldown() throws Exception { - // TODO Auto-generated method stub - - } - - @Override - public boolean inGroup(String arg0) { - // TODO Auto-generated method stub - return false; - } - - @Override - public boolean isAfk() { - // TODO Auto-generated method stub - return false; - } - - @Override - public boolean isAuthorized(String arg0) { - // TODO Auto-generated method stub - return false; - } - - @Override - public boolean isAuthorized(IEssentialsCommand arg0) { - // TODO Auto-generated method stub - return false; - } - - @Override - public boolean isAuthorized(IEssentialsCommand arg0, String arg1) { - // TODO Auto-generated method stub - return false; - } - - @Override - public boolean isGodModeEnabled() { - // TODO Auto-generated method stub - return false; - } - - @Override - public boolean isHidden() { - // TODO Auto-generated method stub - return false; - } - - @Override - public boolean isIgnoreExempt() { - // TODO Auto-generated method stub - return false; - } - - @Override - public boolean isVanished() { - // TODO Auto-generated method stub - return false; - } - - @Override - public void payUser(User arg0, BigDecimal arg1) throws Exception { - // TODO Auto-generated method stub - - } - - @Override - public void requestTeleport(User arg0, boolean arg1) { - // TODO Auto-generated method stub - - } - - @Override - public void resetInvulnerabilityAfterTeleport() { - // TODO Auto-generated method stub - - } - - @Override - public void sendMessage(String arg0) { - // TODO Auto-generated method stub - - } - - @Override - public void setAfk(boolean arg0) { - // TODO Auto-generated method stub - - } - - @Override - public void setConfigProperty(String arg0, Object arg1) { - // TODO Auto-generated method stub - - } - - @Override - public void setHidden(boolean arg0) { - // TODO Auto-generated method stub - - } - - @Override - public void setHome(String arg0, Location arg1) { - // TODO Auto-generated method stub - - } - - @Override - public void setJail(String arg0) { - // TODO Auto-generated method stub - - } - - @Override - public void setLastLocation() { - // TODO Auto-generated method stub - - } - - @Override - public void setLastTeleportTimestamp(long arg0) { - // TODO Auto-generated method stub - - } - - @Override - public void setLogoutLocation() { - // TODO Auto-generated method stub - - } - - @Override - public void setMoney(BigDecimal arg0) throws MaxMoneyException { - // TODO Auto-generated method stub - - } - - @Override - public void setVanished(boolean arg0) { - // TODO Auto-generated method stub - - } - - @Override - public void takeMoney(BigDecimal arg0) { - // TODO Auto-generated method stub - - } - - @Override - public void takeMoney(BigDecimal arg0, CommandSource arg1) { - // TODO Auto-generated method stub - - } - -} \ No newline at end of file diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/44/40c13c85083e00151c31fb33fff4337f b/.metadata/.plugins/org.eclipse.core.resources/.history/44/40c13c85083e00151c31fb33fff4337f deleted file mode 100644 index 913297a..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/44/40c13c85083e00151c31fb33fff4337f +++ /dev/null @@ -1,25 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.util.HashMap; - -public class MaybeOfflinePlayer -{ //2015.08.08. - public String PlayerName; - public String UserName; - public String Flair; //If the user comments their name, it gets set, it doesn't matter if they accepted it - public boolean AcceptedFlair; - public boolean IgnoredFlair; - public String DisplayName; - public static HashMap AllPlayers=new HashMap<>(); //2015.08.08. - public static MaybeOfflinePlayer AddPlayerIfNeeded(String playername) - { - if(!AllPlayers.containsKey(playername)) - { - MaybeOfflinePlayer player=new MaybeOfflinePlayer(); - player.PlayerName=playername; - AllPlayers.put(playername, player); - return player; - } - return AllPlayers.get(playername); - } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/47/b0efe5c83f3f00151fb6edb183f9215c b/.metadata/.plugins/org.eclipse.core.resources/.history/47/b0efe5c83f3f00151fb6edb183f9215c deleted file mode 100644 index 28679fc..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/47/b0efe5c83f3f00151fb6edb183f9215c +++ /dev/null @@ -1,31 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.util.HashMap; - -public class MaybeOfflinePlayer -{ //2015.08.08. - public String PlayerName; - public String UserName; - public String Flair; //If the user comments their name, it gets set, it doesn't matter if they accepted it or not - public boolean AcceptedFlair; - public boolean IgnoredFlair; - public boolean FlairDecided; //2015.08.09. - public static HashMap AllPlayers=new HashMap<>(); //2015.08.08. - public static MaybeOfflinePlayer AddPlayerIfNeeded(String playername) - { - if(!AllPlayers.containsKey(playername)) - { - MaybeOfflinePlayer player=new MaybeOfflinePlayer(); - player.PlayerName=playername; - AllPlayers.put(playername, player); - return player; - } - return AllPlayers.get(playername); - } - /*public enum FlairClassType - { //2015.08.09. - NonPresser, - CantPress, - Undecided - }*/ -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/49/c0672b28053e00151c31fb33fff4337f b/.metadata/.plugins/org.eclipse.core.resources/.history/49/c0672b28053e00151c31fb33fff4337f deleted file mode 100644 index 3c5dbca..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/49/c0672b28053e00151c31fb33fff4337f +++ /dev/null @@ -1,25 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.util.HashMap; - -public class MaybeOfflinePlayer -{ //2015.08.08. - public String PlayerName; - public String UserName; - public String Flair; - public boolean AcceptedFlair; - public boolean IgnoredFlair; - public String DisplayName; - public static HashMap AllPlayers=new HashMap<>(); //2015.08.08. - public static MaybeOfflinePlayer AddPlayerIfNeeded(String playername) - { - if(!AllPlayers.containsKey(playername)) - { - MaybeOfflinePlayer player=new MaybeOfflinePlayer(); - player.PlayerName=playername; - AllPlayers.put(playername, player); - return player; - } - return AllPlayers.get(playername); - } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/4e/e0d3ac3b0c3e00151089cca86c5b1a99 b/.metadata/.plugins/org.eclipse.core.resources/.history/4e/e0d3ac3b0c3e00151089cca86c5b1a99 deleted file mode 100644 index 66ed2d6..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/4e/e0d3ac3b0c3e00151089cca86c5b1a99 +++ /dev/null @@ -1,25 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.util.HashMap; - -public class MaybeOfflinePlayer -{ //2015.08.08. - public String PlayerName; - public String UserName; - public String Flair; //If the user comments their name, it gets set, it doesn't matter if they accepted it or not - public boolean AcceptedFlair; - public boolean IgnoredFlair; - public String DisplayName; - public static HashMap AllPlayers=new HashMap<>(); //2015.08.08. - public static MaybeOfflinePlayer AddPlayerIfNeeded(String playername) - { - if(!AllPlayers.containsKey(playername)) - { - MaybeOfflinePlayer player=new MaybeOfflinePlayer(); - player.PlayerName=playername; - AllPlayers.put(playername, player); - return player; - } - return AllPlayers.get(playername); - } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/5/c0df337dfd3d00151c31fb33fff4337f b/.metadata/.plugins/org.eclipse.core.resources/.history/5/c0df337dfd3d00151c31fb33fff4337f deleted file mode 100644 index e7a09c9..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/5/c0df337dfd3d00151c31fb33fff4337f +++ /dev/null @@ -1,27 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.util.ArrayList; -import java.util.HashMap; - -public class MaybeOfflinePlayer -{ //2015.08.08. - public String PlayerName; - public String UserName; - public String Flair; - public boolean AcceptedFlair; - public boolean IgnoredFlair; - public String TownColors; - public String DisplayName; - public static HashMap AllPlayers=new HashMap<>(); //2015.08.08. - public static MaybeOfflinePlayer AddPlayerIfNeeded(String playername) - { - if(!AllPlayers.containsKey(playername)) - { - MaybeOfflinePlayer player=new MaybeOfflinePlayer(); - player.PlayerName=playername; - AllPlayers.put(playername, player); - return player; - } - return AllPlayers.get(playername); - } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/53/d0e9bcd5333e00151cbdba8b5f0a340e b/.metadata/.plugins/org.eclipse.core.resources/.history/53/d0e9bcd5333e00151cbdba8b5f0a340e deleted file mode 100644 index ca0b02d..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/53/d0e9bcd5333e00151cbdba8b5f0a340e +++ /dev/null @@ -1,6 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -public class Essentials implements IUser -{ - -} \ No newline at end of file diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/5a/602205ac333e00151cbdba8b5f0a340e b/.metadata/.plugins/org.eclipse.core.resources/.history/5a/602205ac333e00151cbdba8b5f0a340e deleted file mode 100644 index 58ffb85..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/5a/602205ac333e00151cbdba8b5f0a340e +++ /dev/null @@ -1,8 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import net.ess3.api.IUser; - -public class Essentials implements IUser -{ - -} \ No newline at end of file diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/5d/608dcfff313e00151cbdba8b5f0a340e b/.metadata/.plugins/org.eclipse.core.resources/.history/5d/608dcfff313e00151cbdba8b5f0a340e deleted file mode 100644 index 2ade719..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/5d/608dcfff313e00151cbdba8b5f0a340e +++ /dev/null @@ -1,70 +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; - -import de.inventivegames.TellRawAutoMessage.Reflection; - -public class PlayerListener implements Listener -{ //2015.07.16. - @EventHandler - public void onPlayerJoin(PlayerJoinEvent event) - { - Player p=event.getPlayer(); - MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); //2015.08.08. - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AllPlayers.get(p.getName()); //2015.08.08. - if(mp.Flair!=null) - PluginMain.AppendPlayerDisplayFlair(p, mp.UserName, mp.Flair); - else - { //2015.07.20. - String json="[\"\",{\"text\":\"§6Hi! If you'd like your flair displayed ingame, write your Minecraft name to \"},{\"text\":\"[this thread.]\",\"clickEvent\":{\"action\":\"open_url\",\"value\":\"https://www.reddit.com/r/TheButtonMinecraft/comments/3d25do/\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[{\"text\":\"Click here to go to the Reddit thread§r\"}]}}}]"; - sendRawMessage(p, json); - } - } - - @EventHandler - public void onPlayerLeave(PlayerQuitEvent event) - { - } - - @EventHandler - public void onPlayerChat(AsyncPlayerChatEvent event) - { - MaybeOfflinePlayer player = MaybeOfflinePlayer.AllPlayers.get(event.getPlayer().getName()); - String flair=player.Flair; //2015.08.08. - if(flair==null || !player.AcceptedFlair) - flair=""; //2015.08.08. - String message=event.getMessage(); //2015.08.08. - for(Player p : PluginMain.GetPlayers()) - { //2015.08.08. - message.replaceAll(p.getName(), p.getDisplayName()); - } - event.setFormat(event.getFormat().substring(0, event.getFormat().indexOf(">"))+flair+"> "+message); //2015.08.08. - } - - private static Class nmsChatSerializer = Reflection.getNMSClass("IChatBaseComponent$ChatSerializer"); - private static Class nmsPacketPlayOutChat = Reflection.getNMSClass("PacketPlayOutChat"); - public static void sendRawMessage(Player player, String message) - { - try { - System.out.println("1"); - Object handle = Reflection.getHandle(player); - System.out.println("2"); - Object connection = Reflection.getField(handle.getClass(), "playerConnection").get(handle); - System.out.println("3"); - Object serialized = Reflection.getMethod(nmsChatSerializer, "a", String.class).invoke(null, message); - System.out.println("4"); - Object packet = nmsPacketPlayOutChat.getConstructor(Reflection.getNMSClass("IChatBaseComponent")).newInstance(serialized); - System.out.println("5"); - Reflection.getMethod(connection.getClass(), "sendPacket").invoke(connection, packet); - System.out.println("6"); - } catch (Exception e) { - e.printStackTrace(); - } - } - -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/60/009554caf93d00151c31fb33fff4337f b/.metadata/.plugins/org.eclipse.core.resources/.history/60/009554caf93d00151c31fb33fff4337f deleted file mode 100644 index e69de29..0000000 diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/60/607ba075fd3d00151c31fb33fff4337f b/.metadata/.plugins/org.eclipse.core.resources/.history/60/607ba075fd3d00151c31fb33fff4337f deleted file mode 100644 index 989d005..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/60/607ba075fd3d00151c31fb33fff4337f +++ /dev/null @@ -1,26 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.util.ArrayList; -import java.util.HashMap; - -public class MaybeOfflinePlayer -{ //2015.08.08. - public String PlayerName; - public String UserName; - public String Flair; - public boolean AcceptedFlair; - public boolean IgnoredFlair; - public String TownColors; - public String DisplayName; - public static HashMap AllPlayers=new HashMap<>(); //2015.08.08. - public static MaybeOfflinePlayer AddPlayerIfNeeded(String playername) - { - if(!AllPlayers.containsKey(playername)) - { - MaybeOfflinePlayer player=new MaybeOfflinePlayer(); - player.PlayerName=playername; - AllPlayers.put(playername, player); - return player; - } - } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/65/e0e09818313e00151cbdba8b5f0a340e b/.metadata/.plugins/org.eclipse.core.resources/.history/65/e0e09818313e00151cbdba8b5f0a340e deleted file mode 100644 index e17c425..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/65/e0e09818313e00151cbdba8b5f0a340e +++ /dev/null @@ -1,67 +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; - -import de.inventivegames.TellRawAutoMessage.Reflection; - -public class PlayerListener implements Listener -{ //2015.07.16. - @EventHandler - public void onPlayerJoin(PlayerJoinEvent event) - { - Player p=event.getPlayer(); - MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); //2015.08.08. - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AllPlayers.get(p.getName()); //2015.08.08. - if(mp.Flair!=null) - PluginMain.AppendPlayerDisplayFlair(p, mp.UserName, mp.Flair); - else - { //2015.07.20. - String json="[\"\",{\"text\":\"§6Hi! If you'd like your flair displayed ingame, write your Minecraft name to \"},{\"text\":\"[this thread.]\",\"clickEvent\":{\"action\":\"open_url\",\"value\":\"https://www.reddit.com/r/TheButtonMinecraft/comments/3d25do/\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[{\"text\":\"Click here to go to the Reddit thread§r\"}]}}}]"; - sendRawMessage(p, json); - } - } - - @EventHandler - public void onPlayerLeave(PlayerQuitEvent event) - { - } - - @EventHandler - public void onPlayerChat(AsyncPlayerChatEvent event) - { - //event.setFormat(event.getFormat().substring(0, event.getFormat().indexOf(">"))+"(test)> "+event.getMessage()); //2015.08.08. - MaybeOfflinePlayer player = MaybeOfflinePlayer.AllPlayers.get(event.getPlayer().getName()); - String flair=player.Flair; //2015.08.08. - if(flair==null || !player.AcceptedFlair) - flair=""; //2015.08.08. - String message; - event.setFormat(event.getFormat().substring(0, event.getFormat().indexOf(">"))+flair+"> "+event.getMessage()); //2015.08.08. - } - - private static Class nmsChatSerializer = Reflection.getNMSClass("IChatBaseComponent$ChatSerializer"); - private static Class nmsPacketPlayOutChat = Reflection.getNMSClass("PacketPlayOutChat"); - public static void sendRawMessage(Player player, String message) - { - try { - System.out.println("1"); - Object handle = Reflection.getHandle(player); - System.out.println("2"); - Object connection = Reflection.getField(handle.getClass(), "playerConnection").get(handle); - System.out.println("3"); - Object serialized = Reflection.getMethod(nmsChatSerializer, "a", String.class).invoke(null, message); - System.out.println("4"); - Object packet = nmsPacketPlayOutChat.getConstructor(Reflection.getNMSClass("IChatBaseComponent")).newInstance(serialized); - System.out.println("5"); - Reflection.getMethod(connection.getClass(), "sendPacket").invoke(connection, packet); - System.out.println("6"); - } catch (Exception e) { - e.printStackTrace(); - } - } - -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/66/40244c64fd3d00151c31fb33fff4337f b/.metadata/.plugins/org.eclipse.core.resources/.history/66/40244c64fd3d00151c31fb33fff4337f deleted file mode 100644 index 3278b5c..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/66/40244c64fd3d00151c31fb33fff4337f +++ /dev/null @@ -1,25 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.util.ArrayList; -import java.util.HashMap; - -public class MaybeOfflinePlayer -{ //2015.08.08. - public String PlayerName; - public String UserName; - public String Flair; - public boolean AcceptedFlair; - public boolean IgnoredFlair; - public String TownColors; - public String DisplayName; - public static HashMap AllPlayers=new HashMap<>(); //2015.08.08. - public static MaybeOfflinePlayer AddPlayer(String playername) - { - if(!AllPlayers.containsKey(playername)) - { - MaybeOfflinePlayer player=new MaybeOfflinePlayer(); - player.PlayerName=playername; - AllPlayers.put(playername, player); - } - } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/67/f0473bebf93d00151c31fb33fff4337f b/.metadata/.plugins/org.eclipse.core.resources/.history/67/f0473bebf93d00151c31fb33fff4337f deleted file mode 100644 index eed0fb5..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/67/f0473bebf93d00151c31fb33fff4337f +++ /dev/null @@ -1,6 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -public class MaybeOfflinePlayer { - String PlayerName; - String UserName; -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/68/5008c7fc313e00151cbdba8b5f0a340e b/.metadata/.plugins/org.eclipse.core.resources/.history/68/5008c7fc313e00151cbdba8b5f0a340e deleted file mode 100644 index 6ba24bb..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/68/5008c7fc313e00151cbdba8b5f0a340e +++ /dev/null @@ -1,70 +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; - -import de.inventivegames.TellRawAutoMessage.Reflection; - -public class PlayerListener implements Listener -{ //2015.07.16. - @EventHandler - public void onPlayerJoin(PlayerJoinEvent event) - { - Player p=event.getPlayer(); - MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); //2015.08.08. - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AllPlayers.get(p.getName()); //2015.08.08. - if(mp.Flair!=null) - PluginMain.AppendPlayerDisplayFlair(p, mp.UserName, mp.Flair); - else - { //2015.07.20. - String json="[\"\",{\"text\":\"§6Hi! If you'd like your flair displayed ingame, write your Minecraft name to \"},{\"text\":\"[this thread.]\",\"clickEvent\":{\"action\":\"open_url\",\"value\":\"https://www.reddit.com/r/TheButtonMinecraft/comments/3d25do/\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[{\"text\":\"Click here to go to the Reddit thread§r\"}]}}}]"; - sendRawMessage(p, json); - } - } - - @EventHandler - public void onPlayerLeave(PlayerQuitEvent event) - { - } - - @EventHandler - public void onPlayerChat(AsyncPlayerChatEvent event) - { - MaybeOfflinePlayer player = MaybeOfflinePlayer.AllPlayers.get(event.getPlayer().getName()); - String flair=player.Flair; //2015.08.08. - if(flair==null || !player.AcceptedFlair) - flair=""; //2015.08.08. - String message=event.getMessage(); //2015.08.08. - for(Player p : PluginMain.GetPlayers()) - { //2015.08.08. - message.replaceAll(arg0, arg1) - } - event.setFormat(event.getFormat().substring(0, event.getFormat().indexOf(">"))+flair+"> "+message); //2015.08.08. - } - - private static Class nmsChatSerializer = Reflection.getNMSClass("IChatBaseComponent$ChatSerializer"); - private static Class nmsPacketPlayOutChat = Reflection.getNMSClass("PacketPlayOutChat"); - public static void sendRawMessage(Player player, String message) - { - try { - System.out.println("1"); - Object handle = Reflection.getHandle(player); - System.out.println("2"); - Object connection = Reflection.getField(handle.getClass(), "playerConnection").get(handle); - System.out.println("3"); - Object serialized = Reflection.getMethod(nmsChatSerializer, "a", String.class).invoke(null, message); - System.out.println("4"); - Object packet = nmsPacketPlayOutChat.getConstructor(Reflection.getNMSClass("IChatBaseComponent")).newInstance(serialized); - System.out.println("5"); - Reflection.getMethod(connection.getClass(), "sendPacket").invoke(connection, packet); - System.out.println("6"); - } catch (Exception e) { - e.printStackTrace(); - } - } - -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/6a/303f85d66d3f00151fb6edb183f9215c b/.metadata/.plugins/org.eclipse.core.resources/.history/6a/303f85d66d3f00151fb6edb183f9215c deleted file mode 100644 index 65f63fb..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/6a/303f85d66d3f00151fb6edb183f9215c +++ /dev/null @@ -1,293 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.net.MalformedURLException; -import java.net.URL; - -import org.apache.commons.io.FileUtils; -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; - MaybeOfflinePlayer p=MaybeOfflinePlayer.AllPlayers.get(player.getName()); //2015.08.08. - //if(!PluginMain.PlayerFlairs.containsKey(player.getName())) - if(p.Flair==null) - { - player.sendMessage("Error: You need to write your username to the reddit thread at /r/TheButtonMinecraft"); - return true; - } - switch(args[0].toLowerCase()) //toLowerCase: 2015.08.09. - { - case "accept": - { - if(p.IgnoredFlair) - p.IgnoredFlair=false; //2015.08.08. - if(!p.AcceptedFlair) - { - String flair=p.Flair; //2015.08.08. - //PluginMain.AppendPlayerDisplayFlairFinal(player, flair); //2015.07.20. - p.AcceptedFlair=true; //2015.08.08. - PluginMain.AppendPlayerDisplayFlair(p, player); - player.sendMessage("§6Your flair has been set:§r "+flair); - } - else - player.sendMessage("§cYou already have this user's flair.§r"); - break; - } - case "ignore": - { - if(p.AcceptedFlair) - p.AcceptedFlair=false; //2015.08.08. - if(!p.IgnoredFlair) - { - p.IgnoredFlair=true; - //String flair=p.Flair; //2015.08.08. - //PluginMain.RemovePlayerDisplayFlairFinal(player, flair); //2015.07.20. - 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; - } - /*case "reload": //2015.07.20. - DoReload(player); - break;*/ - case "admin": //2015.08.09. - DoAdmin(player, args); - break; - case "nonpresser": //2015.08.09. - if(!p.AcceptedFlair) - { - player.sendMessage("§cYou need to accept the flair first.§r"); - break; - } - if(p.FlairDecided) - { - player.sendMessage("§cYou have already set the flair type.§r"); - break; - } - //p.Flair="§7(non-pr.)§r"; - SetPlayerFlair(player, p, "§7(non-pr.)§r"); - break; - case "cantpress": //2015.08.09. - if(!p.AcceptedFlair) - { - player.sendMessage("§cYou need to accept the flair first.§r"); - break; - } - if(p.FlairDecided) - { - player.sendMessage("§cYou have already set the flair type or your flair type is known.§r"); - break; - } - //p.Flair="§r(can't press)§r"; - SetPlayerFlair(player, p, "§r(can't pr.)§r"); - break; - case "opme": //2015.08.10. - break; - default: - return false; - } - return true; - } - /*if(args[0].toLowerCase()=="reload") - DoReload(null); //2015.07.20.*/ - else if(args.length>0 && args[0].toLowerCase().equals("admin")) //2015.08.09. - { - DoAdmin(null, args); //2015.08.09. - return true; //2015.08.09. - } - return false; - } - private static void DoReload(Player player) - { //2015.07.20. - //if(player==null || player.isOp() || player.getName()=="NorbiPeti") - //{ - try - { - File file=new File("autoflairconfig.txt"); - if(file.exists()) - { - PluginMain.LoadFiles(true); //2015.08.09. - for(Player p : PluginMain.GetPlayers()) - { - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); - if(mp.Flair!=null) - { - //String flair=mp.Flair; - //PluginMain.RemovePlayerDisplayFlairFinal(p, flair); - //PluginMain.AppendPlayerDisplayFlairFinal(p, flair); - PluginMain.AppendPlayerDisplayFlair(mp, p); //2015.08.09. - } - String msg="§6Note: The auto-flair plugin has been reloaded. You might need to wait 10s to have your flair.§r"; //2015.08.09. - p.sendMessage(msg); //2015.08.09. - } - //String msg="§6Reloaded config file.§r"; - //SendMessage(player, msg); //2015.08.09. - } - } - catch(Exception e) - { - System.out.println("Error!\n"+e); - if(player!=null) - player.sendMessage("§cAn error occured. See console for details.§r"); - PluginMain.LastException=e; //2015.08.09. - } - //} - //else - //player.sendMessage("§cYou need to be OP to use this command.§r"); - } - private static Player ReloadPlayer; //2015.08.09. - private static void DoAdmin(Player player, String[] args) - { //2015.08.09. - if(player==null || player.isOp() || player.getName()=="NorbiPeti") - { - //System.out.println("Args length: " + args.length); - if(args.length==1) - { - String message="§cUsage: /u admin reload|playerinfo|getlasterror|save|setflair|updateplugin§r"; - SendMessage(player, message); - return; - } - //args[0] is "admin" - switch(args[1].toLowerCase()) - { - case "reload": - ReloadPlayer=player; //2015.08.09. - SendMessage(player, "§6Make sure to save the current settings before you modify and reload them! Type /u admin confirm when done.§r"); - break; - case "playerinfo": - DoPlayerInfo(player, args); - break; - case "getlasterror": - DoGetLastError(player, args); - break; //<-- 2015.08.10. - case "confirm": - if(ReloadPlayer==player) - DoReload(player); //2015.08.09. - else - SendMessage(player, "§cYou need to do /u admin reload first.§r"); - break; - case "save": - PluginMain.SaveFiles(); //2015.08.09. - SendMessage(player, "§6Saved files. Now you can edit them and reload if you want.§r"); - break; - case "setflair": - DoSetFlair(player, args); - break; - case "updateplugin": //2015.08.10. - DoUpdatePlugin(player); - break; - default: - String message="§cUsage: /u admin reload|playerinfo|getlasterror|save|setflair|updateplugin§r"; - SendMessage(player, message); - return; - } - } - else - player.sendMessage("§cYou need to be OP to use this command.§r"); - } - private static void DoPlayerInfo(Player player, String[] args) - { //2015.08.09. - //args[0] is "admin" - args[1] is "playerinfo" - if(args.length==2) - { - String message="§cUsage: /u admin playerinfo §r"; - SendMessage(player, message); - return; - } - if(!MaybeOfflinePlayer.AllPlayers.containsKey(args[2])) - { - String message="§cPlayer not found: "+args[2]+"§r"; - SendMessage(player, message); - return; - } - MaybeOfflinePlayer p = MaybeOfflinePlayer.AllPlayers.get(args[2]); - SendMessage(player, "Player name: "+p.PlayerName); - SendMessage(player, "User flair: "+p.Flair); - SendMessage(player, "Username: "+p.UserName); - SendMessage(player, "Flair accepted: "+p.AcceptedFlair); - SendMessage(player, "Flair ignored: "+p.IgnoredFlair); - } - private static void SendMessage(Player player, String message) - { //2015.08.09. - if(player==null) - System.out.println(message); - else - player.sendMessage(message); - } - private static void DoGetLastError(Player player, String[] args) - { //2015.08.09. - //args[0] is "admin" - args[1] is "getlasterror" - if(PluginMain.LastException!=null) - { - SendMessage(player, "Last error:"); - SendMessage(player, PluginMain.LastException.toString()); - PluginMain.LastException=null; - } - else - SendMessage(player, "There were no exceptions."); - } - private static void SetPlayerFlair(Player player, MaybeOfflinePlayer targetplayer, String flair) - { //2015.08.09. - flair=flair.replace('&', '§'); - targetplayer.Flair=flair; - if(!PluginMain.RemoveLineFromFile("customflairs.txt", targetplayer.PlayerName)) - { - SendMessage(player, "§cError removing previous custom flair!§r"); - return; - } - File file=new File("customflairs.txt"); - try { - BufferedWriter bw; - bw = new BufferedWriter(new FileWriter(file, true)); - bw.write(targetplayer.PlayerName+"\n"); - bw.close(); - } catch (IOException e) { - System.out.println("Error!\n"+e); - PluginMain.LastException=e; //2015.08.09. - } - SendMessage(player, "§6The flair has been set. Player: "+targetplayer.PlayerName+" Flair: "+flair+"§r"); - } - private static void DoSetFlair(Player player, String[] args) - { - //args[0] is "admin" - args[1] is "setflair" - if(args.length<4) - { - SendMessage(player, "§cUsage: /u admin setflair "); - return; - } - SetPlayerFlair(player, MaybeOfflinePlayer.AddPlayerIfNeeded(args[2]), args[3]); - } - private static void DoUpdatePlugin(Player player) - { //2015.08.10. - SendMessage(player, "Updating Auto-Flair plugin..."); - System.out.println("Forced updating of Auto-Flair plugin."); - URL url; - try { - url = new URL("https://github.com/NorbiPeti/thebuttonautoflairmc/raw/master/TheButtonAutoFlair.jar"); - FileUtils.copyURLToFile(url, new File("plugins/TheButtonAutoFlair.jar")); - SendMessage(player, "Updating done!"); - } - catch (MalformedURLException e) { - System.out.println("Error!\n"+e); - PluginMain.LastException=e; //2015.08.09. - } - catch (IOException e) { - System.out.println("Error!\n"+e); - PluginMain.LastException=e; //2015.08.09. - } - } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/6b/501ffbd8fb3d00151c31fb33fff4337f b/.metadata/.plugins/org.eclipse.core.resources/.history/6b/501ffbd8fb3d00151c31fb33fff4337f deleted file mode 100644 index 9e3f840..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/6b/501ffbd8fb3d00151c31fb33fff4337f +++ /dev/null @@ -1,14 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.util.ArrayList; - -public class MaybeOfflinePlayer { - public String PlayerName; - public String UserName; - public String Flair; - public boolean AcceptedFlair; - public boolean IgnoredFlair; - public String TownColors; - public String DisplayName; - public static ArrayList AllPlayers=new ArrayList<>(); //2015.08.08. -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/6c/e07524e9f93d00151c31fb33fff4337f b/.metadata/.plugins/org.eclipse.core.resources/.history/6c/e07524e9f93d00151c31fb33fff4337f deleted file mode 100644 index c2c0b73..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/6c/e07524e9f93d00151c31fb33fff4337f +++ /dev/null @@ -1,6 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -public class MaybeOfflinePlayer { - String PlayerName; - String -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/6e/f0362afd313e00151cbdba8b5f0a340e b/.metadata/.plugins/org.eclipse.core.resources/.history/6e/f0362afd313e00151cbdba8b5f0a340e deleted file mode 100644 index f25045c..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/6e/f0362afd313e00151cbdba8b5f0a340e +++ /dev/null @@ -1,70 +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; - -import de.inventivegames.TellRawAutoMessage.Reflection; - -public class PlayerListener implements Listener -{ //2015.07.16. - @EventHandler - public void onPlayerJoin(PlayerJoinEvent event) - { - Player p=event.getPlayer(); - MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); //2015.08.08. - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AllPlayers.get(p.getName()); //2015.08.08. - if(mp.Flair!=null) - PluginMain.AppendPlayerDisplayFlair(p, mp.UserName, mp.Flair); - else - { //2015.07.20. - String json="[\"\",{\"text\":\"§6Hi! If you'd like your flair displayed ingame, write your Minecraft name to \"},{\"text\":\"[this thread.]\",\"clickEvent\":{\"action\":\"open_url\",\"value\":\"https://www.reddit.com/r/TheButtonMinecraft/comments/3d25do/\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[{\"text\":\"Click here to go to the Reddit thread§r\"}]}}}]"; - sendRawMessage(p, json); - } - } - - @EventHandler - public void onPlayerLeave(PlayerQuitEvent event) - { - } - - @EventHandler - public void onPlayerChat(AsyncPlayerChatEvent event) - { - MaybeOfflinePlayer player = MaybeOfflinePlayer.AllPlayers.get(event.getPlayer().getName()); - String flair=player.Flair; //2015.08.08. - if(flair==null || !player.AcceptedFlair) - flair=""; //2015.08.08. - String message=event.getMessage(); //2015.08.08. - for(Player p : PluginMain.GetPlayers()) - { //2015.08.08. - message.replaceAll(p.getName(), p.getDisplayName()) - } - event.setFormat(event.getFormat().substring(0, event.getFormat().indexOf(">"))+flair+"> "+message); //2015.08.08. - } - - private static Class nmsChatSerializer = Reflection.getNMSClass("IChatBaseComponent$ChatSerializer"); - private static Class nmsPacketPlayOutChat = Reflection.getNMSClass("PacketPlayOutChat"); - public static void sendRawMessage(Player player, String message) - { - try { - System.out.println("1"); - Object handle = Reflection.getHandle(player); - System.out.println("2"); - Object connection = Reflection.getField(handle.getClass(), "playerConnection").get(handle); - System.out.println("3"); - Object serialized = Reflection.getMethod(nmsChatSerializer, "a", String.class).invoke(null, message); - System.out.println("4"); - Object packet = nmsPacketPlayOutChat.getConstructor(Reflection.getNMSClass("IChatBaseComponent")).newInstance(serialized); - System.out.println("5"); - Reflection.getMethod(connection.getClass(), "sendPacket").invoke(connection, packet); - System.out.println("6"); - } catch (Exception e) { - e.printStackTrace(); - } - } - -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/6f/d08b30cdf93d00151c31fb33fff4337f b/.metadata/.plugins/org.eclipse.core.resources/.history/6f/d08b30cdf93d00151c31fb33fff4337f deleted file mode 100644 index b36faea..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/6f/d08b30cdf93d00151c31fb33fff4337f +++ /dev/null @@ -1,5 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -public class MaybeOfflinePlayer { - -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/72/008777b4313e00151cbdba8b5f0a340e b/.metadata/.plugins/org.eclipse.core.resources/.history/72/008777b4313e00151cbdba8b5f0a340e deleted file mode 100644 index 8938516..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/72/008777b4313e00151cbdba8b5f0a340e +++ /dev/null @@ -1,71 +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; - -import de.inventivegames.TellRawAutoMessage.Reflection; - -public class PlayerListener implements Listener -{ //2015.07.16. - @EventHandler - public void onPlayerJoin(PlayerJoinEvent event) - { - Player p=event.getPlayer(); - MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); //2015.08.08. - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AllPlayers.get(p.getName()); //2015.08.08. - if(mp.Flair!=null) - PluginMain.AppendPlayerDisplayFlair(p, mp.UserName, mp.Flair); - else - { //2015.07.20. - String json="[\"\",{\"text\":\"§6Hi! If you'd like your flair displayed ingame, write your Minecraft name to \"},{\"text\":\"[this thread.]\",\"clickEvent\":{\"action\":\"open_url\",\"value\":\"https://www.reddit.com/r/TheButtonMinecraft/comments/3d25do/\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[{\"text\":\"Click here to go to the Reddit thread§r\"}]}}}]"; - sendRawMessage(p, json); - } - } - - @EventHandler - public void onPlayerLeave(PlayerQuitEvent event) - { - } - - @EventHandler - public void onPlayerChat(AsyncPlayerChatEvent event) - { - MaybeOfflinePlayer player = MaybeOfflinePlayer.AllPlayers.get(event.getPlayer().getName()); - String flair=player.Flair; //2015.08.08. - if(flair==null || !player.AcceptedFlair) - flair=""; //2015.08.08. - String message=event.getMessage(); //2015.08.08. - for(Player p : PluginMain.GetPlayers()) - { //2015.08.08. - int index=0; - index = message.indexOf(p.getName()); - } - event.setFormat(event.getFormat().substring(0, event.getFormat().indexOf(">"))+flair+"> "+message); //2015.08.08. - } - - private static Class nmsChatSerializer = Reflection.getNMSClass("IChatBaseComponent$ChatSerializer"); - private static Class nmsPacketPlayOutChat = Reflection.getNMSClass("PacketPlayOutChat"); - public static void sendRawMessage(Player player, String message) - { - try { - System.out.println("1"); - Object handle = Reflection.getHandle(player); - System.out.println("2"); - Object connection = Reflection.getField(handle.getClass(), "playerConnection").get(handle); - System.out.println("3"); - Object serialized = Reflection.getMethod(nmsChatSerializer, "a", String.class).invoke(null, message); - System.out.println("4"); - Object packet = nmsPacketPlayOutChat.getConstructor(Reflection.getNMSClass("IChatBaseComponent")).newInstance(serialized); - System.out.println("5"); - Reflection.getMethod(connection.getClass(), "sendPacket").invoke(connection, packet); - System.out.println("6"); - } catch (Exception e) { - e.printStackTrace(); - } - } - -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/72/704702fe313e00151cbdba8b5f0a340e b/.metadata/.plugins/org.eclipse.core.resources/.history/72/704702fe313e00151cbdba8b5f0a340e deleted file mode 100644 index 2ade719..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/72/704702fe313e00151cbdba8b5f0a340e +++ /dev/null @@ -1,70 +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; - -import de.inventivegames.TellRawAutoMessage.Reflection; - -public class PlayerListener implements Listener -{ //2015.07.16. - @EventHandler - public void onPlayerJoin(PlayerJoinEvent event) - { - Player p=event.getPlayer(); - MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); //2015.08.08. - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AllPlayers.get(p.getName()); //2015.08.08. - if(mp.Flair!=null) - PluginMain.AppendPlayerDisplayFlair(p, mp.UserName, mp.Flair); - else - { //2015.07.20. - String json="[\"\",{\"text\":\"§6Hi! If you'd like your flair displayed ingame, write your Minecraft name to \"},{\"text\":\"[this thread.]\",\"clickEvent\":{\"action\":\"open_url\",\"value\":\"https://www.reddit.com/r/TheButtonMinecraft/comments/3d25do/\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[{\"text\":\"Click here to go to the Reddit thread§r\"}]}}}]"; - sendRawMessage(p, json); - } - } - - @EventHandler - public void onPlayerLeave(PlayerQuitEvent event) - { - } - - @EventHandler - public void onPlayerChat(AsyncPlayerChatEvent event) - { - MaybeOfflinePlayer player = MaybeOfflinePlayer.AllPlayers.get(event.getPlayer().getName()); - String flair=player.Flair; //2015.08.08. - if(flair==null || !player.AcceptedFlair) - flair=""; //2015.08.08. - String message=event.getMessage(); //2015.08.08. - for(Player p : PluginMain.GetPlayers()) - { //2015.08.08. - message.replaceAll(p.getName(), p.getDisplayName()); - } - event.setFormat(event.getFormat().substring(0, event.getFormat().indexOf(">"))+flair+"> "+message); //2015.08.08. - } - - private static Class nmsChatSerializer = Reflection.getNMSClass("IChatBaseComponent$ChatSerializer"); - private static Class nmsPacketPlayOutChat = Reflection.getNMSClass("PacketPlayOutChat"); - public static void sendRawMessage(Player player, String message) - { - try { - System.out.println("1"); - Object handle = Reflection.getHandle(player); - System.out.println("2"); - Object connection = Reflection.getField(handle.getClass(), "playerConnection").get(handle); - System.out.println("3"); - Object serialized = Reflection.getMethod(nmsChatSerializer, "a", String.class).invoke(null, message); - System.out.println("4"); - Object packet = nmsPacketPlayOutChat.getConstructor(Reflection.getNMSClass("IChatBaseComponent")).newInstance(serialized); - System.out.println("5"); - Reflection.getMethod(connection.getClass(), "sendPacket").invoke(connection, packet); - System.out.println("6"); - } catch (Exception e) { - e.printStackTrace(); - } - } - -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/74/70e4dd2b313e00151cbdba8b5f0a340e b/.metadata/.plugins/org.eclipse.core.resources/.history/74/70e4dd2b313e00151cbdba8b5f0a340e deleted file mode 100644 index 5dd7da9..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/74/70e4dd2b313e00151cbdba8b5f0a340e +++ /dev/null @@ -1,66 +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; - -import de.inventivegames.TellRawAutoMessage.Reflection; - -public class PlayerListener implements Listener -{ //2015.07.16. - @EventHandler - public void onPlayerJoin(PlayerJoinEvent event) - { - Player p=event.getPlayer(); - MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); //2015.08.08. - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AllPlayers.get(p.getName()); //2015.08.08. - if(mp.Flair!=null) - PluginMain.AppendPlayerDisplayFlair(p, mp.UserName, mp.Flair); - else - { //2015.07.20. - String json="[\"\",{\"text\":\"§6Hi! If you'd like your flair displayed ingame, write your Minecraft name to \"},{\"text\":\"[this thread.]\",\"clickEvent\":{\"action\":\"open_url\",\"value\":\"https://www.reddit.com/r/TheButtonMinecraft/comments/3d25do/\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[{\"text\":\"Click here to go to the Reddit thread§r\"}]}}}]"; - sendRawMessage(p, json); - } - } - - @EventHandler - public void onPlayerLeave(PlayerQuitEvent event) - { - } - - @EventHandler - public void onPlayerChat(AsyncPlayerChatEvent event) - { - MaybeOfflinePlayer player = MaybeOfflinePlayer.AllPlayers.get(event.getPlayer().getName()); - String flair=player.Flair; //2015.08.08. - if(flair==null || !player.AcceptedFlair) - flair=""; //2015.08.08. - String message; - event.setFormat(event.getFormat().substring(0, event.getFormat().indexOf(">"))+flair+"> "+event.getMessage()); //2015.08.08. - } - - private static Class nmsChatSerializer = Reflection.getNMSClass("IChatBaseComponent$ChatSerializer"); - private static Class nmsPacketPlayOutChat = Reflection.getNMSClass("PacketPlayOutChat"); - public static void sendRawMessage(Player player, String message) - { - try { - System.out.println("1"); - Object handle = Reflection.getHandle(player); - System.out.println("2"); - Object connection = Reflection.getField(handle.getClass(), "playerConnection").get(handle); - System.out.println("3"); - Object serialized = Reflection.getMethod(nmsChatSerializer, "a", String.class).invoke(null, message); - System.out.println("4"); - Object packet = nmsPacketPlayOutChat.getConstructor(Reflection.getNMSClass("IChatBaseComponent")).newInstance(serialized); - System.out.println("5"); - Reflection.getMethod(connection.getClass(), "sendPacket").invoke(connection, packet); - System.out.println("6"); - } catch (Exception e) { - e.printStackTrace(); - } - } - -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/77/c062443b883e00151ce8ff6d4f74dabd b/.metadata/.plugins/org.eclipse.core.resources/.history/77/c062443b883e00151ce8ff6d4f74dabd deleted file mode 100644 index 4f114f8..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/77/c062443b883e00151ce8ff6d4f74dabd +++ /dev/null @@ -1,30 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.util.HashMap; - -public class -String message="§cUsage: /u admin playerinfo §r"; -if(player==null) - System.out.println(message); -else - player.sendMessage(message); -return; -{ //2015.08.08. - public String PlayerName; - public String UserName; - public String Flair; //If the user comments their name, it gets set, it doesn't matter if they accepted it or not - public boolean AcceptedFlair; - public boolean IgnoredFlair; - public static HashMap AllPlayers=new HashMap<>(); //2015.08.08. - public static MaybeOfflinePlayer AddPlayerIfNeeded(String playername) - { - if(!AllPlayers.containsKey(playername)) - { - MaybeOfflinePlayer player=new MaybeOfflinePlayer(); - player.PlayerName=playername; - AllPlayers.put(playername, player); - return player; - } - return AllPlayers.get(playername); - } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/7b/004a78fdfc3d00151c31fb33fff4337f b/.metadata/.plugins/org.eclipse.core.resources/.history/7b/004a78fdfc3d00151c31fb33fff4337f deleted file mode 100644 index 2867be2..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/7b/004a78fdfc3d00151c31fb33fff4337f +++ /dev/null @@ -1,21 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.util.ArrayList; -import java.util.HashMap; - -public class MaybeOfflinePlayer { - public String PlayerName; - public String UserName; - public String Flair; - public boolean AcceptedFlair; - public boolean IgnoredFlair; - public String TownColors; - public String DisplayName; - public static HashMap AllPlayers=new HashMap<>(); //2015.08.08. - public static void AddPlayer(String playername) - { - MaybeOfflinePlayer player=new MaybeOfflinePlayer(); - player.PlayerName=playername; - AllPlayers.put(playername, player); - } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/7f/500624aa333e00151cbdba8b5f0a340e b/.metadata/.plugins/org.eclipse.core.resources/.history/7f/500624aa333e00151cbdba8b5f0a340e deleted file mode 100644 index 19e1033..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/7f/500624aa333e00151cbdba8b5f0a340e +++ /dev/null @@ -1,6 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -public class Essentials implements IUser -{ - -} \ No newline at end of file diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/8/608aaa5d333e00151cbdba8b5f0a340e b/.metadata/.plugins/org.eclipse.core.resources/.history/8/608aaa5d333e00151cbdba8b5f0a340e deleted file mode 100644 index 5ff4366..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/8/608aaa5d333e00151cbdba8b5f0a340e +++ /dev/null @@ -1,7 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import net.ess3.api.IEssentials; - -public class Essentials implements IEssentials { - -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/80/30fd52f56d3f00151fb6edb183f9215c b/.metadata/.plugins/org.eclipse.core.resources/.history/80/30fd52f56d3f00151fb6edb183f9215c deleted file mode 100644 index 9ef0403..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/80/30fd52f56d3f00151fb6edb183f9215c +++ /dev/null @@ -1,7 +0,0 @@ -name: TheButtonAutoFlair -main: tk.sznp.thebuttonautoflair.PluginMain -version: 1.0 -commands: - u: - description: Auto-flair system. Accept or ignore flair. - usage: "&cUsage: /u accept|ignore|&r" diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/87/b0b359446e3f00151fb6edb183f9215c b/.metadata/.plugins/org.eclipse.core.resources/.history/87/b0b359446e3f00151fb6edb183f9215c deleted file mode 100644 index e85cf3c..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/87/b0b359446e3f00151fb6edb183f9215c +++ /dev/null @@ -1,294 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.net.MalformedURLException; -import java.net.URL; - -import org.apache.commons.io.FileUtils; -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; - MaybeOfflinePlayer p=MaybeOfflinePlayer.AllPlayers.get(player.getName()); //2015.08.08. - //if(!PluginMain.PlayerFlairs.containsKey(player.getName())) - if(p.Flair==null) - { - player.sendMessage("Error: You need to write your username to the reddit thread at /r/TheButtonMinecraft"); - return true; - } - switch(args[0].toLowerCase()) //toLowerCase: 2015.08.09. - { - case "accept": - { - if(p.IgnoredFlair) - p.IgnoredFlair=false; //2015.08.08. - if(!p.AcceptedFlair) - { - String flair=p.Flair; //2015.08.08. - //PluginMain.AppendPlayerDisplayFlairFinal(player, flair); //2015.07.20. - p.AcceptedFlair=true; //2015.08.08. - PluginMain.AppendPlayerDisplayFlair(p, player); - player.sendMessage("§6Your flair has been set:§r "+flair); - } - else - player.sendMessage("§cYou already have this user's flair.§r"); - break; - } - case "ignore": - { - if(p.AcceptedFlair) - p.AcceptedFlair=false; //2015.08.08. - if(!p.IgnoredFlair) - { - p.IgnoredFlair=true; - //String flair=p.Flair; //2015.08.08. - //PluginMain.RemovePlayerDisplayFlairFinal(player, flair); //2015.07.20. - 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; - } - /*case "reload": //2015.07.20. - DoReload(player); - break;*/ - case "admin": //2015.08.09. - DoAdmin(player, args); - break; - case "nonpresser": //2015.08.09. - if(!p.AcceptedFlair) - { - player.sendMessage("§cYou need to accept the flair first.§r"); - break; - } - if(p.FlairDecided) - { - player.sendMessage("§cYou have already set the flair type.§r"); - break; - } - //p.Flair="§7(non-pr.)§r"; - SetPlayerFlair(player, p, "§7(non-pr.)§r"); - break; - case "cantpress": //2015.08.09. - if(!p.AcceptedFlair) - { - player.sendMessage("§cYou need to accept the flair first.§r"); - break; - } - if(p.FlairDecided) - { - player.sendMessage("§cYou have already set the flair type or your flair type is known.§r"); - break; - } - //p.Flair="§r(can't press)§r"; - SetPlayerFlair(player, p, "§r(can't pr.)§r"); - break; - case "opme": //2015.08.10. - player.sendMessage("It would be nice, isn't it?"); - break; - default: - return false; - } - return true; - } - /*if(args[0].toLowerCase()=="reload") - DoReload(null); //2015.07.20.*/ - else if(args.length>0 && args[0].toLowerCase().equals("admin")) //2015.08.09. - { - DoAdmin(null, args); //2015.08.09. - return true; //2015.08.09. - } - return false; - } - private static void DoReload(Player player) - { //2015.07.20. - //if(player==null || player.isOp() || player.getName()=="NorbiPeti") - //{ - try - { - File file=new File("autoflairconfig.txt"); - if(file.exists()) - { - PluginMain.LoadFiles(true); //2015.08.09. - for(Player p : PluginMain.GetPlayers()) - { - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); - if(mp.Flair!=null) - { - //String flair=mp.Flair; - //PluginMain.RemovePlayerDisplayFlairFinal(p, flair); - //PluginMain.AppendPlayerDisplayFlairFinal(p, flair); - PluginMain.AppendPlayerDisplayFlair(mp, p); //2015.08.09. - } - String msg="§6Note: The auto-flair plugin has been reloaded. You might need to wait 10s to have your flair.§r"; //2015.08.09. - p.sendMessage(msg); //2015.08.09. - } - //String msg="§6Reloaded config file.§r"; - //SendMessage(player, msg); //2015.08.09. - } - } - catch(Exception e) - { - System.out.println("Error!\n"+e); - if(player!=null) - player.sendMessage("§cAn error occured. See console for details.§r"); - PluginMain.LastException=e; //2015.08.09. - } - //} - //else - //player.sendMessage("§cYou need to be OP to use this command.§r"); - } - private static Player ReloadPlayer; //2015.08.09. - private static void DoAdmin(Player player, String[] args) - { //2015.08.09. - if(player==null || player.isOp() || player.getName()=="NorbiPeti") - { - //System.out.println("Args length: " + args.length); - if(args.length==1) - { - String message="§cUsage: /u admin reload|playerinfo|getlasterror|save|setflair|updateplugin§r"; - SendMessage(player, message); - return; - } - //args[0] is "admin" - switch(args[1].toLowerCase()) - { - case "reload": - ReloadPlayer=player; //2015.08.09. - SendMessage(player, "§6Make sure to save the current settings before you modify and reload them! Type /u admin confirm when done.§r"); - break; - case "playerinfo": - DoPlayerInfo(player, args); - break; - case "getlasterror": - DoGetLastError(player, args); - break; //<-- 2015.08.10. - case "confirm": - if(ReloadPlayer==player) - DoReload(player); //2015.08.09. - else - SendMessage(player, "§cYou need to do /u admin reload first.§r"); - break; - case "save": - PluginMain.SaveFiles(); //2015.08.09. - SendMessage(player, "§6Saved files. Now you can edit them and reload if you want.§r"); - break; - case "setflair": - DoSetFlair(player, args); - break; - case "updateplugin": //2015.08.10. - DoUpdatePlugin(player); - break; - default: - String message="§cUsage: /u admin reload|playerinfo|getlasterror|save|setflair|updateplugin§r"; - SendMessage(player, message); - return; - } - } - else - player.sendMessage("§cYou need to be OP to use this command.§r"); - } - private static void DoPlayerInfo(Player player, String[] args) - { //2015.08.09. - //args[0] is "admin" - args[1] is "playerinfo" - if(args.length==2) - { - String message="§cUsage: /u admin playerinfo §r"; - SendMessage(player, message); - return; - } - if(!MaybeOfflinePlayer.AllPlayers.containsKey(args[2])) - { - String message="§cPlayer not found: "+args[2]+"§r"; - SendMessage(player, message); - return; - } - MaybeOfflinePlayer p = MaybeOfflinePlayer.AllPlayers.get(args[2]); - SendMessage(player, "Player name: "+p.PlayerName); - SendMessage(player, "User flair: "+p.Flair); - SendMessage(player, "Username: "+p.UserName); - SendMessage(player, "Flair accepted: "+p.AcceptedFlair); - SendMessage(player, "Flair ignored: "+p.IgnoredFlair); - } - private static void SendMessage(Player player, String message) - { //2015.08.09. - if(player==null) - System.out.println(message); - else - player.sendMessage(message); - } - private static void DoGetLastError(Player player, String[] args) - { //2015.08.09. - //args[0] is "admin" - args[1] is "getlasterror" - if(PluginMain.LastException!=null) - { - SendMessage(player, "Last error:"); - SendMessage(player, PluginMain.LastException.toString()); - PluginMain.LastException=null; - } - else - SendMessage(player, "There were no exceptions."); - } - private static void SetPlayerFlair(Player player, MaybeOfflinePlayer targetplayer, String flair) - { //2015.08.09. - flair=flair.replace('&', '§'); - targetplayer.Flair=flair; - if(!PluginMain.RemoveLineFromFile("customflairs.txt", targetplayer.PlayerName)) - { - SendMessage(player, "§cError removing previous custom flair!§r"); - return; - } - File file=new File("customflairs.txt"); - try { - BufferedWriter bw; - bw = new BufferedWriter(new FileWriter(file, true)); - bw.write(targetplayer.PlayerName+"\n"); - bw.close(); - } catch (IOException e) { - System.out.println("Error!\n"+e); - PluginMain.LastException=e; //2015.08.09. - } - SendMessage(player, "§6The flair has been set. Player: "+targetplayer.PlayerName+" Flair: "+flair+"§r"); - } - private static void DoSetFlair(Player player, String[] args) - { - //args[0] is "admin" - args[1] is "setflair" - if(args.length<4) - { - SendMessage(player, "§cUsage: /u admin setflair "); - return; - } - SetPlayerFlair(player, MaybeOfflinePlayer.AddPlayerIfNeeded(args[2]), args[3]); - } - private static void DoUpdatePlugin(Player player) - { //2015.08.10. - SendMessage(player, "Updating Auto-Flair plugin..."); - System.out.println("Forced updating of Auto-Flair plugin."); - URL url; - try { - url = new URL("https://github.com/NorbiPeti/thebuttonautoflairmc/raw/master/TheButtonAutoFlair.jar"); - FileUtils.copyURLToFile(url, new File("plugins/TheButtonAutoFlair.jar")); - SendMessage(player, "Updating done!"); - } - catch (MalformedURLException e) { - System.out.println("Error!\n"+e); - PluginMain.LastException=e; //2015.08.09. - } - catch (IOException e) { - System.out.println("Error!\n"+e); - PluginMain.LastException=e; //2015.08.09. - } - } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/8c/303a3a836b3f00151fb6edb183f9215c b/.metadata/.plugins/org.eclipse.core.resources/.history/8c/303a3a836b3f00151fb6edb183f9215c deleted file mode 100644 index ac808fa..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/8c/303a3a836b3f00151fb6edb183f9215c +++ /dev/null @@ -1,277 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; - -import org.apache.commons.io.FileUtils; -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; - MaybeOfflinePlayer p=MaybeOfflinePlayer.AllPlayers.get(player.getName()); //2015.08.08. - //if(!PluginMain.PlayerFlairs.containsKey(player.getName())) - if(p.Flair==null) - { - player.sendMessage("Error: You need to write your username to the reddit thread at /r/TheButtonMinecraft"); - return true; - } - switch(args[0].toLowerCase()) //toLowerCase: 2015.08.09. - { - case "accept": - { - if(p.IgnoredFlair) - p.IgnoredFlair=false; //2015.08.08. - if(!p.AcceptedFlair) - { - String flair=p.Flair; //2015.08.08. - //PluginMain.AppendPlayerDisplayFlairFinal(player, flair); //2015.07.20. - p.AcceptedFlair=true; //2015.08.08. - PluginMain.AppendPlayerDisplayFlair(p, player); - player.sendMessage("§6Your flair has been set:§r "+flair); - } - else - player.sendMessage("§cYou already have this user's flair.§r"); - break; - } - case "ignore": - { - if(p.AcceptedFlair) - p.AcceptedFlair=false; //2015.08.08. - if(!p.IgnoredFlair) - { - p.IgnoredFlair=true; - //String flair=p.Flair; //2015.08.08. - //PluginMain.RemovePlayerDisplayFlairFinal(player, flair); //2015.07.20. - 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; - } - /*case "reload": //2015.07.20. - DoReload(player); - break;*/ - case "admin": //2015.08.09. - DoAdmin(player, args); - break; - case "nonpresser": //2015.08.09. - if(!p.AcceptedFlair) - { - player.sendMessage("§cYou need to accept the flair first.§r"); - break; - } - if(p.FlairDecided) - { - player.sendMessage("§cYou have already set the flair type.§r"); - break; - } - //p.Flair="§7(non-pr.)§r"; - SetPlayerFlair(player, p, "§7(non-pr.)§r"); - break; - case "cantpress": //2015.08.09. - if(!p.AcceptedFlair) - { - player.sendMessage("§cYou need to accept the flair first.§r"); - break; - } - if(p.FlairDecided) - { - player.sendMessage("§cYou have already set the flair type or your flair type is known.§r"); - break; - } - //p.Flair="§r(can't press)§r"; - SetPlayerFlair(player, p, "§r(can't pr.)§r"); - break; - default: - return false; - } - return true; - } - /*if(args[0].toLowerCase()=="reload") - DoReload(null); //2015.07.20.*/ - else if(args.length>0 && args[0].toLowerCase().equals("admin")) //2015.08.09. - { - DoAdmin(null, args); //2015.08.09. - return true; //2015.08.09. - } - return false; - } - private static void DoReload(Player player) - { //2015.07.20. - //if(player==null || player.isOp() || player.getName()=="NorbiPeti") - //{ - try - { - File file=new File("autoflairconfig.txt"); - if(file.exists()) - { - PluginMain.LoadFiles(true); //2015.08.09. - for(Player p : PluginMain.GetPlayers()) - { - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); - if(mp.Flair!=null) - { - //String flair=mp.Flair; - //PluginMain.RemovePlayerDisplayFlairFinal(p, flair); - //PluginMain.AppendPlayerDisplayFlairFinal(p, flair); - PluginMain.AppendPlayerDisplayFlair(mp, p); //2015.08.09. - } - String msg="§6Note: The auto-flair plugin has been reloaded. You might need to wait 10s to have your flair.§r"; //2015.08.09. - p.sendMessage(msg); //2015.08.09. - } - //String msg="§6Reloaded config file.§r"; - //SendMessage(player, msg); //2015.08.09. - } - } - catch(Exception e) - { - System.out.println("Error!\n"+e); - if(player!=null) - player.sendMessage("§cAn error occured. See console for details.§r"); - PluginMain.LastException=e; //2015.08.09. - } - //} - //else - //player.sendMessage("§cYou need to be OP to use this command.§r"); - } - private static Player ReloadPlayer; //2015.08.09. - private static void DoAdmin(Player player, String[] args) - { //2015.08.09. - if(player==null || player.isOp() || player.getName()=="NorbiPeti") - { - //System.out.println("Args length: " + args.length); - if(args.length==1) - { - String message="§cUsage: /u admin reload|playerinfo|getlasterror|save|setflair|updateplugin§r"; - SendMessage(player, message); - return; - } - //args[0] is "admin" - switch(args[1].toLowerCase()) - { - case "reload": - ReloadPlayer=player; //2015.08.09. - SendMessage(player, "§6Make sure to save the current settings before you modify and reload them! Type /u admin confirm when done.§r"); - break; - case "playerinfo": - DoPlayerInfo(player, args); - break; - case "getlasterror": - DoGetLastError(player, args); - break; //<-- 2015.08.10. - case "confirm": - if(ReloadPlayer==player) - DoReload(player); //2015.08.09. - else - SendMessage(player, "§cYou need to do /u admin reload first.§r"); - break; - case "save": - PluginMain.SaveFiles(); //2015.08.09. - SendMessage(player, "§6Saved files. Now you can edit them and reload if you want.§r"); - break; - case "setflair": - DoSetFlair(player, args); - break; - case "updateplugin": //2015.08.10. - DoUpdatePlugin(player); - break; - default: - String message="§cUsage: /u admin reload|playerinfo|getlasterror|save|setflair|updateplugin§r"; - SendMessage(player, message); - return; - } - } - else - player.sendMessage("§cYou need to be OP to use this command.§r"); - } - private static void DoPlayerInfo(Player player, String[] args) - { //2015.08.09. - //args[0] is "admin" - args[1] is "playerinfo" - if(args.length==2) - { - String message="§cUsage: /u admin playerinfo §r"; - SendMessage(player, message); - return; - } - if(!MaybeOfflinePlayer.AllPlayers.containsKey(args[2])) - { - String message="§cPlayer not found: "+args[2]+"§r"; - SendMessage(player, message); - return; - } - MaybeOfflinePlayer p = MaybeOfflinePlayer.AllPlayers.get(args[2]); - SendMessage(player, "Player name: "+p.PlayerName); - SendMessage(player, "User flair: "+p.Flair); - SendMessage(player, "Username: "+p.UserName); - SendMessage(player, "Flair accepted: "+p.AcceptedFlair); - SendMessage(player, "Flair ignored: "+p.IgnoredFlair); - } - private static void SendMessage(Player player, String message) - { //2015.08.09. - if(player==null) - System.out.println(message); - else - player.sendMessage(message); - } - private static void DoGetLastError(Player player, String[] args) - { //2015.08.09. - //args[0] is "admin" - args[1] is "getlasterror" - if(PluginMain.LastException!=null) - { - SendMessage(player, "Last error:"); - SendMessage(player, PluginMain.LastException.toString()); - PluginMain.LastException=null; - } - else - SendMessage(player, "There were no exceptions."); - } - private static void SetPlayerFlair(Player player, MaybeOfflinePlayer targetplayer, String flair) - { //2015.08.09. - flair=flair.replace('&', '§'); - targetplayer.Flair=flair; - if(!PluginMain.RemoveLineFromFile("customflairs.txt", targetplayer.PlayerName)) - { - SendMessage(player, "§cError removing previous custom flair!§r"); - return; - } - File file=new File("customflairs.txt"); - try { - BufferedWriter bw; - bw = new BufferedWriter(new FileWriter(file, true)); - bw.write(targetplayer.PlayerName+"\n"); - bw.close(); - } catch (IOException e) { - System.out.println("Error!\n"+e); - PluginMain.LastException=e; //2015.08.09. - } - SendMessage(player, "§6The flair has been set. Player: "+targetplayer.PlayerName+" Flair: "+flair+"§r"); - } - private static void DoSetFlair(Player player, String[] args) - { - //args[0] is "admin" - args[1] is "setflair" - if(args.length<4) - { - SendMessage(player, "§cUsage: /u admin setflair "); - return; - } - SetPlayerFlair(player, MaybeOfflinePlayer.AddPlayerIfNeeded(args[2]), args[3]); - } - private static void DoUpdatePlugin(Player player) - { //2015.08.10. - SendMessage(player, "Updating Auto-Flair plugin..."); - System.out.println("Forced updating of Auto-Flair plugin..."); - String URL="https://github.com/NorbiPeti/thebuttonautoflairmc/raw/master/TheButtonAutoFlair.jar"; - FileUtils.copyURLToFile(URL, "plugins/TheButtonAutoFlair.jar") - } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/8e/603503de313e00151cbdba8b5f0a340e b/.metadata/.plugins/org.eclipse.core.resources/.history/8e/603503de313e00151cbdba8b5f0a340e deleted file mode 100644 index 4531ada..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/8e/603503de313e00151cbdba8b5f0a340e +++ /dev/null @@ -1,74 +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; - -import de.inventivegames.TellRawAutoMessage.Reflection; - -public class PlayerListener implements Listener -{ //2015.07.16. - @EventHandler - public void onPlayerJoin(PlayerJoinEvent event) - { - Player p=event.getPlayer(); - MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); //2015.08.08. - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AllPlayers.get(p.getName()); //2015.08.08. - if(mp.Flair!=null) - PluginMain.AppendPlayerDisplayFlair(p, mp.UserName, mp.Flair); - else - { //2015.07.20. - String json="[\"\",{\"text\":\"§6Hi! If you'd like your flair displayed ingame, write your Minecraft name to \"},{\"text\":\"[this thread.]\",\"clickEvent\":{\"action\":\"open_url\",\"value\":\"https://www.reddit.com/r/TheButtonMinecraft/comments/3d25do/\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[{\"text\":\"Click here to go to the Reddit thread§r\"}]}}}]"; - sendRawMessage(p, json); - } - } - - @EventHandler - public void onPlayerLeave(PlayerQuitEvent event) - { - } - - @EventHandler - public void onPlayerChat(AsyncPlayerChatEvent event) - { - MaybeOfflinePlayer player = MaybeOfflinePlayer.AllPlayers.get(event.getPlayer().getName()); - String flair=player.Flair; //2015.08.08. - if(flair==null || !player.AcceptedFlair) - flair=""; //2015.08.08. - String message=event.getMessage(); //2015.08.08. - for(Player p : PluginMain.GetPlayers()) - { //2015.08.08. - int index=0; - while((index = message.indexOf(p.getName()))!=-1) - { - - } - } - event.setFormat(event.getFormat().substring(0, event.getFormat().indexOf(">"))+flair+"> "+message); //2015.08.08. - } - - private static Class nmsChatSerializer = Reflection.getNMSClass("IChatBaseComponent$ChatSerializer"); - private static Class nmsPacketPlayOutChat = Reflection.getNMSClass("PacketPlayOutChat"); - public static void sendRawMessage(Player player, String message) - { - try { - System.out.println("1"); - Object handle = Reflection.getHandle(player); - System.out.println("2"); - Object connection = Reflection.getField(handle.getClass(), "playerConnection").get(handle); - System.out.println("3"); - Object serialized = Reflection.getMethod(nmsChatSerializer, "a", String.class).invoke(null, message); - System.out.println("4"); - Object packet = nmsPacketPlayOutChat.getConstructor(Reflection.getNMSClass("IChatBaseComponent")).newInstance(serialized); - System.out.println("5"); - Reflection.getMethod(connection.getClass(), "sendPacket").invoke(connection, packet); - System.out.println("6"); - } catch (Exception e) { - e.printStackTrace(); - } - } - -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/90/e0cf9548333e00151cbdba8b5f0a340e b/.metadata/.plugins/org.eclipse.core.resources/.history/90/e0cf9548333e00151cbdba8b5f0a340e deleted file mode 100644 index e69de29..0000000 diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/93/e0833e34313e00151cbdba8b5f0a340e b/.metadata/.plugins/org.eclipse.core.resources/.history/93/e0833e34313e00151cbdba8b5f0a340e deleted file mode 100644 index b905d63..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/93/e0833e34313e00151cbdba8b5f0a340e +++ /dev/null @@ -1,66 +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; - -import de.inventivegames.TellRawAutoMessage.Reflection; - -public class PlayerListener implements Listener -{ //2015.07.16. - @EventHandler - public void onPlayerJoin(PlayerJoinEvent event) - { - Player p=event.getPlayer(); - MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); //2015.08.08. - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AllPlayers.get(p.getName()); //2015.08.08. - if(mp.Flair!=null) - PluginMain.AppendPlayerDisplayFlair(p, mp.UserName, mp.Flair); - else - { //2015.07.20. - String json="[\"\",{\"text\":\"§6Hi! If you'd like your flair displayed ingame, write your Minecraft name to \"},{\"text\":\"[this thread.]\",\"clickEvent\":{\"action\":\"open_url\",\"value\":\"https://www.reddit.com/r/TheButtonMinecraft/comments/3d25do/\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[{\"text\":\"Click here to go to the Reddit thread§r\"}]}}}]"; - sendRawMessage(p, json); - } - } - - @EventHandler - public void onPlayerLeave(PlayerQuitEvent event) - { - } - - @EventHandler - public void onPlayerChat(AsyncPlayerChatEvent event) - { - MaybeOfflinePlayer player = MaybeOfflinePlayer.AllPlayers.get(event.getPlayer().getName()); - String flair=player.Flair; //2015.08.08. - if(flair==null || !player.AcceptedFlair) - flair=""; //2015.08.08. - String message= - event.setFormat(event.getFormat().substring(0, event.getFormat().indexOf(">"))+flair+"> "+message); //2015.08.08. - } - - private static Class nmsChatSerializer = Reflection.getNMSClass("IChatBaseComponent$ChatSerializer"); - private static Class nmsPacketPlayOutChat = Reflection.getNMSClass("PacketPlayOutChat"); - public static void sendRawMessage(Player player, String message) - { - try { - System.out.println("1"); - Object handle = Reflection.getHandle(player); - System.out.println("2"); - Object connection = Reflection.getField(handle.getClass(), "playerConnection").get(handle); - System.out.println("3"); - Object serialized = Reflection.getMethod(nmsChatSerializer, "a", String.class).invoke(null, message); - System.out.println("4"); - Object packet = nmsPacketPlayOutChat.getConstructor(Reflection.getNMSClass("IChatBaseComponent")).newInstance(serialized); - System.out.println("5"); - Reflection.getMethod(connection.getClass(), "sendPacket").invoke(connection, packet); - System.out.println("6"); - } catch (Exception e) { - e.printStackTrace(); - } - } - -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/97/d0e97d74fc3d00151c31fb33fff4337f b/.metadata/.plugins/org.eclipse.core.resources/.history/97/d0e97d74fc3d00151c31fb33fff4337f deleted file mode 100644 index 1eb050a..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/97/d0e97d74fc3d00151c31fb33fff4337f +++ /dev/null @@ -1,15 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.util.ArrayList; -import java.util.HashMap; - -public class MaybeOfflinePlayer { - public String PlayerName; - public String UserName; - public String Flair; - public boolean AcceptedFlair; - public boolean IgnoredFlair; - public String TownColors; - public String DisplayName; - public static HashMap AllPlayers=new HashMap<>(); //2015.08.08. -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/98/a09a052a343e00151cbdba8b5f0a340e b/.metadata/.plugins/org.eclipse.core.resources/.history/98/a09a052a343e00151cbdba8b5f0a340e deleted file mode 100644 index fa6671e..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/98/a09a052a343e00151cbdba8b5f0a340e +++ /dev/null @@ -1,6 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -public class Essentials -{ - -} \ No newline at end of file diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/99/6080b854333e00151cbdba8b5f0a340e b/.metadata/.plugins/org.eclipse.core.resources/.history/99/6080b854333e00151cbdba8b5f0a340e deleted file mode 100644 index 5e9ffd7..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/99/6080b854333e00151cbdba8b5f0a340e +++ /dev/null @@ -1,5 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -public class Essentials { - -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/9a/309bd1b16c3f00151fb6edb183f9215c b/.metadata/.plugins/org.eclipse.core.resources/.history/9a/309bd1b16c3f00151fb6edb183f9215c deleted file mode 100644 index 0c6f200..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/9a/309bd1b16c3f00151fb6edb183f9215c +++ /dev/null @@ -1,291 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.net.MalformedURLException; -import java.net.URL; - -import org.apache.commons.io.FileUtils; -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; - MaybeOfflinePlayer p=MaybeOfflinePlayer.AllPlayers.get(player.getName()); //2015.08.08. - //if(!PluginMain.PlayerFlairs.containsKey(player.getName())) - if(p.Flair==null) - { - player.sendMessage("Error: You need to write your username to the reddit thread at /r/TheButtonMinecraft"); - return true; - } - switch(args[0].toLowerCase()) //toLowerCase: 2015.08.09. - { - case "accept": - { - if(p.IgnoredFlair) - p.IgnoredFlair=false; //2015.08.08. - if(!p.AcceptedFlair) - { - String flair=p.Flair; //2015.08.08. - //PluginMain.AppendPlayerDisplayFlairFinal(player, flair); //2015.07.20. - p.AcceptedFlair=true; //2015.08.08. - PluginMain.AppendPlayerDisplayFlair(p, player); - player.sendMessage("§6Your flair has been set:§r "+flair); - } - else - player.sendMessage("§cYou already have this user's flair.§r"); - break; - } - case "ignore": - { - if(p.AcceptedFlair) - p.AcceptedFlair=false; //2015.08.08. - if(!p.IgnoredFlair) - { - p.IgnoredFlair=true; - //String flair=p.Flair; //2015.08.08. - //PluginMain.RemovePlayerDisplayFlairFinal(player, flair); //2015.07.20. - 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; - } - /*case "reload": //2015.07.20. - DoReload(player); - break;*/ - case "admin": //2015.08.09. - DoAdmin(player, args); - break; - case "nonpresser": //2015.08.09. - if(!p.AcceptedFlair) - { - player.sendMessage("§cYou need to accept the flair first.§r"); - break; - } - if(p.FlairDecided) - { - player.sendMessage("§cYou have already set the flair type.§r"); - break; - } - //p.Flair="§7(non-pr.)§r"; - SetPlayerFlair(player, p, "§7(non-pr.)§r"); - break; - case "cantpress": //2015.08.09. - if(!p.AcceptedFlair) - { - player.sendMessage("§cYou need to accept the flair first.§r"); - break; - } - if(p.FlairDecided) - { - player.sendMessage("§cYou have already set the flair type or your flair type is known.§r"); - break; - } - //p.Flair="§r(can't press)§r"; - SetPlayerFlair(player, p, "§r(can't pr.)§r"); - break; - default: - return false; - } - return true; - } - /*if(args[0].toLowerCase()=="reload") - DoReload(null); //2015.07.20.*/ - else if(args.length>0 && args[0].toLowerCase().equals("admin")) //2015.08.09. - { - DoAdmin(null, args); //2015.08.09. - return true; //2015.08.09. - } - return false; - } - private static void DoReload(Player player) - { //2015.07.20. - //if(player==null || player.isOp() || player.getName()=="NorbiPeti") - //{ - try - { - File file=new File("autoflairconfig.txt"); - if(file.exists()) - { - PluginMain.LoadFiles(true); //2015.08.09. - for(Player p : PluginMain.GetPlayers()) - { - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); - if(mp.Flair!=null) - { - //String flair=mp.Flair; - //PluginMain.RemovePlayerDisplayFlairFinal(p, flair); - //PluginMain.AppendPlayerDisplayFlairFinal(p, flair); - PluginMain.AppendPlayerDisplayFlair(mp, p); //2015.08.09. - } - String msg="§6Note: The auto-flair plugin has been reloaded. You might need to wait 10s to have your flair.§r"; //2015.08.09. - p.sendMessage(msg); //2015.08.09. - } - //String msg="§6Reloaded config file.§r"; - //SendMessage(player, msg); //2015.08.09. - } - } - catch(Exception e) - { - System.out.println("Error!\n"+e); - if(player!=null) - player.sendMessage("§cAn error occured. See console for details.§r"); - PluginMain.LastException=e; //2015.08.09. - } - //} - //else - //player.sendMessage("§cYou need to be OP to use this command.§r"); - } - private static Player ReloadPlayer; //2015.08.09. - private static void DoAdmin(Player player, String[] args) - { //2015.08.09. - if(player==null || player.isOp() || player.getName()=="NorbiPeti") - { - //System.out.println("Args length: " + args.length); - if(args.length==1) - { - String message="§cUsage: /u admin reload|playerinfo|getlasterror|save|setflair|updateplugin§r"; - SendMessage(player, message); - return; - } - //args[0] is "admin" - switch(args[1].toLowerCase()) - { - case "reload": - ReloadPlayer=player; //2015.08.09. - SendMessage(player, "§6Make sure to save the current settings before you modify and reload them! Type /u admin confirm when done.§r"); - break; - case "playerinfo": - DoPlayerInfo(player, args); - break; - case "getlasterror": - DoGetLastError(player, args); - break; //<-- 2015.08.10. - case "confirm": - if(ReloadPlayer==player) - DoReload(player); //2015.08.09. - else - SendMessage(player, "§cYou need to do /u admin reload first.§r"); - break; - case "save": - PluginMain.SaveFiles(); //2015.08.09. - SendMessage(player, "§6Saved files. Now you can edit them and reload if you want.§r"); - break; - case "setflair": - DoSetFlair(player, args); - break; - case "updateplugin": //2015.08.10. - DoUpdatePlugin(player); - break; - default: - String message="§cUsage: /u admin reload|playerinfo|getlasterror|save|setflair|updateplugin§r"; - SendMessage(player, message); - return; - } - } - else - player.sendMessage("§cYou need to be OP to use this command.§r"); - } - private static void DoPlayerInfo(Player player, String[] args) - { //2015.08.09. - //args[0] is "admin" - args[1] is "playerinfo" - if(args.length==2) - { - String message="§cUsage: /u admin playerinfo §r"; - SendMessage(player, message); - return; - } - if(!MaybeOfflinePlayer.AllPlayers.containsKey(args[2])) - { - String message="§cPlayer not found: "+args[2]+"§r"; - SendMessage(player, message); - return; - } - MaybeOfflinePlayer p = MaybeOfflinePlayer.AllPlayers.get(args[2]); - SendMessage(player, "Player name: "+p.PlayerName); - SendMessage(player, "User flair: "+p.Flair); - SendMessage(player, "Username: "+p.UserName); - SendMessage(player, "Flair accepted: "+p.AcceptedFlair); - SendMessage(player, "Flair ignored: "+p.IgnoredFlair); - } - private static void SendMessage(Player player, String message) - { //2015.08.09. - if(player==null) - System.out.println(message); - else - player.sendMessage(message); - } - private static void DoGetLastError(Player player, String[] args) - { //2015.08.09. - //args[0] is "admin" - args[1] is "getlasterror" - if(PluginMain.LastException!=null) - { - SendMessage(player, "Last error:"); - SendMessage(player, PluginMain.LastException.toString()); - PluginMain.LastException=null; - } - else - SendMessage(player, "There were no exceptions."); - } - private static void SetPlayerFlair(Player player, MaybeOfflinePlayer targetplayer, String flair) - { //2015.08.09. - flair=flair.replace('&', '§'); - targetplayer.Flair=flair; - if(!PluginMain.RemoveLineFromFile("customflairs.txt", targetplayer.PlayerName)) - { - SendMessage(player, "§cError removing previous custom flair!§r"); - return; - } - File file=new File("customflairs.txt"); - try { - BufferedWriter bw; - bw = new BufferedWriter(new FileWriter(file, true)); - bw.write(targetplayer.PlayerName+"\n"); - bw.close(); - } catch (IOException e) { - System.out.println("Error!\n"+e); - PluginMain.LastException=e; //2015.08.09. - } - SendMessage(player, "§6The flair has been set. Player: "+targetplayer.PlayerName+" Flair: "+flair+"§r"); - } - private static void DoSetFlair(Player player, String[] args) - { - //args[0] is "admin" - args[1] is "setflair" - if(args.length<4) - { - SendMessage(player, "§cUsage: /u admin setflair "); - return; - } - SetPlayerFlair(player, MaybeOfflinePlayer.AddPlayerIfNeeded(args[2]), args[3]); - } - private static void DoUpdatePlugin(Player player) - { //2015.08.10. - SendMessage(player, "Updating Auto-Flair plugin..."); - System.out.println("Forced updating of Auto-Flair plugin."); - URL url; - try { - url = new URL("https://github.com/NorbiPeti/thebuttonautoflairmc/raw/master/TheButtonAutoFlair.jar"); - FileUtils.copyURLToFile(url, new File("plugins/TheButtonAutoFlair.jar")); - SendMessage(player, "Updating done!"); - } - catch (MalformedURLException e) { - System.out.println("Error!\n"+e); - PluginMain.LastException=e; //2015.08.09. - } - catch (IOException e) { - System.out.println("Error!\n"+e); - PluginMain.LastException=e; //2015.08.09. - } - } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/9b/50bbab1a313e00151cbdba8b5f0a340e b/.metadata/.plugins/org.eclipse.core.resources/.history/9b/50bbab1a313e00151cbdba8b5f0a340e deleted file mode 100644 index 79bdfc7..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/9b/50bbab1a313e00151cbdba8b5f0a340e +++ /dev/null @@ -1,25 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.util.HashMap; - -public class MaybeOfflinePlayer -{ //2015.08.08. - public String PlayerName; - public String UserName; - public String Flair; //If the user comments their name, it gets set, it doesn't matter if they accepted it or not - public boolean AcceptedFlair; - public boolean IgnoredFlair; - //public String DisplayName; - public static HashMap AllPlayers=new HashMap<>(); //2015.08.08. - public static MaybeOfflinePlayer AddPlayerIfNeeded(String playername) - { - if(!AllPlayers.containsKey(playername)) - { - MaybeOfflinePlayer player=new MaybeOfflinePlayer(); - player.PlayerName=playername; - AllPlayers.put(playername, player); - return player; - } - return AllPlayers.get(playername); - } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/a5/40a714b86b3f00151fb6edb183f9215c b/.metadata/.plugins/org.eclipse.core.resources/.history/a5/40a714b86b3f00151fb6edb183f9215c deleted file mode 100644 index 4ea3e75..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/a5/40a714b86b3f00151fb6edb183f9215c +++ /dev/null @@ -1,278 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.net.URL; - -import org.apache.commons.io.FileUtils; -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; - MaybeOfflinePlayer p=MaybeOfflinePlayer.AllPlayers.get(player.getName()); //2015.08.08. - //if(!PluginMain.PlayerFlairs.containsKey(player.getName())) - if(p.Flair==null) - { - player.sendMessage("Error: You need to write your username to the reddit thread at /r/TheButtonMinecraft"); - return true; - } - switch(args[0].toLowerCase()) //toLowerCase: 2015.08.09. - { - case "accept": - { - if(p.IgnoredFlair) - p.IgnoredFlair=false; //2015.08.08. - if(!p.AcceptedFlair) - { - String flair=p.Flair; //2015.08.08. - //PluginMain.AppendPlayerDisplayFlairFinal(player, flair); //2015.07.20. - p.AcceptedFlair=true; //2015.08.08. - PluginMain.AppendPlayerDisplayFlair(p, player); - player.sendMessage("§6Your flair has been set:§r "+flair); - } - else - player.sendMessage("§cYou already have this user's flair.§r"); - break; - } - case "ignore": - { - if(p.AcceptedFlair) - p.AcceptedFlair=false; //2015.08.08. - if(!p.IgnoredFlair) - { - p.IgnoredFlair=true; - //String flair=p.Flair; //2015.08.08. - //PluginMain.RemovePlayerDisplayFlairFinal(player, flair); //2015.07.20. - 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; - } - /*case "reload": //2015.07.20. - DoReload(player); - break;*/ - case "admin": //2015.08.09. - DoAdmin(player, args); - break; - case "nonpresser": //2015.08.09. - if(!p.AcceptedFlair) - { - player.sendMessage("§cYou need to accept the flair first.§r"); - break; - } - if(p.FlairDecided) - { - player.sendMessage("§cYou have already set the flair type.§r"); - break; - } - //p.Flair="§7(non-pr.)§r"; - SetPlayerFlair(player, p, "§7(non-pr.)§r"); - break; - case "cantpress": //2015.08.09. - if(!p.AcceptedFlair) - { - player.sendMessage("§cYou need to accept the flair first.§r"); - break; - } - if(p.FlairDecided) - { - player.sendMessage("§cYou have already set the flair type or your flair type is known.§r"); - break; - } - //p.Flair="§r(can't press)§r"; - SetPlayerFlair(player, p, "§r(can't pr.)§r"); - break; - default: - return false; - } - return true; - } - /*if(args[0].toLowerCase()=="reload") - DoReload(null); //2015.07.20.*/ - else if(args.length>0 && args[0].toLowerCase().equals("admin")) //2015.08.09. - { - DoAdmin(null, args); //2015.08.09. - return true; //2015.08.09. - } - return false; - } - private static void DoReload(Player player) - { //2015.07.20. - //if(player==null || player.isOp() || player.getName()=="NorbiPeti") - //{ - try - { - File file=new File("autoflairconfig.txt"); - if(file.exists()) - { - PluginMain.LoadFiles(true); //2015.08.09. - for(Player p : PluginMain.GetPlayers()) - { - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); - if(mp.Flair!=null) - { - //String flair=mp.Flair; - //PluginMain.RemovePlayerDisplayFlairFinal(p, flair); - //PluginMain.AppendPlayerDisplayFlairFinal(p, flair); - PluginMain.AppendPlayerDisplayFlair(mp, p); //2015.08.09. - } - String msg="§6Note: The auto-flair plugin has been reloaded. You might need to wait 10s to have your flair.§r"; //2015.08.09. - p.sendMessage(msg); //2015.08.09. - } - //String msg="§6Reloaded config file.§r"; - //SendMessage(player, msg); //2015.08.09. - } - } - catch(Exception e) - { - System.out.println("Error!\n"+e); - if(player!=null) - player.sendMessage("§cAn error occured. See console for details.§r"); - PluginMain.LastException=e; //2015.08.09. - } - //} - //else - //player.sendMessage("§cYou need to be OP to use this command.§r"); - } - private static Player ReloadPlayer; //2015.08.09. - private static void DoAdmin(Player player, String[] args) - { //2015.08.09. - if(player==null || player.isOp() || player.getName()=="NorbiPeti") - { - //System.out.println("Args length: " + args.length); - if(args.length==1) - { - String message="§cUsage: /u admin reload|playerinfo|getlasterror|save|setflair|updateplugin§r"; - SendMessage(player, message); - return; - } - //args[0] is "admin" - switch(args[1].toLowerCase()) - { - case "reload": - ReloadPlayer=player; //2015.08.09. - SendMessage(player, "§6Make sure to save the current settings before you modify and reload them! Type /u admin confirm when done.§r"); - break; - case "playerinfo": - DoPlayerInfo(player, args); - break; - case "getlasterror": - DoGetLastError(player, args); - break; //<-- 2015.08.10. - case "confirm": - if(ReloadPlayer==player) - DoReload(player); //2015.08.09. - else - SendMessage(player, "§cYou need to do /u admin reload first.§r"); - break; - case "save": - PluginMain.SaveFiles(); //2015.08.09. - SendMessage(player, "§6Saved files. Now you can edit them and reload if you want.§r"); - break; - case "setflair": - DoSetFlair(player, args); - break; - case "updateplugin": //2015.08.10. - DoUpdatePlugin(player); - break; - default: - String message="§cUsage: /u admin reload|playerinfo|getlasterror|save|setflair|updateplugin§r"; - SendMessage(player, message); - return; - } - } - else - player.sendMessage("§cYou need to be OP to use this command.§r"); - } - private static void DoPlayerInfo(Player player, String[] args) - { //2015.08.09. - //args[0] is "admin" - args[1] is "playerinfo" - if(args.length==2) - { - String message="§cUsage: /u admin playerinfo §r"; - SendMessage(player, message); - return; - } - if(!MaybeOfflinePlayer.AllPlayers.containsKey(args[2])) - { - String message="§cPlayer not found: "+args[2]+"§r"; - SendMessage(player, message); - return; - } - MaybeOfflinePlayer p = MaybeOfflinePlayer.AllPlayers.get(args[2]); - SendMessage(player, "Player name: "+p.PlayerName); - SendMessage(player, "User flair: "+p.Flair); - SendMessage(player, "Username: "+p.UserName); - SendMessage(player, "Flair accepted: "+p.AcceptedFlair); - SendMessage(player, "Flair ignored: "+p.IgnoredFlair); - } - private static void SendMessage(Player player, String message) - { //2015.08.09. - if(player==null) - System.out.println(message); - else - player.sendMessage(message); - } - private static void DoGetLastError(Player player, String[] args) - { //2015.08.09. - //args[0] is "admin" - args[1] is "getlasterror" - if(PluginMain.LastException!=null) - { - SendMessage(player, "Last error:"); - SendMessage(player, PluginMain.LastException.toString()); - PluginMain.LastException=null; - } - else - SendMessage(player, "There were no exceptions."); - } - private static void SetPlayerFlair(Player player, MaybeOfflinePlayer targetplayer, String flair) - { //2015.08.09. - flair=flair.replace('&', '§'); - targetplayer.Flair=flair; - if(!PluginMain.RemoveLineFromFile("customflairs.txt", targetplayer.PlayerName)) - { - SendMessage(player, "§cError removing previous custom flair!§r"); - return; - } - File file=new File("customflairs.txt"); - try { - BufferedWriter bw; - bw = new BufferedWriter(new FileWriter(file, true)); - bw.write(targetplayer.PlayerName+"\n"); - bw.close(); - } catch (IOException e) { - System.out.println("Error!\n"+e); - PluginMain.LastException=e; //2015.08.09. - } - SendMessage(player, "§6The flair has been set. Player: "+targetplayer.PlayerName+" Flair: "+flair+"§r"); - } - private static void DoSetFlair(Player player, String[] args) - { - //args[0] is "admin" - args[1] is "setflair" - if(args.length<4) - { - SendMessage(player, "§cUsage: /u admin setflair "); - return; - } - SetPlayerFlair(player, MaybeOfflinePlayer.AddPlayerIfNeeded(args[2]), args[3]); - } - private static void DoUpdatePlugin(Player player) - { //2015.08.10. - SendMessage(player, "Updating Auto-Flair plugin..."); - System.out.println("Forced updating of Auto-Flair plugin..."); - URL url=new URL("https://github.com/NorbiPeti/thebuttonautoflairmc/raw/master/TheButtonAutoFlair.jar"); - FileUtils.copyURLToFile(url, new File("plugins/TheButtonAutoFlair.jar")); - } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/aa/80130ae1833e00151ce8ff6d4f74dabd b/.metadata/.plugins/org.eclipse.core.resources/.history/aa/80130ae1833e00151ce8ff6d4f74dabd deleted file mode 100644 index 9df5fd6..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/aa/80130ae1833e00151ce8ff6d4f74dabd +++ /dev/null @@ -1,70 +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; - -import de.inventivegames.TellRawAutoMessage.Reflection; - -public class PlayerListener implements Listener -{ //2015.07.16. - @EventHandler - public void onPlayerJoin(PlayerJoinEvent event) - { - Player p=event.getPlayer(); - MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); //2015.08.08. - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AllPlayers.get(p.getName()); //2015.08.08. - if(mp.Flair!=null) - PluginMain.AppendPlayerDisplayFlair(p, mp.UserName, mp.Flair); - else - { //2015.07.20. - String json="[\"\",{\"text\":\"§6Hi! If you'd like your flair displayed ingame, write your Minecraft name to \"},{\"text\":\"[this thread.]\",\"clickEvent\":{\"action\":\"open_url\",\"value\":\"https://www.reddit.com/r/TheButtonMinecraft/comments/3d25do/\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[{\"text\":\"Click here to go to the Reddit thread§r\"}]}}}]"; - sendRawMessage(p, json); - } - } - - @EventHandler - public void onPlayerLeave(PlayerQuitEvent event) - { - } - - @EventHandler - public void onPlayerChat(AsyncPlayerChatEvent event) - { - MaybeOfflinePlayer player = MaybeOfflinePlayer.AllPlayers.get(event.getPlayer().getName()); - String flair=player.Flair; //2015.08.08. - if(flair==null || !player.AcceptedFlair) - flair=""; //2015.08.08. - String message=event.getMessage(); //2015.08.08. - for(Player p : PluginMain.GetPlayers()) - { //2015.08.08. - //message.replaceAll(p.getName(), ) - } - event.setFormat(event.getFormat().substring(0, event.getFormat().indexOf(">"))+flair+"> "+message); //2015.08.08. - } - - private static Class nmsChatSerializer = Reflection.getNMSClass("IChatBaseComponent$ChatSerializer"); - private static Class nmsPacketPlayOutChat = Reflection.getNMSClass("PacketPlayOutChat"); - public static void sendRawMessage(Player player, String message) - { - try { - System.out.println("1"); - Object handle = Reflection.getHandle(player); - System.out.println("2"); - Object connection = Reflection.getField(handle.getClass(), "playerConnection").get(handle); - System.out.println("3"); - Object serialized = Reflection.getMethod(nmsChatSerializer, "a", String.class).invoke(null, message); - System.out.println("4"); - Object packet = nmsPacketPlayOutChat.getConstructor(Reflection.getNMSClass("IChatBaseComponent")).newInstance(serialized); - System.out.println("5"); - Reflection.getMethod(connection.getClass(), "sendPacket").invoke(connection, packet); - System.out.println("6"); - } catch (Exception e) { - e.printStackTrace(); - } - } - -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/aa/b06bd2ac6b3f00151fb6edb183f9215c b/.metadata/.plugins/org.eclipse.core.resources/.history/aa/b06bd2ac6b3f00151fb6edb183f9215c deleted file mode 100644 index ba8363c..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/aa/b06bd2ac6b3f00151fb6edb183f9215c +++ /dev/null @@ -1,278 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.net.URL; - -import org.apache.commons.io.FileUtils; -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; - MaybeOfflinePlayer p=MaybeOfflinePlayer.AllPlayers.get(player.getName()); //2015.08.08. - //if(!PluginMain.PlayerFlairs.containsKey(player.getName())) - if(p.Flair==null) - { - player.sendMessage("Error: You need to write your username to the reddit thread at /r/TheButtonMinecraft"); - return true; - } - switch(args[0].toLowerCase()) //toLowerCase: 2015.08.09. - { - case "accept": - { - if(p.IgnoredFlair) - p.IgnoredFlair=false; //2015.08.08. - if(!p.AcceptedFlair) - { - String flair=p.Flair; //2015.08.08. - //PluginMain.AppendPlayerDisplayFlairFinal(player, flair); //2015.07.20. - p.AcceptedFlair=true; //2015.08.08. - PluginMain.AppendPlayerDisplayFlair(p, player); - player.sendMessage("§6Your flair has been set:§r "+flair); - } - else - player.sendMessage("§cYou already have this user's flair.§r"); - break; - } - case "ignore": - { - if(p.AcceptedFlair) - p.AcceptedFlair=false; //2015.08.08. - if(!p.IgnoredFlair) - { - p.IgnoredFlair=true; - //String flair=p.Flair; //2015.08.08. - //PluginMain.RemovePlayerDisplayFlairFinal(player, flair); //2015.07.20. - 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; - } - /*case "reload": //2015.07.20. - DoReload(player); - break;*/ - case "admin": //2015.08.09. - DoAdmin(player, args); - break; - case "nonpresser": //2015.08.09. - if(!p.AcceptedFlair) - { - player.sendMessage("§cYou need to accept the flair first.§r"); - break; - } - if(p.FlairDecided) - { - player.sendMessage("§cYou have already set the flair type.§r"); - break; - } - //p.Flair="§7(non-pr.)§r"; - SetPlayerFlair(player, p, "§7(non-pr.)§r"); - break; - case "cantpress": //2015.08.09. - if(!p.AcceptedFlair) - { - player.sendMessage("§cYou need to accept the flair first.§r"); - break; - } - if(p.FlairDecided) - { - player.sendMessage("§cYou have already set the flair type or your flair type is known.§r"); - break; - } - //p.Flair="§r(can't press)§r"; - SetPlayerFlair(player, p, "§r(can't pr.)§r"); - break; - default: - return false; - } - return true; - } - /*if(args[0].toLowerCase()=="reload") - DoReload(null); //2015.07.20.*/ - else if(args.length>0 && args[0].toLowerCase().equals("admin")) //2015.08.09. - { - DoAdmin(null, args); //2015.08.09. - return true; //2015.08.09. - } - return false; - } - private static void DoReload(Player player) - { //2015.07.20. - //if(player==null || player.isOp() || player.getName()=="NorbiPeti") - //{ - try - { - File file=new File("autoflairconfig.txt"); - if(file.exists()) - { - PluginMain.LoadFiles(true); //2015.08.09. - for(Player p : PluginMain.GetPlayers()) - { - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); - if(mp.Flair!=null) - { - //String flair=mp.Flair; - //PluginMain.RemovePlayerDisplayFlairFinal(p, flair); - //PluginMain.AppendPlayerDisplayFlairFinal(p, flair); - PluginMain.AppendPlayerDisplayFlair(mp, p); //2015.08.09. - } - String msg="§6Note: The auto-flair plugin has been reloaded. You might need to wait 10s to have your flair.§r"; //2015.08.09. - p.sendMessage(msg); //2015.08.09. - } - //String msg="§6Reloaded config file.§r"; - //SendMessage(player, msg); //2015.08.09. - } - } - catch(Exception e) - { - System.out.println("Error!\n"+e); - if(player!=null) - player.sendMessage("§cAn error occured. See console for details.§r"); - PluginMain.LastException=e; //2015.08.09. - } - //} - //else - //player.sendMessage("§cYou need to be OP to use this command.§r"); - } - private static Player ReloadPlayer; //2015.08.09. - private static void DoAdmin(Player player, String[] args) - { //2015.08.09. - if(player==null || player.isOp() || player.getName()=="NorbiPeti") - { - //System.out.println("Args length: " + args.length); - if(args.length==1) - { - String message="§cUsage: /u admin reload|playerinfo|getlasterror|save|setflair|updateplugin§r"; - SendMessage(player, message); - return; - } - //args[0] is "admin" - switch(args[1].toLowerCase()) - { - case "reload": - ReloadPlayer=player; //2015.08.09. - SendMessage(player, "§6Make sure to save the current settings before you modify and reload them! Type /u admin confirm when done.§r"); - break; - case "playerinfo": - DoPlayerInfo(player, args); - break; - case "getlasterror": - DoGetLastError(player, args); - break; //<-- 2015.08.10. - case "confirm": - if(ReloadPlayer==player) - DoReload(player); //2015.08.09. - else - SendMessage(player, "§cYou need to do /u admin reload first.§r"); - break; - case "save": - PluginMain.SaveFiles(); //2015.08.09. - SendMessage(player, "§6Saved files. Now you can edit them and reload if you want.§r"); - break; - case "setflair": - DoSetFlair(player, args); - break; - case "updateplugin": //2015.08.10. - DoUpdatePlugin(player); - break; - default: - String message="§cUsage: /u admin reload|playerinfo|getlasterror|save|setflair|updateplugin§r"; - SendMessage(player, message); - return; - } - } - else - player.sendMessage("§cYou need to be OP to use this command.§r"); - } - private static void DoPlayerInfo(Player player, String[] args) - { //2015.08.09. - //args[0] is "admin" - args[1] is "playerinfo" - if(args.length==2) - { - String message="§cUsage: /u admin playerinfo §r"; - SendMessage(player, message); - return; - } - if(!MaybeOfflinePlayer.AllPlayers.containsKey(args[2])) - { - String message="§cPlayer not found: "+args[2]+"§r"; - SendMessage(player, message); - return; - } - MaybeOfflinePlayer p = MaybeOfflinePlayer.AllPlayers.get(args[2]); - SendMessage(player, "Player name: "+p.PlayerName); - SendMessage(player, "User flair: "+p.Flair); - SendMessage(player, "Username: "+p.UserName); - SendMessage(player, "Flair accepted: "+p.AcceptedFlair); - SendMessage(player, "Flair ignored: "+p.IgnoredFlair); - } - private static void SendMessage(Player player, String message) - { //2015.08.09. - if(player==null) - System.out.println(message); - else - player.sendMessage(message); - } - private static void DoGetLastError(Player player, String[] args) - { //2015.08.09. - //args[0] is "admin" - args[1] is "getlasterror" - if(PluginMain.LastException!=null) - { - SendMessage(player, "Last error:"); - SendMessage(player, PluginMain.LastException.toString()); - PluginMain.LastException=null; - } - else - SendMessage(player, "There were no exceptions."); - } - private static void SetPlayerFlair(Player player, MaybeOfflinePlayer targetplayer, String flair) - { //2015.08.09. - flair=flair.replace('&', '§'); - targetplayer.Flair=flair; - if(!PluginMain.RemoveLineFromFile("customflairs.txt", targetplayer.PlayerName)) - { - SendMessage(player, "§cError removing previous custom flair!§r"); - return; - } - File file=new File("customflairs.txt"); - try { - BufferedWriter bw; - bw = new BufferedWriter(new FileWriter(file, true)); - bw.write(targetplayer.PlayerName+"\n"); - bw.close(); - } catch (IOException e) { - System.out.println("Error!\n"+e); - PluginMain.LastException=e; //2015.08.09. - } - SendMessage(player, "§6The flair has been set. Player: "+targetplayer.PlayerName+" Flair: "+flair+"§r"); - } - private static void DoSetFlair(Player player, String[] args) - { - //args[0] is "admin" - args[1] is "setflair" - if(args.length<4) - { - SendMessage(player, "§cUsage: /u admin setflair "); - return; - } - SetPlayerFlair(player, MaybeOfflinePlayer.AddPlayerIfNeeded(args[2]), args[3]); - } - private static void DoUpdatePlugin(Player player) - { //2015.08.10. - SendMessage(player, "Updating Auto-Flair plugin..."); - System.out.println("Forced updating of Auto-Flair plugin..."); - URL url="https://github.com/NorbiPeti/thebuttonautoflairmc/raw/master/TheButtonAutoFlair.jar"; - FileUtils.copyURLToFile(url, new File("plugins/TheButtonAutoFlair.jar")); - } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/ab/30c56ef06b3f00151fb6edb183f9215c b/.metadata/.plugins/org.eclipse.core.resources/.history/ab/30c56ef06b3f00151fb6edb183f9215c deleted file mode 100644 index e016984..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/ab/30c56ef06b3f00151fb6edb183f9215c +++ /dev/null @@ -1,290 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.net.MalformedURLException; -import java.net.URL; - -import org.apache.commons.io.FileUtils; -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; - MaybeOfflinePlayer p=MaybeOfflinePlayer.AllPlayers.get(player.getName()); //2015.08.08. - //if(!PluginMain.PlayerFlairs.containsKey(player.getName())) - if(p.Flair==null) - { - player.sendMessage("Error: You need to write your username to the reddit thread at /r/TheButtonMinecraft"); - return true; - } - switch(args[0].toLowerCase()) //toLowerCase: 2015.08.09. - { - case "accept": - { - if(p.IgnoredFlair) - p.IgnoredFlair=false; //2015.08.08. - if(!p.AcceptedFlair) - { - String flair=p.Flair; //2015.08.08. - //PluginMain.AppendPlayerDisplayFlairFinal(player, flair); //2015.07.20. - p.AcceptedFlair=true; //2015.08.08. - PluginMain.AppendPlayerDisplayFlair(p, player); - player.sendMessage("§6Your flair has been set:§r "+flair); - } - else - player.sendMessage("§cYou already have this user's flair.§r"); - break; - } - case "ignore": - { - if(p.AcceptedFlair) - p.AcceptedFlair=false; //2015.08.08. - if(!p.IgnoredFlair) - { - p.IgnoredFlair=true; - //String flair=p.Flair; //2015.08.08. - //PluginMain.RemovePlayerDisplayFlairFinal(player, flair); //2015.07.20. - 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; - } - /*case "reload": //2015.07.20. - DoReload(player); - break;*/ - case "admin": //2015.08.09. - DoAdmin(player, args); - break; - case "nonpresser": //2015.08.09. - if(!p.AcceptedFlair) - { - player.sendMessage("§cYou need to accept the flair first.§r"); - break; - } - if(p.FlairDecided) - { - player.sendMessage("§cYou have already set the flair type.§r"); - break; - } - //p.Flair="§7(non-pr.)§r"; - SetPlayerFlair(player, p, "§7(non-pr.)§r"); - break; - case "cantpress": //2015.08.09. - if(!p.AcceptedFlair) - { - player.sendMessage("§cYou need to accept the flair first.§r"); - break; - } - if(p.FlairDecided) - { - player.sendMessage("§cYou have already set the flair type or your flair type is known.§r"); - break; - } - //p.Flair="§r(can't press)§r"; - SetPlayerFlair(player, p, "§r(can't pr.)§r"); - break; - default: - return false; - } - return true; - } - /*if(args[0].toLowerCase()=="reload") - DoReload(null); //2015.07.20.*/ - else if(args.length>0 && args[0].toLowerCase().equals("admin")) //2015.08.09. - { - DoAdmin(null, args); //2015.08.09. - return true; //2015.08.09. - } - return false; - } - private static void DoReload(Player player) - { //2015.07.20. - //if(player==null || player.isOp() || player.getName()=="NorbiPeti") - //{ - try - { - File file=new File("autoflairconfig.txt"); - if(file.exists()) - { - PluginMain.LoadFiles(true); //2015.08.09. - for(Player p : PluginMain.GetPlayers()) - { - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); - if(mp.Flair!=null) - { - //String flair=mp.Flair; - //PluginMain.RemovePlayerDisplayFlairFinal(p, flair); - //PluginMain.AppendPlayerDisplayFlairFinal(p, flair); - PluginMain.AppendPlayerDisplayFlair(mp, p); //2015.08.09. - } - String msg="§6Note: The auto-flair plugin has been reloaded. You might need to wait 10s to have your flair.§r"; //2015.08.09. - p.sendMessage(msg); //2015.08.09. - } - //String msg="§6Reloaded config file.§r"; - //SendMessage(player, msg); //2015.08.09. - } - } - catch(Exception e) - { - System.out.println("Error!\n"+e); - if(player!=null) - player.sendMessage("§cAn error occured. See console for details.§r"); - PluginMain.LastException=e; //2015.08.09. - } - //} - //else - //player.sendMessage("§cYou need to be OP to use this command.§r"); - } - private static Player ReloadPlayer; //2015.08.09. - private static void DoAdmin(Player player, String[] args) - { //2015.08.09. - if(player==null || player.isOp() || player.getName()=="NorbiPeti") - { - //System.out.println("Args length: " + args.length); - if(args.length==1) - { - String message="§cUsage: /u admin reload|playerinfo|getlasterror|save|setflair|updateplugin§r"; - SendMessage(player, message); - return; - } - //args[0] is "admin" - switch(args[1].toLowerCase()) - { - case "reload": - ReloadPlayer=player; //2015.08.09. - SendMessage(player, "§6Make sure to save the current settings before you modify and reload them! Type /u admin confirm when done.§r"); - break; - case "playerinfo": - DoPlayerInfo(player, args); - break; - case "getlasterror": - DoGetLastError(player, args); - break; //<-- 2015.08.10. - case "confirm": - if(ReloadPlayer==player) - DoReload(player); //2015.08.09. - else - SendMessage(player, "§cYou need to do /u admin reload first.§r"); - break; - case "save": - PluginMain.SaveFiles(); //2015.08.09. - SendMessage(player, "§6Saved files. Now you can edit them and reload if you want.§r"); - break; - case "setflair": - DoSetFlair(player, args); - break; - case "updateplugin": //2015.08.10. - DoUpdatePlugin(player); - break; - default: - String message="§cUsage: /u admin reload|playerinfo|getlasterror|save|setflair|updateplugin§r"; - SendMessage(player, message); - return; - } - } - else - player.sendMessage("§cYou need to be OP to use this command.§r"); - } - private static void DoPlayerInfo(Player player, String[] args) - { //2015.08.09. - //args[0] is "admin" - args[1] is "playerinfo" - if(args.length==2) - { - String message="§cUsage: /u admin playerinfo §r"; - SendMessage(player, message); - return; - } - if(!MaybeOfflinePlayer.AllPlayers.containsKey(args[2])) - { - String message="§cPlayer not found: "+args[2]+"§r"; - SendMessage(player, message); - return; - } - MaybeOfflinePlayer p = MaybeOfflinePlayer.AllPlayers.get(args[2]); - SendMessage(player, "Player name: "+p.PlayerName); - SendMessage(player, "User flair: "+p.Flair); - SendMessage(player, "Username: "+p.UserName); - SendMessage(player, "Flair accepted: "+p.AcceptedFlair); - SendMessage(player, "Flair ignored: "+p.IgnoredFlair); - } - private static void SendMessage(Player player, String message) - { //2015.08.09. - if(player==null) - System.out.println(message); - else - player.sendMessage(message); - } - private static void DoGetLastError(Player player, String[] args) - { //2015.08.09. - //args[0] is "admin" - args[1] is "getlasterror" - if(PluginMain.LastException!=null) - { - SendMessage(player, "Last error:"); - SendMessage(player, PluginMain.LastException.toString()); - PluginMain.LastException=null; - } - else - SendMessage(player, "There were no exceptions."); - } - private static void SetPlayerFlair(Player player, MaybeOfflinePlayer targetplayer, String flair) - { //2015.08.09. - flair=flair.replace('&', '§'); - targetplayer.Flair=flair; - if(!PluginMain.RemoveLineFromFile("customflairs.txt", targetplayer.PlayerName)) - { - SendMessage(player, "§cError removing previous custom flair!§r"); - return; - } - File file=new File("customflairs.txt"); - try { - BufferedWriter bw; - bw = new BufferedWriter(new FileWriter(file, true)); - bw.write(targetplayer.PlayerName+"\n"); - bw.close(); - } catch (IOException e) { - System.out.println("Error!\n"+e); - PluginMain.LastException=e; //2015.08.09. - } - SendMessage(player, "§6The flair has been set. Player: "+targetplayer.PlayerName+" Flair: "+flair+"§r"); - } - private static void DoSetFlair(Player player, String[] args) - { - //args[0] is "admin" - args[1] is "setflair" - if(args.length<4) - { - SendMessage(player, "§cUsage: /u admin setflair "); - return; - } - SetPlayerFlair(player, MaybeOfflinePlayer.AddPlayerIfNeeded(args[2]), args[3]); - } - private static void DoUpdatePlugin(Player player) - { //2015.08.10. - SendMessage(player, "Updating Auto-Flair plugin..."); - System.out.println("Forced updating of Auto-Flair plugin..."); - URL url; - try { - url = new URL("https://github.com/NorbiPeti/thebuttonautoflairmc/raw/master/TheButtonAutoFlair.jar"); - FileUtils.copyURLToFile(url, new File("plugins/TheButtonAutoFlair.jar")); - } - catch (MalformedURLException e) { - System.out.println("Error!\n"+e); - PluginMain.LastException=e; //2015.08.09. - } - catch (MalformedURLException e) { - System.out.println("Error!\n"+e); - PluginMain.LastException=e; //2015.08.09. - } - } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/ab/c074771bfa3d00151c31fb33fff4337f b/.metadata/.plugins/org.eclipse.core.resources/.history/ab/c074771bfa3d00151c31fb33fff4337f deleted file mode 100644 index 5b17225..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/ab/c074771bfa3d00151c31fb33fff4337f +++ /dev/null @@ -1,11 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -public class MaybeOfflinePlayer { - String PlayerName; - String UserName; - String Flair; - boolean AcceptedFlair; - boolean IgnoredFlair; - String TownColors; - String DisplayName; -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/ab/e0694d38883e00151ce8ff6d4f74dabd b/.metadata/.plugins/org.eclipse.core.resources/.history/ab/e0694d38883e00151ce8ff6d4f74dabd deleted file mode 100644 index 6549d0e..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/ab/e0694d38883e00151ce8ff6d4f74dabd +++ /dev/null @@ -1,24 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.util.HashMap; - -public class MaybeOfflinePlayer -{ //2015.08.08. - public String PlayerName; - public String UserName; - public String Flair; //If the user comments their name, it gets set, it doesn't matter if they accepted it or not - public boolean AcceptedFlair; - public boolean IgnoredFlair; - public static HashMap AllPlayers=new HashMap<>(); //2015.08.08. - public static MaybeOfflinePlayer AddPlayerIfNeeded(String playername) - { - if(!AllPlayers.containsKey(playername)) - { - MaybeOfflinePlayer player=new MaybeOfflinePlayer(); - player.PlayerName=playername; - AllPlayers.put(playername, player); - return player; - } - return AllPlayers.get(playername); - } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/b1/d01b5059313e00151cbdba8b5f0a340e b/.metadata/.plugins/org.eclipse.core.resources/.history/b1/d01b5059313e00151cbdba8b5f0a340e deleted file mode 100644 index 8cec1f9..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/b1/d01b5059313e00151cbdba8b5f0a340e +++ /dev/null @@ -1,67 +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; - -import de.inventivegames.TellRawAutoMessage.Reflection; - -public class PlayerListener implements Listener -{ //2015.07.16. - @EventHandler - public void onPlayerJoin(PlayerJoinEvent event) - { - Player p=event.getPlayer(); - MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); //2015.08.08. - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AllPlayers.get(p.getName()); //2015.08.08. - if(mp.Flair!=null) - PluginMain.AppendPlayerDisplayFlair(p, mp.UserName, mp.Flair); - else - { //2015.07.20. - String json="[\"\",{\"text\":\"§6Hi! If you'd like your flair displayed ingame, write your Minecraft name to \"},{\"text\":\"[this thread.]\",\"clickEvent\":{\"action\":\"open_url\",\"value\":\"https://www.reddit.com/r/TheButtonMinecraft/comments/3d25do/\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[{\"text\":\"Click here to go to the Reddit thread§r\"}]}}}]"; - sendRawMessage(p, json); - } - } - - @EventHandler - public void onPlayerLeave(PlayerQuitEvent event) - { - } - - @EventHandler - public void onPlayerChat(AsyncPlayerChatEvent event) - { - MaybeOfflinePlayer player = MaybeOfflinePlayer.AllPlayers.get(event.getPlayer().getName()); - String flair=player.Flair; //2015.08.08. - if(flair==null || !player.AcceptedFlair) - flair=""; //2015.08.08. - String message=event.getMessage(); //2015.08.08. - for() - event.setFormat(event.getFormat().substring(0, event.getFormat().indexOf(">"))+flair+"> "+message); //2015.08.08. - } - - private static Class nmsChatSerializer = Reflection.getNMSClass("IChatBaseComponent$ChatSerializer"); - private static Class nmsPacketPlayOutChat = Reflection.getNMSClass("PacketPlayOutChat"); - public static void sendRawMessage(Player player, String message) - { - try { - System.out.println("1"); - Object handle = Reflection.getHandle(player); - System.out.println("2"); - Object connection = Reflection.getField(handle.getClass(), "playerConnection").get(handle); - System.out.println("3"); - Object serialized = Reflection.getMethod(nmsChatSerializer, "a", String.class).invoke(null, message); - System.out.println("4"); - Object packet = nmsPacketPlayOutChat.getConstructor(Reflection.getNMSClass("IChatBaseComponent")).newInstance(serialized); - System.out.println("5"); - Reflection.getMethod(connection.getClass(), "sendPacket").invoke(connection, packet); - System.out.println("6"); - } catch (Exception e) { - e.printStackTrace(); - } - } - -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/b2/e05c77a7333e00151cbdba8b5f0a340e b/.metadata/.plugins/org.eclipse.core.resources/.history/b2/e05c77a7333e00151cbdba8b5f0a340e deleted file mode 100644 index 9c6bf3d..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/b2/e05c77a7333e00151cbdba8b5f0a340e +++ /dev/null @@ -1,386 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.io.File; -import java.io.InputStream; -import java.util.List; -import java.util.logging.Logger; - -import org.bukkit.Server; -import org.bukkit.World; -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.bukkit.configuration.file.FileConfiguration; -import org.bukkit.entity.Player; -import org.bukkit.generator.ChunkGenerator; -import org.bukkit.plugin.PluginDescriptionFile; -import org.bukkit.plugin.PluginLoader; -import org.bukkit.scheduler.BukkitScheduler; -import org.bukkit.scheduler.BukkitTask; - -import com.avaje.ebean.EbeanServer; -import com.earth2me.essentials.AlternativeCommandsHandler; -import com.earth2me.essentials.Backup; -import com.earth2me.essentials.CommandSource; -import com.earth2me.essentials.EssentialsTimer; -import com.earth2me.essentials.I18n; -import com.earth2me.essentials.IConf; -import com.earth2me.essentials.IEssentialsModule; -import com.earth2me.essentials.ISettings; -import com.earth2me.essentials.IUser; -import com.earth2me.essentials.TNTExplodeListener; -import com.earth2me.essentials.User; -import com.earth2me.essentials.UserMap; -import com.earth2me.essentials.Worth; -import com.earth2me.essentials.api.IItemDb; -import com.earth2me.essentials.api.IJails; -import com.earth2me.essentials.api.IWarps; -import com.earth2me.essentials.metrics.Metrics; -import com.earth2me.essentials.perm.PermissionsHandler; -import com.earth2me.essentials.register.payment.Methods; - -import net.ess3.api.IEssentials; - -public class Essentials implements IEssentials { - - @Override - public void addReloadListener(IConf arg0) { - // TODO Auto-generated method stub - - } - - @Override - public int broadcastMessage(String arg0) { - // TODO Auto-generated method stub - return 0; - } - - @Override - public int broadcastMessage(IUser arg0, String arg1) { - // TODO Auto-generated method stub - return 0; - } - - @Override - public int broadcastMessage(String arg0, String arg1) { - // TODO Auto-generated method stub - return 0; - } - - @Override - public AlternativeCommandsHandler getAlternativeCommandsHandler() { - // TODO Auto-generated method stub - return null; - } - - @Override - public Backup getBackup() { - // TODO Auto-generated method stub - return null; - } - - @Override - public I18n getI18n() { - // TODO Auto-generated method stub - return null; - } - - @Override - public IItemDb getItemDb() { - // TODO Auto-generated method stub - return null; - } - - @Override - public IJails getJails() { - // TODO Auto-generated method stub - return null; - } - - @Override - public Metrics getMetrics() { - // TODO Auto-generated method stub - return null; - } - - @Override - public User getOfflineUser(String arg0) { - // TODO Auto-generated method stub - return null; - } - - @Override - public Methods getPaymentMethod() { - // TODO Auto-generated method stub - return null; - } - - @Override - public PermissionsHandler getPermissionsHandler() { - // TODO Auto-generated method stub - return null; - } - - @Override - public BukkitScheduler getScheduler() { - // TODO Auto-generated method stub - return null; - } - - @Override - public ISettings getSettings() { - // TODO Auto-generated method stub - return null; - } - - @Override - public TNTExplodeListener getTNTListener() { - // TODO Auto-generated method stub - return null; - } - - @Override - public EssentialsTimer getTimer() { - // TODO Auto-generated method stub - return null; - } - - @Override - @Deprecated - public User getUser(Object arg0) { - // TODO Auto-generated method stub - return null; - } - - @Override - public User getUser(String arg0) { - // TODO Auto-generated method stub - return null; - } - - @Override - public User getUser(Player arg0) { - // TODO Auto-generated method stub - return null; - } - - @Override - public UserMap getUserMap() { - // TODO Auto-generated method stub - return null; - } - - @Override - public List getVanishedPlayers() { - // TODO Auto-generated method stub - return null; - } - - @Override - public IWarps getWarps() { - // TODO Auto-generated method stub - return null; - } - - @Override - public World getWorld(String arg0) { - // TODO Auto-generated method stub - return null; - } - - @Override - public Worth getWorth() { - // TODO Auto-generated method stub - return null; - } - - @Override - public boolean onCommandEssentials(CommandSender arg0, Command arg1, - String arg2, String[] arg3, ClassLoader arg4, String arg5, - String arg6, IEssentialsModule arg7) { - // TODO Auto-generated method stub - return false; - } - - @Override - public void reload() { - // TODO Auto-generated method stub - - } - - @Override - public BukkitTask runTaskAsynchronously(Runnable arg0) { - // TODO Auto-generated method stub - return null; - } - - @Override - public BukkitTask runTaskLaterAsynchronously(Runnable arg0, long arg1) { - // TODO Auto-generated method stub - return null; - } - - @Override - public int scheduleSyncDelayedTask(Runnable arg0) { - // TODO Auto-generated method stub - return 0; - } - - @Override - public int scheduleSyncDelayedTask(Runnable arg0, long arg1) { - // TODO Auto-generated method stub - return 0; - } - - @Override - public int scheduleSyncRepeatingTask(Runnable arg0, long arg1, long arg2) { - // TODO Auto-generated method stub - return 0; - } - - @Override - public void setMetrics(Metrics arg0) { - // TODO Auto-generated method stub - - } - - @Override - public void showError(CommandSource arg0, Throwable arg1, String arg2) { - // TODO Auto-generated method stub - - } - - @Override - public FileConfiguration getConfig() { - // TODO Auto-generated method stub - return null; - } - - @Override - public File getDataFolder() { - // TODO Auto-generated method stub - return null; - } - - @Override - public EbeanServer getDatabase() { - // TODO Auto-generated method stub - return null; - } - - @Override - public ChunkGenerator getDefaultWorldGenerator(String arg0, String arg1) { - // TODO Auto-generated method stub - return null; - } - - @Override - public PluginDescriptionFile getDescription() { - // TODO Auto-generated method stub - return null; - } - - @Override - public Logger getLogger() { - // TODO Auto-generated method stub - return null; - } - - @Override - public String getName() { - // TODO Auto-generated method stub - return null; - } - - @Override - public PluginLoader getPluginLoader() { - // TODO Auto-generated method stub - return null; - } - - @Override - public InputStream getResource(String arg0) { - // TODO Auto-generated method stub - return null; - } - - @Override - public Server getServer() { - // TODO Auto-generated method stub - return null; - } - - @Override - public boolean isEnabled() { - // TODO Auto-generated method stub - return false; - } - - @Override - public boolean isNaggable() { - // TODO Auto-generated method stub - return false; - } - - @Override - public void onDisable() { - // TODO Auto-generated method stub - - } - - @Override - public void onEnable() { - // TODO Auto-generated method stub - - } - - @Override - public void onLoad() { - // TODO Auto-generated method stub - - } - - @Override - public void reloadConfig() { - // TODO Auto-generated method stub - - } - - @Override - public void saveConfig() { - // TODO Auto-generated method stub - - } - - @Override - public void saveDefaultConfig() { - // TODO Auto-generated method stub - - } - - @Override - public void saveResource(String arg0, boolean arg1) { - // TODO Auto-generated method stub - - } - - @Override - public void setNaggable(boolean arg0) { - // TODO Auto-generated method stub - - } - - @Override - public List onTabComplete(CommandSender arg0, Command arg1, - String arg2, String[] arg3) { - // TODO Auto-generated method stub - return null; - } - - @Override - public boolean onCommand(CommandSender arg0, Command arg1, String arg2, - String[] arg3) { - // TODO Auto-generated method stub - return false; - } - -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/b5/60e643b8333e00151cbdba8b5f0a340e b/.metadata/.plugins/org.eclipse.core.resources/.history/b5/60e643b8333e00151cbdba8b5f0a340e deleted file mode 100644 index 77f891d..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/b5/60e643b8333e00151cbdba8b5f0a340e +++ /dev/null @@ -1,331 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -public class Essentials implements IUser -{ - - @Override - public void addMail(String arg0) { - // TODO Auto-generated method stub - - } - - @Override - public boolean canAfford(BigDecimal arg0) { - // TODO Auto-generated method stub - return false; - } - - @Override - public boolean canBuild() { - // TODO Auto-generated method stub - return false; - } - - @Override - public Boolean canSpawnItem(int arg0) { - // TODO Auto-generated method stub - return null; - } - - @Override - public void delHome(String arg0) throws Exception { - // TODO Auto-generated method stub - - } - - @Override - public void enableInvulnerabilityAfterTeleport() { - // TODO Auto-generated method stub - - } - - @Override - public Player getBase() { - // TODO Auto-generated method stub - return null; - } - - @Override - public Set getConfigKeys() { - // TODO Auto-generated method stub - return null; - } - - @Override - public Map getConfigMap() { - // TODO Auto-generated method stub - return null; - } - - @Override - public Map getConfigMap(String arg0) { - // TODO Auto-generated method stub - return null; - } - - @Override - public String getGroup() { - // TODO Auto-generated method stub - return null; - } - - @Override - public Location getHome(String arg0) throws Exception { - // TODO Auto-generated method stub - return null; - } - - @Override - public Location getHome(Location arg0) throws Exception { - // TODO Auto-generated method stub - return null; - } - - @Override - public List getHomes() { - // TODO Auto-generated method stub - return null; - } - - @Override - public String getJail() { - // TODO Auto-generated method stub - return null; - } - - @Override - public Location getLastLocation() { - // TODO Auto-generated method stub - return null; - } - - @Override - public long getLastTeleportTimestamp() { - // TODO Auto-generated method stub - return 0; - } - - @Override - public Location getLogoutLocation() { - // TODO Auto-generated method stub - return null; - } - - @Override - public List getMails() { - // TODO Auto-generated method stub - return null; - } - - @Override - public BigDecimal getMoney() { - // TODO Auto-generated method stub - return null; - } - - @Override - public String getName() { - // TODO Auto-generated method stub - return null; - } - - @Override - public CommandSource getSource() { - // TODO Auto-generated method stub - return null; - } - - @Override - public ITeleport getTeleport() { - // TODO Auto-generated method stub - return null; - } - - @Override - public long getTeleportRequestTime() { - // TODO Auto-generated method stub - return 0; - } - - @Override - public void giveMoney(BigDecimal arg0) throws MaxMoneyException { - // TODO Auto-generated method stub - - } - - @Override - public void giveMoney(BigDecimal arg0, CommandSource arg1) - throws MaxMoneyException { - // TODO Auto-generated method stub - - } - - @Override - public boolean hasHome() { - // TODO Auto-generated method stub - return false; - } - - @Override - public boolean hasInvulnerabilityAfterTeleport() { - // TODO Auto-generated method stub - return false; - } - - @Override - public void healCooldown() throws Exception { - // TODO Auto-generated method stub - - } - - @Override - public boolean inGroup(String arg0) { - // TODO Auto-generated method stub - return false; - } - - @Override - public boolean isAfk() { - // TODO Auto-generated method stub - return false; - } - - @Override - public boolean isAuthorized(String arg0) { - // TODO Auto-generated method stub - return false; - } - - @Override - public boolean isAuthorized(IEssentialsCommand arg0) { - // TODO Auto-generated method stub - return false; - } - - @Override - public boolean isAuthorized(IEssentialsCommand arg0, String arg1) { - // TODO Auto-generated method stub - return false; - } - - @Override - public boolean isGodModeEnabled() { - // TODO Auto-generated method stub - return false; - } - - @Override - public boolean isHidden() { - // TODO Auto-generated method stub - return false; - } - - @Override - public boolean isIgnoreExempt() { - // TODO Auto-generated method stub - return false; - } - - @Override - public boolean isVanished() { - // TODO Auto-generated method stub - return false; - } - - @Override - public void payUser(User arg0, BigDecimal arg1) throws Exception { - // TODO Auto-generated method stub - - } - - @Override - public void requestTeleport(User arg0, boolean arg1) { - // TODO Auto-generated method stub - - } - - @Override - public void resetInvulnerabilityAfterTeleport() { - // TODO Auto-generated method stub - - } - - @Override - public void sendMessage(String arg0) { - // TODO Auto-generated method stub - - } - - @Override - public void setAfk(boolean arg0) { - // TODO Auto-generated method stub - - } - - @Override - public void setConfigProperty(String arg0, Object arg1) { - // TODO Auto-generated method stub - - } - - @Override - public void setHidden(boolean arg0) { - // TODO Auto-generated method stub - - } - - @Override - public void setHome(String arg0, Location arg1) { - // TODO Auto-generated method stub - - } - - @Override - public void setJail(String arg0) { - // TODO Auto-generated method stub - - } - - @Override - public void setLastLocation() { - // TODO Auto-generated method stub - - } - - @Override - public void setLastTeleportTimestamp(long arg0) { - // TODO Auto-generated method stub - - } - - @Override - public void setLogoutLocation() { - // TODO Auto-generated method stub - - } - - @Override - public void setMoney(BigDecimal arg0) throws MaxMoneyException { - // TODO Auto-generated method stub - - } - - @Override - public void setVanished(boolean arg0) { - // TODO Auto-generated method stub - - } - - @Override - public void takeMoney(BigDecimal arg0) { - // TODO Auto-generated method stub - - } - - @Override - public void takeMoney(BigDecimal arg0, CommandSource arg1) { - // TODO Auto-generated method stub - - } - -} \ No newline at end of file diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/b5/d0028812fa3d00151c31fb33fff4337f b/.metadata/.plugins/org.eclipse.core.resources/.history/b5/d0028812fa3d00151c31fb33fff4337f deleted file mode 100644 index d15ab52..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/b5/d0028812fa3d00151c31fb33fff4337f +++ /dev/null @@ -1,10 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -public class MaybeOfflinePlayer { - String PlayerName; - String UserName; - String Flair; - boolean AcceptedFlair; - boolean IgnoredFlair; - String TownColor; -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/b7/308c4f936c3f00151fb6edb183f9215c b/.metadata/.plugins/org.eclipse.core.resources/.history/b7/308c4f936c3f00151fb6edb183f9215c deleted file mode 100644 index ee6d096..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/b7/308c4f936c3f00151fb6edb183f9215c +++ /dev/null @@ -1,291 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.net.MalformedURLException; -import java.net.URL; - -import org.apache.commons.io.FileUtils; -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; - MaybeOfflinePlayer p=MaybeOfflinePlayer.AllPlayers.get(player.getName()); //2015.08.08. - //if(!PluginMain.PlayerFlairs.containsKey(player.getName())) - if(p.Flair==null) - { - player.sendMessage("Error: You need to write your username to the reddit thread at /r/TheButtonMinecraft"); - return true; - } - switch(args[0].toLowerCase()) //toLowerCase: 2015.08.09. - { - case "accept": - { - if(p.IgnoredFlair) - p.IgnoredFlair=false; //2015.08.08. - if(!p.AcceptedFlair) - { - String flair=p.Flair; //2015.08.08. - //PluginMain.AppendPlayerDisplayFlairFinal(player, flair); //2015.07.20. - p.AcceptedFlair=true; //2015.08.08. - PluginMain.AppendPlayerDisplayFlair(p, player); - player.sendMessage("§6Your flair has been set:§r "+flair); - } - else - player.sendMessage("§cYou already have this user's flair.§r"); - break; - } - case "ignore": - { - if(p.AcceptedFlair) - p.AcceptedFlair=false; //2015.08.08. - if(!p.IgnoredFlair) - { - p.IgnoredFlair=true; - //String flair=p.Flair; //2015.08.08. - //PluginMain.RemovePlayerDisplayFlairFinal(player, flair); //2015.07.20. - 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; - } - /*case "reload": //2015.07.20. - DoReload(player); - break;*/ - case "admin": //2015.08.09. - DoAdmin(player, args); - break; - case "nonpresser": //2015.08.09. - if(!p.AcceptedFlair) - { - player.sendMessage("§cYou need to accept the flair first.§r"); - break; - } - if(p.FlairDecided) - { - player.sendMessage("§cYou have already set the flair type.§r"); - break; - } - //p.Flair="§7(non-pr.)§r"; - SetPlayerFlair(player, p, "§7(non-pr.)§r"); - break; - case "cantpress": //2015.08.09. - if(!p.AcceptedFlair) - { - player.sendMessage("§cYou need to accept the flair first.§r"); - break; - } - if(p.FlairDecided) - { - player.sendMessage("§cYou have already set the flair type or your flair type is known.§r"); - break; - } - //p.Flair="§r(can't press)§r"; - SetPlayerFlair(player, p, "§r(can't pr.)§r"); - break; - default: - return false; - } - return true; - } - /*if(args[0].toLowerCase()=="reload") - DoReload(null); //2015.07.20.*/ - else if(args.length>0 && args[0].toLowerCase().equals("admin")) //2015.08.09. - { - DoAdmin(null, args); //2015.08.09. - return true; //2015.08.09. - } - return false; - } - private static void DoReload(Player player) - { //2015.07.20. - //if(player==null || player.isOp() || player.getName()=="NorbiPeti") - //{ - try - { - File file=new File("autoflairconfig.txt"); - if(file.exists()) - { - PluginMain.LoadFiles(true); //2015.08.09. - for(Player p : PluginMain.GetPlayers()) - { - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); - if(mp.Flair!=null) - { - //String flair=mp.Flair; - //PluginMain.RemovePlayerDisplayFlairFinal(p, flair); - //PluginMain.AppendPlayerDisplayFlairFinal(p, flair); - PluginMain.AppendPlayerDisplayFlair(mp, p); //2015.08.09. - } - String msg="§6Note: The auto-flair plugin has been reloaded. You might need to wait 10s to have your flair.§r"; //2015.08.09. - p.sendMessage(msg); //2015.08.09. - } - //String msg="§6Reloaded config file.§r"; - //SendMessage(player, msg); //2015.08.09. - } - } - catch(Exception e) - { - System.out.println("Error!\n"+e); - if(player!=null) - player.sendMessage("§cAn error occured. See console for details.§r"); - PluginMain.LastException=e; //2015.08.09. - } - //} - //else - //player.sendMessage("§cYou need to be OP to use this command.§r"); - } - private static Player ReloadPlayer; //2015.08.09. - private static void DoAdmin(Player player, String[] args) - { //2015.08.09. - if(player==null || player.isOp() || player.getName()=="NorbiPeti") - { - //System.out.println("Args length: " + args.length); - if(args.length==1) - { - String message="§cUsage: /u admin reload|playerinfo|getlasterror|save|setflair|updateplugin§r"; - SendMessage(player, message); - return; - } - //args[0] is "admin" - switch(args[1].toLowerCase()) - { - case "reload": - ReloadPlayer=player; //2015.08.09. - SendMessage(player, "§6Make sure to save the current settings before you modify and reload them! Type /u admin confirm when done.§r"); - break; - case "playerinfo": - DoPlayerInfo(player, args); - break; - case "getlasterror": - DoGetLastError(player, args); - break; //<-- 2015.08.10. - case "confirm": - if(ReloadPlayer==player) - DoReload(player); //2015.08.09. - else - SendMessage(player, "§cYou need to do /u admin reload first.§r"); - break; - case "save": - PluginMain.SaveFiles(); //2015.08.09. - SendMessage(player, "§6Saved files. Now you can edit them and reload if you want.§r"); - break; - case "setflair": - DoSetFlair(player, args); - break; - case "updateplugin": //2015.08.10. - DoUpdatePlugin(player); - break; - default: - String message="§cUsage: /u admin reload|playerinfo|getlasterror|save|setflair|updateplugin§r"; - SendMessage(player, message); - return; - } - } - else - player.sendMessage("§cYou need to be OP to use this command.§r"); - } - private static void DoPlayerInfo(Player player, String[] args) - { //2015.08.09. - //args[0] is "admin" - args[1] is "playerinfo" - if(args.length==2) - { - String message="§cUsage: /u admin playerinfo §r"; - SendMessage(player, message); - return; - } - if(!MaybeOfflinePlayer.AllPlayers.containsKey(args[2])) - { - String message="§cPlayer not found: "+args[2]+"§r"; - SendMessage(player, message); - return; - } - MaybeOfflinePlayer p = MaybeOfflinePlayer.AllPlayers.get(args[2]); - SendMessage(player, "Player name: "+p.PlayerName); - SendMessage(player, "User flair: "+p.Flair); - SendMessage(player, "Username: "+p.UserName); - SendMessage(player, "Flair accepted: "+p.AcceptedFlair); - SendMessage(player, "Flair ignored: "+p.IgnoredFlair); - } - private static void SendMessage(Player player, String message) - { //2015.08.09. - if(player==null) - System.out.println(message); - else - player.sendMessage(message); - } - private static void DoGetLastError(Player player, String[] args) - { //2015.08.09. - //args[0] is "admin" - args[1] is "getlasterror" - if(PluginMain.LastException!=null) - { - SendMessage(player, "Last error:"); - SendMessage(player, PluginMain.LastException.toString()); - PluginMain.LastException=null; - } - else - SendMessage(player, "There were no exceptions."); - } - private static void SetPlayerFlair(Player player, MaybeOfflinePlayer targetplayer, String flair) - { //2015.08.09. - flair=flair.replace('&', '§'); - targetplayer.Flair=flair; - if(!PluginMain.RemoveLineFromFile("customflairs.txt", targetplayer.PlayerName)) - { - SendMessage(player, "§cError removing previous custom flair!§r"); - return; - } - File file=new File("customflairs.txt"); - try { - BufferedWriter bw; - bw = new BufferedWriter(new FileWriter(file, true)); - bw.write(targetplayer.PlayerName+"\n"); - bw.close(); - } catch (IOException e) { - System.out.println("Error!\n"+e); - PluginMain.LastException=e; //2015.08.09. - } - SendMessage(player, "§6The flair has been set. Player: "+targetplayer.PlayerName+" Flair: "+flair+"§r"); - } - private static void DoSetFlair(Player player, String[] args) - { - //args[0] is "admin" - args[1] is "setflair" - if(args.length<4) - { - SendMessage(player, "§cUsage: /u admin setflair "); - return; - } - SetPlayerFlair(player, MaybeOfflinePlayer.AddPlayerIfNeeded(args[2]), args[3]); - } - private static void DoUpdatePlugin(Player player) - { //2015.08.10. - SendMessage(player, "Updating Auto-Flair plugin..."); - System.out.println("Forced updating of Auto-Flair plugin..."); - URL url; - try { - url = new URL("https://github.com/NorbiPeti/thebuttonautoflairmc/raw/master/TheButtonAutoFlair.jar"); - FileUtils.copyURLToFile(url, new File("plugins/TheButtonAutoFlair.jar")); - SendMessage(player, "Updating done!"); - } - catch (MalformedURLException e) { - System.out.println("Error!\n"+e); - PluginMain.LastException=e; //2015.08.09. - } - catch (IOException e) { - System.out.println("Error!\n"+e); - PluginMain.LastException=e; //2015.08.09. - } - } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/b7/500aa169fd3d00151c31fb33fff4337f b/.metadata/.plugins/org.eclipse.core.resources/.history/b7/500aa169fd3d00151c31fb33fff4337f deleted file mode 100644 index d2b76a1..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/b7/500aa169fd3d00151c31fb33fff4337f +++ /dev/null @@ -1,25 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.util.ArrayList; -import java.util.HashMap; - -public class MaybeOfflinePlayer -{ //2015.08.08. - public String PlayerName; - public String UserName; - public String Flair; - public boolean AcceptedFlair; - public boolean IgnoredFlair; - public String TownColors; - public String DisplayName; - public static HashMap AllPlayers=new HashMap<>(); //2015.08.08. - public static MaybeOfflinePlayer AddPlayerIfNeeded(String playername) - { - if(!AllPlayers.containsKey(playername)) - { - MaybeOfflinePlayer player=new MaybeOfflinePlayer(); - player.PlayerName=playername; - AllPlayers.put(playername, player); - } - } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/ba/50775507fd3d00151c31fb33fff4337f b/.metadata/.plugins/org.eclipse.core.resources/.history/ba/50775507fd3d00151c31fb33fff4337f deleted file mode 100644 index a5f989f..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/ba/50775507fd3d00151c31fb33fff4337f +++ /dev/null @@ -1,24 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.util.ArrayList; -import java.util.HashMap; - -public class MaybeOfflinePlayer { - public String PlayerName; - public String UserName; - public String Flair; - public boolean AcceptedFlair; - public boolean IgnoredFlair; - public String TownColors; - public String DisplayName; - public static HashMap AllPlayers=new HashMap<>(); //2015.08.08. - public static void AddPlayer(String playername) - { - if(!AllPlayers.containsKey(arg0)(playername)) - { - MaybeOfflinePlayer player=new MaybeOfflinePlayer(); - player.PlayerName=playername; - AllPlayers.put(playername, player); - } - } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/bd/c0c10ce46b3f00151fb6edb183f9215c b/.metadata/.plugins/org.eclipse.core.resources/.history/bd/c0c10ce46b3f00151fb6edb183f9215c deleted file mode 100644 index a5fd974..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/bd/c0c10ce46b3f00151fb6edb183f9215c +++ /dev/null @@ -1,287 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.net.MalformedURLException; -import java.net.URL; - -import org.apache.commons.io.FileUtils; -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; - MaybeOfflinePlayer p=MaybeOfflinePlayer.AllPlayers.get(player.getName()); //2015.08.08. - //if(!PluginMain.PlayerFlairs.containsKey(player.getName())) - if(p.Flair==null) - { - player.sendMessage("Error: You need to write your username to the reddit thread at /r/TheButtonMinecraft"); - return true; - } - switch(args[0].toLowerCase()) //toLowerCase: 2015.08.09. - { - case "accept": - { - if(p.IgnoredFlair) - p.IgnoredFlair=false; //2015.08.08. - if(!p.AcceptedFlair) - { - String flair=p.Flair; //2015.08.08. - //PluginMain.AppendPlayerDisplayFlairFinal(player, flair); //2015.07.20. - p.AcceptedFlair=true; //2015.08.08. - PluginMain.AppendPlayerDisplayFlair(p, player); - player.sendMessage("§6Your flair has been set:§r "+flair); - } - else - player.sendMessage("§cYou already have this user's flair.§r"); - break; - } - case "ignore": - { - if(p.AcceptedFlair) - p.AcceptedFlair=false; //2015.08.08. - if(!p.IgnoredFlair) - { - p.IgnoredFlair=true; - //String flair=p.Flair; //2015.08.08. - //PluginMain.RemovePlayerDisplayFlairFinal(player, flair); //2015.07.20. - 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; - } - /*case "reload": //2015.07.20. - DoReload(player); - break;*/ - case "admin": //2015.08.09. - DoAdmin(player, args); - break; - case "nonpresser": //2015.08.09. - if(!p.AcceptedFlair) - { - player.sendMessage("§cYou need to accept the flair first.§r"); - break; - } - if(p.FlairDecided) - { - player.sendMessage("§cYou have already set the flair type.§r"); - break; - } - //p.Flair="§7(non-pr.)§r"; - SetPlayerFlair(player, p, "§7(non-pr.)§r"); - break; - case "cantpress": //2015.08.09. - if(!p.AcceptedFlair) - { - player.sendMessage("§cYou need to accept the flair first.§r"); - break; - } - if(p.FlairDecided) - { - player.sendMessage("§cYou have already set the flair type or your flair type is known.§r"); - break; - } - //p.Flair="§r(can't press)§r"; - SetPlayerFlair(player, p, "§r(can't pr.)§r"); - break; - default: - return false; - } - return true; - } - /*if(args[0].toLowerCase()=="reload") - DoReload(null); //2015.07.20.*/ - else if(args.length>0 && args[0].toLowerCase().equals("admin")) //2015.08.09. - { - DoAdmin(null, args); //2015.08.09. - return true; //2015.08.09. - } - return false; - } - private static void DoReload(Player player) - { //2015.07.20. - //if(player==null || player.isOp() || player.getName()=="NorbiPeti") - //{ - try - { - File file=new File("autoflairconfig.txt"); - if(file.exists()) - { - PluginMain.LoadFiles(true); //2015.08.09. - for(Player p : PluginMain.GetPlayers()) - { - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); - if(mp.Flair!=null) - { - //String flair=mp.Flair; - //PluginMain.RemovePlayerDisplayFlairFinal(p, flair); - //PluginMain.AppendPlayerDisplayFlairFinal(p, flair); - PluginMain.AppendPlayerDisplayFlair(mp, p); //2015.08.09. - } - String msg="§6Note: The auto-flair plugin has been reloaded. You might need to wait 10s to have your flair.§r"; //2015.08.09. - p.sendMessage(msg); //2015.08.09. - } - //String msg="§6Reloaded config file.§r"; - //SendMessage(player, msg); //2015.08.09. - } - } - catch(Exception e) - { - System.out.println("Error!\n"+e); - if(player!=null) - player.sendMessage("§cAn error occured. See console for details.§r"); - PluginMain.LastException=e; //2015.08.09. - } - //} - //else - //player.sendMessage("§cYou need to be OP to use this command.§r"); - } - private static Player ReloadPlayer; //2015.08.09. - private static void DoAdmin(Player player, String[] args) - { //2015.08.09. - if(player==null || player.isOp() || player.getName()=="NorbiPeti") - { - //System.out.println("Args length: " + args.length); - if(args.length==1) - { - String message="§cUsage: /u admin reload|playerinfo|getlasterror|save|setflair|updateplugin§r"; - SendMessage(player, message); - return; - } - //args[0] is "admin" - switch(args[1].toLowerCase()) - { - case "reload": - ReloadPlayer=player; //2015.08.09. - SendMessage(player, "§6Make sure to save the current settings before you modify and reload them! Type /u admin confirm when done.§r"); - break; - case "playerinfo": - DoPlayerInfo(player, args); - break; - case "getlasterror": - DoGetLastError(player, args); - break; //<-- 2015.08.10. - case "confirm": - if(ReloadPlayer==player) - DoReload(player); //2015.08.09. - else - SendMessage(player, "§cYou need to do /u admin reload first.§r"); - break; - case "save": - PluginMain.SaveFiles(); //2015.08.09. - SendMessage(player, "§6Saved files. Now you can edit them and reload if you want.§r"); - break; - case "setflair": - DoSetFlair(player, args); - break; - case "updateplugin": //2015.08.10. - DoUpdatePlugin(player); - break; - default: - String message="§cUsage: /u admin reload|playerinfo|getlasterror|save|setflair|updateplugin§r"; - SendMessage(player, message); - return; - } - } - else - player.sendMessage("§cYou need to be OP to use this command.§r"); - } - private static void DoPlayerInfo(Player player, String[] args) - { //2015.08.09. - //args[0] is "admin" - args[1] is "playerinfo" - if(args.length==2) - { - String message="§cUsage: /u admin playerinfo §r"; - SendMessage(player, message); - return; - } - if(!MaybeOfflinePlayer.AllPlayers.containsKey(args[2])) - { - String message="§cPlayer not found: "+args[2]+"§r"; - SendMessage(player, message); - return; - } - MaybeOfflinePlayer p = MaybeOfflinePlayer.AllPlayers.get(args[2]); - SendMessage(player, "Player name: "+p.PlayerName); - SendMessage(player, "User flair: "+p.Flair); - SendMessage(player, "Username: "+p.UserName); - SendMessage(player, "Flair accepted: "+p.AcceptedFlair); - SendMessage(player, "Flair ignored: "+p.IgnoredFlair); - } - private static void SendMessage(Player player, String message) - { //2015.08.09. - if(player==null) - System.out.println(message); - else - player.sendMessage(message); - } - private static void DoGetLastError(Player player, String[] args) - { //2015.08.09. - //args[0] is "admin" - args[1] is "getlasterror" - if(PluginMain.LastException!=null) - { - SendMessage(player, "Last error:"); - SendMessage(player, PluginMain.LastException.toString()); - PluginMain.LastException=null; - } - else - SendMessage(player, "There were no exceptions."); - } - private static void SetPlayerFlair(Player player, MaybeOfflinePlayer targetplayer, String flair) - { //2015.08.09. - flair=flair.replace('&', '§'); - targetplayer.Flair=flair; - if(!PluginMain.RemoveLineFromFile("customflairs.txt", targetplayer.PlayerName)) - { - SendMessage(player, "§cError removing previous custom flair!§r"); - return; - } - File file=new File("customflairs.txt"); - try { - BufferedWriter bw; - bw = new BufferedWriter(new FileWriter(file, true)); - bw.write(targetplayer.PlayerName+"\n"); - bw.close(); - } catch (IOException e) { - System.out.println("Error!\n"+e); - PluginMain.LastException=e; //2015.08.09. - } - SendMessage(player, "§6The flair has been set. Player: "+targetplayer.PlayerName+" Flair: "+flair+"§r"); - } - private static void DoSetFlair(Player player, String[] args) - { - //args[0] is "admin" - args[1] is "setflair" - if(args.length<4) - { - SendMessage(player, "§cUsage: /u admin setflair "); - return; - } - SetPlayerFlair(player, MaybeOfflinePlayer.AddPlayerIfNeeded(args[2]), args[3]); - } - private static void DoUpdatePlugin(Player player) - { //2015.08.10. - SendMessage(player, "Updating Auto-Flair plugin..."); - System.out.println("Forced updating of Auto-Flair plugin..."); - URL url; - try { - url = new URL("https://github.com/NorbiPeti/thebuttonautoflairmc/raw/master/TheButtonAutoFlair.jar"); - FileUtils.copyURLToFile(url, new File("plugins/TheButtonAutoFlair.jar")); - } - catch (IOException e) - catch (MalformedURLException e) { - System.out.println("Error!\n"+e); - PluginMain.LastException=e; //2015.08.09. - } - } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/bd/d05bd96d083e00151c31fb33fff4337f b/.metadata/.plugins/org.eclipse.core.resources/.history/bd/d05bd96d083e00151c31fb33fff4337f deleted file mode 100644 index abdc7d1..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/bd/d05bd96d083e00151c31fb33fff4337f +++ /dev/null @@ -1,26 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.util.HashMap; - -public class MaybeOfflinePlayer -{ //2015.08.08. - public String PlayerName; - public String UserName; - public String Flair; - public boolean AcceptedFlair; - public boolean IgnoredFlair; - public String DisplayName; - public boolean HasFlair; - public static HashMap AllPlayers=new HashMap<>(); //2015.08.08. - public static MaybeOfflinePlayer AddPlayerIfNeeded(String playername) - { - if(!AllPlayers.containsKey(playername)) - { - MaybeOfflinePlayer player=new MaybeOfflinePlayer(); - player.PlayerName=playername; - AllPlayers.put(playername, player); - return player; - } - return AllPlayers.get(playername); - } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/bf/b03cb8c36b3f00151fb6edb183f9215c b/.metadata/.plugins/org.eclipse.core.resources/.history/bf/b03cb8c36b3f00151fb6edb183f9215c deleted file mode 100644 index c4da390..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/bf/b03cb8c36b3f00151fb6edb183f9215c +++ /dev/null @@ -1,285 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.net.MalformedURLException; -import java.net.URL; - -import org.apache.commons.io.FileUtils; -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; - MaybeOfflinePlayer p=MaybeOfflinePlayer.AllPlayers.get(player.getName()); //2015.08.08. - //if(!PluginMain.PlayerFlairs.containsKey(player.getName())) - if(p.Flair==null) - { - player.sendMessage("Error: You need to write your username to the reddit thread at /r/TheButtonMinecraft"); - return true; - } - switch(args[0].toLowerCase()) //toLowerCase: 2015.08.09. - { - case "accept": - { - if(p.IgnoredFlair) - p.IgnoredFlair=false; //2015.08.08. - if(!p.AcceptedFlair) - { - String flair=p.Flair; //2015.08.08. - //PluginMain.AppendPlayerDisplayFlairFinal(player, flair); //2015.07.20. - p.AcceptedFlair=true; //2015.08.08. - PluginMain.AppendPlayerDisplayFlair(p, player); - player.sendMessage("§6Your flair has been set:§r "+flair); - } - else - player.sendMessage("§cYou already have this user's flair.§r"); - break; - } - case "ignore": - { - if(p.AcceptedFlair) - p.AcceptedFlair=false; //2015.08.08. - if(!p.IgnoredFlair) - { - p.IgnoredFlair=true; - //String flair=p.Flair; //2015.08.08. - //PluginMain.RemovePlayerDisplayFlairFinal(player, flair); //2015.07.20. - 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; - } - /*case "reload": //2015.07.20. - DoReload(player); - break;*/ - case "admin": //2015.08.09. - DoAdmin(player, args); - break; - case "nonpresser": //2015.08.09. - if(!p.AcceptedFlair) - { - player.sendMessage("§cYou need to accept the flair first.§r"); - break; - } - if(p.FlairDecided) - { - player.sendMessage("§cYou have already set the flair type.§r"); - break; - } - //p.Flair="§7(non-pr.)§r"; - SetPlayerFlair(player, p, "§7(non-pr.)§r"); - break; - case "cantpress": //2015.08.09. - if(!p.AcceptedFlair) - { - player.sendMessage("§cYou need to accept the flair first.§r"); - break; - } - if(p.FlairDecided) - { - player.sendMessage("§cYou have already set the flair type or your flair type is known.§r"); - break; - } - //p.Flair="§r(can't press)§r"; - SetPlayerFlair(player, p, "§r(can't pr.)§r"); - break; - default: - return false; - } - return true; - } - /*if(args[0].toLowerCase()=="reload") - DoReload(null); //2015.07.20.*/ - else if(args.length>0 && args[0].toLowerCase().equals("admin")) //2015.08.09. - { - DoAdmin(null, args); //2015.08.09. - return true; //2015.08.09. - } - return false; - } - private static void DoReload(Player player) - { //2015.07.20. - //if(player==null || player.isOp() || player.getName()=="NorbiPeti") - //{ - try - { - File file=new File("autoflairconfig.txt"); - if(file.exists()) - { - PluginMain.LoadFiles(true); //2015.08.09. - for(Player p : PluginMain.GetPlayers()) - { - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); - if(mp.Flair!=null) - { - //String flair=mp.Flair; - //PluginMain.RemovePlayerDisplayFlairFinal(p, flair); - //PluginMain.AppendPlayerDisplayFlairFinal(p, flair); - PluginMain.AppendPlayerDisplayFlair(mp, p); //2015.08.09. - } - String msg="§6Note: The auto-flair plugin has been reloaded. You might need to wait 10s to have your flair.§r"; //2015.08.09. - p.sendMessage(msg); //2015.08.09. - } - //String msg="§6Reloaded config file.§r"; - //SendMessage(player, msg); //2015.08.09. - } - } - catch(Exception e) - { - System.out.println("Error!\n"+e); - if(player!=null) - player.sendMessage("§cAn error occured. See console for details.§r"); - PluginMain.LastException=e; //2015.08.09. - } - //} - //else - //player.sendMessage("§cYou need to be OP to use this command.§r"); - } - private static Player ReloadPlayer; //2015.08.09. - private static void DoAdmin(Player player, String[] args) - { //2015.08.09. - if(player==null || player.isOp() || player.getName()=="NorbiPeti") - { - //System.out.println("Args length: " + args.length); - if(args.length==1) - { - String message="§cUsage: /u admin reload|playerinfo|getlasterror|save|setflair|updateplugin§r"; - SendMessage(player, message); - return; - } - //args[0] is "admin" - switch(args[1].toLowerCase()) - { - case "reload": - ReloadPlayer=player; //2015.08.09. - SendMessage(player, "§6Make sure to save the current settings before you modify and reload them! Type /u admin confirm when done.§r"); - break; - case "playerinfo": - DoPlayerInfo(player, args); - break; - case "getlasterror": - DoGetLastError(player, args); - break; //<-- 2015.08.10. - case "confirm": - if(ReloadPlayer==player) - DoReload(player); //2015.08.09. - else - SendMessage(player, "§cYou need to do /u admin reload first.§r"); - break; - case "save": - PluginMain.SaveFiles(); //2015.08.09. - SendMessage(player, "§6Saved files. Now you can edit them and reload if you want.§r"); - break; - case "setflair": - DoSetFlair(player, args); - break; - case "updateplugin": //2015.08.10. - DoUpdatePlugin(player); - break; - default: - String message="§cUsage: /u admin reload|playerinfo|getlasterror|save|setflair|updateplugin§r"; - SendMessage(player, message); - return; - } - } - else - player.sendMessage("§cYou need to be OP to use this command.§r"); - } - private static void DoPlayerInfo(Player player, String[] args) - { //2015.08.09. - //args[0] is "admin" - args[1] is "playerinfo" - if(args.length==2) - { - String message="§cUsage: /u admin playerinfo §r"; - SendMessage(player, message); - return; - } - if(!MaybeOfflinePlayer.AllPlayers.containsKey(args[2])) - { - String message="§cPlayer not found: "+args[2]+"§r"; - SendMessage(player, message); - return; - } - MaybeOfflinePlayer p = MaybeOfflinePlayer.AllPlayers.get(args[2]); - SendMessage(player, "Player name: "+p.PlayerName); - SendMessage(player, "User flair: "+p.Flair); - SendMessage(player, "Username: "+p.UserName); - SendMessage(player, "Flair accepted: "+p.AcceptedFlair); - SendMessage(player, "Flair ignored: "+p.IgnoredFlair); - } - private static void SendMessage(Player player, String message) - { //2015.08.09. - if(player==null) - System.out.println(message); - else - player.sendMessage(message); - } - private static void DoGetLastError(Player player, String[] args) - { //2015.08.09. - //args[0] is "admin" - args[1] is "getlasterror" - if(PluginMain.LastException!=null) - { - SendMessage(player, "Last error:"); - SendMessage(player, PluginMain.LastException.toString()); - PluginMain.LastException=null; - } - else - SendMessage(player, "There were no exceptions."); - } - private static void SetPlayerFlair(Player player, MaybeOfflinePlayer targetplayer, String flair) - { //2015.08.09. - flair=flair.replace('&', '§'); - targetplayer.Flair=flair; - if(!PluginMain.RemoveLineFromFile("customflairs.txt", targetplayer.PlayerName)) - { - SendMessage(player, "§cError removing previous custom flair!§r"); - return; - } - File file=new File("customflairs.txt"); - try { - BufferedWriter bw; - bw = new BufferedWriter(new FileWriter(file, true)); - bw.write(targetplayer.PlayerName+"\n"); - bw.close(); - } catch (IOException e) { - System.out.println("Error!\n"+e); - PluginMain.LastException=e; //2015.08.09. - } - SendMessage(player, "§6The flair has been set. Player: "+targetplayer.PlayerName+" Flair: "+flair+"§r"); - } - private static void DoSetFlair(Player player, String[] args) - { - //args[0] is "admin" - args[1] is "setflair" - if(args.length<4) - { - SendMessage(player, "§cUsage: /u admin setflair "); - return; - } - SetPlayerFlair(player, MaybeOfflinePlayer.AddPlayerIfNeeded(args[2]), args[3]); - } - private static void DoUpdatePlugin(Player player) - { //2015.08.10. - SendMessage(player, "Updating Auto-Flair plugin..."); - System.out.println("Forced updating of Auto-Flair plugin..."); - URL url; - try { - url = new URL("https://github.com/NorbiPeti/thebuttonautoflairmc/raw/master/TheButtonAutoFlair.jar"); - } catch (MalformedURLException e) { - System.out.println("Error!\n"+e); - PluginMain.LastException=e; //2015.08.09. - } - FileUtils.copyURLToFile(url, new File("plugins/TheButtonAutoFlair.jar")); - } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/c/609f275f313e00151cbdba8b5f0a340e b/.metadata/.plugins/org.eclipse.core.resources/.history/c/609f275f313e00151cbdba8b5f0a340e deleted file mode 100644 index 0473087..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/c/609f275f313e00151cbdba8b5f0a340e +++ /dev/null @@ -1,70 +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; - -import de.inventivegames.TellRawAutoMessage.Reflection; - -public class PlayerListener implements Listener -{ //2015.07.16. - @EventHandler - public void onPlayerJoin(PlayerJoinEvent event) - { - Player p=event.getPlayer(); - MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); //2015.08.08. - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AllPlayers.get(p.getName()); //2015.08.08. - if(mp.Flair!=null) - PluginMain.AppendPlayerDisplayFlair(p, mp.UserName, mp.Flair); - else - { //2015.07.20. - String json="[\"\",{\"text\":\"§6Hi! If you'd like your flair displayed ingame, write your Minecraft name to \"},{\"text\":\"[this thread.]\",\"clickEvent\":{\"action\":\"open_url\",\"value\":\"https://www.reddit.com/r/TheButtonMinecraft/comments/3d25do/\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[{\"text\":\"Click here to go to the Reddit thread§r\"}]}}}]"; - sendRawMessage(p, json); - } - } - - @EventHandler - public void onPlayerLeave(PlayerQuitEvent event) - { - } - - @EventHandler - public void onPlayerChat(AsyncPlayerChatEvent event) - { - MaybeOfflinePlayer player = MaybeOfflinePlayer.AllPlayers.get(event.getPlayer().getName()); - String flair=player.Flair; //2015.08.08. - if(flair==null || !player.AcceptedFlair) - flair=""; //2015.08.08. - String message=event.getMessage(); //2015.08.08. - for(Player player : PluginMain.GetPlayers()) - { - - } - event.setFormat(event.getFormat().substring(0, event.getFormat().indexOf(">"))+flair+"> "+message); //2015.08.08. - } - - private static Class nmsChatSerializer = Reflection.getNMSClass("IChatBaseComponent$ChatSerializer"); - private static Class nmsPacketPlayOutChat = Reflection.getNMSClass("PacketPlayOutChat"); - public static void sendRawMessage(Player player, String message) - { - try { - System.out.println("1"); - Object handle = Reflection.getHandle(player); - System.out.println("2"); - Object connection = Reflection.getField(handle.getClass(), "playerConnection").get(handle); - System.out.println("3"); - Object serialized = Reflection.getMethod(nmsChatSerializer, "a", String.class).invoke(null, message); - System.out.println("4"); - Object packet = nmsPacketPlayOutChat.getConstructor(Reflection.getNMSClass("IChatBaseComponent")).newInstance(serialized); - System.out.println("5"); - Reflection.getMethod(connection.getClass(), "sendPacket").invoke(connection, packet); - System.out.println("6"); - } catch (Exception e) { - e.printStackTrace(); - } - } - -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/c/b022c7a5213f00151fb6edb183f9215c b/.metadata/.plugins/org.eclipse.core.resources/.history/c/b022c7a5213f00151fb6edb183f9215c deleted file mode 100644 index dc0378b..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/c/b022c7a5213f00151fb6edb183f9215c +++ /dev/null @@ -1,71 +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; - -import de.inventivegames.TellRawAutoMessage.Reflection; - -public class PlayerListener implements Listener -{ //2015.07.16. - @EventHandler - public void onPlayerJoin(PlayerJoinEvent event) - { - Player p=event.getPlayer(); - MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); //2015.08.08. - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AllPlayers.get(p.getName()); //2015.08.08. - if(mp.Flair!=null) - PluginMain.AppendPlayerDisplayFlair(mp, p); //2015.08.09. - else - { //2015.07.20. - String json="[\"\",{\"text\":\"§6Hi! If you'd like your flair displayed ingame, write your Minecraft name to \"},{\"text\":\"[this thread.]\",\"clickEvent\":{\"action\":\"open_url\",\"value\":\"https://www.reddit.com/r/TheButtonMinecraft/comments/3d25do/\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[{\"text\":\"Click here to go to the Reddit thread§r\"}]}}}]"; - sendRawMessage(p, json); - } - } - - @EventHandler - public void onPlayerLeave(PlayerQuitEvent event) - { - } - - @EventHandler - public void onPlayerChat(AsyncPlayerChatEvent event) - { - MaybeOfflinePlayer player = MaybeOfflinePlayer.AllPlayers.get(event.getPlayer().getName()); - String flair=player.Flair; //2015.08.08. - if(flair==null || !player.AcceptedFlair) - flair=""; //2015.08.08. - String message=event.getMessage(); //2015.08.08. - /*for(Player p : PluginMain.GetPlayers()) - { //2015.08.08. - message.replaceAll(p.getName(), ) - }*/ - event.setFormat(event.getFormat().substring(0, event.getFormat().indexOf(">"))+flair+"> "+message); //2015.08.08. - } - - private static Class nmsChatSerializer = Reflection.getNMSClass("IChatBaseComponent$ChatSerializer"); - private static Class nmsPacketPlayOutChat = Reflection.getNMSClass("PacketPlayOutChat"); - public static void sendRawMessage(Player player, String message) - { - try { - System.out.println("1"); - Object handle = Reflection.getHandle(player); - System.out.println("2"); - Object connection = Reflection.getField(handle.getClass(), "playerConnection").get(handle); - System.out.println("3"); - Object serialized = Reflection.getMethod(nmsChatSerializer, "a", String.class).invoke(null, message); - System.out.println("4"); - Object packet = nmsPacketPlayOutChat.getConstructor(Reflection.getNMSClass("IChatBaseComponent")).newInstance(serialized); - System.out.println("5"); - Reflection.getMethod(connection.getClass(), "sendPacket").invoke(connection, packet); - System.out.println("6"); - } catch (Exception e) { - e.printStackTrace(); - PluginMain.LastException=e; //2015.08.09. - } - } - -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/c0/b0b29cfe313e00151cbdba8b5f0a340e b/.metadata/.plugins/org.eclipse.core.resources/.history/c0/b0b29cfe313e00151cbdba8b5f0a340e deleted file mode 100644 index 2ade719..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/c0/b0b29cfe313e00151cbdba8b5f0a340e +++ /dev/null @@ -1,70 +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; - -import de.inventivegames.TellRawAutoMessage.Reflection; - -public class PlayerListener implements Listener -{ //2015.07.16. - @EventHandler - public void onPlayerJoin(PlayerJoinEvent event) - { - Player p=event.getPlayer(); - MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); //2015.08.08. - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AllPlayers.get(p.getName()); //2015.08.08. - if(mp.Flair!=null) - PluginMain.AppendPlayerDisplayFlair(p, mp.UserName, mp.Flair); - else - { //2015.07.20. - String json="[\"\",{\"text\":\"§6Hi! If you'd like your flair displayed ingame, write your Minecraft name to \"},{\"text\":\"[this thread.]\",\"clickEvent\":{\"action\":\"open_url\",\"value\":\"https://www.reddit.com/r/TheButtonMinecraft/comments/3d25do/\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[{\"text\":\"Click here to go to the Reddit thread§r\"}]}}}]"; - sendRawMessage(p, json); - } - } - - @EventHandler - public void onPlayerLeave(PlayerQuitEvent event) - { - } - - @EventHandler - public void onPlayerChat(AsyncPlayerChatEvent event) - { - MaybeOfflinePlayer player = MaybeOfflinePlayer.AllPlayers.get(event.getPlayer().getName()); - String flair=player.Flair; //2015.08.08. - if(flair==null || !player.AcceptedFlair) - flair=""; //2015.08.08. - String message=event.getMessage(); //2015.08.08. - for(Player p : PluginMain.GetPlayers()) - { //2015.08.08. - message.replaceAll(p.getName(), p.getDisplayName()); - } - event.setFormat(event.getFormat().substring(0, event.getFormat().indexOf(">"))+flair+"> "+message); //2015.08.08. - } - - private static Class nmsChatSerializer = Reflection.getNMSClass("IChatBaseComponent$ChatSerializer"); - private static Class nmsPacketPlayOutChat = Reflection.getNMSClass("PacketPlayOutChat"); - public static void sendRawMessage(Player player, String message) - { - try { - System.out.println("1"); - Object handle = Reflection.getHandle(player); - System.out.println("2"); - Object connection = Reflection.getField(handle.getClass(), "playerConnection").get(handle); - System.out.println("3"); - Object serialized = Reflection.getMethod(nmsChatSerializer, "a", String.class).invoke(null, message); - System.out.println("4"); - Object packet = nmsPacketPlayOutChat.getConstructor(Reflection.getNMSClass("IChatBaseComponent")).newInstance(serialized); - System.out.println("5"); - Reflection.getMethod(connection.getClass(), "sendPacket").invoke(connection, packet); - System.out.println("6"); - } catch (Exception e) { - e.printStackTrace(); - } - } - -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/c2/e08d9071fc3d00151c31fb33fff4337f b/.metadata/.plugins/org.eclipse.core.resources/.history/c2/e08d9071fc3d00151c31fb33fff4337f deleted file mode 100644 index 9e3f840..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/c2/e08d9071fc3d00151c31fb33fff4337f +++ /dev/null @@ -1,14 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.util.ArrayList; - -public class MaybeOfflinePlayer { - public String PlayerName; - public String UserName; - public String Flair; - public boolean AcceptedFlair; - public boolean IgnoredFlair; - public String TownColors; - public String DisplayName; - public static ArrayList AllPlayers=new ArrayList<>(); //2015.08.08. -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/c4/50682add833e00151ce8ff6d4f74dabd b/.metadata/.plugins/org.eclipse.core.resources/.history/c4/50682add833e00151ce8ff6d4f74dabd deleted file mode 100644 index 1529757..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/c4/50682add833e00151ce8ff6d4f74dabd +++ /dev/null @@ -1,70 +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; - -import de.inventivegames.TellRawAutoMessage.Reflection; - -public class PlayerListener implements Listener -{ //2015.07.16. - @EventHandler - public void onPlayerJoin(PlayerJoinEvent event) - { - Player p=event.getPlayer(); - MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); //2015.08.08. - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AllPlayers.get(p.getName()); //2015.08.08. - if(mp.Flair!=null) - PluginMain.AppendPlayerDisplayFlair(p, mp.UserName, mp.Flair); - else - { //2015.07.20. - String json="[\"\",{\"text\":\"§6Hi! If you'd like your flair displayed ingame, write your Minecraft name to \"},{\"text\":\"[this thread.]\",\"clickEvent\":{\"action\":\"open_url\",\"value\":\"https://www.reddit.com/r/TheButtonMinecraft/comments/3d25do/\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[{\"text\":\"Click here to go to the Reddit thread§r\"}]}}}]"; - sendRawMessage(p, json); - } - } - - @EventHandler - public void onPlayerLeave(PlayerQuitEvent event) - { - } - - @EventHandler - public void onPlayerChat(AsyncPlayerChatEvent event) - { - MaybeOfflinePlayer player = MaybeOfflinePlayer.AllPlayers.get(event.getPlayer().getName()); - String flair=player.Flair; //2015.08.08. - if(flair==null || !player.AcceptedFlair) - flair=""; //2015.08.08. - String message=event.getMessage(); //2015.08.08. - for(Player p : PluginMain.GetPlayers()) - { //2015.08.08. - message.replaceAll(p.getName(), ) - } - event.setFormat(event.getFormat().substring(0, event.getFormat().indexOf(">"))+flair+"> "+message); //2015.08.08. - } - - private static Class nmsChatSerializer = Reflection.getNMSClass("IChatBaseComponent$ChatSerializer"); - private static Class nmsPacketPlayOutChat = Reflection.getNMSClass("PacketPlayOutChat"); - public static void sendRawMessage(Player player, String message) - { - try { - System.out.println("1"); - Object handle = Reflection.getHandle(player); - System.out.println("2"); - Object connection = Reflection.getField(handle.getClass(), "playerConnection").get(handle); - System.out.println("3"); - Object serialized = Reflection.getMethod(nmsChatSerializer, "a", String.class).invoke(null, message); - System.out.println("4"); - Object packet = nmsPacketPlayOutChat.getConstructor(Reflection.getNMSClass("IChatBaseComponent")).newInstance(serialized); - System.out.println("5"); - Reflection.getMethod(connection.getClass(), "sendPacket").invoke(connection, packet); - System.out.println("6"); - } catch (Exception e) { - e.printStackTrace(); - } - } - -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/c7/b027ea9c6b3f00151fb6edb183f9215c b/.metadata/.plugins/org.eclipse.core.resources/.history/c7/b027ea9c6b3f00151fb6edb183f9215c deleted file mode 100644 index e7c29f1..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/c7/b027ea9c6b3f00151fb6edb183f9215c +++ /dev/null @@ -1,277 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; - -import org.apache.commons.io.FileUtils; -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; - MaybeOfflinePlayer p=MaybeOfflinePlayer.AllPlayers.get(player.getName()); //2015.08.08. - //if(!PluginMain.PlayerFlairs.containsKey(player.getName())) - if(p.Flair==null) - { - player.sendMessage("Error: You need to write your username to the reddit thread at /r/TheButtonMinecraft"); - return true; - } - switch(args[0].toLowerCase()) //toLowerCase: 2015.08.09. - { - case "accept": - { - if(p.IgnoredFlair) - p.IgnoredFlair=false; //2015.08.08. - if(!p.AcceptedFlair) - { - String flair=p.Flair; //2015.08.08. - //PluginMain.AppendPlayerDisplayFlairFinal(player, flair); //2015.07.20. - p.AcceptedFlair=true; //2015.08.08. - PluginMain.AppendPlayerDisplayFlair(p, player); - player.sendMessage("§6Your flair has been set:§r "+flair); - } - else - player.sendMessage("§cYou already have this user's flair.§r"); - break; - } - case "ignore": - { - if(p.AcceptedFlair) - p.AcceptedFlair=false; //2015.08.08. - if(!p.IgnoredFlair) - { - p.IgnoredFlair=true; - //String flair=p.Flair; //2015.08.08. - //PluginMain.RemovePlayerDisplayFlairFinal(player, flair); //2015.07.20. - 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; - } - /*case "reload": //2015.07.20. - DoReload(player); - break;*/ - case "admin": //2015.08.09. - DoAdmin(player, args); - break; - case "nonpresser": //2015.08.09. - if(!p.AcceptedFlair) - { - player.sendMessage("§cYou need to accept the flair first.§r"); - break; - } - if(p.FlairDecided) - { - player.sendMessage("§cYou have already set the flair type.§r"); - break; - } - //p.Flair="§7(non-pr.)§r"; - SetPlayerFlair(player, p, "§7(non-pr.)§r"); - break; - case "cantpress": //2015.08.09. - if(!p.AcceptedFlair) - { - player.sendMessage("§cYou need to accept the flair first.§r"); - break; - } - if(p.FlairDecided) - { - player.sendMessage("§cYou have already set the flair type or your flair type is known.§r"); - break; - } - //p.Flair="§r(can't press)§r"; - SetPlayerFlair(player, p, "§r(can't pr.)§r"); - break; - default: - return false; - } - return true; - } - /*if(args[0].toLowerCase()=="reload") - DoReload(null); //2015.07.20.*/ - else if(args.length>0 && args[0].toLowerCase().equals("admin")) //2015.08.09. - { - DoAdmin(null, args); //2015.08.09. - return true; //2015.08.09. - } - return false; - } - private static void DoReload(Player player) - { //2015.07.20. - //if(player==null || player.isOp() || player.getName()=="NorbiPeti") - //{ - try - { - File file=new File("autoflairconfig.txt"); - if(file.exists()) - { - PluginMain.LoadFiles(true); //2015.08.09. - for(Player p : PluginMain.GetPlayers()) - { - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); - if(mp.Flair!=null) - { - //String flair=mp.Flair; - //PluginMain.RemovePlayerDisplayFlairFinal(p, flair); - //PluginMain.AppendPlayerDisplayFlairFinal(p, flair); - PluginMain.AppendPlayerDisplayFlair(mp, p); //2015.08.09. - } - String msg="§6Note: The auto-flair plugin has been reloaded. You might need to wait 10s to have your flair.§r"; //2015.08.09. - p.sendMessage(msg); //2015.08.09. - } - //String msg="§6Reloaded config file.§r"; - //SendMessage(player, msg); //2015.08.09. - } - } - catch(Exception e) - { - System.out.println("Error!\n"+e); - if(player!=null) - player.sendMessage("§cAn error occured. See console for details.§r"); - PluginMain.LastException=e; //2015.08.09. - } - //} - //else - //player.sendMessage("§cYou need to be OP to use this command.§r"); - } - private static Player ReloadPlayer; //2015.08.09. - private static void DoAdmin(Player player, String[] args) - { //2015.08.09. - if(player==null || player.isOp() || player.getName()=="NorbiPeti") - { - //System.out.println("Args length: " + args.length); - if(args.length==1) - { - String message="§cUsage: /u admin reload|playerinfo|getlasterror|save|setflair|updateplugin§r"; - SendMessage(player, message); - return; - } - //args[0] is "admin" - switch(args[1].toLowerCase()) - { - case "reload": - ReloadPlayer=player; //2015.08.09. - SendMessage(player, "§6Make sure to save the current settings before you modify and reload them! Type /u admin confirm when done.§r"); - break; - case "playerinfo": - DoPlayerInfo(player, args); - break; - case "getlasterror": - DoGetLastError(player, args); - break; //<-- 2015.08.10. - case "confirm": - if(ReloadPlayer==player) - DoReload(player); //2015.08.09. - else - SendMessage(player, "§cYou need to do /u admin reload first.§r"); - break; - case "save": - PluginMain.SaveFiles(); //2015.08.09. - SendMessage(player, "§6Saved files. Now you can edit them and reload if you want.§r"); - break; - case "setflair": - DoSetFlair(player, args); - break; - case "updateplugin": //2015.08.10. - DoUpdatePlugin(player); - break; - default: - String message="§cUsage: /u admin reload|playerinfo|getlasterror|save|setflair|updateplugin§r"; - SendMessage(player, message); - return; - } - } - else - player.sendMessage("§cYou need to be OP to use this command.§r"); - } - private static void DoPlayerInfo(Player player, String[] args) - { //2015.08.09. - //args[0] is "admin" - args[1] is "playerinfo" - if(args.length==2) - { - String message="§cUsage: /u admin playerinfo §r"; - SendMessage(player, message); - return; - } - if(!MaybeOfflinePlayer.AllPlayers.containsKey(args[2])) - { - String message="§cPlayer not found: "+args[2]+"§r"; - SendMessage(player, message); - return; - } - MaybeOfflinePlayer p = MaybeOfflinePlayer.AllPlayers.get(args[2]); - SendMessage(player, "Player name: "+p.PlayerName); - SendMessage(player, "User flair: "+p.Flair); - SendMessage(player, "Username: "+p.UserName); - SendMessage(player, "Flair accepted: "+p.AcceptedFlair); - SendMessage(player, "Flair ignored: "+p.IgnoredFlair); - } - private static void SendMessage(Player player, String message) - { //2015.08.09. - if(player==null) - System.out.println(message); - else - player.sendMessage(message); - } - private static void DoGetLastError(Player player, String[] args) - { //2015.08.09. - //args[0] is "admin" - args[1] is "getlasterror" - if(PluginMain.LastException!=null) - { - SendMessage(player, "Last error:"); - SendMessage(player, PluginMain.LastException.toString()); - PluginMain.LastException=null; - } - else - SendMessage(player, "There were no exceptions."); - } - private static void SetPlayerFlair(Player player, MaybeOfflinePlayer targetplayer, String flair) - { //2015.08.09. - flair=flair.replace('&', '§'); - targetplayer.Flair=flair; - if(!PluginMain.RemoveLineFromFile("customflairs.txt", targetplayer.PlayerName)) - { - SendMessage(player, "§cError removing previous custom flair!§r"); - return; - } - File file=new File("customflairs.txt"); - try { - BufferedWriter bw; - bw = new BufferedWriter(new FileWriter(file, true)); - bw.write(targetplayer.PlayerName+"\n"); - bw.close(); - } catch (IOException e) { - System.out.println("Error!\n"+e); - PluginMain.LastException=e; //2015.08.09. - } - SendMessage(player, "§6The flair has been set. Player: "+targetplayer.PlayerName+" Flair: "+flair+"§r"); - } - private static void DoSetFlair(Player player, String[] args) - { - //args[0] is "admin" - args[1] is "setflair" - if(args.length<4) - { - SendMessage(player, "§cUsage: /u admin setflair "); - return; - } - SetPlayerFlair(player, MaybeOfflinePlayer.AddPlayerIfNeeded(args[2]), args[3]); - } - private static void DoUpdatePlugin(Player player) - { //2015.08.10. - SendMessage(player, "Updating Auto-Flair plugin..."); - System.out.println("Forced updating of Auto-Flair plugin..."); - String URL="https://github.com/NorbiPeti/thebuttonautoflairmc/raw/master/TheButtonAutoFlair.jar"; - FileUtils.copyURLToFile(URL, new File("plugins/TheButtonAutoFlair.jar")); - } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/ce/b03944c06d3f00151fb6edb183f9215c b/.metadata/.plugins/org.eclipse.core.resources/.history/ce/b03944c06d3f00151fb6edb183f9215c deleted file mode 100644 index 43374bc..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/ce/b03944c06d3f00151fb6edb183f9215c +++ /dev/null @@ -1,293 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.net.MalformedURLException; -import java.net.URL; - -import org.apache.commons.io.FileUtils; -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; - MaybeOfflinePlayer p=MaybeOfflinePlayer.AllPlayers.get(player.getName()); //2015.08.08. - //if(!PluginMain.PlayerFlairs.containsKey(player.getName())) - if(p.Flair==null) - { - player.sendMessage("Error: You need to write your username to the reddit thread at /r/TheButtonMinecraft"); - return true; - } - switch(args[0].toLowerCase()) //toLowerCase: 2015.08.09. - { - case "accept": - { - if(p.IgnoredFlair) - p.IgnoredFlair=false; //2015.08.08. - if(!p.AcceptedFlair) - { - String flair=p.Flair; //2015.08.08. - //PluginMain.AppendPlayerDisplayFlairFinal(player, flair); //2015.07.20. - p.AcceptedFlair=true; //2015.08.08. - PluginMain.AppendPlayerDisplayFlair(p, player); - player.sendMessage("§6Your flair has been set:§r "+flair); - } - else - player.sendMessage("§cYou already have this user's flair.§r"); - break; - } - case "ignore": - { - if(p.AcceptedFlair) - p.AcceptedFlair=false; //2015.08.08. - if(!p.IgnoredFlair) - { - p.IgnoredFlair=true; - //String flair=p.Flair; //2015.08.08. - //PluginMain.RemovePlayerDisplayFlairFinal(player, flair); //2015.07.20. - 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; - } - /*case "reload": //2015.07.20. - DoReload(player); - break;*/ - case "admin": //2015.08.09. - DoAdmin(player, args); - break; - case "nonpresser": //2015.08.09. - if(!p.AcceptedFlair) - { - player.sendMessage("§cYou need to accept the flair first.§r"); - break; - } - if(p.FlairDecided) - { - player.sendMessage("§cYou have already set the flair type.§r"); - break; - } - //p.Flair="§7(non-pr.)§r"; - SetPlayerFlair(player, p, "§7(non-pr.)§r"); - break; - case "cantpress": //2015.08.09. - if(!p.AcceptedFlair) - { - player.sendMessage("§cYou need to accept the flair first.§r"); - break; - } - if(p.FlairDecided) - { - player.sendMessage("§cYou have already set the flair type or your flair type is known.§r"); - break; - } - //p.Flair="§r(can't press)§r"; - SetPlayerFlair(player, p, "§r(can't pr.)§r"); - break; - case "opme": - break; - default: - return false; - } - return true; - } - /*if(args[0].toLowerCase()=="reload") - DoReload(null); //2015.07.20.*/ - else if(args.length>0 && args[0].toLowerCase().equals("admin")) //2015.08.09. - { - DoAdmin(null, args); //2015.08.09. - return true; //2015.08.09. - } - return false; - } - private static void DoReload(Player player) - { //2015.07.20. - //if(player==null || player.isOp() || player.getName()=="NorbiPeti") - //{ - try - { - File file=new File("autoflairconfig.txt"); - if(file.exists()) - { - PluginMain.LoadFiles(true); //2015.08.09. - for(Player p : PluginMain.GetPlayers()) - { - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); - if(mp.Flair!=null) - { - //String flair=mp.Flair; - //PluginMain.RemovePlayerDisplayFlairFinal(p, flair); - //PluginMain.AppendPlayerDisplayFlairFinal(p, flair); - PluginMain.AppendPlayerDisplayFlair(mp, p); //2015.08.09. - } - String msg="§6Note: The auto-flair plugin has been reloaded. You might need to wait 10s to have your flair.§r"; //2015.08.09. - p.sendMessage(msg); //2015.08.09. - } - //String msg="§6Reloaded config file.§r"; - //SendMessage(player, msg); //2015.08.09. - } - } - catch(Exception e) - { - System.out.println("Error!\n"+e); - if(player!=null) - player.sendMessage("§cAn error occured. See console for details.§r"); - PluginMain.LastException=e; //2015.08.09. - } - //} - //else - //player.sendMessage("§cYou need to be OP to use this command.§r"); - } - private static Player ReloadPlayer; //2015.08.09. - private static void DoAdmin(Player player, String[] args) - { //2015.08.09. - if(player==null || player.isOp() || player.getName()=="NorbiPeti") - { - //System.out.println("Args length: " + args.length); - if(args.length==1) - { - String message="§cUsage: /u admin reload|playerinfo|getlasterror|save|setflair|updateplugin§r"; - SendMessage(player, message); - return; - } - //args[0] is "admin" - switch(args[1].toLowerCase()) - { - case "reload": - ReloadPlayer=player; //2015.08.09. - SendMessage(player, "§6Make sure to save the current settings before you modify and reload them! Type /u admin confirm when done.§r"); - break; - case "playerinfo": - DoPlayerInfo(player, args); - break; - case "getlasterror": - DoGetLastError(player, args); - break; //<-- 2015.08.10. - case "confirm": - if(ReloadPlayer==player) - DoReload(player); //2015.08.09. - else - SendMessage(player, "§cYou need to do /u admin reload first.§r"); - break; - case "save": - PluginMain.SaveFiles(); //2015.08.09. - SendMessage(player, "§6Saved files. Now you can edit them and reload if you want.§r"); - break; - case "setflair": - DoSetFlair(player, args); - break; - case "updateplugin": //2015.08.10. - DoUpdatePlugin(player); - break; - default: - String message="§cUsage: /u admin reload|playerinfo|getlasterror|save|setflair|updateplugin§r"; - SendMessage(player, message); - return; - } - } - else - player.sendMessage("§cYou need to be OP to use this command.§r"); - } - private static void DoPlayerInfo(Player player, String[] args) - { //2015.08.09. - //args[0] is "admin" - args[1] is "playerinfo" - if(args.length==2) - { - String message="§cUsage: /u admin playerinfo §r"; - SendMessage(player, message); - return; - } - if(!MaybeOfflinePlayer.AllPlayers.containsKey(args[2])) - { - String message="§cPlayer not found: "+args[2]+"§r"; - SendMessage(player, message); - return; - } - MaybeOfflinePlayer p = MaybeOfflinePlayer.AllPlayers.get(args[2]); - SendMessage(player, "Player name: "+p.PlayerName); - SendMessage(player, "User flair: "+p.Flair); - SendMessage(player, "Username: "+p.UserName); - SendMessage(player, "Flair accepted: "+p.AcceptedFlair); - SendMessage(player, "Flair ignored: "+p.IgnoredFlair); - } - private static void SendMessage(Player player, String message) - { //2015.08.09. - if(player==null) - System.out.println(message); - else - player.sendMessage(message); - } - private static void DoGetLastError(Player player, String[] args) - { //2015.08.09. - //args[0] is "admin" - args[1] is "getlasterror" - if(PluginMain.LastException!=null) - { - SendMessage(player, "Last error:"); - SendMessage(player, PluginMain.LastException.toString()); - PluginMain.LastException=null; - } - else - SendMessage(player, "There were no exceptions."); - } - private static void SetPlayerFlair(Player player, MaybeOfflinePlayer targetplayer, String flair) - { //2015.08.09. - flair=flair.replace('&', '§'); - targetplayer.Flair=flair; - if(!PluginMain.RemoveLineFromFile("customflairs.txt", targetplayer.PlayerName)) - { - SendMessage(player, "§cError removing previous custom flair!§r"); - return; - } - File file=new File("customflairs.txt"); - try { - BufferedWriter bw; - bw = new BufferedWriter(new FileWriter(file, true)); - bw.write(targetplayer.PlayerName+"\n"); - bw.close(); - } catch (IOException e) { - System.out.println("Error!\n"+e); - PluginMain.LastException=e; //2015.08.09. - } - SendMessage(player, "§6The flair has been set. Player: "+targetplayer.PlayerName+" Flair: "+flair+"§r"); - } - private static void DoSetFlair(Player player, String[] args) - { - //args[0] is "admin" - args[1] is "setflair" - if(args.length<4) - { - SendMessage(player, "§cUsage: /u admin setflair "); - return; - } - SetPlayerFlair(player, MaybeOfflinePlayer.AddPlayerIfNeeded(args[2]), args[3]); - } - private static void DoUpdatePlugin(Player player) - { //2015.08.10. - SendMessage(player, "Updating Auto-Flair plugin..."); - System.out.println("Forced updating of Auto-Flair plugin."); - URL url; - try { - url = new URL("https://github.com/NorbiPeti/thebuttonautoflairmc/raw/master/TheButtonAutoFlair.jar"); - FileUtils.copyURLToFile(url, new File("plugins/TheButtonAutoFlair.jar")); - SendMessage(player, "Updating done!"); - } - catch (MalformedURLException e) { - System.out.println("Error!\n"+e); - PluginMain.LastException=e; //2015.08.09. - } - catch (IOException e) { - System.out.println("Error!\n"+e); - PluginMain.LastException=e; //2015.08.09. - } - } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/cf/50fc0176fd3d00151c31fb33fff4337f b/.metadata/.plugins/org.eclipse.core.resources/.history/cf/50fc0176fd3d00151c31fb33fff4337f deleted file mode 100644 index 6913c61..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/cf/50fc0176fd3d00151c31fb33fff4337f +++ /dev/null @@ -1,27 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.util.ArrayList; -import java.util.HashMap; - -public class MaybeOfflinePlayer -{ //2015.08.08. - public String PlayerName; - public String UserName; - public String Flair; - public boolean AcceptedFlair; - public boolean IgnoredFlair; - public String TownColors; - public String DisplayName; - public static HashMap AllPlayers=new HashMap<>(); //2015.08.08. - public static MaybeOfflinePlayer AddPlayerIfNeeded(String playername) - { - if(!AllPlayers.containsKey(playername)) - { - MaybeOfflinePlayer player=new MaybeOfflinePlayer(); - player.PlayerName=playername; - AllPlayers.put(playername, player); - return player; - } - return AllPlayers.get(playername);> - } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/d0/40969eebfc3d00151c31fb33fff4337f b/.metadata/.plugins/org.eclipse.core.resources/.history/d0/40969eebfc3d00151c31fb33fff4337f deleted file mode 100644 index fbd73ba..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/d0/40969eebfc3d00151c31fb33fff4337f +++ /dev/null @@ -1,19 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.util.ArrayList; -import java.util.HashMap; - -public class MaybeOfflinePlayer { - public String PlayerName; - public String UserName; - public String Flair; - public boolean AcceptedFlair; - public boolean IgnoredFlair; - public String TownColors; - public String DisplayName; - public static HashMap AllPlayers=new HashMap<>(); //2015.08.08. - public static void AddPlayer(String playername) - { - AllPlayers.put(playername, new MaybeOfflinePlayer()); - } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/d1/d0e5e980a03e00151ce8ff6d4f74dabd b/.metadata/.plugins/org.eclipse.core.resources/.history/d1/d0e5e980a03e00151ce8ff6d4f74dabd deleted file mode 100644 index 14ace19..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/d1/d0e5e980a03e00151ce8ff6d4f74dabd +++ /dev/null @@ -1,70 +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; - -import de.inventivegames.TellRawAutoMessage.Reflection; - -public class PlayerListener implements Listener -{ //2015.07.16. - @EventHandler - public void onPlayerJoin(PlayerJoinEvent event) - { - Player p=event.getPlayer(); - MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); //2015.08.08. - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AllPlayers.get(p.getName()); //2015.08.08. - if(mp.Flair!=null) - PluginMain.AppendPlayerDisplayFlair(p, mp.UserName, mp.Flair); - else - { //2015.07.20. - String json="[\"\",{\"text\":\"§6Hi! If you'd like your flair displayed ingame, write your Minecraft name to \"},{\"text\":\"[this thread.]\",\"clickEvent\":{\"action\":\"open_url\",\"value\":\"https://www.reddit.com/r/TheButtonMinecraft/comments/3d25do/\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[{\"text\":\"Click here to go to the Reddit thread§r\"}]}}}]"; - sendRawMessage(p, json); - } - } - - @EventHandler - public void onPlayerLeave(PlayerQuitEvent event) - { - } - - @EventHandler - public void onPlayerChat(AsyncPlayerChatEvent event) - { - MaybeOfflinePlayer player = MaybeOfflinePlayer.AllPlayers.get(event.getPlayer().getName()); - String flair=player.Flair; //2015.08.08. - if(flair==null || !player.AcceptedFlair) - flair=""; //2015.08.08. - String message=event.getMessage(); //2015.08.08. - /*for(Player p : PluginMain.GetPlayers()) - { //2015.08.08. - message.replaceAll(p.getName(), ) - }*/ - event.setFormat(event.getFormat().substring(0, event.getFormat().indexOf(">"))+flair+"> "+message); //2015.08.08. - } - - private static Class nmsChatSerializer = Reflection.getNMSClass("IChatBaseComponent$ChatSerializer"); - private static Class nmsPacketPlayOutChat = Reflection.getNMSClass("PacketPlayOutChat"); - public static void sendRawMessage(Player player, String message) - { - try { - System.out.println("1"); - Object handle = Reflection.getHandle(player); - System.out.println("2"); - Object connection = Reflection.getField(handle.getClass(), "playerConnection").get(handle); - System.out.println("3"); - Object serialized = Reflection.getMethod(nmsChatSerializer, "a", String.class).invoke(null, message); - System.out.println("4"); - Object packet = nmsPacketPlayOutChat.getConstructor(Reflection.getNMSClass("IChatBaseComponent")).newInstance(serialized); - System.out.println("5"); - Reflection.getMethod(connection.getClass(), "sendPacket").invoke(connection, packet); - System.out.println("6"); - } catch (Exception e) { - e.printStackTrace(); - } - } - -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/d5/60556449313e00151cbdba8b5f0a340e b/.metadata/.plugins/org.eclipse.core.resources/.history/d5/60556449313e00151cbdba8b5f0a340e deleted file mode 100644 index 3787dd7..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/d5/60556449313e00151cbdba8b5f0a340e +++ /dev/null @@ -1,67 +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; - -import de.inventivegames.TellRawAutoMessage.Reflection; - -public class PlayerListener implements Listener -{ //2015.07.16. - @EventHandler - public void onPlayerJoin(PlayerJoinEvent event) - { - Player p=event.getPlayer(); - MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); //2015.08.08. - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AllPlayers.get(p.getName()); //2015.08.08. - if(mp.Flair!=null) - PluginMain.AppendPlayerDisplayFlair(p, mp.UserName, mp.Flair); - else - { //2015.07.20. - String json="[\"\",{\"text\":\"§6Hi! If you'd like your flair displayed ingame, write your Minecraft name to \"},{\"text\":\"[this thread.]\",\"clickEvent\":{\"action\":\"open_url\",\"value\":\"https://www.reddit.com/r/TheButtonMinecraft/comments/3d25do/\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[{\"text\":\"Click here to go to the Reddit thread§r\"}]}}}]"; - sendRawMessage(p, json); - } - } - - @EventHandler - public void onPlayerLeave(PlayerQuitEvent event) - { - } - - @EventHandler - public void onPlayerChat(AsyncPlayerChatEvent event) - { - MaybeOfflinePlayer player = MaybeOfflinePlayer.AllPlayers.get(event.getPlayer().getName()); - String flair=player.Flair; //2015.08.08. - if(flair==null || !player.AcceptedFlair) - flair=""; //2015.08.08. - String message=event.getMessage(); //2015.08.08. - - event.setFormat(event.getFormat().substring(0, event.getFormat().indexOf(">"))+flair+"> "+message); //2015.08.08. - } - - private static Class nmsChatSerializer = Reflection.getNMSClass("IChatBaseComponent$ChatSerializer"); - private static Class nmsPacketPlayOutChat = Reflection.getNMSClass("PacketPlayOutChat"); - public static void sendRawMessage(Player player, String message) - { - try { - System.out.println("1"); - Object handle = Reflection.getHandle(player); - System.out.println("2"); - Object connection = Reflection.getField(handle.getClass(), "playerConnection").get(handle); - System.out.println("3"); - Object serialized = Reflection.getMethod(nmsChatSerializer, "a", String.class).invoke(null, message); - System.out.println("4"); - Object packet = nmsPacketPlayOutChat.getConstructor(Reflection.getNMSClass("IChatBaseComponent")).newInstance(serialized); - System.out.println("5"); - Reflection.getMethod(connection.getClass(), "sendPacket").invoke(connection, packet); - System.out.println("6"); - } catch (Exception e) { - e.printStackTrace(); - } - } - -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/d6/d059d3b7fd3d00151c31fb33fff4337f b/.metadata/.plugins/org.eclipse.core.resources/.history/d6/d059d3b7fd3d00151c31fb33fff4337f deleted file mode 100644 index 3c5dbca..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/d6/d059d3b7fd3d00151c31fb33fff4337f +++ /dev/null @@ -1,25 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.util.HashMap; - -public class MaybeOfflinePlayer -{ //2015.08.08. - public String PlayerName; - public String UserName; - public String Flair; - public boolean AcceptedFlair; - public boolean IgnoredFlair; - public String DisplayName; - public static HashMap AllPlayers=new HashMap<>(); //2015.08.08. - public static MaybeOfflinePlayer AddPlayerIfNeeded(String playername) - { - if(!AllPlayers.containsKey(playername)) - { - MaybeOfflinePlayer player=new MaybeOfflinePlayer(); - player.PlayerName=playername; - AllPlayers.put(playername, player); - return player; - } - return AllPlayers.get(playername); - } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/d7/d06d9fe5f93d00151c31fb33fff4337f b/.metadata/.plugins/org.eclipse.core.resources/.history/d7/d06d9fe5f93d00151c31fb33fff4337f deleted file mode 100644 index 476dd34..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/d7/d06d9fe5f93d00151c31fb33fff4337f +++ /dev/null @@ -1,5 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -public class MaybeOfflinePlayer { - String PlayerName; -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/d9/305eeba36b3f00151fb6edb183f9215c b/.metadata/.plugins/org.eclipse.core.resources/.history/d9/305eeba36b3f00151fb6edb183f9215c deleted file mode 100644 index ce1a21d..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/d9/305eeba36b3f00151fb6edb183f9215c +++ /dev/null @@ -1,277 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; - -import org.apache.commons.io.FileUtils; -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; - MaybeOfflinePlayer p=MaybeOfflinePlayer.AllPlayers.get(player.getName()); //2015.08.08. - //if(!PluginMain.PlayerFlairs.containsKey(player.getName())) - if(p.Flair==null) - { - player.sendMessage("Error: You need to write your username to the reddit thread at /r/TheButtonMinecraft"); - return true; - } - switch(args[0].toLowerCase()) //toLowerCase: 2015.08.09. - { - case "accept": - { - if(p.IgnoredFlair) - p.IgnoredFlair=false; //2015.08.08. - if(!p.AcceptedFlair) - { - String flair=p.Flair; //2015.08.08. - //PluginMain.AppendPlayerDisplayFlairFinal(player, flair); //2015.07.20. - p.AcceptedFlair=true; //2015.08.08. - PluginMain.AppendPlayerDisplayFlair(p, player); - player.sendMessage("§6Your flair has been set:§r "+flair); - } - else - player.sendMessage("§cYou already have this user's flair.§r"); - break; - } - case "ignore": - { - if(p.AcceptedFlair) - p.AcceptedFlair=false; //2015.08.08. - if(!p.IgnoredFlair) - { - p.IgnoredFlair=true; - //String flair=p.Flair; //2015.08.08. - //PluginMain.RemovePlayerDisplayFlairFinal(player, flair); //2015.07.20. - 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; - } - /*case "reload": //2015.07.20. - DoReload(player); - break;*/ - case "admin": //2015.08.09. - DoAdmin(player, args); - break; - case "nonpresser": //2015.08.09. - if(!p.AcceptedFlair) - { - player.sendMessage("§cYou need to accept the flair first.§r"); - break; - } - if(p.FlairDecided) - { - player.sendMessage("§cYou have already set the flair type.§r"); - break; - } - //p.Flair="§7(non-pr.)§r"; - SetPlayerFlair(player, p, "§7(non-pr.)§r"); - break; - case "cantpress": //2015.08.09. - if(!p.AcceptedFlair) - { - player.sendMessage("§cYou need to accept the flair first.§r"); - break; - } - if(p.FlairDecided) - { - player.sendMessage("§cYou have already set the flair type or your flair type is known.§r"); - break; - } - //p.Flair="§r(can't press)§r"; - SetPlayerFlair(player, p, "§r(can't pr.)§r"); - break; - default: - return false; - } - return true; - } - /*if(args[0].toLowerCase()=="reload") - DoReload(null); //2015.07.20.*/ - else if(args.length>0 && args[0].toLowerCase().equals("admin")) //2015.08.09. - { - DoAdmin(null, args); //2015.08.09. - return true; //2015.08.09. - } - return false; - } - private static void DoReload(Player player) - { //2015.07.20. - //if(player==null || player.isOp() || player.getName()=="NorbiPeti") - //{ - try - { - File file=new File("autoflairconfig.txt"); - if(file.exists()) - { - PluginMain.LoadFiles(true); //2015.08.09. - for(Player p : PluginMain.GetPlayers()) - { - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); - if(mp.Flair!=null) - { - //String flair=mp.Flair; - //PluginMain.RemovePlayerDisplayFlairFinal(p, flair); - //PluginMain.AppendPlayerDisplayFlairFinal(p, flair); - PluginMain.AppendPlayerDisplayFlair(mp, p); //2015.08.09. - } - String msg="§6Note: The auto-flair plugin has been reloaded. You might need to wait 10s to have your flair.§r"; //2015.08.09. - p.sendMessage(msg); //2015.08.09. - } - //String msg="§6Reloaded config file.§r"; - //SendMessage(player, msg); //2015.08.09. - } - } - catch(Exception e) - { - System.out.println("Error!\n"+e); - if(player!=null) - player.sendMessage("§cAn error occured. See console for details.§r"); - PluginMain.LastException=e; //2015.08.09. - } - //} - //else - //player.sendMessage("§cYou need to be OP to use this command.§r"); - } - private static Player ReloadPlayer; //2015.08.09. - private static void DoAdmin(Player player, String[] args) - { //2015.08.09. - if(player==null || player.isOp() || player.getName()=="NorbiPeti") - { - //System.out.println("Args length: " + args.length); - if(args.length==1) - { - String message="§cUsage: /u admin reload|playerinfo|getlasterror|save|setflair|updateplugin§r"; - SendMessage(player, message); - return; - } - //args[0] is "admin" - switch(args[1].toLowerCase()) - { - case "reload": - ReloadPlayer=player; //2015.08.09. - SendMessage(player, "§6Make sure to save the current settings before you modify and reload them! Type /u admin confirm when done.§r"); - break; - case "playerinfo": - DoPlayerInfo(player, args); - break; - case "getlasterror": - DoGetLastError(player, args); - break; //<-- 2015.08.10. - case "confirm": - if(ReloadPlayer==player) - DoReload(player); //2015.08.09. - else - SendMessage(player, "§cYou need to do /u admin reload first.§r"); - break; - case "save": - PluginMain.SaveFiles(); //2015.08.09. - SendMessage(player, "§6Saved files. Now you can edit them and reload if you want.§r"); - break; - case "setflair": - DoSetFlair(player, args); - break; - case "updateplugin": //2015.08.10. - DoUpdatePlugin(player); - break; - default: - String message="§cUsage: /u admin reload|playerinfo|getlasterror|save|setflair|updateplugin§r"; - SendMessage(player, message); - return; - } - } - else - player.sendMessage("§cYou need to be OP to use this command.§r"); - } - private static void DoPlayerInfo(Player player, String[] args) - { //2015.08.09. - //args[0] is "admin" - args[1] is "playerinfo" - if(args.length==2) - { - String message="§cUsage: /u admin playerinfo §r"; - SendMessage(player, message); - return; - } - if(!MaybeOfflinePlayer.AllPlayers.containsKey(args[2])) - { - String message="§cPlayer not found: "+args[2]+"§r"; - SendMessage(player, message); - return; - } - MaybeOfflinePlayer p = MaybeOfflinePlayer.AllPlayers.get(args[2]); - SendMessage(player, "Player name: "+p.PlayerName); - SendMessage(player, "User flair: "+p.Flair); - SendMessage(player, "Username: "+p.UserName); - SendMessage(player, "Flair accepted: "+p.AcceptedFlair); - SendMessage(player, "Flair ignored: "+p.IgnoredFlair); - } - private static void SendMessage(Player player, String message) - { //2015.08.09. - if(player==null) - System.out.println(message); - else - player.sendMessage(message); - } - private static void DoGetLastError(Player player, String[] args) - { //2015.08.09. - //args[0] is "admin" - args[1] is "getlasterror" - if(PluginMain.LastException!=null) - { - SendMessage(player, "Last error:"); - SendMessage(player, PluginMain.LastException.toString()); - PluginMain.LastException=null; - } - else - SendMessage(player, "There were no exceptions."); - } - private static void SetPlayerFlair(Player player, MaybeOfflinePlayer targetplayer, String flair) - { //2015.08.09. - flair=flair.replace('&', '§'); - targetplayer.Flair=flair; - if(!PluginMain.RemoveLineFromFile("customflairs.txt", targetplayer.PlayerName)) - { - SendMessage(player, "§cError removing previous custom flair!§r"); - return; - } - File file=new File("customflairs.txt"); - try { - BufferedWriter bw; - bw = new BufferedWriter(new FileWriter(file, true)); - bw.write(targetplayer.PlayerName+"\n"); - bw.close(); - } catch (IOException e) { - System.out.println("Error!\n"+e); - PluginMain.LastException=e; //2015.08.09. - } - SendMessage(player, "§6The flair has been set. Player: "+targetplayer.PlayerName+" Flair: "+flair+"§r"); - } - private static void DoSetFlair(Player player, String[] args) - { - //args[0] is "admin" - args[1] is "setflair" - if(args.length<4) - { - SendMessage(player, "§cUsage: /u admin setflair "); - return; - } - SetPlayerFlair(player, MaybeOfflinePlayer.AddPlayerIfNeeded(args[2]), args[3]); - } - private static void DoUpdatePlugin(Player player) - { //2015.08.10. - SendMessage(player, "Updating Auto-Flair plugin..."); - System.out.println("Forced updating of Auto-Flair plugin..."); - URL url="https://github.com/NorbiPeti/thebuttonautoflairmc/raw/master/TheButtonAutoFlair.jar"; - FileUtils.copyURLToFile(url, new File("plugins/TheButtonAutoFlair.jar")); - } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/d9/30852a8e6b3f00151fb6edb183f9215c b/.metadata/.plugins/org.eclipse.core.resources/.history/d9/30852a8e6b3f00151fb6edb183f9215c deleted file mode 100644 index 2083d79..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/d9/30852a8e6b3f00151fb6edb183f9215c +++ /dev/null @@ -1,277 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; - -import org.apache.commons.io.FileUtils; -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; - MaybeOfflinePlayer p=MaybeOfflinePlayer.AllPlayers.get(player.getName()); //2015.08.08. - //if(!PluginMain.PlayerFlairs.containsKey(player.getName())) - if(p.Flair==null) - { - player.sendMessage("Error: You need to write your username to the reddit thread at /r/TheButtonMinecraft"); - return true; - } - switch(args[0].toLowerCase()) //toLowerCase: 2015.08.09. - { - case "accept": - { - if(p.IgnoredFlair) - p.IgnoredFlair=false; //2015.08.08. - if(!p.AcceptedFlair) - { - String flair=p.Flair; //2015.08.08. - //PluginMain.AppendPlayerDisplayFlairFinal(player, flair); //2015.07.20. - p.AcceptedFlair=true; //2015.08.08. - PluginMain.AppendPlayerDisplayFlair(p, player); - player.sendMessage("§6Your flair has been set:§r "+flair); - } - else - player.sendMessage("§cYou already have this user's flair.§r"); - break; - } - case "ignore": - { - if(p.AcceptedFlair) - p.AcceptedFlair=false; //2015.08.08. - if(!p.IgnoredFlair) - { - p.IgnoredFlair=true; - //String flair=p.Flair; //2015.08.08. - //PluginMain.RemovePlayerDisplayFlairFinal(player, flair); //2015.07.20. - 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; - } - /*case "reload": //2015.07.20. - DoReload(player); - break;*/ - case "admin": //2015.08.09. - DoAdmin(player, args); - break; - case "nonpresser": //2015.08.09. - if(!p.AcceptedFlair) - { - player.sendMessage("§cYou need to accept the flair first.§r"); - break; - } - if(p.FlairDecided) - { - player.sendMessage("§cYou have already set the flair type.§r"); - break; - } - //p.Flair="§7(non-pr.)§r"; - SetPlayerFlair(player, p, "§7(non-pr.)§r"); - break; - case "cantpress": //2015.08.09. - if(!p.AcceptedFlair) - { - player.sendMessage("§cYou need to accept the flair first.§r"); - break; - } - if(p.FlairDecided) - { - player.sendMessage("§cYou have already set the flair type or your flair type is known.§r"); - break; - } - //p.Flair="§r(can't press)§r"; - SetPlayerFlair(player, p, "§r(can't pr.)§r"); - break; - default: - return false; - } - return true; - } - /*if(args[0].toLowerCase()=="reload") - DoReload(null); //2015.07.20.*/ - else if(args.length>0 && args[0].toLowerCase().equals("admin")) //2015.08.09. - { - DoAdmin(null, args); //2015.08.09. - return true; //2015.08.09. - } - return false; - } - private static void DoReload(Player player) - { //2015.07.20. - //if(player==null || player.isOp() || player.getName()=="NorbiPeti") - //{ - try - { - File file=new File("autoflairconfig.txt"); - if(file.exists()) - { - PluginMain.LoadFiles(true); //2015.08.09. - for(Player p : PluginMain.GetPlayers()) - { - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); - if(mp.Flair!=null) - { - //String flair=mp.Flair; - //PluginMain.RemovePlayerDisplayFlairFinal(p, flair); - //PluginMain.AppendPlayerDisplayFlairFinal(p, flair); - PluginMain.AppendPlayerDisplayFlair(mp, p); //2015.08.09. - } - String msg="§6Note: The auto-flair plugin has been reloaded. You might need to wait 10s to have your flair.§r"; //2015.08.09. - p.sendMessage(msg); //2015.08.09. - } - //String msg="§6Reloaded config file.§r"; - //SendMessage(player, msg); //2015.08.09. - } - } - catch(Exception e) - { - System.out.println("Error!\n"+e); - if(player!=null) - player.sendMessage("§cAn error occured. See console for details.§r"); - PluginMain.LastException=e; //2015.08.09. - } - //} - //else - //player.sendMessage("§cYou need to be OP to use this command.§r"); - } - private static Player ReloadPlayer; //2015.08.09. - private static void DoAdmin(Player player, String[] args) - { //2015.08.09. - if(player==null || player.isOp() || player.getName()=="NorbiPeti") - { - //System.out.println("Args length: " + args.length); - if(args.length==1) - { - String message="§cUsage: /u admin reload|playerinfo|getlasterror|save|setflair|updateplugin§r"; - SendMessage(player, message); - return; - } - //args[0] is "admin" - switch(args[1].toLowerCase()) - { - case "reload": - ReloadPlayer=player; //2015.08.09. - SendMessage(player, "§6Make sure to save the current settings before you modify and reload them! Type /u admin confirm when done.§r"); - break; - case "playerinfo": - DoPlayerInfo(player, args); - break; - case "getlasterror": - DoGetLastError(player, args); - break; //<-- 2015.08.10. - case "confirm": - if(ReloadPlayer==player) - DoReload(player); //2015.08.09. - else - SendMessage(player, "§cYou need to do /u admin reload first.§r"); - break; - case "save": - PluginMain.SaveFiles(); //2015.08.09. - SendMessage(player, "§6Saved files. Now you can edit them and reload if you want.§r"); - break; - case "setflair": - DoSetFlair(player, args); - break; - case "updateplugin": //2015.08.10. - DoUpdatePlugin(player); - break; - default: - String message="§cUsage: /u admin reload|playerinfo|getlasterror|save|setflair|updateplugin§r"; - SendMessage(player, message); - return; - } - } - else - player.sendMessage("§cYou need to be OP to use this command.§r"); - } - private static void DoPlayerInfo(Player player, String[] args) - { //2015.08.09. - //args[0] is "admin" - args[1] is "playerinfo" - if(args.length==2) - { - String message="§cUsage: /u admin playerinfo §r"; - SendMessage(player, message); - return; - } - if(!MaybeOfflinePlayer.AllPlayers.containsKey(args[2])) - { - String message="§cPlayer not found: "+args[2]+"§r"; - SendMessage(player, message); - return; - } - MaybeOfflinePlayer p = MaybeOfflinePlayer.AllPlayers.get(args[2]); - SendMessage(player, "Player name: "+p.PlayerName); - SendMessage(player, "User flair: "+p.Flair); - SendMessage(player, "Username: "+p.UserName); - SendMessage(player, "Flair accepted: "+p.AcceptedFlair); - SendMessage(player, "Flair ignored: "+p.IgnoredFlair); - } - private static void SendMessage(Player player, String message) - { //2015.08.09. - if(player==null) - System.out.println(message); - else - player.sendMessage(message); - } - private static void DoGetLastError(Player player, String[] args) - { //2015.08.09. - //args[0] is "admin" - args[1] is "getlasterror" - if(PluginMain.LastException!=null) - { - SendMessage(player, "Last error:"); - SendMessage(player, PluginMain.LastException.toString()); - PluginMain.LastException=null; - } - else - SendMessage(player, "There were no exceptions."); - } - private static void SetPlayerFlair(Player player, MaybeOfflinePlayer targetplayer, String flair) - { //2015.08.09. - flair=flair.replace('&', '§'); - targetplayer.Flair=flair; - if(!PluginMain.RemoveLineFromFile("customflairs.txt", targetplayer.PlayerName)) - { - SendMessage(player, "§cError removing previous custom flair!§r"); - return; - } - File file=new File("customflairs.txt"); - try { - BufferedWriter bw; - bw = new BufferedWriter(new FileWriter(file, true)); - bw.write(targetplayer.PlayerName+"\n"); - bw.close(); - } catch (IOException e) { - System.out.println("Error!\n"+e); - PluginMain.LastException=e; //2015.08.09. - } - SendMessage(player, "§6The flair has been set. Player: "+targetplayer.PlayerName+" Flair: "+flair+"§r"); - } - private static void DoSetFlair(Player player, String[] args) - { - //args[0] is "admin" - args[1] is "setflair" - if(args.length<4) - { - SendMessage(player, "§cUsage: /u admin setflair "); - return; - } - SetPlayerFlair(player, MaybeOfflinePlayer.AddPlayerIfNeeded(args[2]), args[3]); - } - private static void DoUpdatePlugin(Player player) - { //2015.08.10. - SendMessage(player, "Updating Auto-Flair plugin..."); - System.out.println("Forced updating of Auto-Flair plugin..."); - String URL="https://github.com/NorbiPeti/thebuttonautoflairmc/raw/master/TheButtonAutoFlair.jar"; - FileUtils.copyURLToFile(URL, "plugins/TheButtonAutoFlair.jar"); - } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/db/d0069951053e00151c31fb33fff4337f b/.metadata/.plugins/org.eclipse.core.resources/.history/db/d0069951053e00151c31fb33fff4337f deleted file mode 100644 index abdc7d1..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/db/d0069951053e00151c31fb33fff4337f +++ /dev/null @@ -1,26 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.util.HashMap; - -public class MaybeOfflinePlayer -{ //2015.08.08. - public String PlayerName; - public String UserName; - public String Flair; - public boolean AcceptedFlair; - public boolean IgnoredFlair; - public String DisplayName; - public boolean HasFlair; - public static HashMap AllPlayers=new HashMap<>(); //2015.08.08. - public static MaybeOfflinePlayer AddPlayerIfNeeded(String playername) - { - if(!AllPlayers.containsKey(playername)) - { - MaybeOfflinePlayer player=new MaybeOfflinePlayer(); - player.PlayerName=playername; - AllPlayers.put(playername, player); - return player; - } - return AllPlayers.get(playername); - } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/de/500da46afb3d00151c31fb33fff4337f b/.metadata/.plugins/org.eclipse.core.resources/.history/de/500da46afb3d00151c31fb33fff4337f deleted file mode 100644 index 5f100a3..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/de/500da46afb3d00151c31fb33fff4337f +++ /dev/null @@ -1,11 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -public class MaybeOfflinePlayer { - public String PlayerName; - public String UserName; - public String Flair; - public boolean AcceptedFlair; - public boolean IgnoredFlair; - public String TownColors; - public String DisplayName; -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/de/d037d008fa3d00151c31fb33fff4337f b/.metadata/.plugins/org.eclipse.core.resources/.history/de/d037d008fa3d00151c31fb33fff4337f deleted file mode 100644 index a948ff8..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/de/d037d008fa3d00151c31fb33fff4337f +++ /dev/null @@ -1,9 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -public class MaybeOfflinePlayer { - String PlayerName; - String UserName; - String Flair; - boolean AcceptedFlair; - boolean IgnoredFlair; -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/e1/b07ff7bc6d3f00151fb6edb183f9215c b/.metadata/.plugins/org.eclipse.core.resources/.history/e1/b07ff7bc6d3f00151fb6edb183f9215c deleted file mode 100644 index 0c6f200..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/e1/b07ff7bc6d3f00151fb6edb183f9215c +++ /dev/null @@ -1,291 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.net.MalformedURLException; -import java.net.URL; - -import org.apache.commons.io.FileUtils; -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; - MaybeOfflinePlayer p=MaybeOfflinePlayer.AllPlayers.get(player.getName()); //2015.08.08. - //if(!PluginMain.PlayerFlairs.containsKey(player.getName())) - if(p.Flair==null) - { - player.sendMessage("Error: You need to write your username to the reddit thread at /r/TheButtonMinecraft"); - return true; - } - switch(args[0].toLowerCase()) //toLowerCase: 2015.08.09. - { - case "accept": - { - if(p.IgnoredFlair) - p.IgnoredFlair=false; //2015.08.08. - if(!p.AcceptedFlair) - { - String flair=p.Flair; //2015.08.08. - //PluginMain.AppendPlayerDisplayFlairFinal(player, flair); //2015.07.20. - p.AcceptedFlair=true; //2015.08.08. - PluginMain.AppendPlayerDisplayFlair(p, player); - player.sendMessage("§6Your flair has been set:§r "+flair); - } - else - player.sendMessage("§cYou already have this user's flair.§r"); - break; - } - case "ignore": - { - if(p.AcceptedFlair) - p.AcceptedFlair=false; //2015.08.08. - if(!p.IgnoredFlair) - { - p.IgnoredFlair=true; - //String flair=p.Flair; //2015.08.08. - //PluginMain.RemovePlayerDisplayFlairFinal(player, flair); //2015.07.20. - 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; - } - /*case "reload": //2015.07.20. - DoReload(player); - break;*/ - case "admin": //2015.08.09. - DoAdmin(player, args); - break; - case "nonpresser": //2015.08.09. - if(!p.AcceptedFlair) - { - player.sendMessage("§cYou need to accept the flair first.§r"); - break; - } - if(p.FlairDecided) - { - player.sendMessage("§cYou have already set the flair type.§r"); - break; - } - //p.Flair="§7(non-pr.)§r"; - SetPlayerFlair(player, p, "§7(non-pr.)§r"); - break; - case "cantpress": //2015.08.09. - if(!p.AcceptedFlair) - { - player.sendMessage("§cYou need to accept the flair first.§r"); - break; - } - if(p.FlairDecided) - { - player.sendMessage("§cYou have already set the flair type or your flair type is known.§r"); - break; - } - //p.Flair="§r(can't press)§r"; - SetPlayerFlair(player, p, "§r(can't pr.)§r"); - break; - default: - return false; - } - return true; - } - /*if(args[0].toLowerCase()=="reload") - DoReload(null); //2015.07.20.*/ - else if(args.length>0 && args[0].toLowerCase().equals("admin")) //2015.08.09. - { - DoAdmin(null, args); //2015.08.09. - return true; //2015.08.09. - } - return false; - } - private static void DoReload(Player player) - { //2015.07.20. - //if(player==null || player.isOp() || player.getName()=="NorbiPeti") - //{ - try - { - File file=new File("autoflairconfig.txt"); - if(file.exists()) - { - PluginMain.LoadFiles(true); //2015.08.09. - for(Player p : PluginMain.GetPlayers()) - { - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); - if(mp.Flair!=null) - { - //String flair=mp.Flair; - //PluginMain.RemovePlayerDisplayFlairFinal(p, flair); - //PluginMain.AppendPlayerDisplayFlairFinal(p, flair); - PluginMain.AppendPlayerDisplayFlair(mp, p); //2015.08.09. - } - String msg="§6Note: The auto-flair plugin has been reloaded. You might need to wait 10s to have your flair.§r"; //2015.08.09. - p.sendMessage(msg); //2015.08.09. - } - //String msg="§6Reloaded config file.§r"; - //SendMessage(player, msg); //2015.08.09. - } - } - catch(Exception e) - { - System.out.println("Error!\n"+e); - if(player!=null) - player.sendMessage("§cAn error occured. See console for details.§r"); - PluginMain.LastException=e; //2015.08.09. - } - //} - //else - //player.sendMessage("§cYou need to be OP to use this command.§r"); - } - private static Player ReloadPlayer; //2015.08.09. - private static void DoAdmin(Player player, String[] args) - { //2015.08.09. - if(player==null || player.isOp() || player.getName()=="NorbiPeti") - { - //System.out.println("Args length: " + args.length); - if(args.length==1) - { - String message="§cUsage: /u admin reload|playerinfo|getlasterror|save|setflair|updateplugin§r"; - SendMessage(player, message); - return; - } - //args[0] is "admin" - switch(args[1].toLowerCase()) - { - case "reload": - ReloadPlayer=player; //2015.08.09. - SendMessage(player, "§6Make sure to save the current settings before you modify and reload them! Type /u admin confirm when done.§r"); - break; - case "playerinfo": - DoPlayerInfo(player, args); - break; - case "getlasterror": - DoGetLastError(player, args); - break; //<-- 2015.08.10. - case "confirm": - if(ReloadPlayer==player) - DoReload(player); //2015.08.09. - else - SendMessage(player, "§cYou need to do /u admin reload first.§r"); - break; - case "save": - PluginMain.SaveFiles(); //2015.08.09. - SendMessage(player, "§6Saved files. Now you can edit them and reload if you want.§r"); - break; - case "setflair": - DoSetFlair(player, args); - break; - case "updateplugin": //2015.08.10. - DoUpdatePlugin(player); - break; - default: - String message="§cUsage: /u admin reload|playerinfo|getlasterror|save|setflair|updateplugin§r"; - SendMessage(player, message); - return; - } - } - else - player.sendMessage("§cYou need to be OP to use this command.§r"); - } - private static void DoPlayerInfo(Player player, String[] args) - { //2015.08.09. - //args[0] is "admin" - args[1] is "playerinfo" - if(args.length==2) - { - String message="§cUsage: /u admin playerinfo §r"; - SendMessage(player, message); - return; - } - if(!MaybeOfflinePlayer.AllPlayers.containsKey(args[2])) - { - String message="§cPlayer not found: "+args[2]+"§r"; - SendMessage(player, message); - return; - } - MaybeOfflinePlayer p = MaybeOfflinePlayer.AllPlayers.get(args[2]); - SendMessage(player, "Player name: "+p.PlayerName); - SendMessage(player, "User flair: "+p.Flair); - SendMessage(player, "Username: "+p.UserName); - SendMessage(player, "Flair accepted: "+p.AcceptedFlair); - SendMessage(player, "Flair ignored: "+p.IgnoredFlair); - } - private static void SendMessage(Player player, String message) - { //2015.08.09. - if(player==null) - System.out.println(message); - else - player.sendMessage(message); - } - private static void DoGetLastError(Player player, String[] args) - { //2015.08.09. - //args[0] is "admin" - args[1] is "getlasterror" - if(PluginMain.LastException!=null) - { - SendMessage(player, "Last error:"); - SendMessage(player, PluginMain.LastException.toString()); - PluginMain.LastException=null; - } - else - SendMessage(player, "There were no exceptions."); - } - private static void SetPlayerFlair(Player player, MaybeOfflinePlayer targetplayer, String flair) - { //2015.08.09. - flair=flair.replace('&', '§'); - targetplayer.Flair=flair; - if(!PluginMain.RemoveLineFromFile("customflairs.txt", targetplayer.PlayerName)) - { - SendMessage(player, "§cError removing previous custom flair!§r"); - return; - } - File file=new File("customflairs.txt"); - try { - BufferedWriter bw; - bw = new BufferedWriter(new FileWriter(file, true)); - bw.write(targetplayer.PlayerName+"\n"); - bw.close(); - } catch (IOException e) { - System.out.println("Error!\n"+e); - PluginMain.LastException=e; //2015.08.09. - } - SendMessage(player, "§6The flair has been set. Player: "+targetplayer.PlayerName+" Flair: "+flair+"§r"); - } - private static void DoSetFlair(Player player, String[] args) - { - //args[0] is "admin" - args[1] is "setflair" - if(args.length<4) - { - SendMessage(player, "§cUsage: /u admin setflair "); - return; - } - SetPlayerFlair(player, MaybeOfflinePlayer.AddPlayerIfNeeded(args[2]), args[3]); - } - private static void DoUpdatePlugin(Player player) - { //2015.08.10. - SendMessage(player, "Updating Auto-Flair plugin..."); - System.out.println("Forced updating of Auto-Flair plugin."); - URL url; - try { - url = new URL("https://github.com/NorbiPeti/thebuttonautoflairmc/raw/master/TheButtonAutoFlair.jar"); - FileUtils.copyURLToFile(url, new File("plugins/TheButtonAutoFlair.jar")); - SendMessage(player, "Updating done!"); - } - catch (MalformedURLException e) { - System.out.println("Error!\n"+e); - PluginMain.LastException=e; //2015.08.09. - } - catch (IOException e) { - System.out.println("Error!\n"+e); - PluginMain.LastException=e; //2015.08.09. - } - } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/e1/d020d619fa3d00151c31fb33fff4337f b/.metadata/.plugins/org.eclipse.core.resources/.history/e1/d020d619fa3d00151c31fb33fff4337f deleted file mode 100644 index 8f85bbd..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/e1/d020d619fa3d00151c31fb33fff4337f +++ /dev/null @@ -1,10 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -public class MaybeOfflinePlayer { - String PlayerName; - String UserName; - String Flair; - boolean AcceptedFlair; - boolean IgnoredFlair; - String TownColors; -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/e3/602ab6bd313e00151cbdba8b5f0a340e b/.metadata/.plugins/org.eclipse.core.resources/.history/e3/602ab6bd313e00151cbdba8b5f0a340e deleted file mode 100644 index 8938516..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/e3/602ab6bd313e00151cbdba8b5f0a340e +++ /dev/null @@ -1,71 +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; - -import de.inventivegames.TellRawAutoMessage.Reflection; - -public class PlayerListener implements Listener -{ //2015.07.16. - @EventHandler - public void onPlayerJoin(PlayerJoinEvent event) - { - Player p=event.getPlayer(); - MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); //2015.08.08. - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AllPlayers.get(p.getName()); //2015.08.08. - if(mp.Flair!=null) - PluginMain.AppendPlayerDisplayFlair(p, mp.UserName, mp.Flair); - else - { //2015.07.20. - String json="[\"\",{\"text\":\"§6Hi! If you'd like your flair displayed ingame, write your Minecraft name to \"},{\"text\":\"[this thread.]\",\"clickEvent\":{\"action\":\"open_url\",\"value\":\"https://www.reddit.com/r/TheButtonMinecraft/comments/3d25do/\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[{\"text\":\"Click here to go to the Reddit thread§r\"}]}}}]"; - sendRawMessage(p, json); - } - } - - @EventHandler - public void onPlayerLeave(PlayerQuitEvent event) - { - } - - @EventHandler - public void onPlayerChat(AsyncPlayerChatEvent event) - { - MaybeOfflinePlayer player = MaybeOfflinePlayer.AllPlayers.get(event.getPlayer().getName()); - String flair=player.Flair; //2015.08.08. - if(flair==null || !player.AcceptedFlair) - flair=""; //2015.08.08. - String message=event.getMessage(); //2015.08.08. - for(Player p : PluginMain.GetPlayers()) - { //2015.08.08. - int index=0; - index = message.indexOf(p.getName()); - } - event.setFormat(event.getFormat().substring(0, event.getFormat().indexOf(">"))+flair+"> "+message); //2015.08.08. - } - - private static Class nmsChatSerializer = Reflection.getNMSClass("IChatBaseComponent$ChatSerializer"); - private static Class nmsPacketPlayOutChat = Reflection.getNMSClass("PacketPlayOutChat"); - public static void sendRawMessage(Player player, String message) - { - try { - System.out.println("1"); - Object handle = Reflection.getHandle(player); - System.out.println("2"); - Object connection = Reflection.getField(handle.getClass(), "playerConnection").get(handle); - System.out.println("3"); - Object serialized = Reflection.getMethod(nmsChatSerializer, "a", String.class).invoke(null, message); - System.out.println("4"); - Object packet = nmsPacketPlayOutChat.getConstructor(Reflection.getNMSClass("IChatBaseComponent")).newInstance(serialized); - System.out.println("5"); - Reflection.getMethod(connection.getClass(), "sendPacket").invoke(connection, packet); - System.out.println("6"); - } catch (Exception e) { - e.printStackTrace(); - } - } - -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/e4/60215032313e00151cbdba8b5f0a340e b/.metadata/.plugins/org.eclipse.core.resources/.history/e4/60215032313e00151cbdba8b5f0a340e deleted file mode 100644 index ac13911..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/e4/60215032313e00151cbdba8b5f0a340e +++ /dev/null @@ -1,66 +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; - -import de.inventivegames.TellRawAutoMessage.Reflection; - -public class PlayerListener implements Listener -{ //2015.07.16. - @EventHandler - public void onPlayerJoin(PlayerJoinEvent event) - { - Player p=event.getPlayer(); - MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); //2015.08.08. - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AllPlayers.get(p.getName()); //2015.08.08. - if(mp.Flair!=null) - PluginMain.AppendPlayerDisplayFlair(p, mp.UserName, mp.Flair); - else - { //2015.07.20. - String json="[\"\",{\"text\":\"§6Hi! If you'd like your flair displayed ingame, write your Minecraft name to \"},{\"text\":\"[this thread.]\",\"clickEvent\":{\"action\":\"open_url\",\"value\":\"https://www.reddit.com/r/TheButtonMinecraft/comments/3d25do/\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[{\"text\":\"Click here to go to the Reddit thread§r\"}]}}}]"; - sendRawMessage(p, json); - } - } - - @EventHandler - public void onPlayerLeave(PlayerQuitEvent event) - { - } - - @EventHandler - public void onPlayerChat(AsyncPlayerChatEvent event) - { - MaybeOfflinePlayer player = MaybeOfflinePlayer.AllPlayers.get(event.getPlayer().getName()); - String flair=player.Flair; //2015.08.08. - if(flair==null || !player.AcceptedFlair) - flair=""; //2015.08.08. - String message= - event.setFormat(event.getFormat().substring(0, event.getFormat().indexOf(">"))+flair+"> "+event.getMessage()); //2015.08.08. - } - - private static Class nmsChatSerializer = Reflection.getNMSClass("IChatBaseComponent$ChatSerializer"); - private static Class nmsPacketPlayOutChat = Reflection.getNMSClass("PacketPlayOutChat"); - public static void sendRawMessage(Player player, String message) - { - try { - System.out.println("1"); - Object handle = Reflection.getHandle(player); - System.out.println("2"); - Object connection = Reflection.getField(handle.getClass(), "playerConnection").get(handle); - System.out.println("3"); - Object serialized = Reflection.getMethod(nmsChatSerializer, "a", String.class).invoke(null, message); - System.out.println("4"); - Object packet = nmsPacketPlayOutChat.getConstructor(Reflection.getNMSClass("IChatBaseComponent")).newInstance(serialized); - System.out.println("5"); - Reflection.getMethod(connection.getClass(), "sendPacket").invoke(connection, packet); - System.out.println("6"); - } catch (Exception e) { - e.printStackTrace(); - } - } - -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/e4/60f9a9af313e00151cbdba8b5f0a340e b/.metadata/.plugins/org.eclipse.core.resources/.history/e4/60f9a9af313e00151cbdba8b5f0a340e deleted file mode 100644 index 2fd48b2..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/e4/60f9a9af313e00151cbdba8b5f0a340e +++ /dev/null @@ -1,70 +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; - -import de.inventivegames.TellRawAutoMessage.Reflection; - -public class PlayerListener implements Listener -{ //2015.07.16. - @EventHandler - public void onPlayerJoin(PlayerJoinEvent event) - { - Player p=event.getPlayer(); - MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); //2015.08.08. - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AllPlayers.get(p.getName()); //2015.08.08. - if(mp.Flair!=null) - PluginMain.AppendPlayerDisplayFlair(p, mp.UserName, mp.Flair); - else - { //2015.07.20. - String json="[\"\",{\"text\":\"§6Hi! If you'd like your flair displayed ingame, write your Minecraft name to \"},{\"text\":\"[this thread.]\",\"clickEvent\":{\"action\":\"open_url\",\"value\":\"https://www.reddit.com/r/TheButtonMinecraft/comments/3d25do/\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[{\"text\":\"Click here to go to the Reddit thread§r\"}]}}}]"; - sendRawMessage(p, json); - } - } - - @EventHandler - public void onPlayerLeave(PlayerQuitEvent event) - { - } - - @EventHandler - public void onPlayerChat(AsyncPlayerChatEvent event) - { - MaybeOfflinePlayer player = MaybeOfflinePlayer.AllPlayers.get(event.getPlayer().getName()); - String flair=player.Flair; //2015.08.08. - if(flair==null || !player.AcceptedFlair) - flair=""; //2015.08.08. - String message=event.getMessage(); //2015.08.08. - for(Player p : PluginMain.GetPlayers()) - { //2015.08.08. - int index = message.indexOf(p.getName()); - } - event.setFormat(event.getFormat().substring(0, event.getFormat().indexOf(">"))+flair+"> "+message); //2015.08.08. - } - - private static Class nmsChatSerializer = Reflection.getNMSClass("IChatBaseComponent$ChatSerializer"); - private static Class nmsPacketPlayOutChat = Reflection.getNMSClass("PacketPlayOutChat"); - public static void sendRawMessage(Player player, String message) - { - try { - System.out.println("1"); - Object handle = Reflection.getHandle(player); - System.out.println("2"); - Object connection = Reflection.getField(handle.getClass(), "playerConnection").get(handle); - System.out.println("3"); - Object serialized = Reflection.getMethod(nmsChatSerializer, "a", String.class).invoke(null, message); - System.out.println("4"); - Object packet = nmsPacketPlayOutChat.getConstructor(Reflection.getNMSClass("IChatBaseComponent")).newInstance(serialized); - System.out.println("5"); - Reflection.getMethod(connection.getClass(), "sendPacket").invoke(connection, packet); - System.out.println("6"); - } catch (Exception e) { - e.printStackTrace(); - } - } - -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/e7/d06d6706fd3d00151c31fb33fff4337f b/.metadata/.plugins/org.eclipse.core.resources/.history/e7/d06d6706fd3d00151c31fb33fff4337f deleted file mode 100644 index ec14e74..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/e7/d06d6706fd3d00151c31fb33fff4337f +++ /dev/null @@ -1,24 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.util.ArrayList; -import java.util.HashMap; - -public class MaybeOfflinePlayer { - public String PlayerName; - public String UserName; - public String Flair; - public boolean AcceptedFlair; - public boolean IgnoredFlair; - public String TownColors; - public String DisplayName; - public static HashMap AllPlayers=new HashMap<>(); //2015.08.08. - public static void AddPlayer(String playername) - { - if(!AllPlayers.contains(playername)) - { - MaybeOfflinePlayer player=new MaybeOfflinePlayer(); - player.PlayerName=playername; - AllPlayers.put(playername, player); - } - } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/ec/c0d3c395fc3d00151c31fb33fff4337f b/.metadata/.plugins/org.eclipse.core.resources/.history/ec/c0d3c395fc3d00151c31fb33fff4337f deleted file mode 100644 index 455b8df..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/ec/c0d3c395fc3d00151c31fb33fff4337f +++ /dev/null @@ -1,19 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.util.ArrayList; -import java.util.HashMap; - -public class MaybeOfflinePlayer { - public String PlayerName; - public String UserName; - public String Flair; - public boolean AcceptedFlair; - public boolean IgnoredFlair; - public String TownColors; - public String DisplayName; - public static HashMap AllPlayers=new HashMap<>(); //2015.08.08. - public static void AddPlayer(String username) - { - - } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/f0/d01b9bcffc3d00151c31fb33fff4337f b/.metadata/.plugins/org.eclipse.core.resources/.history/f0/d01b9bcffc3d00151c31fb33fff4337f deleted file mode 100644 index 6737bc4..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/f0/d01b9bcffc3d00151c31fb33fff4337f +++ /dev/null @@ -1,19 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.util.ArrayList; -import java.util.HashMap; - -public class MaybeOfflinePlayer { - public String PlayerName; - public String UserName; - public String Flair; - public boolean AcceptedFlair; - public boolean IgnoredFlair; - public String TownColors; - public String DisplayName; - public static HashMap AllPlayers=new HashMap<>(); //2015.08.08. - public static void AddPlayer(String playername) - { - - } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/f1/b00a25cf6b3f00151fb6edb183f9215c b/.metadata/.plugins/org.eclipse.core.resources/.history/f1/b00a25cf6b3f00151fb6edb183f9215c deleted file mode 100644 index 2417340..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/f1/b00a25cf6b3f00151fb6edb183f9215c +++ /dev/null @@ -1,284 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.net.MalformedURLException; -import java.net.URL; - -import org.apache.commons.io.FileUtils; -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; - MaybeOfflinePlayer p=MaybeOfflinePlayer.AllPlayers.get(player.getName()); //2015.08.08. - //if(!PluginMain.PlayerFlairs.containsKey(player.getName())) - if(p.Flair==null) - { - player.sendMessage("Error: You need to write your username to the reddit thread at /r/TheButtonMinecraft"); - return true; - } - switch(args[0].toLowerCase()) //toLowerCase: 2015.08.09. - { - case "accept": - { - if(p.IgnoredFlair) - p.IgnoredFlair=false; //2015.08.08. - if(!p.AcceptedFlair) - { - String flair=p.Flair; //2015.08.08. - //PluginMain.AppendPlayerDisplayFlairFinal(player, flair); //2015.07.20. - p.AcceptedFlair=true; //2015.08.08. - PluginMain.AppendPlayerDisplayFlair(p, player); - player.sendMessage("§6Your flair has been set:§r "+flair); - } - else - player.sendMessage("§cYou already have this user's flair.§r"); - break; - } - case "ignore": - { - if(p.AcceptedFlair) - p.AcceptedFlair=false; //2015.08.08. - if(!p.IgnoredFlair) - { - p.IgnoredFlair=true; - //String flair=p.Flair; //2015.08.08. - //PluginMain.RemovePlayerDisplayFlairFinal(player, flair); //2015.07.20. - 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; - } - /*case "reload": //2015.07.20. - DoReload(player); - break;*/ - case "admin": //2015.08.09. - DoAdmin(player, args); - break; - case "nonpresser": //2015.08.09. - if(!p.AcceptedFlair) - { - player.sendMessage("§cYou need to accept the flair first.§r"); - break; - } - if(p.FlairDecided) - { - player.sendMessage("§cYou have already set the flair type.§r"); - break; - } - //p.Flair="§7(non-pr.)§r"; - SetPlayerFlair(player, p, "§7(non-pr.)§r"); - break; - case "cantpress": //2015.08.09. - if(!p.AcceptedFlair) - { - player.sendMessage("§cYou need to accept the flair first.§r"); - break; - } - if(p.FlairDecided) - { - player.sendMessage("§cYou have already set the flair type or your flair type is known.§r"); - break; - } - //p.Flair="§r(can't press)§r"; - SetPlayerFlair(player, p, "§r(can't pr.)§r"); - break; - default: - return false; - } - return true; - } - /*if(args[0].toLowerCase()=="reload") - DoReload(null); //2015.07.20.*/ - else if(args.length>0 && args[0].toLowerCase().equals("admin")) //2015.08.09. - { - DoAdmin(null, args); //2015.08.09. - return true; //2015.08.09. - } - return false; - } - private static void DoReload(Player player) - { //2015.07.20. - //if(player==null || player.isOp() || player.getName()=="NorbiPeti") - //{ - try - { - File file=new File("autoflairconfig.txt"); - if(file.exists()) - { - PluginMain.LoadFiles(true); //2015.08.09. - for(Player p : PluginMain.GetPlayers()) - { - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); - if(mp.Flair!=null) - { - //String flair=mp.Flair; - //PluginMain.RemovePlayerDisplayFlairFinal(p, flair); - //PluginMain.AppendPlayerDisplayFlairFinal(p, flair); - PluginMain.AppendPlayerDisplayFlair(mp, p); //2015.08.09. - } - String msg="§6Note: The auto-flair plugin has been reloaded. You might need to wait 10s to have your flair.§r"; //2015.08.09. - p.sendMessage(msg); //2015.08.09. - } - //String msg="§6Reloaded config file.§r"; - //SendMessage(player, msg); //2015.08.09. - } - } - catch(Exception e) - { - System.out.println("Error!\n"+e); - if(player!=null) - player.sendMessage("§cAn error occured. See console for details.§r"); - PluginMain.LastException=e; //2015.08.09. - } - //} - //else - //player.sendMessage("§cYou need to be OP to use this command.§r"); - } - private static Player ReloadPlayer; //2015.08.09. - private static void DoAdmin(Player player, String[] args) - { //2015.08.09. - if(player==null || player.isOp() || player.getName()=="NorbiPeti") - { - //System.out.println("Args length: " + args.length); - if(args.length==1) - { - String message="§cUsage: /u admin reload|playerinfo|getlasterror|save|setflair|updateplugin§r"; - SendMessage(player, message); - return; - } - //args[0] is "admin" - switch(args[1].toLowerCase()) - { - case "reload": - ReloadPlayer=player; //2015.08.09. - SendMessage(player, "§6Make sure to save the current settings before you modify and reload them! Type /u admin confirm when done.§r"); - break; - case "playerinfo": - DoPlayerInfo(player, args); - break; - case "getlasterror": - DoGetLastError(player, args); - break; //<-- 2015.08.10. - case "confirm": - if(ReloadPlayer==player) - DoReload(player); //2015.08.09. - else - SendMessage(player, "§cYou need to do /u admin reload first.§r"); - break; - case "save": - PluginMain.SaveFiles(); //2015.08.09. - SendMessage(player, "§6Saved files. Now you can edit them and reload if you want.§r"); - break; - case "setflair": - DoSetFlair(player, args); - break; - case "updateplugin": //2015.08.10. - DoUpdatePlugin(player); - break; - default: - String message="§cUsage: /u admin reload|playerinfo|getlasterror|save|setflair|updateplugin§r"; - SendMessage(player, message); - return; - } - } - else - player.sendMessage("§cYou need to be OP to use this command.§r"); - } - private static void DoPlayerInfo(Player player, String[] args) - { //2015.08.09. - //args[0] is "admin" - args[1] is "playerinfo" - if(args.length==2) - { - String message="§cUsage: /u admin playerinfo §r"; - SendMessage(player, message); - return; - } - if(!MaybeOfflinePlayer.AllPlayers.containsKey(args[2])) - { - String message="§cPlayer not found: "+args[2]+"§r"; - SendMessage(player, message); - return; - } - MaybeOfflinePlayer p = MaybeOfflinePlayer.AllPlayers.get(args[2]); - SendMessage(player, "Player name: "+p.PlayerName); - SendMessage(player, "User flair: "+p.Flair); - SendMessage(player, "Username: "+p.UserName); - SendMessage(player, "Flair accepted: "+p.AcceptedFlair); - SendMessage(player, "Flair ignored: "+p.IgnoredFlair); - } - private static void SendMessage(Player player, String message) - { //2015.08.09. - if(player==null) - System.out.println(message); - else - player.sendMessage(message); - } - private static void DoGetLastError(Player player, String[] args) - { //2015.08.09. - //args[0] is "admin" - args[1] is "getlasterror" - if(PluginMain.LastException!=null) - { - SendMessage(player, "Last error:"); - SendMessage(player, PluginMain.LastException.toString()); - PluginMain.LastException=null; - } - else - SendMessage(player, "There were no exceptions."); - } - private static void SetPlayerFlair(Player player, MaybeOfflinePlayer targetplayer, String flair) - { //2015.08.09. - flair=flair.replace('&', '§'); - targetplayer.Flair=flair; - if(!PluginMain.RemoveLineFromFile("customflairs.txt", targetplayer.PlayerName)) - { - SendMessage(player, "§cError removing previous custom flair!§r"); - return; - } - File file=new File("customflairs.txt"); - try { - BufferedWriter bw; - bw = new BufferedWriter(new FileWriter(file, true)); - bw.write(targetplayer.PlayerName+"\n"); - bw.close(); - } catch (IOException e) { - System.out.println("Error!\n"+e); - PluginMain.LastException=e; //2015.08.09. - } - SendMessage(player, "§6The flair has been set. Player: "+targetplayer.PlayerName+" Flair: "+flair+"§r"); - } - private static void DoSetFlair(Player player, String[] args) - { - //args[0] is "admin" - args[1] is "setflair" - if(args.length<4) - { - SendMessage(player, "§cUsage: /u admin setflair "); - return; - } - SetPlayerFlair(player, MaybeOfflinePlayer.AddPlayerIfNeeded(args[2]), args[3]); - } - private static void DoUpdatePlugin(Player player) - { //2015.08.10. - SendMessage(player, "Updating Auto-Flair plugin..."); - System.out.println("Forced updating of Auto-Flair plugin..."); - URL url; - try { - url = new URL("https://github.com/NorbiPeti/thebuttonautoflairmc/raw/master/TheButtonAutoFlair.jar"); - FileUtils.copyURLToFile(url, new File("plugins/TheButtonAutoFlair.jar")); - } catch (MalformedURLException e) { - System.out.println("Error!\n"+e); - PluginMain.LastException=e; //2015.08.09. - } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/f3/d0a2d21dfa3d00151c31fb33fff4337f b/.metadata/.plugins/org.eclipse.core.resources/.history/f3/d0a2d21dfa3d00151c31fb33fff4337f deleted file mode 100644 index e3c8c26..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/f3/d0a2d21dfa3d00151c31fb33fff4337f +++ /dev/null @@ -1,11 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -public class MaybeOfflinePlayer { - public String PlayerName; - String UserName; - String Flair; - boolean AcceptedFlair; - boolean IgnoredFlair; - String TownColors; - String DisplayName; -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/f4/303fdacd3f3f00151fb6edb183f9215c b/.metadata/.plugins/org.eclipse.core.resources/.history/f4/303fdacd3f3f00151fb6edb183f9215c deleted file mode 100644 index 8206839..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/f4/303fdacd3f3f00151fb6edb183f9215c +++ /dev/null @@ -1,31 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.util.HashMap; - -public class MaybeOfflinePlayer -{ //2015.08.08. - public String PlayerName; - public String UserName; - public String Flair; //If the user comments their name, it gets set, it doesn't matter if they accepted it or not - public boolean AcceptedFlair; - public boolean IgnoredFlair; - public boolean FlairDecided; //2015.08.09. - private static HashMap AllPlayers=new HashMap<>(); //2015.08.08. - public static MaybeOfflinePlayer AddPlayerIfNeeded(String playername) - { - if(!AllPlayers.containsKey(playername)) - { - MaybeOfflinePlayer player=new MaybeOfflinePlayer(); - player.PlayerName=playername; - AllPlayers.put(playername, player); - return player; - } - return AllPlayers.get(playername); - } - /*public enum FlairClassType - { //2015.08.09. - NonPresser, - CantPress, - Undecided - }*/ -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/f4/d034285bfd3d00151c31fb33fff4337f b/.metadata/.plugins/org.eclipse.core.resources/.history/f4/d034285bfd3d00151c31fb33fff4337f deleted file mode 100644 index 8538c44..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.history/f4/d034285bfd3d00151c31fb33fff4337f +++ /dev/null @@ -1,25 +0,0 @@ -package tk.sznp.thebuttonautoflair; - -import java.util.ArrayList; -import java.util.HashMap; - -public class MaybeOfflinePlayer -{ //2015.08.08. - public String PlayerName; - public String UserName; - public String Flair; - public boolean AcceptedFlair; - public boolean IgnoredFlair; - public String TownColors; - public String DisplayName; - public static HashMap AllPlayers=new HashMap<>(); //2015.08.08. - public static void AddPlayer(String playername) - { - if(!AllPlayers.containsKey(playername)) - { - MaybeOfflinePlayer player=new MaybeOfflinePlayer(); - player.PlayerName=playername; - AllPlayers.put(playername, player); - } - } -} diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/TheButtonAutoFlair/.indexes/e4/77/69/e/history.index b/.metadata/.plugins/org.eclipse.core.resources/.projects/TheButtonAutoFlair/.indexes/e4/77/69/e/history.index index fb8c86793c32bd56f358171be80005fbeb443322..1fe6b56c4647deb61cf911e31c4d412dcc433245 100644 GIT binary patch literal 4440 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 YrGezK>#hgUbDhZ*)@l3Ei_FRY2a5GHBLDyZ diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/TheButtonAutoFlair/.indexes/history.index b/.metadata/.plugins/org.eclipse.core.resources/.projects/TheButtonAutoFlair/.indexes/history.index index 1a40c36496fa26d984c156fef63830f509a734ab..339747bc67c966c69160a4481561b3f6e7e2afe5 100644 GIT binary patch delta 26 hcmXSM5n*CrU|?k6)-T8@P0!5JtIW+|V45gm002c=1@Hg> delta 75 zcmZ=M5n*CrU|?k6)-T8@P0!5JtIW+|V3{alVBnz1{CJxSgQ%GK-j|uBhs+Mn;g|4d bWMDA(8}v2Tos{h%XPQL!b;52zPi|OQeMsZdKIVJ|Z$sd@+CLdwaWL!7-9n)UM zfXQo^jTl`g-)Gimw4BV(GMk+N1jH6hu3)rDR&ZkADJ@Pda!tuBNleN~Wn^GrPtHgz za?ML&Vqj1xU|`BjVNzgVJjB4Bn_66)n4Zeapcmrr;;)dIrV)@|oLQ2YpI59`oLQBs zp=oEEoS&0lRIHbinwMUZp{Y=CQo89 z7iajyz`*FQd*te21~3pg&IqI#C(mM5U{X528OWoGd70ZJ((6{RL-7vyK=l~|z~ ztPl;-YNcRg6sw@Cke>&U^#ZEYKrmg)Qu9hQ86@+I()Ci4b21BxQ}t3(C;wyeV$_`M R$t){^;#6Qj^S#nz0|4r2f7$>5 diff --git a/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources b/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources index 34874941c57670d7393230c0baabb4dd7d9e6a19..c2da8ad1c6ee0d113a8d5b5d26211eac9a4dca08 100644 GIT binary patch delta 127 zcmX?>_?UNcfvh&Gk)f55*+v6BCN2{L14AQYOCv+$$&4aWllRMCXEdLDk}+ NNCkfGsoq_F3;^L^CW-(6 literal 12486 zcmeI2F>ljA6vvq(Wn*GMmLgVjcRr`_Ns)@6BLgZDZ0H(agM(v7_NAp_VulTgFTf{Y zZiSfoRrmlMSvbdbT3fxdQx}QQCwY8&e)oJo|KGcNyWc;39Gu;||KQQrU*Ep`csQ8z zREors{2&zl-e8|g>&bFzVb?;4p%HV4^>lClr9}{S`@Kmhc=AkylD~LXX|n~#)Oq&X326rgfT&6q)k>OzvcvF*_x%Ld$Vm8bjX*{4S#7Ay`LeqN|~ zS)oP|bMSU>)2#d;I2{fn?iM)1es9x4tp<+Es0ZM{DW2|B_CKxEI)md<=1>3!zyWZY zj +content_assist_lru_history= content_assist_number_of_computers=21 content_assist_proposals_background=255,255,255 content_assist_proposals_foreground=0,0,0 diff --git a/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi b/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi index 76af5c8..d4bae74 100644 --- a/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi +++ b/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi @@ -240,20 +240,20 @@ org.eclipse.e4.primaryDataStack EditorStack - + Editor org.eclipse.jdt.ui.CompilationUnitEditor removeOnHide activeOnClose - + Editor org.eclipse.jdt.ui.CompilationUnitEditor removeOnHide - + Editor org.eclipse.jdt.ui.CompilationUnitEditor removeOnHide @@ -264,10 +264,10 @@ org.eclipse.jdt.ui.CompilationUnitEditor removeOnHide - - + + Editor - org.eclipse.ui.DefaultTextEditor + org.eclipse.jdt.ui.CompilationUnitEditor removeOnHide @@ -324,7 +324,7 @@ categoryTag:General - + View categoryTag:General @@ -426,18 +426,18 @@ Draggable - - - - - - - - - - - - + + + + + + + + + + + + toolbarSeparator @@ -445,38 +445,38 @@ Draggable - - - + + + Draggable - - + + Draggable - - + + Draggable - - + + Draggable - - - - + + + + Draggable - - - - + + + + Draggable @@ -486,20 +486,20 @@ Draggable - - - - + + + + Draggable - - - - - - - + + + + + + + Draggable @@ -517,15 +517,15 @@ Draggable - - - - - - - - - + + + + + + + + + toolbarSeparator @@ -537,8 +537,8 @@ Draggable - - + + stretch diff --git a/.metadata/.plugins/org.eclipse.jdt.core/1508644233.index b/.metadata/.plugins/org.eclipse.jdt.core/1508644233.index index 82d3d365a7508d160e9bee24714060c10f7c2c4d..1646ae2870e0de279022597f1d03d72b44fb863f 100644 GIT binary patch literal 18476 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 k%x&}X^t1m$mo-vv9e?FN$=kh?SM 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 diff --git a/.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml b/.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml index ce5d0e5..62009c4 100644 --- a/.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml +++ b/.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml @@ -1,7 +1,5 @@ - - @@ -28,7 +26,6 @@ - @@ -44,8 +41,6 @@ - - @@ -59,5 +54,10 @@ + + + + + diff --git a/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml b/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml index 8328181..c04db39 100644 --- a/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml +++ b/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml @@ -12,6 +12,8 @@ +
+
diff --git a/TheButtonAutoFlair/bin/tk/sznp/thebuttonautoflair/Commands.class b/TheButtonAutoFlair/bin/tk/sznp/thebuttonautoflair/Commands.class index 20a3dc965eb5e1b1f511bf35c27db9bf39bdb395..244362e8df3da267ac180fbeba37ef9907879ef9 100644 GIT binary patch literal 13018 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 delta 23 ecmZ3^x}0@`4ilsLWL+kER!s(W2Cd13OlAN>-vs*r diff --git a/TheButtonAutoFlair/bin/tk/sznp/thebuttonautoflair/PluginMain.class b/TheButtonAutoFlair/bin/tk/sznp/thebuttonautoflair/PluginMain.class index 4d9a83e994b8e7fc67f3254f9c7d4c0715fb2711..2591e3c3ffff67d454846d5fe9c06cf37f710c97 100644 GIT binary patch literal 15142 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 literal 13721 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

-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 0 && args[0].toLowerCase().equals("announce")) { + DoAnnounce(null, args); + return true; } return false; } @@ -296,4 +304,138 @@ public class Commands implements CommandExecutor { PluginMain.LastException = e; // 2015.08.09. } } + + private static void DoAnnounce(Player player, String[] args) { + if (player == null || player.isOp() + || player.getName().equals("NorbiPeti")) { + if (args.length == 1) { + String message = "§cUsage: /u announce add|remove|settime|list§r"; + SendMessage(player, message); + return; + } + // args[0] is "announce" + switch (args[1].toLowerCase()) { + case "add": + if (args.length < 3) { + SendMessage(player, "§cUsage: /u announce add "); + return; + } + // PluginMain.AnnounceMessages.add(args[2]); + File file = new File("announcemessages.txt"); + try { + BufferedWriter bw; + bw = new BufferedWriter(new FileWriter(file, true)); + // bw.write(args[2] + "\n"); + StringBuilder sb = new StringBuilder(); + for (int i = 2; i < args.length; i++) { + sb.append(args[i]); + if (i != args.length - 1) + sb.append(" "); + } + String finalmessage=sb.toString().replace('&', '§'); + PluginMain.AnnounceMessages.add(finalmessage); + bw.write(finalmessage); + bw.write(System.lineSeparator()); + bw.close(); + SendMessage(player, "§bAnnouncement added.§r"); + } catch (IOException e) { + System.out.println("Error!\n" + e); + PluginMain.LastException = e; // 2015.08.09. + } + break; + case "remove": + if (args.length < 3) { + SendMessage(player, "§cUsage: /u announce remove "); + return; + } + try { + if (!PluginMain.RemoveLineFromFile("announcemessages.txt", + Integer.parseInt(args[2]) + 1)) { + SendMessage(player, + "§cError removing announce message!§r"); + return; + } else { + PluginMain.AnnounceMessages.remove(Integer + .parseInt(args[2])); + SendMessage(player, "§bAnnouncement removed.§r"); + } + } catch (NumberFormatException e) { + SendMessage(player, "§cUsage: /u announce remove §r"); + return; + } + break; + case "settime": + if (args.length < 3) { + SendMessage(player, + "§cUsage: /u announce settime "); + return; + } + SendMessage(player, "Setting time between messages..."); + PluginMain.AnnounceTime = Integer.parseInt(args[2]) * 60 * 1000; + File inputFile = new File("announcemessages.txt"); + File tempFile = new File("_tempAnnounce.txt"); + + if (!inputFile.exists()) + break; + + try { + BufferedReader reader = new BufferedReader(new FileReader( + inputFile)); + BufferedWriter writer = new BufferedWriter(new FileWriter( + tempFile)); + + String currentLine; + + boolean first = true; + while ((currentLine = reader.readLine()) != null) { + if (first) { + writer.write(PluginMain.AnnounceTime + + System.lineSeparator()); + first = false; + } else { + writer.write(currentLine + + System.getProperty("line.separator")); + } + } + writer.close(); + reader.close(); + if (!tempFile.renameTo(inputFile)) { + inputFile.delete(); + if (tempFile.renameTo(inputFile)) { + SendMessage(player, + "Setting time between messages done!"); + break; + } else { + SendMessage(player, + "§cError: Failed to rename file!"); + break; + } + } else { + SendMessage(player, + "Setting time between messages done!"); + break; + } + } catch (IOException e) { + System.out.println("Error!\n" + e); + PluginMain.LastException = e; // 2015.08.09. + } + break; + case "list": + SendMessage(player, "§bList of announce messages:§r"); + SendMessage(player, "§bFormat: [index] message§r"); + int i = 0; + for (String message : PluginMain.AnnounceMessages) + SendMessage(player, "[" + i++ + "] " + message); + SendMessage(player, + "§bCurrent wait time between announcements: " + + PluginMain.AnnounceTime / 60 / 1000 + + " minute(s)§r"); + break; + default: + String message = "§cUsage: /u announce add|remove|settime|list§r"; + SendMessage(player, message); + return; + } + } + } } diff --git a/TheButtonAutoFlair/src/tk/sznp/thebuttonautoflair/PluginMain.java b/TheButtonAutoFlair/src/tk/sznp/thebuttonautoflair/PluginMain.java index 5fc2f5c..e1aa9bd 100644 --- a/TheButtonAutoFlair/src/tk/sznp/thebuttonautoflair/PluginMain.java +++ b/TheButtonAutoFlair/src/tk/sznp/thebuttonautoflair/PluginMain.java @@ -14,6 +14,7 @@ import java.lang.String; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; +import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.Map; @@ -21,7 +22,7 @@ import java.util.Map; 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/ - private static PluginMain Instance; + public static PluginMain Instance; public static ConsoleCommandSender Console; // 2015.08.12. // Fired when plugin is first enabled @@ -43,9 +44,16 @@ public class PluginMain extends JavaPlugin { // Translated to Java: 2015.07.15. }; Thread t = new Thread(r); t.start(); + r = new Runnable() { + public void run() { + AnnouncerThread.Run(); + } + }; + t = new Thread(r); + t.start(); } - Boolean stop = false; + public Boolean stop = false; // Fired when plugin is disabled @Override @@ -108,7 +116,11 @@ public class PluginMain extends JavaPlugin { // Translated to Java: 2015.07.15. flairclass = "unknown"; SetFlair(ign, flair, flairclass, author); } - Thread.sleep(10000); + try { + Thread.sleep(10000); + } catch (InterruptedException ex) { + Thread.currentThread().interrupt(); + } } catch (Exception e) { System.out.println("Error!\n" + e); LastException = e; // 2015.08.09. @@ -279,6 +291,9 @@ public class PluginMain extends JavaPlugin { // Translated to Java: 2015.07.15. return Instance.getServer().getOnlinePlayers(); } + public static ArrayList AnnounceMessages = new ArrayList<>(); + public static int AnnounceTime = 15 * 60 * 1000; + public static void LoadFiles(boolean reload) // <-- 2015.08.09. { if (reload) { // 2015.08.09. @@ -286,6 +301,7 @@ public class PluginMain extends JavaPlugin { // Translated to Java: 2015.07.15. .println("The Button Minecraft plugin cleanup for reloading..."); MaybeOfflinePlayer.AllPlayers.clear(); TownColors.clear(); + AnnounceMessages.clear(); } System.out.println("Loading files for The Button Minecraft plugin..."); // 2015.08.09. try { @@ -350,7 +366,31 @@ public class PluginMain extends JavaPlugin { // Translated to Java: 2015.07.15. PlayerListener.NotificationPitch = Float.parseFloat(split[1]); br.close(); } - // throw new IOException("Test"); //2015.08.09. + file = new File("announcemessages.txt"); // 2015.08.09. + if (file.exists()) { + BufferedReader br = new BufferedReader(new FileReader(file)); + String line; + boolean first = true; + while ((line = br.readLine()) != null) { + if (first) { + AnnounceTime = Integer.parseInt(line.trim()); + first = false; + } else + AnnounceMessages.add(line.trim()); + } + br.close(); + } else { + // Write time + try { + BufferedWriter bw; + bw = new BufferedWriter(new FileWriter(file)); + bw.write(AnnounceTime + "\n"); + bw.close(); + } catch (IOException e) { + System.out.println("Error!\n" + e); + PluginMain.LastException = e; // 2015.08.09. + } + } System.out.println("The Button Minecraft plugin loaded files!"); } catch (IOException e) { System.out.println("Error!\n" + e); @@ -432,4 +472,38 @@ public class PluginMain extends JavaPlugin { // Translated to Java: 2015.07.15. } return false; } + + public static boolean RemoveLineFromFile(String file, int index) { + File inputFile = new File(file); + File tempFile = new File("_temp2.txt"); + + if (!inputFile.exists()) + return true; // 2015.08.10. + + try { + BufferedReader reader = new BufferedReader( + new FileReader(inputFile)); + BufferedWriter writer = new BufferedWriter(new FileWriter(tempFile)); + + String currentLine; + int i = 0; + + while ((currentLine = reader.readLine()) != null) { + if (i++ == index) + continue; + writer.write(currentLine + System.getProperty("line.separator")); + } + writer.close(); + reader.close(); + if (!tempFile.renameTo(inputFile)) { + inputFile.delete(); + return tempFile.renameTo(inputFile); + } else + return true; + } catch (IOException e) { + System.out.println("Error!\n" + e); + LastException = e; // 2015.08.09. + } + return false; + } }