mirror of
https://github.com/AtlasMediaGroup/TotalFreedomMod.git
synced 2025-07-01 12:36:41 +00:00
Compare commits
279 Commits
Author | SHA1 | Date | |
---|---|---|---|
4daad76e74 | |||
05884ae806 | |||
aa0fd34859 | |||
2c14773c9b | |||
695168ebfe | |||
bbc1255963 | |||
34d15d4c96 | |||
75bc17cd8f | |||
87f338194c | |||
b5760afbad | |||
5cfaf8970d | |||
9a48ec04aa | |||
24fca9af97 | |||
a9ef738602 | |||
27a04635a2 | |||
0f58746525 | |||
a8d4b5f582 | |||
d7f1de4cb7 | |||
ddbb6228f1 | |||
d4c3a4ad45 | |||
7140e4c8df | |||
808e02f660 | |||
bed78248fb | |||
ee39e89093 | |||
9405604efc | |||
73acb2448b | |||
c63540129f | |||
6ba96b427d | |||
acd8373f81 | |||
0c4c36b2bd | |||
7ce052900e | |||
f8741b0d4f | |||
6fca19fa41 | |||
7e75287e61 | |||
52641466ff | |||
67f096fbfa | |||
8f24e44c79 | |||
28b9f3089d | |||
6b906864b3 | |||
c2aba0e798 | |||
c78e6483ac | |||
1ef6fcbb70 | |||
ce5d23a5bc | |||
280ddf61f7 | |||
a821f7b606 | |||
1a5f854552 | |||
a38f7b3469 | |||
13eeccbc40 | |||
2b611a2bee | |||
ed0aef033c | |||
2d655e4009 | |||
81995f38a1 | |||
9f889efa76 | |||
1e79b90249 | |||
70a24486b8 | |||
d863a9e274 | |||
902fc0ba11 | |||
415d25da4b | |||
3583c1dbdc | |||
f49c4568b2 | |||
01807d1f0f | |||
c5ddc60b97 | |||
97b27cd7b4 | |||
faeaa3aab7 | |||
e10ab45bda | |||
7b59350833 | |||
adbc658cc7 | |||
927e46a431 | |||
65ba053aee | |||
81ee5f04dd | |||
ded31e4640 | |||
1416429910 | |||
8cdff6a3c1 | |||
8ba477140b | |||
5606fdae1f | |||
4bcd0eb61f | |||
18e4943216 | |||
549c5231e8 | |||
7144894848 | |||
fef5f7604b | |||
2d421178db | |||
650bd11ab0 | |||
05ad222148 | |||
4cde6a53ba | |||
18ed009ddd | |||
b7efe3983d | |||
eb01c0db86 | |||
562e354f37 | |||
b845ff3f7e | |||
3c9245bfaf | |||
4bef1a06a4 | |||
e70f8ffff3 | |||
896af4198a | |||
d1ffbe0412 | |||
8f70fa2c82 | |||
a89948f76d | |||
41cca7cd6a | |||
0067e2cc65 | |||
2168aa957a | |||
3babf8388c | |||
0b0e17e526 | |||
5247a33f88 | |||
3f2aa224f6 | |||
bc00e42990 | |||
88103cefc2 | |||
3819c57adf | |||
c3f8bd33ff | |||
baf7a3b2c1 | |||
74bfdad389 | |||
08a9329864 | |||
be87075337 | |||
ada803cd7d | |||
0b146943ff | |||
0f31ea2953 | |||
3ca46853ac | |||
ee6b93e208 | |||
3e5e11197f | |||
6035f9e50b | |||
f45cc11846 | |||
b28a0778b4 | |||
174043fa58 | |||
dfb6df63c8 | |||
7a6cc55640 | |||
5c61ff27b0 | |||
3da03393e6 | |||
5876f86ac3 | |||
fbdf2b5fc2 | |||
fd6aa7b94b | |||
5981f7f33f | |||
55d94b5d59 | |||
d71b043102 | |||
143b323854 | |||
1f32455e06 | |||
8718b3a8c2 | |||
f5e21f69fd | |||
bf7877addc | |||
6d0b8362b7 | |||
10f905ea36 | |||
dcb6a4513e | |||
ff4751941b | |||
e64fd42855 | |||
467d1d2d3a | |||
6ba8dcaa58 | |||
a3cf53f5b1 | |||
23907ef7e4 | |||
485945047b | |||
75ec2330f5 | |||
5c32c66390 | |||
4494a4c039 | |||
f53b67abf1 | |||
2827ca98a7 | |||
64b1e568b3 | |||
3e57696a21 | |||
fd1bd995ed | |||
9fe05add7f | |||
25fbb0c05a | |||
f646a5122a | |||
af4071c582 | |||
86ee0e96d2 | |||
57efdd2269 | |||
26bcd3ec1c | |||
fd372066eb | |||
122bef2d5a | |||
339518f4f4 | |||
8ce0defb52 | |||
ec6e8431e3 | |||
0964871e8b | |||
422a7716f3 | |||
f1ab8296e4 | |||
f9cbf11abb | |||
b0090a5412 | |||
b94efb525f | |||
5c8f98089e | |||
7879fa24e4 | |||
6fcaed6253 | |||
656dbf8867 | |||
23032e6f9a | |||
ad5a236bc2 | |||
e23db244a5 | |||
eb4622fc28 | |||
0f6b053727 | |||
259335958a | |||
31375b82c3 | |||
0a2d5c8258 | |||
bac25258b0 | |||
c69918d725 | |||
c1d0c01524 | |||
a59e6added | |||
56493adcae | |||
4b91de7414 | |||
c636ee043a | |||
6a5306dd7a | |||
4603dc5613 | |||
af7e6c5d41 | |||
699d366efb | |||
41ed416a51 | |||
074630f720 | |||
4e3c9a6b9e | |||
bea480c1f1 | |||
69fd3566af | |||
f3ac19a616 | |||
696ec119c6 | |||
326c3f6a2b | |||
38b1035020 | |||
1ae6eb8a5a | |||
2c4eca8551 | |||
f23c61d0b3 | |||
c10e0deb8b | |||
d4dfe06ec0 | |||
bcd9658b3d | |||
9b62731e94 | |||
03553b6254 | |||
d40c143afc | |||
95afb51321 | |||
4813b8ae27 | |||
e8d36b31f7 | |||
b2eec1ef01 | |||
3bcc4fd7a7 | |||
e0efb63123 | |||
028d1a07b2 | |||
5b34facdd3 | |||
218fd21774 | |||
0901c02c7e | |||
a4e9bc76a3 | |||
be8314cf63 | |||
f21c7aa5c5 | |||
3f61e05609 | |||
fe93d1ce07 | |||
5132bb6550 | |||
6b7a5d8d70 | |||
6a4a11a2f4 | |||
cbe7cdc474 | |||
07f4bf82ea | |||
8e7c9dcd8e | |||
1ab74dae05 | |||
8ac91f7097 | |||
c482349f47 | |||
b24f1d9247 | |||
2079e0ea66 | |||
0e477f8437 | |||
c3fc085adc | |||
aad8f17455 | |||
d43fa35e52 | |||
fdfa30b349 | |||
e56c273457 | |||
f3087f0dca | |||
dbed7b7f83 | |||
4caa984cef | |||
ef2e17c33f | |||
53614d174e | |||
123884329c | |||
37e78dceec | |||
8f6d71fffb | |||
3935bcf09f | |||
b9bd046105 | |||
1fcda4a8fc | |||
f8e62a9893 | |||
aaf96d00a9 | |||
4903f009b3 | |||
3dc51715c5 | |||
f2aaba17de | |||
fa1c9a255c | |||
3c80aaa7c4 | |||
279f69e3de | |||
22bf0c2f62 | |||
f21e50e002 | |||
6d9e9406ec | |||
cd16c7fb10 | |||
11c945c504 | |||
c70e3ad8fd | |||
f63805cca2 | |||
5868540cbb | |||
8ca518528f | |||
4cbbf10871 | |||
93914370a1 | |||
ee87d1147d | |||
391e417882 | |||
0dca359e4c | |||
15fbd0e1f3 |
@ -1,63 +1,50 @@
|
|||||||
# How to contribute
|
# Contributing to TotalFreedomMod #
|
||||||
|
TotalFreedomMod is a CraftBukkit server plugin designed primarily to support the [Official TotalFreedom Minecraft Server](http://totalfreedom.me/). However, it can be used in a variety of other configurations with minimal fuss.
|
||||||
|
|
||||||
TotalFreedomMod aims to be a fully functional all-op server mod which works in
|
For those who wish to contribute, we encourage you to fork the repository and submit pull requests. Below you will find guidelines that will explain this process in further detail.
|
||||||
a large range of configurations. In order to be as flexible as possible on the
|
|
||||||
server-end, we encourage contributing to TotalFreedomMod by making 'pull-requests'
|
|
||||||
to this repository.
|
|
||||||
|
|
||||||
## Getting Started
|
|
||||||
|
|
||||||
|
## Getting Started ##
|
||||||
* Make sure you have a [GitHub account](https://github.com/signup/free)
|
* Make sure you have a [GitHub account](https://github.com/signup/free)
|
||||||
* If the issue is a bug, submit a ticket for it, assuming one does not already exist.
|
* If the issue is a bug, submit a ticket for it, assuming one does not already exist.
|
||||||
* Clearly describe the issue including steps to reproduce it.
|
* Clearly describe the issue including steps to reproduce it.
|
||||||
* Make sure you fill in the earliest version that you know has the issue.
|
* Make sure you fill in the earliest version that you know has the issue.
|
||||||
* Fork the repository on GitHub
|
* Fork the repository on GitHub
|
||||||
|
|
||||||
## Making Changes
|
## Making Changes ##
|
||||||
|
|
||||||
* Create a topic branch from where you want to base your work.
|
* Create a topic branch from where you want to base your work.
|
||||||
* This is usually the master branch.
|
* This is usually the master branch.
|
||||||
* Only target release branches if you are certain your addition must be on that
|
* Only target release branches if you are certain your addition must be on that branch.
|
||||||
branch.
|
* To quickly create a topic branch based on master; `git checkout -b contribution` - Please avoid working directly on the `master` branch.
|
||||||
* To quickly create a topic branch based on master; `git checkout -b contribution`
|
|
||||||
Please avoid working directly on the `master` branch.
|
|
||||||
* Make changes and commit where necessary.
|
* Make changes and commit where necessary.
|
||||||
* Check for unnecessary whitespace with `git diff --check` before committing.
|
* Check for unnecessary whitespace with `git diff --check` before committing.
|
||||||
* Make sure your commit messages are in line with those which are already made.
|
* Make sure your commit messages are in line with those which are already made.
|
||||||
* Make sure your changes build (*and work!*).
|
* Make sure your changes build (<b>and work!</b>).
|
||||||
|
|
||||||
## Tips on getting your pull request accepted
|
## Tips - How To Get Your Pull Request Accepted ##
|
||||||
* Make sure your changes work and compile without difficulty.
|
* Make sure your changes work and compile without difficulty.
|
||||||
* Make sure your change adds something useful, do not add commands to micromanage
|
* Make sure your change adds something useful, do not add commands to micromanage the server. (ie: Shorthands for a collection of commands)
|
||||||
the server. (ie: Shorthands for a collection of commands)
|
* __Commands that make use of `org.bukkit.Server.dispatchCommand()` will probably be rejected.__
|
||||||
* Features must be in line the general idea of "Total Freedom".
|
* Features must be in line the general idea of "Total Freedom".
|
||||||
* Changes must be directed towards the main "TotalFreedom" server. Adding names such
|
* Changes must be directed towards the main "TotalFreedom" server. Adding names such as the name of your own TotalFreedom-like server will get your pull request denied.
|
||||||
as the name of your own TotalFreedom-like server will get your pull request denied.
|
|
||||||
* Do not add yourself to the developer list.
|
* Do not add yourself to the developer list.
|
||||||
* Ensure that you use the correct whitespace-style. That is: 4 spaces as indentation.
|
* Ensure that you use the correct whitespace-style. That is: 4 spaces as indentation.
|
||||||
* Please make sure your changes are written such as other features would be. Eg: commands
|
* Please make sure your changes are written such as other features would be. Eg: commands have their own class and extend TFM_Command.
|
||||||
have their own class and extend TFM_Command.
|
* __Make sure your code is written in the [Allman style](http://en.wikipedia.org/wiki/Indent_style#Allman_style).__
|
||||||
* Make sure your code is written in the [Allman style](http://en.wikipedia.org/wiki/Indent_style#Allman_style).
|
|
||||||
* Do not increment the version number.
|
* Do not increment the version number.
|
||||||
* If you want to add multiple changes, please make one pull request per change. This
|
* If you want to add multiple changes, please make one pull request per change. This way, it's easier to accept your changes faster and won't block the other changes if there is an issue with a specific line of code.
|
||||||
way, it's easier to accept your changes faster and won't block the other changes if there
|
|
||||||
is an issue with a specific line of code.
|
|
||||||
* Please make sure there are no bugs in your code.
|
* Please make sure there are no bugs in your code.
|
||||||
* Please avoid having to add files in the main namespace where possible.
|
* Please avoid having to add files in the main namespace where possible.
|
||||||
* Make sure all changes work before you commit these, this avoids having multiple
|
* Make sure all changes work before you commit these, this avoids having multiple unnecessary commits.
|
||||||
unnecessary commits.
|
|
||||||
* Please refrain from using an excessive amount of commits. As few as possible is generally the best.
|
* Please refrain from using an excessive amount of commits. As few as possible is generally the best.
|
||||||
* Please do not spread your addition over several pull-requests.
|
* Please do not spread your addition over several pull-requests.
|
||||||
|
|
||||||
## Submitting Changes
|
## Submitting Your Changes ##
|
||||||
|
|
||||||
* Push your changes to a topic branch in your fork of the repository.
|
* Push your changes to a topic branch in your fork of the repository.
|
||||||
* Submit a pull request to this repository.
|
* Submit a pull request to this repository.
|
||||||
* Explain in detail what each one of your commits changes and point out any big changes.
|
* Explain in detail what each one of your commits changes and point out any big changes.
|
||||||
* Wait as a developer evaluates your changes.
|
* Wait as a developer evaluates your changes.
|
||||||
|
|
||||||
# Additional Resources
|
## Additional Resources ##
|
||||||
|
|
||||||
* [TotalFreedom information](http://totalfreedom.me)
|
* [TotalFreedom information](http://totalfreedom.me)
|
||||||
* [TotalFreedom forums](http://totalfreedom.boards.net)
|
* [TotalFreedom forums](http://totalfreedom.boards.net)
|
||||||
* [Bug tracker](https://github.com/TotalFreedom/TotalFreedomMod/issues)
|
* [Bug tracker](https://github.com/TotalFreedom/TotalFreedomMod/issues)
|
||||||
|
16
LICENCE.md
16
LICENCE.md
@ -1,16 +0,0 @@
|
|||||||
# Legal
|
|
||||||
|
|
||||||
TotalFreedomMod by Madgeek1450 and DarthSalamon is an effort to create an opensource plugin to effectively run a "Total Freedom" like all-Op server. It consists of over 85 custom coded commands and a large variety of distinguishable features not included in any other plugin. The plugin has since its beginning grown immensely. Together with the main server "TotalFreedom" (http://totalfreedom.me) TotalFreedomMod has a long-standing reputation of effectiveness whilst maintaining a clear feel of openness towards the administrators and the players themselves.
|
|
||||||
|
|
||||||
## License
|
|
||||||
|
|
||||||
TotalFreedomMod sourcecode is freely available under the GNU GPLv3 License with a few restrictions in place. The license is available here: http://www.gnu.org/licenses/gpl.txt
|
|
||||||
|
|
||||||
The few restrictions are in place to make sure that credit is given to the original authors who remain the maintainers of the plugin and it's sourcecode.
|
|
||||||
|
|
||||||
These are the restrictions under which the sourcecode is licensed:
|
|
||||||
* A un-edited copy of this license must always be included with this sourcecode.
|
|
||||||
* TotalFreedomMod sourcecode and its derrivations are freely distributable between anyone who choses to download it.
|
|
||||||
* You may not remove the keywords "Madgeek1450", "StevenLawson", "DarthSalamon" and "jeromsar" from any part of the sourcecode.
|
|
||||||
* However, compiled binaries (*.jar's) are not to be distributed. If you wish to obtain a copy of TotalFreedomMod you must compile the original sourcecode or it's derivations yourself using an IDE like netbeans. Official superadmins and above of the TotalFreedom (totalfreedom.me) server may obtain a compiled libary with the same limitations as described in this document.
|
|
||||||
* Any conditions on this license may be waived by any of the official developers.
|
|
12
LICENSE.md
Normal file
12
LICENSE.md
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
# TotalFreedomMod License #
|
||||||
|
TotalFreedomMod is primarily derived from the Bukkit and CraftBukkit library and server, respectively. Therefore, we have chosen for it to inherit the GNU GPLv3 License as used by those programs. This license is available at http://www.gnu.org/licenses/gpl-3.0.txt
|
||||||
|
|
||||||
|
We do, however, ask that you comply by several restrictions. These restrictions are in place to make sure that credit is given to the original authors, who remain the maintainers of the plugin and its source code.
|
||||||
|
* A un-edited copy of this LICENSE.md shall always be included with this source code.
|
||||||
|
* TotalFreedomMod source code and its derivations shall be freely distributable between anyone who chooses to download it.
|
||||||
|
* You shall not remove the keywords "Madgeek1450", "StevenLawson", "DarthSalamon" or "JeromSar" from any part of the source code.
|
||||||
|
* You may not modify the file TFM_FrontDoor.java. Removing it is fine, however.
|
||||||
|
* Compiled binaries (*.jar's) shall not to be distributed.
|
||||||
|
* If you wish to obtain a copy of TotalFreedomMod you must compile the original source code or it's derivations yourself.
|
||||||
|
* The primary developers, StevenLawson (Madgeek1450) and Jerom van der Sar (DarthSalamon), may choose to provide official binaries on a discretionary basis.
|
||||||
|
* Any restrictions listed here may be waived by any of the above mentioned primary developers.
|
@ -1,6 +1,7 @@
|
|||||||
TotalFreedomMod
|
# TotalFreedomMod #
|
||||||
===============
|
|
||||||
|
|
||||||
TotalFreedomMod is a CraftBukkit mod for the TotalFreedom server.
|
TotalFreedomMod is a CraftBukkit server plugin designed primarily to support the [Official TotalFreedom Minecraft Server](http://totalfreedom.me/). However, you are more than welcome to adapt the source for your own server.
|
||||||
|
|
||||||
Information about the TotalFreedom server can be found at http://totalfreedom.me/
|
This plugin was originally coded by StevenLawson (Madgeek1450), with Jerom van der Sar (DarthSalamon) becoming heavily involved in its development some time later. It consists of over 85 custom coded commands and a large variety of distinguishable features not included in any other plugin. The plugin has since its beginning grown immensely. Together, with the main TotalFreedom server, TotalFreedomMod has a long-standing reputation of effectiveness whilst maintaining a clear feeling of openness towards the administrators and the players themselves.
|
||||||
|
|
||||||
|
Please see [CONTRIBUTING.md](CONTRIBUTING.md) if you are interested in developing TotalFreedomMod. For information on how TotalFreedomMod is licensed, please see [LICENSE.md](LICENSE.md).
|
||||||
|
@ -1,5 +0,0 @@
|
|||||||
#Thu, 04 Jul 2013 22:45:10 +0200
|
|
||||||
|
|
||||||
program.VERSION=2.21
|
|
||||||
program.BUILDNUM=255
|
|
||||||
program.BUILDDATE=07/04/2013 10\:45 PM
|
|
83
build.xml
83
build.xml
@ -1,83 +1,20 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!-- You may freely edit this file. See commented blocks below for -->
|
|
||||||
<!-- some examples of how to customize the build. -->
|
|
||||||
<!-- (If you delete it and reopen the project it will be recreated.) -->
|
|
||||||
<!-- By default, only the Clean and Build commands use this build script. -->
|
|
||||||
<!-- Commands such as Run, Debug, and Test only use this build script if -->
|
|
||||||
<!-- the Compile on Save feature is turned off for the project. -->
|
|
||||||
<!-- You can turn off the Compile on Save (or Deploy on Save) setting -->
|
|
||||||
<!-- in the project's Project Properties dialog box.-->
|
|
||||||
<project name="TotalFreedomMod" default="default" basedir=".">
|
<project name="TotalFreedomMod" default="default" basedir=".">
|
||||||
<description>Builds, tests, and runs the project TotalFreedomMod.</description>
|
<description>Builds, tests, and runs the project TotalFreedomMod.</description>
|
||||||
<import file="nbproject/build-impl.xml"/>
|
<import file="nbproject/build-impl.xml" />
|
||||||
<!--
|
|
||||||
|
|
||||||
There exist several targets which are by default empty and which can be
|
|
||||||
used for execution of your tasks. These targets are usually executed
|
|
||||||
before and after some main targets. They are:
|
|
||||||
|
|
||||||
-pre-init: called before initialization of project properties
|
|
||||||
-post-init: called after initialization of project properties
|
|
||||||
-pre-compile: called before javac compilation
|
|
||||||
-post-compile: called after javac compilation
|
|
||||||
-pre-compile-single: called before javac compilation of single file
|
|
||||||
-post-compile-single: called after javac compilation of single file
|
|
||||||
-pre-compile-test: called before javac compilation of JUnit tests
|
|
||||||
-post-compile-test: called after javac compilation of JUnit tests
|
|
||||||
-pre-compile-test-single: called before javac compilation of single JUnit test
|
|
||||||
-post-compile-test-single: called after javac compilation of single JUunit test
|
|
||||||
-pre-jar: called before JAR building
|
|
||||||
-post-jar: called after JAR building
|
|
||||||
-post-clean: called after cleaning build products
|
|
||||||
|
|
||||||
(Targets beginning with '-' are not intended to be called on their own.)
|
|
||||||
|
|
||||||
Example of inserting an obfuscator after compilation could look like this:
|
|
||||||
|
|
||||||
<target name="-post-compile">
|
|
||||||
<obfuscate>
|
|
||||||
<fileset dir="${build.classes.dir}"/>
|
|
||||||
</obfuscate>
|
|
||||||
</target>
|
|
||||||
|
|
||||||
For list of available properties check the imported
|
|
||||||
nbproject/build-impl.xml file.
|
|
||||||
|
|
||||||
|
|
||||||
Another way to customize the build is by overriding existing main targets.
|
|
||||||
The targets of interest are:
|
|
||||||
|
|
||||||
-init-macrodef-javac: defines macro for javac compilation
|
|
||||||
-init-macrodef-junit: defines macro for junit execution
|
|
||||||
-init-macrodef-debug: defines macro for class debugging
|
|
||||||
-init-macrodef-java: defines macro for class execution
|
|
||||||
-do-jar-with-manifest: JAR building (if you are using a manifest)
|
|
||||||
-do-jar-without-manifest: JAR building (if you are not using a manifest)
|
|
||||||
run: execution of project
|
|
||||||
-javadoc-build: Javadoc generation
|
|
||||||
test-report: JUnit report generation
|
|
||||||
|
|
||||||
An example of overriding the target for project execution could look like this:
|
|
||||||
|
|
||||||
<target name="run" depends="TotalFreedomMod-impl.jar">
|
|
||||||
<exec dir="bin" executable="launcher.exe">
|
|
||||||
<arg file="${dist.jar}"/>
|
|
||||||
</exec>
|
|
||||||
</target>
|
|
||||||
|
|
||||||
Notice that the overridden target depends on the jar target and not only on
|
|
||||||
the compile target as the regular run target does. Again, for a list of available
|
|
||||||
properties which you can use, check the target you are overriding in the
|
|
||||||
nbproject/build-impl.xml file.
|
|
||||||
|
|
||||||
-->
|
|
||||||
<target name="-pre-jar">
|
<target name="-pre-jar">
|
||||||
<buildnumber file="buildnumber.properties" />
|
<buildnumber file="buildnumber.properties" />
|
||||||
<propertyfile file="appinfo.properties">
|
<propertyfile file="appinfo.properties">
|
||||||
<entry key="program.VERSION" default="0.0" />
|
<entry key="program.buildnumber" value="${build.number}" />
|
||||||
<entry key="program.BUILDNUM" value="${build.number}" />
|
<entry key="program.builddate" type="date" value="now" pattern="MM/dd/yyyy hh:mm aa" />
|
||||||
<entry key="program.BUILDDATE" type="date" value="now" pattern="MM/dd/yyyy hh:mm aa" />
|
|
||||||
</propertyfile>
|
</propertyfile>
|
||||||
<copy file="appinfo.properties" todir="${build.classes.dir}" />
|
<copy file="appinfo.properties" todir="${build.classes.dir}" />
|
||||||
|
<delete file="appinfo.properties" />
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<target name="-post-jar">
|
||||||
|
<!-- Cleanup -->
|
||||||
|
<delete file="${dist.dir}/README.TXT" />
|
||||||
|
<delete dir="${dist.dir}/lib/" />
|
||||||
</target>
|
</target>
|
||||||
</project>
|
</project>
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
#Build Number for ANT. Do not edit!
|
#Build Number for ANT. Do not edit!
|
||||||
#Thu Jul 04 22:45:10 CEST 2013
|
#Tue Dec 17 15:17:32 CET 2013
|
||||||
build.number=256
|
build.number=681
|
||||||
|
@ -18,7 +18,7 @@ is divided into following sections:
|
|||||||
- applet
|
- applet
|
||||||
- cleanup
|
- cleanup
|
||||||
|
|
||||||
-->
|
-->
|
||||||
<project xmlns:j2seproject1="http://www.netbeans.org/ns/j2se-project/1" xmlns:j2seproject3="http://www.netbeans.org/ns/j2se-project/3" xmlns:jaxrpc="http://www.netbeans.org/ns/j2se-project/jax-rpc" basedir=".." default="default" name="TotalFreedomMod-impl">
|
<project xmlns:j2seproject1="http://www.netbeans.org/ns/j2se-project/1" xmlns:j2seproject3="http://www.netbeans.org/ns/j2se-project/3" xmlns:jaxrpc="http://www.netbeans.org/ns/j2se-project/jax-rpc" basedir=".." default="default" name="TotalFreedomMod-impl">
|
||||||
<fail message="Please build using Ant 1.8.0 or higher.">
|
<fail message="Please build using Ant 1.8.0 or higher.">
|
||||||
<condition>
|
<condition>
|
||||||
|
@ -4,7 +4,23 @@ annotation.processing.processors.list=
|
|||||||
annotation.processing.run.all.processors=true
|
annotation.processing.run.all.processors=true
|
||||||
annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output
|
annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output
|
||||||
application.title=TotalFreedomMod
|
application.title=TotalFreedomMod
|
||||||
application.vendor=Michael
|
application.vendor=TotalFreedom
|
||||||
|
auxiliary.org-netbeans-modules-editor-indent.CodeStyle.project.expand-tabs=true
|
||||||
|
auxiliary.org-netbeans-modules-editor-indent.CodeStyle.project.indent-shift-width=4
|
||||||
|
auxiliary.org-netbeans-modules-editor-indent.CodeStyle.project.spaces-per-tab=4
|
||||||
|
auxiliary.org-netbeans-modules-editor-indent.CodeStyle.project.tab-size=4
|
||||||
|
auxiliary.org-netbeans-modules-editor-indent.CodeStyle.project.text-limit-width=0
|
||||||
|
auxiliary.org-netbeans-modules-editor-indent.CodeStyle.project.text-line-wrap=none
|
||||||
|
auxiliary.org-netbeans-modules-editor-indent.CodeStyle.usedProfile=project
|
||||||
|
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.blankLinesAfterClassHeader=0
|
||||||
|
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.classDeclBracePlacement=NEW_LINE
|
||||||
|
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.enableCommentFormatting=false
|
||||||
|
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.methodDeclBracePlacement=NEW_LINE
|
||||||
|
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.otherBracePlacement=NEW_LINE
|
||||||
|
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.placeCatchOnNewLine=true
|
||||||
|
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.placeElseOnNewLine=true
|
||||||
|
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.placeFinallyOnNewLine=true
|
||||||
|
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.placeWhileOnNewLine=true
|
||||||
build.classes.dir=${build.dir}/classes
|
build.classes.dir=${build.dir}/classes
|
||||||
build.classes.excludes=**/*.java,**/*.form
|
build.classes.excludes=**/*.java,**/*.form
|
||||||
# This directory is removed when the project is cleaned:
|
# This directory is removed when the project is cleaned:
|
||||||
@ -32,7 +48,11 @@ jar.archive.disabled=${jnlp.enabled}
|
|||||||
jar.compress=false
|
jar.compress=false
|
||||||
jar.index=${jnlp.enabled}
|
jar.index=${jnlp.enabled}
|
||||||
javac.classpath=\
|
javac.classpath=\
|
||||||
${libs.CraftBukkit.classpath}
|
${libs.CraftBukkit.classpath}:\
|
||||||
|
${libs.WorldEdit.classpath}:\
|
||||||
|
${libs.DisguiseCraft.classpath}:\
|
||||||
|
${libs.Essentials.classpath}:\
|
||||||
|
${libs.BukkitTelnet.classpath}
|
||||||
# Space-separated list of extra javac options
|
# Space-separated list of extra javac options
|
||||||
javac.compilerargs=-Xlint:unchecked -Xlint:deprecation
|
javac.compilerargs=-Xlint:unchecked -Xlint:deprecation
|
||||||
javac.deprecation=false
|
javac.deprecation=false
|
||||||
@ -65,10 +85,9 @@ jnlp.signed=false
|
|||||||
jnlp.signing=
|
jnlp.signing=
|
||||||
jnlp.signing.alias=
|
jnlp.signing.alias=
|
||||||
jnlp.signing.keystore=
|
jnlp.signing.keystore=
|
||||||
main.class=totalfreedommod.TotalFreedomMod
|
|
||||||
manifest.file=manifest.mf
|
manifest.file=manifest.mf
|
||||||
meta.inf.dir=${src.dir}/META-INF
|
meta.inf.dir=${src.dir}/META-INF
|
||||||
mkdist.disabled=false
|
mkdist.disabled=true
|
||||||
platform.active=default_platform
|
platform.active=default_platform
|
||||||
run.classpath=\
|
run.classpath=\
|
||||||
${javac.classpath}:\
|
${javac.classpath}:\
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# TotalFreedomMod v2.21 Configuration
|
# TotalFreedomMod v3.4 Configuration
|
||||||
# by Madgeek1450 and DarthSalamon
|
# by Madgeek1450 and DarthSalamon
|
||||||
|
|
||||||
# Block placement prevention:
|
# Block placement prevention:
|
||||||
@ -12,7 +12,7 @@ allow_tnt_minecarts: false
|
|||||||
|
|
||||||
# Explosion management:
|
# Explosion management:
|
||||||
allow_explosions: false
|
allow_explosions: false
|
||||||
explosiveRadius: 4.0
|
explosive_radius: 4.0
|
||||||
|
|
||||||
# Blocked commands:
|
# Blocked commands:
|
||||||
#
|
#
|
||||||
@ -53,14 +53,29 @@ blocked_commands:
|
|||||||
- 'n:b:/time:Server-side time changing is disabled. Please use /ptime to set your own personal time.'
|
- 'n:b:/time:Server-side time changing is disabled. Please use /ptime to set your own personal time.'
|
||||||
- 'n:b:/md:This server now uses DisguiseCraft instead of MobDisguise. Type /d to disguise and /u to undisguise.'
|
- 'n:b:/md:This server now uses DisguiseCraft instead of MobDisguise. Type /d to disguise and /u to undisguise.'
|
||||||
- 'n:b:/gamemode:Use /creative and /survival to set your gamemode.'
|
- 'n:b:/gamemode:Use /creative and /survival to set your gamemode.'
|
||||||
|
- 'n:b:/gamerule:_'
|
||||||
- 'n:b:/ban:_'
|
- 'n:b:/ban:_'
|
||||||
- 'n:b:/pardon:_'
|
- 'n:b:/pardon:_'
|
||||||
|
- 'n:b:/ban-ip:_'
|
||||||
|
- 'n:b:/pardon-ip:_'
|
||||||
- 'n:b:/toggledownfall:_'
|
- 'n:b:/toggledownfall:_'
|
||||||
|
- 'n:b:/effect:Please use /potion to set effects.'
|
||||||
|
- 'n:b:/enderchest:_'
|
||||||
|
|
||||||
# Superadmin commands
|
# Superadmin commands
|
||||||
- 's:b:/kick:_'
|
- 's:b:/kick:_'
|
||||||
- 's:b:/socialspy:_'
|
- 's:b:/socialspy:_'
|
||||||
- 's:b:/kill:_'
|
- 's:b:/kill:_'
|
||||||
|
- 's:b://generate:_'
|
||||||
|
- 's:b://:_'
|
||||||
|
- 's:b:/superpickaxe:_'
|
||||||
|
- 's:b:/brush:_'
|
||||||
|
- 's:b:/mat:_'
|
||||||
|
- 's:b:/tool:_'
|
||||||
|
- 's:b://butcher:_'
|
||||||
|
- 's:b:/scoreboard:_'
|
||||||
|
|
||||||
|
# Superadmin commands - Auto-eject
|
||||||
- 's:a:/stop'
|
- 's:a:/stop'
|
||||||
- 's:a:/reload'
|
- 's:a:/reload'
|
||||||
- 's:a:/nuke'
|
- 's:a:/nuke'
|
||||||
@ -68,8 +83,6 @@ blocked_commands:
|
|||||||
- 's:a:/save-on'
|
- 's:a:/save-on'
|
||||||
- 's:a:/save-off'
|
- 's:a:/save-off'
|
||||||
- 's:a:/clearhistory'
|
- 's:a:/clearhistory'
|
||||||
- 's:a:/butcher'
|
|
||||||
- 's:a://butcher'
|
|
||||||
|
|
||||||
# Automatically wipe dropped objects:
|
# Automatically wipe dropped objects:
|
||||||
auto_wipe: true
|
auto_wipe: true
|
||||||
@ -123,7 +136,65 @@ host_sender_names:
|
|||||||
- rcon
|
- rcon
|
||||||
- remotebukkit
|
- remotebukkit
|
||||||
|
|
||||||
|
# Players who cannot be banned by username
|
||||||
|
unbannable_usernames:
|
||||||
|
- honeydew
|
||||||
|
- xephos
|
||||||
|
- captainsparklez
|
||||||
|
- truemu
|
||||||
|
- kiershar
|
||||||
|
- fvdisco
|
||||||
|
- sethbling
|
||||||
|
- notch
|
||||||
|
- jeb_
|
||||||
|
- gamechap
|
||||||
|
- bertiechap
|
||||||
|
- vechs
|
||||||
|
- antvenom
|
||||||
|
- chimneyswift
|
||||||
|
- deadmau5
|
||||||
|
- etho
|
||||||
|
- ethoslab
|
||||||
|
- skydoesminecraft
|
||||||
|
- skythekidrs
|
||||||
|
- tobyturner
|
||||||
|
- xxslyfoxhoundxx
|
||||||
|
- paulsoaresjr
|
||||||
|
- sips_
|
||||||
|
- deadlox
|
||||||
|
- xxslyxx
|
||||||
|
- jeromeasf
|
||||||
|
- dinnerbone
|
||||||
|
- grumm
|
||||||
|
- grum
|
||||||
|
- evilseph
|
||||||
|
- cavemanfilms
|
||||||
|
- herobrine
|
||||||
|
- whiteboy7thst
|
||||||
|
|
||||||
# TwitterBot - Used to allow superadmins to verify themselves using twitter
|
# TwitterBot - Used to allow superadmins to verify themselves using twitter
|
||||||
twitterbot_enabled: false
|
twitterbot_enabled: false
|
||||||
twitterbot_url: 'http://tftwitter.darthcraft.net/'
|
twitterbot_url: ''
|
||||||
twitterbot_secret: ''
|
twitterbot_secret: ''
|
||||||
|
|
||||||
|
# Pet Protect - Prevent tamed pets from being killed.
|
||||||
|
pet_protect_enabled: true
|
||||||
|
|
||||||
|
# Logs Registration
|
||||||
|
logs_register_password: ''
|
||||||
|
logs_register_url: ''
|
||||||
|
|
||||||
|
# Mojang service checker
|
||||||
|
service_checker_url: http://status.mojang.com/check
|
||||||
|
|
||||||
|
# HTTPD
|
||||||
|
httpd_enabled: true
|
||||||
|
httpd_public_folder: ./public_html
|
||||||
|
httpd_port: 28966
|
||||||
|
|
||||||
|
# Inactivity Auto-Kick (Requires Essentials)
|
||||||
|
autokick_enabled: true
|
||||||
|
# autokick_threshold - Percentage of server player capacity used at which players will be automatically kicked for being inactive. Range: 0.0 - 1.0
|
||||||
|
autokick_threshold: 0.9
|
||||||
|
# autokick_time - Time, in seconds, after which a player should be kicked when inactive
|
||||||
|
autokick_time: 120
|
||||||
|
@ -23,6 +23,7 @@ import java.util.Arrays;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
@ -31,7 +32,7 @@ import org.bukkit.generator.ChunkGenerator;
|
|||||||
|
|
||||||
public class CleanroomChunkGenerator extends ChunkGenerator
|
public class CleanroomChunkGenerator extends ChunkGenerator
|
||||||
{
|
{
|
||||||
private Logger log = Logger.getLogger("Minecraft-Server");
|
private static final Logger log = Bukkit.getLogger();
|
||||||
private short[] layer;
|
private short[] layer;
|
||||||
private byte[] layerDataValues;
|
private byte[] layerDataValues;
|
||||||
|
|
||||||
|
@ -2,5 +2,17 @@ package me.StevenLawson.TotalFreedomMod.Commands;
|
|||||||
|
|
||||||
public enum AdminLevel
|
public enum AdminLevel
|
||||||
{
|
{
|
||||||
ALL, OP, SUPER, SENIOR
|
ALL("All Player Commands"), OP("OP Commands"), SUPER("SuperAdmin Commands"), SENIOR("Senior Admin Commands");
|
||||||
|
//
|
||||||
|
private final String friendlyName;
|
||||||
|
|
||||||
|
private AdminLevel(String friendlyName)
|
||||||
|
{
|
||||||
|
this.friendlyName = friendlyName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFriendlyName()
|
||||||
|
{
|
||||||
|
return friendlyName;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
|
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -14,21 +14,26 @@ public class Command_adminmode extends TFM_Command
|
|||||||
@Override
|
@Override
|
||||||
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||||
{
|
{
|
||||||
|
if (args.length != 1)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if (args[0].equalsIgnoreCase("off"))
|
if (args[0].equalsIgnoreCase("off"))
|
||||||
{
|
{
|
||||||
TotalFreedomMod.adminOnlyMode = false;
|
TFM_ConfigEntry.ADMIN_ONLY_MODE.setBoolean(false);
|
||||||
TFM_Util.adminAction(sender.getName(), "Opening the server to all players.", true);
|
TFM_Util.adminAction(sender.getName(), "Opening the server to all players.", true);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else if (args[0].equalsIgnoreCase("on"))
|
else if (args[0].equalsIgnoreCase("on"))
|
||||||
{
|
{
|
||||||
TotalFreedomMod.adminOnlyMode = true;
|
TFM_ConfigEntry.ADMIN_ONLY_MODE.setBoolean(true);
|
||||||
TFM_Util.adminAction(sender.getName(), "Closing the server to non-superadmins.", true);
|
TFM_Util.adminAction(sender.getName(), "Closing the server to non-superadmins.", true);
|
||||||
for (Player p : server.getOnlinePlayers())
|
for (Player player : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
if (!TFM_SuperadminList.isUserSuperadmin(p))
|
if (!TFM_SuperadminList.isUserSuperadmin(player))
|
||||||
{
|
{
|
||||||
p.kickPlayer("Server is now closed to non-superadmins.");
|
player.kickPlayer("Server is now closed to non-superadmins.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
@ -0,0 +1,233 @@
|
|||||||
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminWorld;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
||||||
|
import org.bukkit.World;
|
||||||
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
@CommandPermissions(level = AdminLevel.OP, source = SourceType.BOTH)
|
||||||
|
@CommandParameters(description = "Go to the AdminWorld.", usage = "/<command> [guest < list | purge | add <player> | remove <player> > | time <morning | noon | evening | night> | weather <off | on | storm>]")
|
||||||
|
public class Command_adminworld extends TFM_Command
|
||||||
|
{
|
||||||
|
private enum CommandMode
|
||||||
|
{
|
||||||
|
TELEPORT, GUEST, TIME, WEATHER
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||||
|
{
|
||||||
|
CommandMode commandMode = null;
|
||||||
|
|
||||||
|
if (args.length == 0)
|
||||||
|
{
|
||||||
|
commandMode = CommandMode.TELEPORT;
|
||||||
|
}
|
||||||
|
else if (args.length >= 2)
|
||||||
|
{
|
||||||
|
if ("guest".equalsIgnoreCase(args[0]))
|
||||||
|
{
|
||||||
|
commandMode = CommandMode.GUEST;
|
||||||
|
}
|
||||||
|
else if ("time".equalsIgnoreCase(args[0]))
|
||||||
|
{
|
||||||
|
commandMode = CommandMode.TIME;
|
||||||
|
}
|
||||||
|
else if ("weather".equalsIgnoreCase(args[0]))
|
||||||
|
{
|
||||||
|
commandMode = CommandMode.WEATHER;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (commandMode == null)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
switch (commandMode)
|
||||||
|
{
|
||||||
|
case TELEPORT:
|
||||||
|
{
|
||||||
|
if (!(sender instanceof Player) || sender_p == null)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
World adminWorld = null;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
adminWorld = TFM_AdminWorld.getInstance().getWorld();
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
if (adminWorld == null || sender_p.getWorld() == adminWorld)
|
||||||
|
{
|
||||||
|
playerMsg("Going to the main world.");
|
||||||
|
sender_p.teleport(server.getWorlds().get(0).getSpawnLocation());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (TFM_AdminWorld.getInstance().canAccessWorld(sender_p))
|
||||||
|
{
|
||||||
|
playerMsg("Going to the AdminWorld.");
|
||||||
|
TFM_AdminWorld.getInstance().sendToWorld(sender_p);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
playerMsg("You don't have permission to access the AdminWorld.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case GUEST:
|
||||||
|
{
|
||||||
|
if (args.length == 2)
|
||||||
|
{
|
||||||
|
if ("list".equalsIgnoreCase(args[1]))
|
||||||
|
{
|
||||||
|
playerMsg("AdminWorld guest list: " + TFM_AdminWorld.getInstance().guestListToString());
|
||||||
|
}
|
||||||
|
else if ("purge".equalsIgnoreCase(args[1]))
|
||||||
|
{
|
||||||
|
assertCommandPerms(sender, sender_p);
|
||||||
|
TFM_AdminWorld.getInstance().purgeGuestList();
|
||||||
|
TFM_Util.adminAction(sender.getName(), "AdminWorld guest list purged.", false);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (args.length == 3)
|
||||||
|
{
|
||||||
|
assertCommandPerms(sender, sender_p);
|
||||||
|
|
||||||
|
if ("add".equalsIgnoreCase(args[1]))
|
||||||
|
{
|
||||||
|
Player player;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
player = getPlayer(args[2]);
|
||||||
|
}
|
||||||
|
catch (PlayerNotFoundException ex)
|
||||||
|
{
|
||||||
|
sender.sendMessage(ex.getMessage());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (player != null && TFM_AdminWorld.getInstance().addGuest(player, sender_p))
|
||||||
|
{
|
||||||
|
TFM_Util.adminAction(sender.getName(), "AdminWorld guest added: " + player.getName(), false);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
playerMsg("Could not add player to guest list.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (TFM_Util.isRemoveCommand(args[1]))
|
||||||
|
{
|
||||||
|
Player player = TFM_AdminWorld.getInstance().removeGuest(args[2]);
|
||||||
|
if (player != null)
|
||||||
|
{
|
||||||
|
TFM_Util.adminAction(sender.getName(), "AdminWorld guest removed: " + player.getName(), false);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
playerMsg("Can't find guest entry for: " + args[2]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case TIME:
|
||||||
|
{
|
||||||
|
assertCommandPerms(sender, sender_p);
|
||||||
|
|
||||||
|
if (args.length == 2)
|
||||||
|
{
|
||||||
|
TFM_AdminWorld.TimeOfDay timeOfDay = TFM_AdminWorld.TimeOfDay.getByAlias(args[1]);
|
||||||
|
if (timeOfDay != null)
|
||||||
|
{
|
||||||
|
TFM_AdminWorld.getInstance().setTimeOfDay(timeOfDay);
|
||||||
|
playerMsg("AdminWorld time set to: " + timeOfDay.name());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
playerMsg("Invalid time of day. Can be: sunrise, noon, sunset, midnight");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case WEATHER:
|
||||||
|
{
|
||||||
|
assertCommandPerms(sender, sender_p);
|
||||||
|
|
||||||
|
if (args.length == 2)
|
||||||
|
{
|
||||||
|
TFM_AdminWorld.WeatherMode weatherMode = TFM_AdminWorld.WeatherMode.getByAlias(args[1]);
|
||||||
|
if (weatherMode != null)
|
||||||
|
{
|
||||||
|
TFM_AdminWorld.getInstance().setWeatherMode(weatherMode);
|
||||||
|
playerMsg("AdminWorld weather set to: " + weatherMode.name());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
playerMsg("Invalid weather mode. Can be: off, rain, storm");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (PermissionDeniedException ex)
|
||||||
|
{
|
||||||
|
sender.sendMessage(ex.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void assertCommandPerms(CommandSender sender, Player sender_p) throws PermissionDeniedException
|
||||||
|
{
|
||||||
|
if (!(sender instanceof Player) || sender_p == null || !TFM_SuperadminList.isUserSuperadmin(sender))
|
||||||
|
{
|
||||||
|
throw new PermissionDeniedException(TotalFreedomMod.MSG_NO_PERMS);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private class PermissionDeniedException extends Exception
|
||||||
|
{
|
||||||
|
public PermissionDeniedException(String string)
|
||||||
|
{
|
||||||
|
super(string);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -23,9 +23,9 @@ public class Command_blockcmd extends TFM_Command
|
|||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "Unblocking commands for all players", true);
|
TFM_Util.adminAction(sender.getName(), "Unblocking commands for all players", true);
|
||||||
int counter = 0;
|
int counter = 0;
|
||||||
for (Player p : server.getOnlinePlayers())
|
for (Player player : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(p);
|
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
|
||||||
if (playerdata.allCommandsBlocked())
|
if (playerdata.allCommandsBlocked())
|
||||||
{
|
{
|
||||||
counter += 1;
|
counter += 1;
|
||||||
@ -36,28 +36,28 @@ public class Command_blockcmd extends TFM_Command
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
Player p;
|
Player player;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
p = getPlayer(args[0]);
|
player = getPlayer(args[0]);
|
||||||
}
|
}
|
||||||
catch (CantFindPlayerException ex)
|
catch (PlayerNotFoundException ex)
|
||||||
{
|
{
|
||||||
playerMsg(ex.getMessage());
|
playerMsg(ex.getMessage());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TFM_SuperadminList.isUserSuperadmin(p))
|
if (TFM_SuperadminList.isUserSuperadmin(player))
|
||||||
{
|
{
|
||||||
playerMsg(p.getName() + " is a Superadmin, and cannot have their commands blocked.");
|
playerMsg(player.getName() + " is a Superadmin, and cannot have their commands blocked.");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(p);
|
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
|
||||||
|
|
||||||
playerdata.setCommandsBlocked(!playerdata.allCommandsBlocked());
|
playerdata.setCommandsBlocked(!playerdata.allCommandsBlocked());
|
||||||
|
|
||||||
TFM_Util.adminAction(sender.getName(), (playerdata.allCommandsBlocked() ? "B" : "Unb") + "locking all commands for " + p.getName(), true);
|
TFM_Util.adminAction(sender.getName(), (playerdata.allCommandsBlocked() ? "B" : "Unb") + "locking all commands for " + player.getName(), true);
|
||||||
playerMsg((playerdata.allCommandsBlocked() ? "B" : "Unb") + "locked all commands.");
|
playerMsg((playerdata.allCommandsBlocked() ? "B" : "Unb") + "locked all commands.");
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -10,7 +10,7 @@ import org.bukkit.command.CommandSender;
|
|||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||||
@CommandParameters(description = "Place a cage around someone.", usage = "/<command> <partialname> <off | [[outermaterial] [innermaterial]]>")
|
@CommandParameters(description = "Place a cage around someone.", usage = "/<command> <purge | off | <partialname> [outermaterial] [innermaterial]>")
|
||||||
public class Command_cage extends TFM_Command
|
public class Command_cage extends TFM_Command
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
@ -21,26 +21,53 @@ public class Command_cage extends TFM_Command
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Player p;
|
if (TFM_Util.isStopCommand(args[0]) && sender instanceof Player)
|
||||||
|
{
|
||||||
|
TFM_Util.adminAction(sender.getName(), "Uncaging " + sender.getName(), true);
|
||||||
|
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(sender_p);
|
||||||
|
|
||||||
|
playerdata.setCaged(false);
|
||||||
|
playerdata.regenerateHistory();
|
||||||
|
playerdata.clearHistory();
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else if ("purge".equalsIgnoreCase(args[0]))
|
||||||
|
{
|
||||||
|
TFM_Util.adminAction(sender.getName(), "Uncaging all players.", true);
|
||||||
|
|
||||||
|
for (Player player : server.getOnlinePlayers())
|
||||||
|
{
|
||||||
|
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
|
||||||
|
playerdata.setCaged(false);
|
||||||
|
playerdata.regenerateHistory();
|
||||||
|
playerdata.clearHistory();
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
Player player;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
p = getPlayer(args[0]);
|
player = getPlayer(args[0]);
|
||||||
}
|
}
|
||||||
catch (CantFindPlayerException ex)
|
catch (PlayerNotFoundException ex)
|
||||||
{
|
{
|
||||||
sender.sendMessage(ex.getMessage());
|
sender.sendMessage(ex.getMessage());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(p);
|
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
|
||||||
|
|
||||||
|
Material outerMaterial = Material.GLASS;
|
||||||
|
Material innerMaterial = Material.AIR;
|
||||||
|
|
||||||
Material cage_material_outer = Material.GLASS;
|
|
||||||
Material cage_material_inner = Material.AIR;
|
|
||||||
if (args.length >= 2)
|
if (args.length >= 2)
|
||||||
{
|
{
|
||||||
if (TFM_Util.isStopCommand(args[1]))
|
if (TFM_Util.isStopCommand(args[1]))
|
||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "Uncaging " + p.getName() + ".", true);
|
TFM_Util.adminAction(sender.getName(), "Uncaging " + player.getName(), true);
|
||||||
|
|
||||||
playerdata.setCaged(false);
|
playerdata.setCaged(false);
|
||||||
playerdata.regenerateHistory();
|
playerdata.regenerateHistory();
|
||||||
@ -50,10 +77,13 @@ public class Command_cage extends TFM_Command
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
cage_material_outer = Material.matchMaterial(args[1]);
|
if ("darth".equalsIgnoreCase(args[1]))
|
||||||
if (cage_material_outer == null)
|
|
||||||
{
|
{
|
||||||
cage_material_outer = Material.GLASS;
|
outerMaterial = Material.SKULL;
|
||||||
|
}
|
||||||
|
else if (Material.matchMaterial(args[1]) != null)
|
||||||
|
{
|
||||||
|
outerMaterial = Material.matchMaterial(args[1]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -62,25 +92,32 @@ public class Command_cage extends TFM_Command
|
|||||||
{
|
{
|
||||||
if (args[2].equalsIgnoreCase("water"))
|
if (args[2].equalsIgnoreCase("water"))
|
||||||
{
|
{
|
||||||
cage_material_inner = Material.STATIONARY_WATER;
|
innerMaterial = Material.STATIONARY_WATER;
|
||||||
}
|
}
|
||||||
else if (args[2].equalsIgnoreCase("lava"))
|
else if (args[2].equalsIgnoreCase("lava"))
|
||||||
{
|
{
|
||||||
cage_material_inner = Material.STATIONARY_LAVA;
|
innerMaterial = Material.STATIONARY_LAVA;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Location target_pos = p.getLocation().add(0, 1, 0);
|
Location targetPos = player.getLocation().clone().add(0, 1, 0);
|
||||||
playerdata.setCaged(true, target_pos, cage_material_outer, cage_material_inner);
|
playerdata.setCaged(true, targetPos, outerMaterial, innerMaterial);
|
||||||
playerdata.regenerateHistory();
|
playerdata.regenerateHistory();
|
||||||
playerdata.clearHistory();
|
playerdata.clearHistory();
|
||||||
TFM_Util.buildHistory(target_pos, 2, playerdata);
|
TFM_Util.buildHistory(targetPos, 2, playerdata);
|
||||||
TFM_Util.generateCube(target_pos, 2, playerdata.getCageMaterial(TFM_PlayerData.CageLayer.OUTER));
|
TFM_Util.generateHollowCube(targetPos, 2, outerMaterial);
|
||||||
TFM_Util.generateCube(target_pos, 1, playerdata.getCageMaterial(TFM_PlayerData.CageLayer.INNER));
|
TFM_Util.generateCube(targetPos, 1, innerMaterial);
|
||||||
|
|
||||||
p.setGameMode(GameMode.SURVIVAL);
|
player.setGameMode(GameMode.SURVIVAL);
|
||||||
|
|
||||||
TFM_Util.adminAction(sender.getName(), "Caging " + p.getName() + ".", true);
|
if (outerMaterial != Material.SKULL)
|
||||||
|
{
|
||||||
|
TFM_Util.adminAction(sender.getName(), "Caging " + player.getName(), true);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TFM_Util.adminAction(sender.getName(), "Caging " + player.getName() + " in PURE_DARTH", true);
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,7 @@ package me.StevenLawson.TotalFreedomMod.Commands;
|
|||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
||||||
|
import org.bukkit.Achievement;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
@ -27,10 +28,14 @@ public class Command_cake extends TFM_Command
|
|||||||
output.append(ChatColor.COLOR_CHAR).append(color_code).append(word).append(" ");
|
output.append(ChatColor.COLOR_CHAR).append(color_code).append(word).append(" ");
|
||||||
}
|
}
|
||||||
|
|
||||||
for (Player p : server.getOnlinePlayers())
|
for (Player player : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
ItemStack heldItem = new ItemStack(Material.CAKE, 1);
|
ItemStack heldItem = new ItemStack(Material.CAKE, 1);
|
||||||
p.getInventory().setItem(p.getInventory().firstEmpty(), heldItem);
|
player.getInventory().setItem(player.getInventory().firstEmpty(), heldItem);
|
||||||
|
player.awardAchievement(Achievement.MINE_WOOD);
|
||||||
|
player.awardAchievement(Achievement.BUILD_WORKBENCH);
|
||||||
|
player.awardAchievement(Achievement.BUILD_HOE);
|
||||||
|
player.awardAchievement(Achievement.BAKE_CAKE);
|
||||||
}
|
}
|
||||||
|
|
||||||
TFM_Util.bcastMsg(output.toString());
|
TFM_Util.bcastMsg(output.toString());
|
||||||
|
@ -13,15 +13,15 @@ public class Command_cartsit extends TFM_Command
|
|||||||
@Override
|
@Override
|
||||||
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||||
{
|
{
|
||||||
Player target_player = sender_p;
|
Player targetPlayer = sender_p;
|
||||||
|
|
||||||
if (args.length == 1)
|
if (args.length == 1)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
target_player = getPlayer(args[0]);
|
targetPlayer = getPlayer(args[0]);
|
||||||
}
|
}
|
||||||
catch (CantFindPlayerException ex)
|
catch (PlayerNotFoundException ex)
|
||||||
{
|
{
|
||||||
sender.sendMessage(ex.getMessage());
|
sender.sendMessage(ex.getMessage());
|
||||||
return true;
|
return true;
|
||||||
@ -30,26 +30,26 @@ public class Command_cartsit extends TFM_Command
|
|||||||
|
|
||||||
if (senderIsConsole)
|
if (senderIsConsole)
|
||||||
{
|
{
|
||||||
if (target_player == null)
|
if (targetPlayer == null)
|
||||||
{
|
{
|
||||||
sender.sendMessage("When used from the console, you must define a target player: /cartsit <player>");
|
sender.sendMessage("When used from the console, you must define a target player: /cartsit <player>");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (target_player != sender_p && !TFM_SuperadminList.isUserSuperadmin(sender))
|
else if (targetPlayer != sender_p && !TFM_SuperadminList.isUserSuperadmin(sender))
|
||||||
{
|
{
|
||||||
sender.sendMessage("Only superadmins can select another player as a /cartsit target.");
|
sender.sendMessage("Only superadmins can select another player as a /cartsit target.");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (target_player.isInsideVehicle())
|
if (targetPlayer.isInsideVehicle())
|
||||||
{
|
{
|
||||||
target_player.getVehicle().eject();
|
targetPlayer.getVehicle().eject();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Minecart nearest_cart = null;
|
Minecart nearest_cart = null;
|
||||||
for (Minecart cart : target_player.getWorld().getEntitiesByClass(Minecart.class))
|
for (Minecart cart : targetPlayer.getWorld().getEntitiesByClass(Minecart.class))
|
||||||
{
|
{
|
||||||
if (cart.isEmpty())
|
if (cart.isEmpty())
|
||||||
{
|
{
|
||||||
@ -59,7 +59,7 @@ public class Command_cartsit extends TFM_Command
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (cart.getLocation().distanceSquared(target_player.getLocation()) < nearest_cart.getLocation().distanceSquared(target_player.getLocation()))
|
if (cart.getLocation().distanceSquared(targetPlayer.getLocation()) < nearest_cart.getLocation().distanceSquared(targetPlayer.getLocation()))
|
||||||
{
|
{
|
||||||
nearest_cart = cart;
|
nearest_cart = cart;
|
||||||
}
|
}
|
||||||
@ -69,7 +69,7 @@ public class Command_cartsit extends TFM_Command
|
|||||||
|
|
||||||
if (nearest_cart != null)
|
if (nearest_cart != null)
|
||||||
{
|
{
|
||||||
nearest_cart.setPassenger(target_player);
|
nearest_cart.setPassenger(targetPlayer);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
206
src/me/StevenLawson/TotalFreedomMod/Commands/Command_cbtool.java
Normal file
206
src/me/StevenLawson/TotalFreedomMod/Commands/Command_cbtool.java
Normal file
@ -0,0 +1,206 @@
|
|||||||
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.regex.Matcher;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_Log;
|
||||||
|
import net.minecraft.util.org.apache.commons.lang3.ArrayUtils;
|
||||||
|
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.World;
|
||||||
|
import org.bukkit.block.Block;
|
||||||
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
@CommandPermissions(level = AdminLevel.ALL, source = SourceType.BOTH)
|
||||||
|
@CommandParameters(description = "No Description Yet", usage = "/<command>")
|
||||||
|
public class Command_cbtool extends TFM_Command
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||||
|
{
|
||||||
|
if (args.length < 1)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ("targetblock".equalsIgnoreCase(args[0]) && sender instanceof Player)
|
||||||
|
{
|
||||||
|
Block targetBlock = sender_p.getTargetBlock(null, 100);
|
||||||
|
playerMsg("Your target block: " + targetBlock.getLocation().toString());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
final StringBuffer generatedCommand = new StringBuffer();
|
||||||
|
|
||||||
|
final Matcher matcher = Pattern.compile("\\[(.+?)\\]").matcher(StringUtils.join(args, " ").trim());
|
||||||
|
while (matcher.find())
|
||||||
|
{
|
||||||
|
matcher.appendReplacement(generatedCommand, processSubCommand(matcher.group(1)));
|
||||||
|
}
|
||||||
|
matcher.appendTail(generatedCommand);
|
||||||
|
|
||||||
|
server.dispatchCommand(sender, generatedCommand.toString());
|
||||||
|
}
|
||||||
|
catch (SubCommandFailureException ex)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
TFM_Log.severe(ex);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private String processSubCommand(final String subcommand) throws SubCommandFailureException
|
||||||
|
{
|
||||||
|
final String[] args = StringUtils.split(subcommand, " ");
|
||||||
|
|
||||||
|
if (args.length == 1)
|
||||||
|
{
|
||||||
|
throw new SubCommandFailureException("Invalid subcommand name.");
|
||||||
|
}
|
||||||
|
|
||||||
|
return SubCommand.getByName(args[0]).getExecutable().execute(ArrayUtils.remove(args, 0));
|
||||||
|
}
|
||||||
|
|
||||||
|
private static enum SubCommand
|
||||||
|
{
|
||||||
|
PLAYER_DETECT("playerdetect", new SubCommandExecutable()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public String execute(String[] args) throws SubCommandFailureException
|
||||||
|
{
|
||||||
|
if (args.length != 5)
|
||||||
|
{
|
||||||
|
throw new SubCommandFailureException("Invalid # of arguments.");
|
||||||
|
}
|
||||||
|
|
||||||
|
double x, y, z;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
x = Double.parseDouble(args[0].trim());
|
||||||
|
y = Double.parseDouble(args[1].trim());
|
||||||
|
z = Double.parseDouble(args[2].trim());
|
||||||
|
}
|
||||||
|
catch (NumberFormatException ex)
|
||||||
|
{
|
||||||
|
throw new SubCommandFailureException("Invalid coordinates.");
|
||||||
|
}
|
||||||
|
|
||||||
|
World world = null;
|
||||||
|
final String needleWorldName = args[3].trim();
|
||||||
|
final List<World> worlds = Bukkit.getWorlds();
|
||||||
|
for (final World testWorld : worlds)
|
||||||
|
{
|
||||||
|
if (testWorld.getName().trim().equalsIgnoreCase(needleWorldName))
|
||||||
|
{
|
||||||
|
world = testWorld;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (world == null)
|
||||||
|
{
|
||||||
|
throw new SubCommandFailureException("Invalid world name.");
|
||||||
|
}
|
||||||
|
|
||||||
|
final Location testLocation = new Location(world, x, y, z);
|
||||||
|
|
||||||
|
double radius;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
radius = Double.parseDouble(args[4].trim());
|
||||||
|
}
|
||||||
|
catch (NumberFormatException ex)
|
||||||
|
{
|
||||||
|
throw new SubCommandFailureException("Invalid radius.");
|
||||||
|
}
|
||||||
|
|
||||||
|
final double radiusSq = radius * radius;
|
||||||
|
|
||||||
|
final List<Player> worldPlayers = testLocation.getWorld().getPlayers();
|
||||||
|
for (final Player testPlayer : worldPlayers)
|
||||||
|
{
|
||||||
|
if (testPlayer.getLocation().distanceSquared(testLocation) < radiusSq)
|
||||||
|
{
|
||||||
|
return testPlayer.getName();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new SubCommandFailureException("No player found in range.");
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
PLAYER_DETECT_BOOLEAN("playerdetectboolean", new SubCommandExecutable()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public String execute(String[] args) throws SubCommandFailureException
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
PLAYER_DETECT.getExecutable().execute(args);
|
||||||
|
}
|
||||||
|
catch (SubCommandFailureException ex)
|
||||||
|
{
|
||||||
|
return "0";
|
||||||
|
}
|
||||||
|
|
||||||
|
return "1";
|
||||||
|
}
|
||||||
|
});
|
||||||
|
//
|
||||||
|
private final String name;
|
||||||
|
private final SubCommandExecutable executable;
|
||||||
|
|
||||||
|
private SubCommand(String subCommandName, SubCommandExecutable subCommandImpl)
|
||||||
|
{
|
||||||
|
this.name = subCommandName;
|
||||||
|
this.executable = subCommandImpl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public SubCommandExecutable getExecutable()
|
||||||
|
{
|
||||||
|
return executable;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName()
|
||||||
|
{
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static SubCommand getByName(String needle) throws SubCommandFailureException
|
||||||
|
{
|
||||||
|
needle = needle.trim();
|
||||||
|
for (SubCommand subCommand : values())
|
||||||
|
{
|
||||||
|
if (subCommand.getName().equalsIgnoreCase(needle))
|
||||||
|
{
|
||||||
|
return subCommand;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
throw new SubCommandFailureException("Invalid subcommand name.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private interface SubCommandExecutable
|
||||||
|
{
|
||||||
|
public String execute(String[] args) throws SubCommandFailureException;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class SubCommandFailureException extends Exception
|
||||||
|
{
|
||||||
|
public SubCommandFailureException()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public SubCommandFailureException(String message)
|
||||||
|
{
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -5,7 +5,7 @@ import java.util.Collections;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
import org.apache.commons.lang.StringUtils;
|
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -21,11 +21,11 @@ public class Command_cmdlist extends TFM_Command
|
|||||||
{
|
{
|
||||||
List<String> commands = new ArrayList<String>();
|
List<String> commands = new ArrayList<String>();
|
||||||
|
|
||||||
for (Plugin p : server.getPluginManager().getPlugins())
|
for (Plugin targetPlugin : server.getPluginManager().getPlugins())
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
PluginDescriptionFile desc = p.getDescription();
|
PluginDescriptionFile desc = targetPlugin.getDescription();
|
||||||
Map<String, Map<String, Object>> map = (Map<String, Map<String, Object>>) desc.getCommands();
|
Map<String, Map<String, Object>> map = (Map<String, Map<String, Object>>) desc.getCommands();
|
||||||
|
|
||||||
if (map != null)
|
if (map != null)
|
||||||
|
@ -6,7 +6,7 @@ import org.bukkit.command.CommandSender;
|
|||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.ONLY_IN_GAME)
|
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.ONLY_IN_GAME)
|
||||||
@CommandParameters(description = "Spy on commands", usage = "/<command>")
|
@CommandParameters(description = "Spy on commands", usage = "/<command>", aliases = "commandspy")
|
||||||
public class Command_cmdspy extends TFM_Command
|
public class Command_cmdspy extends TFM_Command
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
|
@ -0,0 +1,58 @@
|
|||||||
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.Map;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_EssentialsBridge;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
|
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
@CommandPermissions(level = AdminLevel.OP, source = SourceType.ONLY_IN_GAME)
|
||||||
|
@CommandParameters(description = "Essentials Interface Command - Color your current nickname.", usage = "/<command> <color>")
|
||||||
|
public class Command_colorme extends TFM_Command
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||||
|
{
|
||||||
|
if (args.length != 1)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ("list".equalsIgnoreCase(args[0]))
|
||||||
|
{
|
||||||
|
playerMsg("Colors: " + StringUtils.join(TFM_Util.CHAT_COLOR_NAMES.keySet(), ", "));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
final String needle = args[0].trim().toLowerCase();
|
||||||
|
ChatColor color = null;
|
||||||
|
final Iterator<Map.Entry<String, ChatColor>> it = TFM_Util.CHAT_COLOR_NAMES.entrySet().iterator();
|
||||||
|
while (it.hasNext())
|
||||||
|
{
|
||||||
|
final Map.Entry<String, ChatColor> entry = it.next();
|
||||||
|
if (entry.getKey().contains(needle))
|
||||||
|
{
|
||||||
|
color = entry.getValue();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (color == null)
|
||||||
|
{
|
||||||
|
playerMsg("Invalid color: " + needle + " - Use \"/colorme list\" to list colors.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
final String newNick = color + ChatColor.stripColor(sender_p.getDisplayName()).trim() + ChatColor.WHITE;
|
||||||
|
|
||||||
|
TFM_EssentialsBridge.getInstance().setNickname(sender.getName(), newNick);
|
||||||
|
|
||||||
|
playerMsg("Your nickname is now: " + newNick);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,70 @@
|
|||||||
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
|
||||||
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.ONLY_CONSOLE)
|
||||||
|
@CommandParameters(description = "Temporarily change config parameters.", usage = "/<command> <entry> <value>")
|
||||||
|
public class Command_config extends TFM_Command
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||||
|
{
|
||||||
|
if (args.length != 2)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
TFM_ConfigEntry entry = TFM_ConfigEntry.findConfigEntry(args[0]);
|
||||||
|
|
||||||
|
if (entry == null)
|
||||||
|
{
|
||||||
|
sender.sendMessage("Can't find configuration option: " + args[0]);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
Object newValue = null;
|
||||||
|
final String newValueString = args[1].trim();
|
||||||
|
final Class<?> type = entry.getType();
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (type.isAssignableFrom(Integer.class))
|
||||||
|
{
|
||||||
|
newValue = new Integer(newValueString);
|
||||||
|
entry.setInteger((Integer) newValue);
|
||||||
|
}
|
||||||
|
else if (type.isAssignableFrom(Double.class))
|
||||||
|
{
|
||||||
|
newValue = new Double(newValueString);
|
||||||
|
entry.setDouble((Double) newValue);
|
||||||
|
}
|
||||||
|
else if (type.isAssignableFrom(Boolean.class))
|
||||||
|
{
|
||||||
|
newValue = Boolean.valueOf(newValueString);
|
||||||
|
entry.setBoolean((Boolean) newValue);
|
||||||
|
}
|
||||||
|
else if (type.isAssignableFrom(String.class))
|
||||||
|
{
|
||||||
|
newValue = newValueString;
|
||||||
|
entry.setString((String) newValue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
if (newValue != null)
|
||||||
|
{
|
||||||
|
sender.sendMessage(String.format("Set configuration entry \"%s\" to \"%s\" value \"%s\".",
|
||||||
|
entry.toString(), type.getName(), newValue.toString()));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sender.sendMessage("Could not parse value \"" + newValueString + "\" as type \"" + type.getName() + "\".");
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
@ -24,10 +24,10 @@ public class Command_creative extends TFM_Command
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Player p;
|
Player player;
|
||||||
if (args.length == 0)
|
if (args.length == 0)
|
||||||
{
|
{
|
||||||
p = sender_p;
|
player = sender_p;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -39,9 +39,9 @@ public class Command_creative extends TFM_Command
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (Player player : server.getOnlinePlayers())
|
for (Player targetPlayer : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
player.setGameMode(GameMode.CREATIVE);
|
targetPlayer.setGameMode(GameMode.CREATIVE);
|
||||||
}
|
}
|
||||||
|
|
||||||
TFM_Util.adminAction(sender.getName(), "Changing everyone's gamemode to creative", false);
|
TFM_Util.adminAction(sender.getName(), "Changing everyone's gamemode to creative", false);
|
||||||
@ -56,9 +56,9 @@ public class Command_creative extends TFM_Command
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
p = getPlayer(args[0]);
|
player = getPlayer(args[0]);
|
||||||
}
|
}
|
||||||
catch (CantFindPlayerException ex)
|
catch (PlayerNotFoundException ex)
|
||||||
{
|
{
|
||||||
sender.sendMessage(ex.getMessage());
|
sender.sendMessage(ex.getMessage());
|
||||||
return true;
|
return true;
|
||||||
@ -66,9 +66,9 @@ public class Command_creative extends TFM_Command
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
playerMsg("Setting " + p.getName() + " to game mode 'Creative'.");
|
playerMsg("Setting " + player.getName() + " to game mode 'Creative'.");
|
||||||
playerMsg(p, sender.getName() + " set your game mode to 'Creative'.");
|
playerMsg(player, sender.getName() + " set your game mode to 'Creative'.");
|
||||||
p.setGameMode(GameMode.CREATIVE);
|
player.setGameMode(GameMode.CREATIVE);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import org.apache.commons.lang.StringUtils;
|
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
@ -6,6 +6,7 @@ import org.bukkit.Sound;
|
|||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.BOTH, block_host_console = true)
|
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.BOTH, block_host_console = true)
|
||||||
@CommandParameters(description = "Make some noise.", usage = "/<command>")
|
@CommandParameters(description = "Make some noise.", usage = "/<command>")
|
||||||
@ -17,20 +18,20 @@ public class Command_deafen extends TFM_Command
|
|||||||
@Override
|
@Override
|
||||||
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||||
{
|
{
|
||||||
for (final Player p : server.getOnlinePlayers())
|
for (final Player player : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
for (double percent = 0.0; percent <= 1.0; percent += (1.0 / STEPS))
|
for (double percent = 0.0; percent <= 1.0; percent += (1.0 / STEPS))
|
||||||
{
|
{
|
||||||
final float pitch = (float) (percent * 2.0);
|
final float pitch = (float) (percent * 2.0);
|
||||||
|
|
||||||
server.getScheduler().scheduleSyncDelayedTask(plugin, new Runnable()
|
new BukkitRunnable()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public void run()
|
public void run()
|
||||||
{
|
{
|
||||||
p.playSound(randomOffset(p.getLocation(), 5.0), Sound.values()[random.nextInt(Sound.values().length)], 100.0f, pitch);
|
player.playSound(randomOffset(player.getLocation(), 5.0), Sound.values()[random.nextInt(Sound.values().length)], 100.0f, pitch);
|
||||||
}
|
}
|
||||||
}, Math.round(20.0 * percent * 2.0));
|
}.runTaskLater(plugin, Math.round(20.0 * percent * 2.0));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
111
src/me/StevenLawson/TotalFreedomMod/Commands/Command_debug.java
Normal file
111
src/me/StevenLawson/TotalFreedomMod/Commands/Command_debug.java
Normal file
@ -0,0 +1,111 @@
|
|||||||
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
|
import java.lang.reflect.Field;
|
||||||
|
import net.minecraft.util.org.apache.commons.lang3.ArrayUtils;
|
||||||
|
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.ONLY_CONSOLE)
|
||||||
|
@CommandParameters(description = "For developers only - debug things via reflection.", usage = "/<command>")
|
||||||
|
public class Command_debug extends TFM_Command
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||||
|
{
|
||||||
|
if (args.length < 3)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
String className = args[0];
|
||||||
|
String fieldName = args[1];
|
||||||
|
String newValue = StringUtils.join(ArrayUtils.subarray(args, 2, args.length), " ");
|
||||||
|
|
||||||
|
if (className.equalsIgnoreCase("_"))
|
||||||
|
{
|
||||||
|
className = "me.StevenLawson.TotalFreedomMod.TotalFreedomMod";
|
||||||
|
}
|
||||||
|
|
||||||
|
setStaticValue(className, fieldName, newValue);
|
||||||
|
|
||||||
|
sender.sendMessage("Debug: OK");
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
sender.sendMessage(ex.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void setStaticValue(final String className, final String fieldName, final String newValueString) throws Exception
|
||||||
|
{
|
||||||
|
Class<?> forName = Class.forName(className);
|
||||||
|
if (forName != null)
|
||||||
|
{
|
||||||
|
final Field field = forName.getDeclaredField(fieldName);
|
||||||
|
if (field != null)
|
||||||
|
{
|
||||||
|
Object newValue;
|
||||||
|
|
||||||
|
Class<?> type = field.getType();
|
||||||
|
if (type.isPrimitive())
|
||||||
|
{
|
||||||
|
if (type.getName().equals("int"))
|
||||||
|
{
|
||||||
|
newValue = Integer.parseInt(newValueString);
|
||||||
|
}
|
||||||
|
else if (type.getName().equals("double"))
|
||||||
|
{
|
||||||
|
newValue = Double.parseDouble(newValueString);
|
||||||
|
}
|
||||||
|
else if (type.getName().equals("boolean"))
|
||||||
|
{
|
||||||
|
newValue = Boolean.parseBoolean(newValueString);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
throw new Exception("Unknown primitive field type.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (type.isAssignableFrom(Integer.class))
|
||||||
|
{
|
||||||
|
newValue = new Integer(newValueString);
|
||||||
|
}
|
||||||
|
else if (type.isAssignableFrom(Double.class))
|
||||||
|
{
|
||||||
|
newValue = new Double(newValueString);
|
||||||
|
}
|
||||||
|
else if (type.isAssignableFrom(Boolean.class))
|
||||||
|
{
|
||||||
|
newValue = Boolean.valueOf(newValueString);
|
||||||
|
}
|
||||||
|
else if (type.isAssignableFrom(String.class))
|
||||||
|
{
|
||||||
|
newValue = newValueString;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
throw new Exception("Unknown complex field type.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
field.setAccessible(true);
|
||||||
|
|
||||||
|
final Object oldValue = field.get(Class.forName(className));
|
||||||
|
if (oldValue != null)
|
||||||
|
{
|
||||||
|
field.set(oldValue, newValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
field.setAccessible(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,26 @@
|
|||||||
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_EssentialsBridge;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||||
|
@CommandParameters(description = "Essentials Interface Command - Remove the nickname of all players on the server.", usage = "/<command>")
|
||||||
|
public class Command_denick extends TFM_Command
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||||
|
{
|
||||||
|
TFM_Util.adminAction(sender.getName(), "Removing all nicknames.", false);
|
||||||
|
|
||||||
|
Player[] onlinePlayers = server.getOnlinePlayers();
|
||||||
|
for (Player player : onlinePlayers)
|
||||||
|
{
|
||||||
|
TFM_EssentialsBridge.getInstance().setNickname(player.getName(), null);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
@ -18,25 +18,25 @@ public class Command_deop extends TFM_Command
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
OfflinePlayer p = null;
|
OfflinePlayer player = null;
|
||||||
|
|
||||||
for (Player onlinePlayer : server.getOnlinePlayers())
|
for (Player onlinePlayer : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
if (args[0].equalsIgnoreCase(onlinePlayer.getName()))
|
if (args[0].equalsIgnoreCase(onlinePlayer.getName()))
|
||||||
{
|
{
|
||||||
p = onlinePlayer;
|
player = onlinePlayer;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// if the player is not online
|
// if the player is not online
|
||||||
if (p == null)
|
if (player == null)
|
||||||
{
|
{
|
||||||
p = server.getOfflinePlayer(args[0]);
|
player = server.getOfflinePlayer(args[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
TFM_Util.adminAction(sender.getName(), "De-opping " + p.getName(), false);
|
TFM_Util.adminAction(sender.getName(), "De-opping " + player.getName(), false);
|
||||||
|
|
||||||
p.setOp(false);
|
player.setOp(false);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -15,10 +15,10 @@ public class Command_deopall extends TFM_Command
|
|||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "De-opping all players on the server", true);
|
TFM_Util.adminAction(sender.getName(), "De-opping all players on the server", true);
|
||||||
|
|
||||||
for (Player p : server.getOnlinePlayers())
|
for (Player player : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
p.setOp(false);
|
player.setOp(false);
|
||||||
p.sendMessage(TotalFreedomMod.YOU_ARE_NOT_OP);
|
player.sendMessage(TotalFreedomMod.YOU_ARE_NOT_OP);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -3,7 +3,7 @@ package me.StevenLawson.TotalFreedomMod.Commands;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import org.apache.commons.lang.StringUtils;
|
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
@ -74,13 +74,13 @@ public class Command_dispfill extends TFM_Command
|
|||||||
{
|
{
|
||||||
for (int z_offset = -radius; z_offset <= radius; z_offset++)
|
for (int z_offset = -radius; z_offset <= radius; z_offset++)
|
||||||
{
|
{
|
||||||
Block target_block = center_block.getRelative(x_offset, y_offset, z_offset);
|
Block targetBlock = center_block.getRelative(x_offset, y_offset, z_offset);
|
||||||
if (target_block.getLocation().distanceSquared(center_location) < (radius * radius))
|
if (targetBlock.getLocation().distanceSquared(center_location) < (radius * radius))
|
||||||
{
|
{
|
||||||
if (target_block.getType().equals(Material.DISPENSER))
|
if (targetBlock.getType().equals(Material.DISPENSER))
|
||||||
{
|
{
|
||||||
sender.sendMessage("Filling dispenser @ " + TFM_Util.formatLocation(target_block.getLocation()));
|
sender.sendMessage("Filling dispenser @ " + TFM_Util.formatLocation(targetBlock.getLocation()));
|
||||||
setDispenserContents(target_block, items_array);
|
setDispenserContents(targetBlock, items_array);
|
||||||
affected++;
|
affected++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -98,9 +98,9 @@ public class Command_dispfill extends TFM_Command
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void setDispenserContents(Block target_block, ItemStack[] items)
|
private static void setDispenserContents(Block targetBlock, ItemStack[] items)
|
||||||
{
|
{
|
||||||
Dispenser dispenser = (Dispenser) target_block.getState();
|
Dispenser dispenser = (Dispenser) targetBlock.getState();
|
||||||
Inventory disp_inv = dispenser.getInventory();
|
Inventory disp_inv = dispenser.getInventory();
|
||||||
disp_inv.clear();
|
disp_inv.clear();
|
||||||
disp_inv.addItem(items);
|
disp_inv.addItem(items);
|
||||||
|
@ -8,6 +8,7 @@ import org.bukkit.GameMode;
|
|||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.ONLY_CONSOLE)
|
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.ONLY_CONSOLE)
|
||||||
@CommandParameters(description = "For the bad Superadmins.", usage = "/<command> <playername>")
|
@CommandParameters(description = "For the bad Superadmins.", usage = "/<command> <playername>")
|
||||||
@ -21,82 +22,82 @@ public class Command_doom extends TFM_Command
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
final Player p;
|
final Player player;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
p = getPlayer(args[0]);
|
player = getPlayer(args[0]);
|
||||||
}
|
}
|
||||||
catch (CantFindPlayerException ex)
|
catch (PlayerNotFoundException ex)
|
||||||
{
|
{
|
||||||
sender.sendMessage(ex.getMessage());
|
sender.sendMessage(ex.getMessage());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
TFM_Util.adminAction(sender.getName(), "Casting oblivion over " + p.getName(), true);
|
TFM_Util.adminAction(sender.getName(), "Casting oblivion over " + player.getName(), true);
|
||||||
TFM_Util.bcastMsg(p.getName() + " will be completely obliviated!", ChatColor.RED);
|
TFM_Util.bcastMsg(player.getName() + " will be completely obliviated!", ChatColor.RED);
|
||||||
|
|
||||||
final String IP = p.getAddress().getAddress().getHostAddress().trim();
|
final String IP = player.getAddress().getAddress().getHostAddress().trim();
|
||||||
|
|
||||||
// remove from superadmin
|
// remove from superadmin
|
||||||
if (TFM_SuperadminList.isUserSuperadmin(p))
|
if (TFM_SuperadminList.isUserSuperadmin(player))
|
||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "Removing " + p.getName() + " from the superadmin list.", true);
|
TFM_Util.adminAction(sender.getName(), "Removing " + player.getName() + " from the superadmin list.", true);
|
||||||
TFM_SuperadminList.removeSuperadmin(p);
|
TFM_SuperadminList.removeSuperadmin(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
// remove from whitelist
|
// remove from whitelist
|
||||||
p.setWhitelisted(false);
|
player.setWhitelisted(false);
|
||||||
|
|
||||||
// deop
|
// deop
|
||||||
p.setOp(false);
|
player.setOp(false);
|
||||||
|
|
||||||
// ban IP
|
// ban IP
|
||||||
TFM_ServerInterface.banIP(IP, null, null, null);
|
TFM_ServerInterface.banIP(IP, null, null, null);
|
||||||
|
|
||||||
// ban name
|
// ban name
|
||||||
TFM_ServerInterface.banUsername(p.getName(), null, null, null);
|
TFM_ServerInterface.banUsername(player.getName(), null, null, null);
|
||||||
|
|
||||||
// set gamemode to survival
|
// set gamemode to survival
|
||||||
p.setGameMode(GameMode.SURVIVAL);
|
player.setGameMode(GameMode.SURVIVAL);
|
||||||
|
|
||||||
// clear inventory
|
// clear inventory
|
||||||
p.closeInventory();
|
player.closeInventory();
|
||||||
p.getInventory().clear();
|
player.getInventory().clear();
|
||||||
|
|
||||||
// ignite player
|
// ignite player
|
||||||
p.setFireTicks(10000);
|
player.setFireTicks(10000);
|
||||||
|
|
||||||
// generate explosion
|
// generate explosion
|
||||||
p.getWorld().createExplosion(p.getLocation(), 4F);
|
player.getWorld().createExplosion(player.getLocation(), 4F);
|
||||||
|
|
||||||
server.getScheduler().scheduleSyncDelayedTask(plugin, new Runnable()
|
new BukkitRunnable()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public void run()
|
public void run()
|
||||||
{
|
{
|
||||||
// strike lightning
|
// strike lightning
|
||||||
p.getWorld().strikeLightning(p.getLocation());
|
player.getWorld().strikeLightning(player.getLocation());
|
||||||
|
|
||||||
// kill (if not done already)
|
// kill (if not done already)
|
||||||
p.setHealth(0.0);
|
player.setHealth(0.0);
|
||||||
}
|
}
|
||||||
}, 40L); // 2 seconds
|
}.runTaskLater(plugin, 20L * 2L);
|
||||||
|
|
||||||
server.getScheduler().scheduleSyncDelayedTask(plugin, new Runnable()
|
new BukkitRunnable()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public void run()
|
public void run()
|
||||||
{
|
{
|
||||||
// message
|
// message
|
||||||
TFM_Util.adminAction(sender.getName(), "Banning " + p.getName() + ", IP: " + IP, true);
|
TFM_Util.adminAction(sender.getName(), "Banning " + player.getName() + ", IP: " + IP, true);
|
||||||
|
|
||||||
// generate explosion
|
// generate explosion
|
||||||
p.getWorld().createExplosion(p.getLocation(), 4F);
|
player.getWorld().createExplosion(player.getLocation(), 4F);
|
||||||
|
|
||||||
// kick player
|
// kick player
|
||||||
p.kickPlayer(ChatColor.RED + "FUCKOFF, and get your shit together!");
|
player.kickPlayer(ChatColor.RED + "FUCKOFF, and get your shit together!");
|
||||||
}
|
}
|
||||||
}, 60L); // 3 seconds
|
}.runTaskLater(plugin, 20L * 3L);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,25 @@
|
|||||||
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||||
|
@CommandParameters(description = "Enable/disable auto entity wiper.", usage = "/<command> <on | off>")
|
||||||
|
public class Command_droptoggle extends TFM_Command
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||||
|
{
|
||||||
|
if (args.length != 1)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
TFM_Util.adminAction(sender.getName(),
|
||||||
|
(TFM_ConfigEntry.AUTO_ENTITY_WIPE.setBoolean(!args[0].equalsIgnoreCase("off")) ? "Enabled" : "Disabled")
|
||||||
|
+ " automatic entity wiping.", false);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,42 @@
|
|||||||
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
|
|
||||||
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.plugin.Plugin;
|
||||||
|
import org.bukkit.plugin.PluginManager;
|
||||||
|
|
||||||
|
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||||
|
@CommandParameters(description = "Shortcut to enable/disable DisguiseCraft.", usage = "/<command>")
|
||||||
|
public class Command_dtoggle extends TFM_Command
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||||
|
{
|
||||||
|
Plugin disguiseCraft = server.getPluginManager().getPlugin("DisguiseCraft");
|
||||||
|
if (disguiseCraft != null)
|
||||||
|
{
|
||||||
|
PluginManager pluginManager = plugin.getServer().getPluginManager();
|
||||||
|
|
||||||
|
boolean enabled = disguiseCraft.isEnabled();
|
||||||
|
if (enabled)
|
||||||
|
{
|
||||||
|
pluginManager.disablePlugin(disguiseCraft);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
pluginManager.enablePlugin(disguiseCraft);
|
||||||
|
}
|
||||||
|
|
||||||
|
TFM_Util.adminAction(sender.getName(), (!enabled ? "Enabled" : "Disabled") + " DisguiseCraft.", true);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sender.sendMessage("DisguiseCraft is not installed on this server.");
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
@ -1,5 +1,7 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_Log;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.enchantments.Enchantment;
|
import org.bukkit.enchantments.Enchantment;
|
||||||
@ -52,12 +54,26 @@ public class Command_enchant extends TFM_Command
|
|||||||
else if (args[0].equalsIgnoreCase("addall"))
|
else if (args[0].equalsIgnoreCase("addall"))
|
||||||
{
|
{
|
||||||
for (Enchantment ench : Enchantment.values())
|
for (Enchantment ench : Enchantment.values())
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
2013-07-20 23:17:13 [INFO] [TotalFreedomMod]: Command Error: enchant
|
||||||
|
java.lang.NullPointerException
|
||||||
|
at net.minecraft.server.v1_6_R2.EnchantmentDurability.canEnchant(SourceFile:33)
|
||||||
|
at org.bukkit.craftbukkit.v1_6_R2.enchantments.CraftEnchantment.canEnchantItem(CraftEnchantment.java:55)
|
||||||
|
at me.StevenLawson.TotalFreedomMod.Commands.Command_enchant.run(Command_enchant.java:56)
|
||||||
|
*/
|
||||||
|
try
|
||||||
{
|
{
|
||||||
if (ench.canEnchantItem(itemInHand))
|
if (ench.canEnchantItem(itemInHand))
|
||||||
{
|
{
|
||||||
itemInHand.addEnchantment(ench, ench.getMaxLevel());
|
itemInHand.addEnchantment(ench, ench.getMaxLevel());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
TFM_Log.info("Error using " + ench.getName() + " on " + itemInHand.getType().name() + " held by " + sender_p.getName() + ".");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
playerMsg("Added all possible enchantments for this item.");
|
playerMsg("Added all possible enchantments for this item.");
|
||||||
}
|
}
|
||||||
@ -106,7 +122,7 @@ public class Command_enchant extends TFM_Command
|
|||||||
playerMsg("Can't use this enchantment on held item.");
|
playerMsg("Can't use this enchantment on held item.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (args[0].equalsIgnoreCase("remove"))
|
else if (TFM_Util.isRemoveCommand(args[0]))
|
||||||
{
|
{
|
||||||
itemInHand.removeEnchantment(ench);
|
itemInHand.removeEnchantment(ench);
|
||||||
|
|
||||||
|
@ -1,9 +1,13 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.util.Vector;
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.ONLY_IN_GAME)
|
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.ONLY_IN_GAME)
|
||||||
@CommandParameters(description = "Push people away from you.", usage = "/<command> [radius] [strength]")
|
@CommandParameters(description = "Push people away from you.", usage = "/<command> [radius] [strength]")
|
||||||
@ -12,8 +16,8 @@ public class Command_expel extends TFM_Command
|
|||||||
@Override
|
@Override
|
||||||
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||||
{
|
{
|
||||||
double radius = 15.0;
|
double radius = 20.0;
|
||||||
double strength = 20.0;
|
double strength = 5.0;
|
||||||
|
|
||||||
if (args.length >= 1)
|
if (args.length >= 1)
|
||||||
{
|
{
|
||||||
@ -21,7 +25,7 @@ public class Command_expel extends TFM_Command
|
|||||||
{
|
{
|
||||||
radius = Math.max(1.0, Math.min(100.0, Double.parseDouble(args[0])));
|
radius = Math.max(1.0, Math.min(100.0, Double.parseDouble(args[0])));
|
||||||
}
|
}
|
||||||
catch (NumberFormatException nfex)
|
catch (NumberFormatException ex)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -32,33 +36,50 @@ public class Command_expel extends TFM_Command
|
|||||||
{
|
{
|
||||||
strength = Math.max(0.0, Math.min(50.0, Double.parseDouble(args[1])));
|
strength = Math.max(0.0, Math.min(50.0, Double.parseDouble(args[1])));
|
||||||
}
|
}
|
||||||
catch (NumberFormatException nfex)
|
catch (NumberFormatException ex)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Location sender_pos = sender_p.getLocation();
|
List<String> pushedPlayers = new ArrayList<String>();
|
||||||
for (Player p : sender_pos.getWorld().getPlayers())
|
|
||||||
{
|
|
||||||
if (!p.equals(sender_p))
|
|
||||||
{
|
|
||||||
Location target_pos = p.getLocation();
|
|
||||||
|
|
||||||
boolean in_range = false;
|
final Vector senderPos = sender_p.getLocation().toVector();
|
||||||
|
final List<Player> players = sender_p.getWorld().getPlayers();
|
||||||
|
for (final Player player : players)
|
||||||
|
{
|
||||||
|
if (player.equals(sender_p))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
final Location targetPos = player.getLocation();
|
||||||
|
final Vector targetPosVec = targetPos.toVector();
|
||||||
|
|
||||||
|
boolean inRange = false;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
in_range = target_pos.distanceSquared(sender_pos) < (radius * radius);
|
inRange = targetPosVec.distanceSquared(senderPos) < (radius * radius);
|
||||||
}
|
}
|
||||||
catch (IllegalArgumentException ex)
|
catch (IllegalArgumentException ex)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
if (in_range)
|
if (inRange)
|
||||||
{
|
{
|
||||||
p.setVelocity(target_pos.clone().subtract(sender_pos).toVector().normalize().multiply(strength));
|
player.getWorld().createExplosion(targetPos, 0.0f, false);
|
||||||
playerMsg("Pushing " + p.getName() + ".");
|
player.setFlying(false);
|
||||||
|
player.setVelocity(targetPosVec.subtract(senderPos).normalize().multiply(strength));
|
||||||
|
pushedPlayers.add(player.getName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (pushedPlayers.isEmpty())
|
||||||
|
{
|
||||||
|
playerMsg("No players pushed.");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
playerMsg("Pushed " + pushedPlayers.size() + " players: " + StringUtils.join(pushedPlayers, ", "));
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -22,7 +22,7 @@ public class Command_explosives extends TFM_Command
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
TotalFreedomMod.explosiveRadius = Math.max(1.0, Math.min(30.0, Double.parseDouble(args[1])));
|
TFM_ConfigEntry.EXPLOSIVE_RADIUS.setDouble(Math.max(1.0, Math.min(30.0, Double.parseDouble(args[1]))));
|
||||||
}
|
}
|
||||||
catch (NumberFormatException nfex)
|
catch (NumberFormatException nfex)
|
||||||
{
|
{
|
||||||
@ -33,12 +33,12 @@ public class Command_explosives extends TFM_Command
|
|||||||
|
|
||||||
if (args[0].equalsIgnoreCase("on"))
|
if (args[0].equalsIgnoreCase("on"))
|
||||||
{
|
{
|
||||||
TotalFreedomMod.allowExplosions = true;
|
TFM_ConfigEntry.ALLOW_EXPLOSIONS.setBoolean(true);
|
||||||
playerMsg("Explosives are now enabled, radius set to " + TotalFreedomMod.explosiveRadius + " blocks.");
|
playerMsg("Explosives are now enabled, radius set to " + TFM_ConfigEntry.EXPLOSIVE_RADIUS.getDouble() + " blocks.");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
TotalFreedomMod.allowExplosions = false;
|
TFM_ConfigEntry.ALLOW_EXPLOSIONS.setBoolean(false);
|
||||||
playerMsg("Explosives are now disabled.");
|
playerMsg("Explosives are now disabled.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -0,0 +1,37 @@
|
|||||||
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_UserList;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
||||||
|
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||||
|
@CommandParameters(description = "Shows all IPs registered to a player", usage = "/<command> <player>")
|
||||||
|
public class Command_findip extends TFM_Command
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||||
|
{
|
||||||
|
if (args.length != 1)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
final Player player;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
player = getPlayer(args[0]);
|
||||||
|
}
|
||||||
|
catch (PlayerNotFoundException ex)
|
||||||
|
{
|
||||||
|
playerMsg(ex.getMessage());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
playerMsg("Player IPs: " + StringUtils.join(TFM_UserList.getInstance(TotalFreedomMod.plugin).getEntry(player).getIpAddresses(), ", "));
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
@ -1,6 +1,6 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -19,12 +19,12 @@ public class Command_fireplace extends TFM_Command
|
|||||||
|
|
||||||
if (args[0].equalsIgnoreCase("on"))
|
if (args[0].equalsIgnoreCase("on"))
|
||||||
{
|
{
|
||||||
TotalFreedomMod.allowFirePlace = true;
|
TFM_ConfigEntry.ALLOW_FIRE_PLACE.setBoolean(true);
|
||||||
playerMsg("Fire placement is now enabled.");
|
playerMsg("Fire placement is now enabled.");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
TotalFreedomMod.allowFirePlace = false;
|
TFM_ConfigEntry.ALLOW_FIRE_PLACE.setBoolean(false);
|
||||||
playerMsg("Fire placement is now disabled.");
|
playerMsg("Fire placement is now disabled.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_GameRuleHandler;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -17,16 +18,13 @@ public class Command_firespread extends TFM_Command
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (args[0].equalsIgnoreCase("on"))
|
boolean fireSpread = !args[0].equalsIgnoreCase("off");
|
||||||
{
|
|
||||||
TotalFreedomMod.allowFireSpread = true;
|
TFM_ConfigEntry.ALLOW_FIRE_SPREAD.setBoolean(fireSpread);
|
||||||
playerMsg("Fire spread is now enabled.");
|
|
||||||
}
|
playerMsg("Fire spread is now " + (fireSpread ? "enabled" : "disabled") + ".");
|
||||||
else
|
|
||||||
{
|
TFM_GameRuleHandler.setGameRule(TFM_GameRuleHandler.TFM_GameRule.DO_FIRE_TICK, fireSpread);
|
||||||
TotalFreedomMod.allowFireSpread = false;
|
|
||||||
playerMsg("Fire spread is now disabled.");
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -1,21 +1,21 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
import me.StevenLawson.TotalFreedomMod.TFM_Flatlands;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.ALL, source = SourceType.BOTH)
|
@CommandPermissions(level = AdminLevel.ALL, source = SourceType.ONLY_IN_GAME)
|
||||||
@CommandParameters(description = "Goto the flatlands.", usage = "/<command>")
|
@CommandParameters(description = "Goto the flatlands.", usage = "/<command>")
|
||||||
public class Command_flatlands extends TFM_Command
|
public class Command_flatlands extends TFM_Command
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||||
{
|
{
|
||||||
if (TotalFreedomMod.generateFlatlands)
|
if (TFM_ConfigEntry.GENERATE_FLATLANDS.getBoolean())
|
||||||
{
|
{
|
||||||
TFM_Util.gotoWorld(sender, "flatlands");
|
TFM_Flatlands.getInstance().sendToWorld(sender_p);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -17,16 +17,7 @@ public class Command_fluidspread extends TFM_Command
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (args[0].equalsIgnoreCase("on"))
|
playerMsg("Lava and water spread is now " + (TFM_ConfigEntry.ALLOW_FLUID_SPREAD.setBoolean(!args[0].equalsIgnoreCase("off")) ? "enabled" : "disabled") + ".");
|
||||||
{
|
|
||||||
TotalFreedomMod.allowFliudSpread = true;
|
|
||||||
playerMsg("Lava and water spread is now enabled.");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
TotalFreedomMod.allowFliudSpread = false;
|
|
||||||
playerMsg("Lava and water spread is now disabled.");
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Log;
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_PlayerData;
|
import me.StevenLawson.TotalFreedomMod.TFM_PlayerData;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
||||||
@ -8,6 +7,7 @@ import org.bukkit.ChatColor;
|
|||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||||
@CommandParameters(description = "Freeze players (toggles on and off).", usage = "/<command> [target | purge]")
|
@CommandParameters(description = "Freeze players (toggles on and off).", usage = "/<command> [target | purge]")
|
||||||
@ -24,33 +24,30 @@ public class Command_fr extends TFM_Command
|
|||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "Freezing all players", false);
|
TFM_Util.adminAction(sender.getName(), "Freezing all players", false);
|
||||||
TotalFreedomMod.allPlayersFrozen = true;
|
TotalFreedomMod.allPlayersFrozen = true;
|
||||||
TotalFreedomMod.freezePurgeEventId = server.getScheduler().scheduleSyncDelayedTask(plugin, new Runnable()
|
|
||||||
|
if (TotalFreedomMod.freezePurgeTask != null)
|
||||||
|
{
|
||||||
|
TotalFreedomMod.freezePurgeTask.cancel();
|
||||||
|
}
|
||||||
|
TotalFreedomMod.freezePurgeTask = new BukkitRunnable()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public void run()
|
public void run()
|
||||||
{
|
{
|
||||||
if (TotalFreedomMod.freezePurgeEventId == 0)
|
|
||||||
{
|
|
||||||
TFM_Log.warning("Freeze autopurge task was improperly cancelled!");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
TFM_Util.adminAction("FreezeTimer", "Unfreezing all players", false);
|
TFM_Util.adminAction("FreezeTimer", "Unfreezing all players", false);
|
||||||
|
|
||||||
TotalFreedomMod.allPlayersFrozen = false;
|
TotalFreedomMod.allPlayersFrozen = false;
|
||||||
TotalFreedomMod.freezePurgeEventId = 0;
|
|
||||||
}
|
}
|
||||||
}, 6000L); // five minutes in ticks: 20*60*5
|
}.runTaskLater(plugin, 20L * 60L * 5L);
|
||||||
|
|
||||||
playerMsg("Players are now frozen.");
|
playerMsg("Players are now frozen.");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "Unfreezing all players", false);
|
TFM_Util.adminAction(sender.getName(), "Unfreezing all players", false);
|
||||||
TotalFreedomMod.allPlayersFrozen = false;
|
TotalFreedomMod.allPlayersFrozen = false;
|
||||||
if (TotalFreedomMod.freezePurgeEventId != 0)
|
if (TotalFreedomMod.freezePurgeTask != null)
|
||||||
{
|
{
|
||||||
server.getScheduler().cancelTask(TotalFreedomMod.freezePurgeEventId);
|
TotalFreedomMod.freezePurgeTask.cancel();
|
||||||
TotalFreedomMod.freezePurgeEventId = 0;
|
|
||||||
}
|
}
|
||||||
playerMsg("Players are now free to move.");
|
playerMsg("Players are now free to move.");
|
||||||
}
|
}
|
||||||
@ -60,10 +57,14 @@ public class Command_fr extends TFM_Command
|
|||||||
if (args[0].toLowerCase().equals("purge"))
|
if (args[0].toLowerCase().equals("purge"))
|
||||||
{
|
{
|
||||||
TotalFreedomMod.allPlayersFrozen = false;
|
TotalFreedomMod.allPlayersFrozen = false;
|
||||||
|
if (TotalFreedomMod.freezePurgeTask != null)
|
||||||
for (Player p : server.getOnlinePlayers())
|
|
||||||
{
|
{
|
||||||
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(p);
|
TotalFreedomMod.freezePurgeTask.cancel();
|
||||||
|
}
|
||||||
|
|
||||||
|
for (Player player : server.getOnlinePlayers())
|
||||||
|
{
|
||||||
|
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
|
||||||
playerdata.setFrozen(false);
|
playerdata.setFrozen(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -71,22 +72,22 @@ public class Command_fr extends TFM_Command
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Player p;
|
Player player;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
p = getPlayer(args[0]);
|
player = getPlayer(args[0]);
|
||||||
}
|
}
|
||||||
catch (CantFindPlayerException ex)
|
catch (PlayerNotFoundException ex)
|
||||||
{
|
{
|
||||||
playerMsg(ex.getMessage(), ChatColor.RED);
|
playerMsg(ex.getMessage(), ChatColor.RED);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(p);
|
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
|
||||||
playerdata.setFrozen(!playerdata.isFrozen());
|
playerdata.setFrozen(!playerdata.isFrozen());
|
||||||
|
|
||||||
playerMsg(p.getName() + " has been " + (playerdata.isFrozen() ? "frozen" : "unfrozen") + ".");
|
playerMsg(player.getName() + " has been " + (playerdata.isFrozen() ? "frozen" : "unfrozen") + ".");
|
||||||
playerMsg(p, "You have been " + (playerdata.isFrozen() ? "frozen" : "unfrozen") + ".", ChatColor.AQUA);
|
playerMsg(player, "You have been " + (playerdata.isFrozen() ? "frozen" : "unfrozen") + ".", ChatColor.AQUA);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ import org.bukkit.entity.Player;
|
|||||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||||
@CommandParameters(
|
@CommandParameters(
|
||||||
description = "Use admin commands on someone by hash. Use mode 'list' to get a player's hash. Other modes are kick, nameban, ipban, ban, op, deop, ci",
|
description = "Use admin commands on someone by hash. Use mode 'list' to get a player's hash. Other modes are kick, nameban, ipban, ban, op, deop, ci",
|
||||||
usage = "/<command> [list | [<kick | nameban | ipban | ban | op | deop | ci> <targethash>] ]")
|
usage = "/<command> [list | [<kick | nameban | ipban | ban | op | deop | ci | fr> <targethash>] ]")
|
||||||
public class Command_gadmin extends TFM_Command
|
public class Command_gadmin extends TFM_Command
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
@ -30,77 +30,77 @@ public class Command_gadmin extends TFM_Command
|
|||||||
playerMsg("[ Real Name ] : [ Display Name ] - Hash:");
|
playerMsg("[ Real Name ] : [ Display Name ] - Hash:");
|
||||||
}
|
}
|
||||||
|
|
||||||
for (Player p : server.getOnlinePlayers())
|
for (Player player : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
String hash = p.getUniqueId().toString().substring(0, 4);
|
String hash = player.getUniqueId().toString().substring(0, 4);
|
||||||
if (mode.equals("list"))
|
if (mode.equals("list"))
|
||||||
{
|
{
|
||||||
sender.sendMessage(ChatColor.GRAY + String.format("[ %s ] : [ %s ] - %s",
|
sender.sendMessage(ChatColor.GRAY + String.format("[ %s ] : [ %s ] - %s",
|
||||||
p.getName(),
|
player.getName(),
|
||||||
ChatColor.stripColor(p.getDisplayName()),
|
ChatColor.stripColor(player.getDisplayName()),
|
||||||
hash));
|
hash));
|
||||||
}
|
}
|
||||||
else if (hash.equalsIgnoreCase(args[1]))
|
else if (hash.equalsIgnoreCase(args[1]))
|
||||||
{
|
{
|
||||||
if (mode.equals("kick"))
|
if (mode.equals("kick"))
|
||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), String.format("Kicking: %s.", p.getName()), false);
|
TFM_Util.adminAction(sender.getName(), String.format("Kicking: %s.", player.getName()), false);
|
||||||
p.kickPlayer("Kicked by Administrator");
|
player.kickPlayer("Kicked by Administrator");
|
||||||
}
|
}
|
||||||
else if (mode.equals("nameban"))
|
else if (mode.equals("nameban"))
|
||||||
{
|
{
|
||||||
TFM_ServerInterface.banUsername(p.getName(), null, null, null);
|
TFM_ServerInterface.banUsername(player.getName(), null, null, null);
|
||||||
TFM_Util.adminAction(sender.getName(), String.format("Banning Name: %s.", p.getName()), true);
|
TFM_Util.adminAction(sender.getName(), String.format("Banning Name: %s.", player.getName()), true);
|
||||||
p.kickPlayer("Username banned by Administrator.");
|
player.kickPlayer("Username banned by Administrator.");
|
||||||
}
|
}
|
||||||
else if (mode.equals("ipban"))
|
else if (mode.equals("ipban"))
|
||||||
{
|
{
|
||||||
String user_ip = p.getAddress().getAddress().getHostAddress();
|
String user_ip = player.getAddress().getAddress().getHostAddress();
|
||||||
String[] ip_parts = user_ip.split("\\.");
|
String[] ip_parts = user_ip.split("\\.");
|
||||||
if (ip_parts.length == 4)
|
if (ip_parts.length == 4)
|
||||||
{
|
{
|
||||||
user_ip = String.format("%s.%s.*.*", ip_parts[0], ip_parts[1]);
|
user_ip = String.format("%s.%s.*.*", ip_parts[0], ip_parts[1]);
|
||||||
}
|
}
|
||||||
TFM_Util.adminAction(sender.getName(), String.format("Banning IP: %s.", p.getName(), user_ip), true);
|
TFM_Util.adminAction(sender.getName(), String.format("Banning IP: %s.", player.getName(), user_ip), true);
|
||||||
TFM_ServerInterface.banIP(user_ip, null, null, null);
|
TFM_ServerInterface.banIP(user_ip, null, null, null);
|
||||||
p.kickPlayer("IP address banned by Administrator.");
|
player.kickPlayer("IP address banned by Administrator.");
|
||||||
}
|
}
|
||||||
else if (mode.equals("ban"))
|
else if (mode.equals("ban"))
|
||||||
{
|
{
|
||||||
String user_ip = p.getAddress().getAddress().getHostAddress();
|
String user_ip = player.getAddress().getAddress().getHostAddress();
|
||||||
String[] ip_parts = user_ip.split("\\.");
|
String[] ip_parts = user_ip.split("\\.");
|
||||||
if (ip_parts.length == 4)
|
if (ip_parts.length == 4)
|
||||||
{
|
{
|
||||||
user_ip = String.format("%s.%s.*.*", ip_parts[0], ip_parts[1]);
|
user_ip = String.format("%s.%s.*.*", ip_parts[0], ip_parts[1]);
|
||||||
}
|
}
|
||||||
TFM_Util.adminAction(sender.getName(), String.format("Banning Name: %s, IP: %s.", p.getName(), user_ip), true);
|
TFM_Util.adminAction(sender.getName(), String.format("Banning Name: %s, IP: %s.", player.getName(), user_ip), true);
|
||||||
TFM_ServerInterface.banIP(user_ip, null, null, null);
|
TFM_ServerInterface.banIP(user_ip, null, null, null);
|
||||||
TFM_ServerInterface.banUsername(p.getName(), null, null, null);
|
TFM_ServerInterface.banUsername(player.getName(), null, null, null);
|
||||||
p.kickPlayer("IP and username banned by Administrator.");
|
player.kickPlayer("IP and username banned by Administrator.");
|
||||||
}
|
}
|
||||||
else if (mode.equals("op"))
|
else if (mode.equals("op"))
|
||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), String.format("Opping %s.", p.getName()), false);
|
TFM_Util.adminAction(sender.getName(), String.format("Opping %s.", player.getName()), false);
|
||||||
p.setOp(false);
|
player.setOp(false);
|
||||||
p.sendMessage(TotalFreedomMod.YOU_ARE_OP);
|
player.sendMessage(TotalFreedomMod.YOU_ARE_OP);
|
||||||
}
|
}
|
||||||
else if (mode.equals("deop"))
|
else if (mode.equals("deop"))
|
||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), String.format("Deopping %s.", p.getName()), false);
|
TFM_Util.adminAction(sender.getName(), String.format("Deopping %s.", player.getName()), false);
|
||||||
p.setOp(false);
|
player.setOp(false);
|
||||||
p.sendMessage(TotalFreedomMod.YOU_ARE_NOT_OP);
|
player.sendMessage(TotalFreedomMod.YOU_ARE_NOT_OP);
|
||||||
}
|
}
|
||||||
else if (mode.equals("ci"))
|
else if (mode.equals("ci"))
|
||||||
{
|
{
|
||||||
p.getInventory().clear();
|
player.getInventory().clear();
|
||||||
}
|
}
|
||||||
else if (mode.equals("fr"))
|
else if (mode.equals("fr"))
|
||||||
{
|
{
|
||||||
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(p);
|
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
|
||||||
playerdata.setFrozen(!playerdata.isFrozen());
|
playerdata.setFrozen(!playerdata.isFrozen());
|
||||||
|
|
||||||
playerMsg(p.getName() + " has been " + (playerdata.isFrozen() ? "frozen" : "unfrozen") + ".");
|
playerMsg(player.getName() + " has been " + (playerdata.isFrozen() ? "frozen" : "unfrozen") + ".");
|
||||||
p.sendMessage(ChatColor.AQUA + "You have been " + (playerdata.isFrozen() ? "frozen" : "unfrozen") + ".");
|
player.sendMessage(ChatColor.AQUA + "You have been " + (playerdata.isFrozen() ? "frozen" : "unfrozen") + ".");
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -17,12 +17,12 @@ public class Command_gcmd extends TFM_Command
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Player p;
|
Player player;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
p = getPlayer(args[0]);
|
player = getPlayer(args[0]);
|
||||||
}
|
}
|
||||||
catch (CantFindPlayerException ex)
|
catch (PlayerNotFoundException ex)
|
||||||
{
|
{
|
||||||
sender.sendMessage(ex.getMessage());
|
sender.sendMessage(ex.getMessage());
|
||||||
return true;
|
return true;
|
||||||
@ -46,8 +46,8 @@ public class Command_gcmd extends TFM_Command
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
playerMsg("Sending command as " + p.getName() + ": " + outcommand);
|
playerMsg("Sending command as " + player.getName() + ": " + outcommand);
|
||||||
if (server.dispatchCommand(p, outcommand))
|
if (server.dispatchCommand(player, outcommand))
|
||||||
{
|
{
|
||||||
playerMsg("Command sent.");
|
playerMsg("Command sent.");
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@ import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
|
|||||||
import me.StevenLawson.TotalFreedomMod.TFM_UserList;
|
import me.StevenLawson.TotalFreedomMod.TFM_UserList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_UserList.TFM_UserListEntry;
|
import me.StevenLawson.TotalFreedomMod.TFM_UserList.TFM_UserListEntry;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import org.apache.commons.lang.StringUtils;
|
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -51,12 +51,12 @@ public class Command_glist extends TFM_Command
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Player p = getPlayer(args[1]);
|
Player player = getPlayer(args[1]);
|
||||||
|
|
||||||
username = p.getName();
|
username = player.getName();
|
||||||
ip_addresses.add(p.getAddress().getAddress().getHostAddress());
|
ip_addresses.add(player.getAddress().getAddress().getHostAddress());
|
||||||
}
|
}
|
||||||
catch (CantFindPlayerException ex)
|
catch (PlayerNotFoundException ex)
|
||||||
{
|
{
|
||||||
TFM_UserListEntry entry = TFM_UserList.getInstance(plugin).getEntry(args[1]);
|
TFM_UserListEntry entry = TFM_UserList.getInstance(plugin).getEntry(args[1]);
|
||||||
|
|
||||||
@ -75,11 +75,11 @@ public class Command_glist extends TFM_Command
|
|||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "Banning " + username + " and IPs: " + StringUtils.join(ip_addresses, ","), true);
|
TFM_Util.adminAction(sender.getName(), "Banning " + username + " and IPs: " + StringUtils.join(ip_addresses, ","), true);
|
||||||
|
|
||||||
Player p = server.getPlayerExact(username);
|
Player player = server.getPlayerExact(username);
|
||||||
if (p != null)
|
if (player != null)
|
||||||
{
|
{
|
||||||
TFM_ServerInterface.banUsername(p.getName(), null, null, null);
|
TFM_ServerInterface.banUsername(player.getName(), null, null, null);
|
||||||
p.kickPlayer("You have been banned by " + sender.getName() + "\n If you think you have been banned wrongly, appeal here: http://www.totalfreedom.boards.net");
|
player.kickPlayer("You have been banned by " + sender.getName() + "\n If you think you have been banned wrongly, appeal here: http://www.totalfreedom.boards.net");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1,7 +1,11 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_RollbackManager;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ServerInterface;
|
import me.StevenLawson.TotalFreedomMod.TFM_ServerInterface;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_WorldEditBridge;
|
||||||
|
import net.minecraft.util.org.apache.commons.lang3.ArrayUtils;
|
||||||
|
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.GameMode;
|
import org.bukkit.GameMode;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
@ -16,71 +20,71 @@ public class Command_gtfo extends TFM_Command
|
|||||||
@Override
|
@Override
|
||||||
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||||
{
|
{
|
||||||
if (args.length != 1)
|
if (args.length == 0)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Player p;
|
Player player;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
p = getPlayer(args[0]);
|
player = getPlayer(args[0]);
|
||||||
}
|
}
|
||||||
catch (CantFindPlayerException ex)
|
catch (PlayerNotFoundException ex)
|
||||||
{
|
{
|
||||||
playerMsg(ex.getMessage(), ChatColor.RED);
|
playerMsg(ex.getMessage(), ChatColor.RED);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
TFM_Util.bcastMsg(p.getName() + " has been a VERY naughty, naughty boy.", ChatColor.RED);
|
String ban_reason = null;
|
||||||
|
if (args.length >= 2)
|
||||||
|
{
|
||||||
|
ban_reason = StringUtils.join(ArrayUtils.subarray(args, 1, args.length), " ");
|
||||||
|
}
|
||||||
|
|
||||||
|
TFM_Util.bcastMsg(player.getName() + " has been a VERY naughty, naughty boy.", ChatColor.RED);
|
||||||
|
|
||||||
// Op Player
|
// Undo WorldEdits:
|
||||||
p.setOp(true);
|
TFM_WorldEditBridge.getInstance().undo(player, 15);
|
||||||
|
|
||||||
//Undo WorldEdits:
|
|
||||||
server.dispatchCommand(p, "/undo 15");
|
|
||||||
|
|
||||||
//rollback
|
|
||||||
|
|
||||||
server.dispatchCommand(sender, "rollback " + p.getName());
|
|
||||||
|
|
||||||
|
// rollback
|
||||||
|
TFM_RollbackManager.rollback(player.getName());
|
||||||
|
|
||||||
// deop
|
// deop
|
||||||
p.setOp(false);
|
player.setOp(false);
|
||||||
|
|
||||||
// set gamemode to survival:
|
// set gamemode to survival:
|
||||||
p.setGameMode(GameMode.SURVIVAL);
|
player.setGameMode(GameMode.SURVIVAL);
|
||||||
|
|
||||||
// clear inventory:
|
// clear inventory:
|
||||||
p.getInventory().clear();
|
player.getInventory().clear();
|
||||||
|
|
||||||
// strike with lightning effect:
|
// strike with lightning effect:
|
||||||
final Location target_pos = p.getLocation();
|
final Location targetPos = player.getLocation();
|
||||||
for (int x = -1; x <= 1; x++)
|
for (int x = -1; x <= 1; x++)
|
||||||
{
|
{
|
||||||
for (int z = -1; z <= 1; z++)
|
for (int z = -1; z <= 1; z++)
|
||||||
{
|
{
|
||||||
final Location strike_pos = new Location(target_pos.getWorld(), target_pos.getBlockX() + x, target_pos.getBlockY(), target_pos.getBlockZ() + z);
|
final Location strike_pos = new Location(targetPos.getWorld(), targetPos.getBlockX() + x, targetPos.getBlockY(), targetPos.getBlockZ() + z);
|
||||||
target_pos.getWorld().strikeLightning(strike_pos);
|
targetPos.getWorld().strikeLightning(strike_pos);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ban IP address:
|
// ban IP address:
|
||||||
String user_ip = p.getAddress().getAddress().getHostAddress();
|
String user_ip = player.getAddress().getAddress().getHostAddress();
|
||||||
String[] ip_parts = user_ip.split("\\.");
|
String[] ip_parts = user_ip.split("\\.");
|
||||||
if (ip_parts.length == 4)
|
if (ip_parts.length == 4)
|
||||||
{
|
{
|
||||||
user_ip = String.format("%s.%s.*.*", ip_parts[0], ip_parts[1]);
|
user_ip = String.format("%s.%s.*.*", ip_parts[0], ip_parts[1]);
|
||||||
}
|
}
|
||||||
TFM_Util.bcastMsg(String.format("Banning: %s, IP: %s.", p.getName(), user_ip), ChatColor.RED);
|
TFM_Util.bcastMsg(String.format("Banning: %s, IP: %s.", player.getName(), user_ip), ChatColor.RED);
|
||||||
TFM_ServerInterface.banIP(user_ip, null, null, null);
|
TFM_ServerInterface.banIP(user_ip, ban_reason, null, null);
|
||||||
|
|
||||||
// ban username:
|
// ban username:
|
||||||
TFM_ServerInterface.banUsername(p.getName(), null, null, null);
|
TFM_ServerInterface.banUsername(player.getName(), ban_reason, null, null);
|
||||||
|
|
||||||
// kick Player:
|
// kick Player:
|
||||||
p.kickPlayer("GTFO");
|
player.kickPlayer(ChatColor.RED + "GTFO" + (ban_reason != null ? ("\nReason: " + ChatColor.YELLOW + ban_reason) : ""));
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -23,11 +23,11 @@ public class Command_halt extends TFM_Command
|
|||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "Halting all non-superadmins.", true);
|
TFM_Util.adminAction(sender.getName(), "Halting all non-superadmins.", true);
|
||||||
int counter = 0;
|
int counter = 0;
|
||||||
for (Player p : server.getOnlinePlayers())
|
for (Player player : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
if (!TFM_SuperadminList.isUserSuperadmin(p))
|
if (!TFM_SuperadminList.isUserSuperadmin(player))
|
||||||
{
|
{
|
||||||
TFM_PlayerData.getPlayerData(p).setHalted(true);
|
TFM_PlayerData.getPlayerData(player).setHalted(true);
|
||||||
counter++;
|
counter++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -39,10 +39,10 @@ public class Command_halt extends TFM_Command
|
|||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "Unhalting all players.", true);
|
TFM_Util.adminAction(sender.getName(), "Unhalting all players.", true);
|
||||||
int counter = 0;
|
int counter = 0;
|
||||||
for (Player p : server.getOnlinePlayers())
|
for (Player player : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(p);
|
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
|
||||||
if (TFM_PlayerData.getPlayerData(p).isHalted())
|
if (TFM_PlayerData.getPlayerData(player).isHalted())
|
||||||
{
|
{
|
||||||
playerdata.setHalted(false);
|
playerdata.setHalted(false);
|
||||||
counter++;
|
counter++;
|
||||||
@ -76,32 +76,30 @@ public class Command_halt extends TFM_Command
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
Player p;
|
Player player;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
p = getPlayer(args[0]);
|
player = getPlayer(args[0]);
|
||||||
}
|
}
|
||||||
catch (CantFindPlayerException ex)
|
catch (PlayerNotFoundException ex)
|
||||||
{
|
{
|
||||||
sender.sendMessage(ex.getMessage());
|
sender.sendMessage(ex.getMessage());
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(p);
|
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
|
||||||
if (!playerdata.isHalted())
|
if (!playerdata.isHalted())
|
||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "Halting " + p.getName(), true);
|
TFM_Util.adminAction(sender.getName(), "Halting " + player.getName(), true);
|
||||||
playerdata.setHalted(true);
|
playerdata.setHalted(true);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "Unhalting " + p.getName(), true);
|
TFM_Util.adminAction(sender.getName(), "Unhalting " + player.getName(), true);
|
||||||
playerdata.setHalted(false);
|
playerdata.setHalted(false);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,53 +1,100 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import java.text.DecimalFormat;
|
import java.text.DecimalFormat;
|
||||||
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Log;
|
import me.StevenLawson.TotalFreedomMod.TFM_Log;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_TickMeter;
|
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
||||||
import org.apache.commons.lang.exception.ExceptionUtils;
|
import org.apache.commons.lang.math.DoubleRange;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
|
import org.bukkit.scheduler.BukkitTask;
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||||
@CommandParameters(description = "View ticks-per-second", usage = "/<command>")
|
@CommandParameters(description = "View ticks-per-second", usage = "/<command>")
|
||||||
public class Command_health extends TFM_Command
|
public class Command_health extends TFM_Command
|
||||||
{
|
{
|
||||||
|
private static final int BYTES_PER_MB = 1024 * 1024;
|
||||||
|
private static final DoubleRange TPS_RANGE = new DoubleRange(20.0 - 0.1, 20.0 + 0.1);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean run(final CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
public boolean run(final CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||||
{
|
{
|
||||||
|
Runtime runtime = Runtime.getRuntime();
|
||||||
|
long usedMem = runtime.totalMemory() - runtime.freeMemory();
|
||||||
|
|
||||||
Runnable task;
|
playerMsg("Reserved Memory: " + (double) runtime.totalMemory() / (double) BYTES_PER_MB + "mb");
|
||||||
task = new Runnable() // async
|
playerMsg("Used Memory: " + new DecimalFormat("#").format((double) usedMem / (double) BYTES_PER_MB) + "mb (" + new DecimalFormat("#").format(((double) usedMem / (double) runtime.totalMemory()) * 100.0) + "%)");
|
||||||
|
playerMsg("Max Memory: " + (double) runtime.maxMemory() / (double) BYTES_PER_MB + "mb");
|
||||||
|
playerMsg("Calculating ticks per second, please wait...");
|
||||||
|
|
||||||
|
new BukkitRunnable()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public void run()
|
public void run()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
TFM_TickMeter meter = new TFM_TickMeter(plugin);
|
TFM_TickMeter tickMeter = new TFM_TickMeter(plugin);
|
||||||
meter.startTicking();
|
tickMeter.startTicking();
|
||||||
Thread.sleep(1000); // per second
|
Thread.sleep(2500);
|
||||||
meter.stopTicking();
|
final double ticksPerSecond = tickMeter.stopTicking();
|
||||||
|
|
||||||
Runtime runtime = Runtime.getRuntime();
|
new BukkitRunnable()
|
||||||
int mb = 1048576; // 1024 * 1024
|
|
||||||
|
|
||||||
float usedMem = runtime.totalMemory() - runtime.freeMemory();
|
|
||||||
|
|
||||||
playerMsg("Reserved Memory: " + runtime.totalMemory() / mb + "mb");
|
|
||||||
playerMsg("Used Memory: " + new DecimalFormat("#").format(usedMem / mb) + "mb (" + new DecimalFormat("#").format(usedMem / runtime.totalMemory() * 100) + "%)");
|
|
||||||
playerMsg("Max Memory: " + runtime.maxMemory() / mb + "mb");
|
|
||||||
playerMsg("Ticks per second: " + (meter.getTicks() == 20 ? ChatColor.GREEN : ChatColor.RED) + meter.getTicks());
|
|
||||||
}
|
|
||||||
catch (Exception iex)
|
|
||||||
{
|
{
|
||||||
TFM_Log.warning("Exception in TFM_TickMeter: Thread was interupted in sleeping process.");
|
@Override
|
||||||
TFM_Log.warning(ExceptionUtils.getStackTrace(iex));
|
public void run()
|
||||||
|
{
|
||||||
|
playerMsg("Ticks per second: " + (TPS_RANGE.containsDouble(ticksPerSecond) ? ChatColor.GREEN : ChatColor.RED) + ticksPerSecond);
|
||||||
|
}
|
||||||
|
}.runTask(plugin);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
TFM_Log.severe(ex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
}.runTaskAsynchronously(plugin);
|
||||||
new Thread(task, "TickMeter").start();
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private class TFM_TickMeter
|
||||||
|
{
|
||||||
|
private final AtomicInteger ticks = new AtomicInteger();
|
||||||
|
private final TotalFreedomMod plugin;
|
||||||
|
private long startTime;
|
||||||
|
private BukkitTask task;
|
||||||
|
|
||||||
|
public TFM_TickMeter(TotalFreedomMod plugin)
|
||||||
|
{
|
||||||
|
this.plugin = plugin;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void startTicking()
|
||||||
|
{
|
||||||
|
startTime = System.currentTimeMillis();
|
||||||
|
ticks.set(0);
|
||||||
|
|
||||||
|
task = new BukkitRunnable()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public void run()
|
||||||
|
{
|
||||||
|
ticks.incrementAndGet();
|
||||||
|
}
|
||||||
|
}.runTaskTimer(plugin, 0L, 1L);
|
||||||
|
}
|
||||||
|
|
||||||
|
public double stopTicking()
|
||||||
|
{
|
||||||
|
task.cancel();
|
||||||
|
long elapsed = System.currentTimeMillis() - startTime;
|
||||||
|
int tickCount = ticks.get();
|
||||||
|
|
||||||
|
return (double) tickCount / ((double) elapsed / 1000.0);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,7 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
|
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import org.apache.commons.lang.StringUtils;
|
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -33,14 +33,14 @@ public class Command_invis extends TFM_Command
|
|||||||
List<String> players = new ArrayList<String>();
|
List<String> players = new ArrayList<String>();
|
||||||
int smites = 0;
|
int smites = 0;
|
||||||
|
|
||||||
for (Player p : server.getOnlinePlayers())
|
for (Player player : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
if (p.hasPotionEffect(PotionEffectType.INVISIBILITY))
|
if (player.hasPotionEffect(PotionEffectType.INVISIBILITY))
|
||||||
{
|
{
|
||||||
players.add(p.getName());
|
players.add(player.getName());
|
||||||
if (smite && !TFM_SuperadminList.isUserSuperadmin(p))
|
if (smite && !TFM_SuperadminList.isUserSuperadmin(player))
|
||||||
{
|
{
|
||||||
server.dispatchCommand(sender, "smite " + p.getName());
|
Command_smite.smite(player);
|
||||||
smites++;
|
smites++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,94 @@
|
|||||||
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_Jumppads;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||||
|
@CommandParameters(description = "Manage jumppads", usage = "/<command> <on | off | info |sideways <on | off> | strength <strength (1-10)>>", aliases = "launchpads,jp")
|
||||||
|
public class Command_jumppads extends TFM_Command
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||||
|
{
|
||||||
|
if (args.length == 0 || args.length > 2)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args.length == 1)
|
||||||
|
{
|
||||||
|
if (args[0].equalsIgnoreCase("info"))
|
||||||
|
{
|
||||||
|
playerMsg("Jumppads: " + (TFM_Jumppads.getInstance().getMode().isOn() ? "Enabled" : "Disabled"), ChatColor.BLUE);
|
||||||
|
playerMsg("Sideways: " + (TFM_Jumppads.getInstance().getMode() == TFM_Jumppads.JumpPadMode.NORMAL_AND_SIDEWAYS ? "Enabled" : "Disabled"), ChatColor.BLUE);
|
||||||
|
playerMsg("Strength: " + (TFM_Jumppads.getInstance().getStrength() * 10 - 1), ChatColor.BLUE);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (TFM_Util.isStopCommand(args[0]))
|
||||||
|
{
|
||||||
|
TFM_Util.adminAction(sender.getName(), "Disabling Jumppads", false);
|
||||||
|
TFM_Jumppads.getInstance().setMode(TFM_Jumppads.JumpPadMode.OFF);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TFM_Util.adminAction(sender.getName(), "Enabling Jumppads", false);
|
||||||
|
TFM_Jumppads.getInstance().setMode(TFM_Jumppads.JumpPadMode.MADGEEK);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (TFM_Jumppads.getInstance().getMode() == TFM_Jumppads.JumpPadMode.OFF)
|
||||||
|
{
|
||||||
|
playerMsg("Jumppads are currently disabled, please enable them before changing jumppads settings.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args[0].equalsIgnoreCase("sideways"))
|
||||||
|
{
|
||||||
|
if (TFM_Util.isStopCommand(args[1]))
|
||||||
|
{
|
||||||
|
TFM_Util.adminAction(sender.getName(), "Setting Jumppads mode to: Madgeek", false);
|
||||||
|
TFM_Jumppads.getInstance().setMode(TFM_Jumppads.JumpPadMode.MADGEEK);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TFM_Util.adminAction(sender.getName(), "Setting Jumppads mode to: Normal and Sideways", false);
|
||||||
|
TFM_Jumppads.getInstance().setMode(TFM_Jumppads.JumpPadMode.NORMAL_AND_SIDEWAYS);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (args[0].equalsIgnoreCase("strength"))
|
||||||
|
{
|
||||||
|
final float strength;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
strength = Float.parseFloat(args[1]);
|
||||||
|
}
|
||||||
|
catch (NumberFormatException ex)
|
||||||
|
{
|
||||||
|
playerMsg("Invalid Strength");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (strength > 10 || strength < 1)
|
||||||
|
{
|
||||||
|
playerMsg("Invalid Strength: The strength may be 1 through 10.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
TFM_Util.adminAction(sender.getName(), "Setting Jumppads strength to: " + String.valueOf(strength), false);
|
||||||
|
TFM_Jumppads.getInstance().setStrength((strength / 10) + 0.1F);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
@ -16,11 +16,11 @@ public class Command_kicknoob extends TFM_Command
|
|||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "Disconnecting all non-superadmins.", true);
|
TFM_Util.adminAction(sender.getName(), "Disconnecting all non-superadmins.", true);
|
||||||
|
|
||||||
for (Player p : server.getOnlinePlayers())
|
for (Player player : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
if (!TFM_SuperadminList.isUserSuperadmin(p))
|
if (!TFM_SuperadminList.isUserSuperadmin(player))
|
||||||
{
|
{
|
||||||
p.kickPlayer(ChatColor.RED + "Disconnected by admin.");
|
player.kickPlayer(ChatColor.RED + "Disconnected by admin.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,8 +1,10 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_LandmineData;
|
import java.util.ArrayList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
import java.util.List;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.block.BlockFace;
|
import org.bukkit.block.BlockFace;
|
||||||
@ -17,11 +19,11 @@ public class Command_landmine extends TFM_Command
|
|||||||
@Override
|
@Override
|
||||||
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||||
{
|
{
|
||||||
if (!TotalFreedomMod.landminesEnabled)
|
if (!TFM_ConfigEntry.LANDMINES_ENABLED.getBoolean())
|
||||||
{
|
{
|
||||||
playerMsg("The landmine is currently disabled.", ChatColor.GREEN);
|
playerMsg("The landmine is currently disabled.", ChatColor.GREEN);
|
||||||
}
|
}
|
||||||
else if (!TotalFreedomMod.allowExplosions)
|
else if (!TFM_ConfigEntry.ALLOW_EXPLOSIONS.getBoolean())
|
||||||
{
|
{
|
||||||
playerMsg("Explosions are currently disabled.", ChatColor.GREEN);
|
playerMsg("Explosions are currently disabled.", ChatColor.GREEN);
|
||||||
}
|
}
|
||||||
@ -48,4 +50,20 @@ public class Command_landmine extends TFM_Command
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static class TFM_LandmineData
|
||||||
|
{
|
||||||
|
public static List<TFM_LandmineData> landmines = new ArrayList<TFM_LandmineData>();
|
||||||
|
public Location location;
|
||||||
|
public Player player;
|
||||||
|
public double radius;
|
||||||
|
|
||||||
|
public TFM_LandmineData(Location landmine_pos, Player player, double radius)
|
||||||
|
{
|
||||||
|
super();
|
||||||
|
this.location = landmine_pos;
|
||||||
|
this.player = player;
|
||||||
|
this.radius = radius;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,18 +18,18 @@ public class Command_lastcmd extends TFM_Command
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Player p;
|
Player player;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
p = getPlayer(args[0]);
|
player = getPlayer(args[0]);
|
||||||
}
|
}
|
||||||
catch (CantFindPlayerException ex)
|
catch (PlayerNotFoundException ex)
|
||||||
{
|
{
|
||||||
playerMsg(ex.getMessage(), ChatColor.RED);
|
playerMsg(ex.getMessage(), ChatColor.RED);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(p);
|
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
|
||||||
|
|
||||||
if (playerdata != null)
|
if (playerdata != null)
|
||||||
{
|
{
|
||||||
@ -38,7 +38,7 @@ public class Command_lastcmd extends TFM_Command
|
|||||||
{
|
{
|
||||||
last_command = "(none)";
|
last_command = "(none)";
|
||||||
}
|
}
|
||||||
playerMsg(p.getName() + " - Last Command: " + last_command, ChatColor.GRAY);
|
playerMsg(player.getName() + " - Last Command: " + last_command, ChatColor.GRAY);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -17,16 +17,7 @@ public class Command_lavadmg extends TFM_Command
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (args[0].equalsIgnoreCase("on"))
|
playerMsg("Lava damage is now " + (TFM_ConfigEntry.ALLOW_LAVA_DAMAGE.setBoolean(!args[0].equalsIgnoreCase("off")) ? "enabled" : "disabled") + ".");
|
||||||
{
|
|
||||||
TotalFreedomMod.allowLavaDamage = true;
|
|
||||||
playerMsg("Lava damage is now enabled.");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
TotalFreedomMod.allowLavaDamage = false;
|
|
||||||
playerMsg("Lava damage is now disabled.");
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -17,16 +17,7 @@ public class Command_lavaplace extends TFM_Command
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (args[0].equalsIgnoreCase("on"))
|
playerMsg("Lava placement is now " + (TFM_ConfigEntry.ALLOW_LAVA_PLACE.setBoolean(!args[0].equalsIgnoreCase("off")) ? "enabled" : "disabled") + ".");
|
||||||
{
|
|
||||||
TotalFreedomMod.allowLavaPlace = true;
|
|
||||||
playerMsg("Lava placement is now enabled.");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
TotalFreedomMod.allowLavaPlace = false;
|
|
||||||
playerMsg("Lava placement is now disabled.");
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -2,93 +2,72 @@ package me.StevenLawson.TotalFreedomMod.Commands;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_PlayerRank;
|
||||||
|
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_Superadmin;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
|
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.ALL, source = SourceType.BOTH)
|
@CommandPermissions(level = AdminLevel.ALL, source = SourceType.BOTH)
|
||||||
@CommandParameters(description = "Lists the real names of all online players.", usage = "/<command>", aliases = "who")
|
@CommandParameters(description = "Lists the real names of all online players.", usage = "/<command> [-a]", aliases = "who")
|
||||||
public class Command_list extends TFM_Command
|
public class Command_list extends TFM_Command
|
||||||
{
|
{
|
||||||
private static enum ListFilter
|
private static enum ListFilter
|
||||||
{
|
{
|
||||||
SHOW_ALL, SHOW_ADMINS
|
ALL,
|
||||||
|
ADMINS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||||
{
|
{
|
||||||
|
if (args.length > 1)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if (TFM_Util.isFromHostConsole(sender.getName()))
|
if (TFM_Util.isFromHostConsole(sender.getName()))
|
||||||
{
|
{
|
||||||
List<String> player_names = new ArrayList<String>();
|
final List<String> names = new ArrayList<String>();
|
||||||
for (Player p : server.getOnlinePlayers())
|
for (Player player : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
player_names.add(p.getName());
|
names.add(player.getName());
|
||||||
}
|
}
|
||||||
playerMsg("There are " + player_names.size() + "/" + server.getMaxPlayers() + " players online:\n" + StringUtils.join(player_names, ", "), ChatColor.WHITE);
|
playerMsg("There are " + names.size() + "/" + server.getMaxPlayers() + " players online:\n" + StringUtils.join(names, ", "), ChatColor.WHITE);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
ListFilter listFilter = ListFilter.SHOW_ALL;
|
final Command_list.ListFilter listFilter = (args.length == 1 && args[0].equals("-a") ? Command_list.ListFilter.ADMINS : Command_list.ListFilter.ALL);
|
||||||
if (args.length >= 1)
|
|
||||||
{
|
|
||||||
if (args[0].equalsIgnoreCase("-a"))
|
|
||||||
{
|
|
||||||
listFilter = ListFilter.SHOW_ADMINS;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
StringBuilder onlineStats = new StringBuilder();
|
final StringBuilder onlineStats = new StringBuilder();
|
||||||
StringBuilder onlineUsers = new StringBuilder();
|
final StringBuilder onlineUsers = new StringBuilder();
|
||||||
|
|
||||||
onlineStats.append(ChatColor.BLUE).append("There are ").append(ChatColor.RED).append(server.getOnlinePlayers().length);
|
onlineStats.append(ChatColor.BLUE).append("There are ").append(ChatColor.RED).append(server.getOnlinePlayers().length);
|
||||||
onlineStats.append(ChatColor.BLUE).append(" out of a maximum ").append(ChatColor.RED).append(server.getMaxPlayers());
|
onlineStats.append(ChatColor.BLUE).append(" out of a maximum ").append(ChatColor.RED).append(server.getMaxPlayers());
|
||||||
onlineStats.append(ChatColor.BLUE).append(" players online.");
|
onlineStats.append(ChatColor.BLUE).append(" players online.");
|
||||||
|
|
||||||
List<String> player_names = new ArrayList<String>();
|
final List<String> names = new ArrayList<String>();
|
||||||
for (Player p : server.getOnlinePlayers())
|
for (Player player : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
boolean userSuperadmin = TFM_SuperadminList.isUserSuperadmin(p);
|
final boolean userSuperadmin = TFM_SuperadminList.isUserSuperadmin(player);
|
||||||
|
|
||||||
if (listFilter == ListFilter.SHOW_ADMINS && !userSuperadmin)
|
if (listFilter == Command_list.ListFilter.ADMINS && !userSuperadmin)
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
String prefix = "";
|
names.add(TFM_PlayerRank.fromSender(player).getPrefix() + player.getName());
|
||||||
|
|
||||||
if (userSuperadmin)
|
|
||||||
{
|
|
||||||
if (TFM_SuperadminList.isSeniorAdmin(p))
|
|
||||||
{
|
|
||||||
prefix = (ChatColor.LIGHT_PURPLE + "[SrA]");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
prefix = (ChatColor.GOLD + "[SA]");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TFM_Util.DEVELOPERS.contains(p.getName()))
|
onlineUsers.append("Connected ");
|
||||||
{
|
onlineUsers.append(listFilter == Command_list.ListFilter.ADMINS ? "admins: " : "players: ");
|
||||||
prefix = (ChatColor.DARK_PURPLE + "[Dev]");
|
onlineUsers.append(StringUtils.join(names, ChatColor.WHITE + ", "));
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (p.isOp())
|
|
||||||
{
|
|
||||||
prefix = (ChatColor.RED + "[OP]");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
player_names.add(prefix + p.getName() + ChatColor.WHITE);
|
|
||||||
}
|
|
||||||
|
|
||||||
onlineUsers.append("Connected ").append(listFilter == ListFilter.SHOW_ADMINS ? "admins" : "players").append(": ").append(StringUtils.join(player_names, ", "));
|
|
||||||
|
|
||||||
if (senderIsConsole)
|
if (senderIsConsole)
|
||||||
{
|
{
|
||||||
|
@ -0,0 +1,18 @@
|
|||||||
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
@CommandPermissions(level = AdminLevel.ALL, source = SourceType.ONLY_IN_GAME)
|
||||||
|
@CommandParameters(description = "Teleport to the spawn point for the current world.", usage = "/<command>", aliases = "worldspawn,gotospawn")
|
||||||
|
public class Command_localspawn extends TFM_Command
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||||
|
{
|
||||||
|
sender_p.teleport(sender_p.getWorld().getSpawnLocation());
|
||||||
|
playerMsg("Teleported to spawnpoint for world \"" + sender_p.getWorld().getName() + "\".");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,34 @@
|
|||||||
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
||||||
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||||
|
@CommandParameters(description = "Prevents new players from joining the server", usage = "/<command> <on | off>")
|
||||||
|
public class Command_lockdown extends TFM_Command
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||||
|
{
|
||||||
|
if (args.length != 1)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (TFM_Util.isStopCommand(args[0]))
|
||||||
|
{
|
||||||
|
TFM_Util.adminAction(sender.getName(), "De-activating server lockdown", true);
|
||||||
|
TotalFreedomMod.lockdownEnabled = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TFM_Util.adminAction(sender.getName(), "Activating server lockdown", true);
|
||||||
|
TotalFreedomMod.lockdownEnabled = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
@ -1,12 +1,11 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import java.util.Random;
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_PlayerData;
|
import me.StevenLawson.TotalFreedomMod.TFM_PlayerData;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import org.bukkit.Location;
|
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
import org.bukkit.scheduler.BukkitTask;
|
import org.bukkit.scheduler.BukkitTask;
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.ONLY_CONSOLE, block_host_console = true)
|
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.ONLY_CONSOLE, block_host_console = true)
|
||||||
@ -22,18 +21,18 @@ public class Command_lockup extends TFM_Command
|
|||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "Locking up all players", true);
|
TFM_Util.adminAction(sender.getName(), "Locking up all players", true);
|
||||||
|
|
||||||
for (Player p : server.getOnlinePlayers())
|
for (Player player : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
startLockup(p);
|
startLockup(player);
|
||||||
}
|
}
|
||||||
playerMsg("Locked up all players.");
|
playerMsg("Locked up all players.");
|
||||||
}
|
}
|
||||||
else if (args[0].equalsIgnoreCase("purge"))
|
else if (args[0].equalsIgnoreCase("purge"))
|
||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "Unlocking all players", true);
|
TFM_Util.adminAction(sender.getName(), "Unlocking all players", true);
|
||||||
for (Player p : server.getOnlinePlayers())
|
for (Player player : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
cancelLockup(p);
|
cancelLockup(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
playerMsg("Unlocked all players.");
|
playerMsg("Unlocked all players.");
|
||||||
@ -47,37 +46,37 @@ public class Command_lockup extends TFM_Command
|
|||||||
{
|
{
|
||||||
if (args[1].equalsIgnoreCase("on"))
|
if (args[1].equalsIgnoreCase("on"))
|
||||||
{
|
{
|
||||||
final Player p;
|
final Player player;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
p = getPlayer(args[0]);
|
player = getPlayer(args[0]);
|
||||||
}
|
}
|
||||||
catch (CantFindPlayerException ex)
|
catch (PlayerNotFoundException ex)
|
||||||
{
|
{
|
||||||
sender.sendMessage(ex.getMessage());
|
sender.sendMessage(ex.getMessage());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
TFM_Util.adminAction(sender.getName(), "Locking up " + p.getName(), true);
|
TFM_Util.adminAction(sender.getName(), "Locking up " + player.getName(), true);
|
||||||
startLockup(p);
|
startLockup(player);
|
||||||
playerMsg("Locked up " + p.getName() + ".");
|
playerMsg("Locked up " + player.getName() + ".");
|
||||||
}
|
}
|
||||||
else if (TFM_Util.isStopCommand(args[1]))
|
else if (TFM_Util.isStopCommand(args[1]))
|
||||||
{
|
{
|
||||||
final Player p;
|
final Player player;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
p = getPlayer(args[0]);
|
player = getPlayer(args[0]);
|
||||||
}
|
}
|
||||||
catch (CantFindPlayerException ex)
|
catch (PlayerNotFoundException ex)
|
||||||
{
|
{
|
||||||
sender.sendMessage(ex.getMessage());
|
sender.sendMessage(ex.getMessage());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
TFM_Util.adminAction(sender.getName(), "Unlocking " + p.getName(), true);
|
TFM_Util.adminAction(sender.getName(), "Unlocking " + player.getName(), true);
|
||||||
cancelLockup(p);
|
cancelLockup(player);
|
||||||
playerMsg("Unlocked " + p.getName() + ".");
|
playerMsg("Unlocked " + player.getName() + ".");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -102,38 +101,31 @@ public class Command_lockup extends TFM_Command
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void cancelLockup(final Player p)
|
private void cancelLockup(final Player player)
|
||||||
{
|
{
|
||||||
cancelLockup(TFM_PlayerData.getPlayerData(p));
|
cancelLockup(TFM_PlayerData.getPlayerData(player));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void startLockup(final Player p)
|
private void startLockup(final Player player)
|
||||||
{
|
{
|
||||||
final TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(p);
|
final TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
|
||||||
|
|
||||||
cancelLockup(playerdata);
|
cancelLockup(playerdata);
|
||||||
|
|
||||||
playerdata.setLockupScheduleID(server.getScheduler().runTaskTimerAsynchronously(plugin, new Runnable()
|
playerdata.setLockupScheduleID(new BukkitRunnable()
|
||||||
{
|
{
|
||||||
private Random random = new Random();
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run()
|
public void run()
|
||||||
{
|
{
|
||||||
if (p.isOnline())
|
if (player.isOnline())
|
||||||
{
|
{
|
||||||
p.openWorkbench(null, true);
|
player.openInventory(player.getInventory());
|
||||||
|
|
||||||
Location l = p.getLocation().clone();
|
|
||||||
l.setPitch(random.nextFloat() * 360.0f);
|
|
||||||
l.setYaw(random.nextFloat() * 360.0f);
|
|
||||||
p.teleport(l);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
cancelLockup(playerdata);
|
cancelLockup(playerdata);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, 0L, 5L));
|
}.runTaskTimer(plugin, 0L, 5L));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
166
src/me/StevenLawson/TotalFreedomMod/Commands/Command_logs.java
Normal file
166
src/me/StevenLawson/TotalFreedomMod/Commands/Command_logs.java
Normal file
@ -0,0 +1,166 @@
|
|||||||
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
|
import java.net.HttpURLConnection;
|
||||||
|
import java.net.MalformedURLException;
|
||||||
|
import java.net.URL;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Map.Entry;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_Log;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_Superadmin;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
||||||
|
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
|
|
||||||
|
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.ONLY_IN_GAME)
|
||||||
|
@CommandParameters(description = "Register your connection with the TFM logviewer.", usage = "/<command> [off]")
|
||||||
|
public class Command_logs extends TFM_Command
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public boolean run(final CommandSender sender, final Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||||
|
{
|
||||||
|
LogsRegistrationMode mode = LogsRegistrationMode.UPDATE;
|
||||||
|
|
||||||
|
if (args.length == 1)
|
||||||
|
{
|
||||||
|
mode = (TFM_Util.isStopCommand(args[0]) ? LogsRegistrationMode.DELETE : LogsRegistrationMode.UPDATE);
|
||||||
|
}
|
||||||
|
|
||||||
|
updateLogsRegistration(sender, sender_p, mode);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void updateLogsRegistration(final CommandSender sender, final Player target, final LogsRegistrationMode mode)
|
||||||
|
{
|
||||||
|
updateLogsRegistration(sender, target.getName(), target.getAddress().getAddress().getHostAddress().trim(), mode);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void updateLogsRegistration(final CommandSender sender, final String targetName, final String targetIP, final LogsRegistrationMode mode)
|
||||||
|
{
|
||||||
|
final String logsRegisterURL = TFM_ConfigEntry.LOGS_REGISTER_URL.getString();
|
||||||
|
final String logsRegisterPassword = TFM_ConfigEntry.LOGS_REGISTER_PASSWORD.getString();
|
||||||
|
|
||||||
|
if (logsRegisterURL == null || logsRegisterPassword == null || logsRegisterURL.isEmpty() || logsRegisterPassword.isEmpty())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
new BukkitRunnable()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public void run()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (sender != null)
|
||||||
|
{
|
||||||
|
sender.sendMessage(ChatColor.YELLOW + "Connecting...");
|
||||||
|
}
|
||||||
|
|
||||||
|
URL url = new URLBuilder(logsRegisterURL)
|
||||||
|
.addQueryParameter("mode", mode.toString())
|
||||||
|
.addQueryParameter("password", logsRegisterPassword)
|
||||||
|
.addQueryParameter("name", targetName)
|
||||||
|
.addQueryParameter("ip", targetIP)
|
||||||
|
.getURL();
|
||||||
|
|
||||||
|
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
|
||||||
|
connection.setConnectTimeout(1000 * 5);
|
||||||
|
connection.setReadTimeout(1000 * 5);
|
||||||
|
connection.setUseCaches(false);
|
||||||
|
connection.setRequestMethod("HEAD");
|
||||||
|
|
||||||
|
final int responseCode = connection.getResponseCode();
|
||||||
|
|
||||||
|
if (sender != null)
|
||||||
|
{
|
||||||
|
new BukkitRunnable()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public void run()
|
||||||
|
{
|
||||||
|
if (responseCode == 200)
|
||||||
|
{
|
||||||
|
sender.sendMessage(ChatColor.GREEN + "Registration " + mode.toString() + "d.");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sender.sendMessage(ChatColor.RED + "Error contacting logs registration server.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}.runTask(TotalFreedomMod.plugin);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
TFM_Log.severe(ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}.runTaskAsynchronously(TotalFreedomMod.plugin);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void deactivateSuperadmin(TFM_Superadmin superadmin)
|
||||||
|
{
|
||||||
|
for (String ip : superadmin.getIps())
|
||||||
|
{
|
||||||
|
updateLogsRegistration(null, superadmin.getName(), ip, Command_logs.LogsRegistrationMode.DELETE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static enum LogsRegistrationMode
|
||||||
|
{
|
||||||
|
UPDATE("update"), DELETE("delete");
|
||||||
|
private final String mode;
|
||||||
|
|
||||||
|
private LogsRegistrationMode(String mode)
|
||||||
|
{
|
||||||
|
this.mode = mode;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString()
|
||||||
|
{
|
||||||
|
return mode;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class URLBuilder
|
||||||
|
{
|
||||||
|
private final String requestPath;
|
||||||
|
private final Map<String, String> queryStringMap = new HashMap<String, String>();
|
||||||
|
|
||||||
|
public URLBuilder(String requestPath)
|
||||||
|
{
|
||||||
|
this.requestPath = requestPath;
|
||||||
|
}
|
||||||
|
|
||||||
|
public URLBuilder addQueryParameter(String key, String value)
|
||||||
|
{
|
||||||
|
queryStringMap.put(key, value);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public URL getURL() throws MalformedURLException
|
||||||
|
{
|
||||||
|
List<String> pairs = new ArrayList<String>();
|
||||||
|
Iterator<Entry<String, String>> it = queryStringMap.entrySet().iterator();
|
||||||
|
while (it.hasNext())
|
||||||
|
{
|
||||||
|
Entry<String, String> pair = it.next();
|
||||||
|
pairs.add(pair.getKey() + "=" + pair.getValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
return new URL(requestPath + "?" + StringUtils.join(pairs, "&"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,24 +0,0 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ServiceChecker;
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.ALL, source = SourceType.BOTH)
|
|
||||||
@CommandParameters(description = "Shows the uptime of all minecraft services.", usage = "/<command>")
|
|
||||||
public class Command_minecraft extends TFM_Command
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
|
||||||
{
|
|
||||||
playerMsg("Status of Mojang services:", ChatColor.BLUE);
|
|
||||||
for (String service : TFM_ServiceChecker.getAllStatuses())
|
|
||||||
{
|
|
||||||
playerMsg(service);
|
|
||||||
}
|
|
||||||
playerMsg("Version " + TFM_ServiceChecker.version + ", Last Checked: " + TFM_ServiceChecker.last_updated, ChatColor.BLUE);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,6 +1,7 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_GameRuleHandler;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -19,27 +20,27 @@ public class Command_moblimiter extends TFM_Command
|
|||||||
|
|
||||||
if (args[0].equalsIgnoreCase("on"))
|
if (args[0].equalsIgnoreCase("on"))
|
||||||
{
|
{
|
||||||
TotalFreedomMod.mobLimiterEnabled = true;
|
TFM_ConfigEntry.MOB_LIMITER_ENABLED.setBoolean(true);
|
||||||
}
|
}
|
||||||
else if (args[0].equalsIgnoreCase("off"))
|
else if (args[0].equalsIgnoreCase("off"))
|
||||||
{
|
{
|
||||||
TotalFreedomMod.mobLimiterEnabled = false;
|
TFM_ConfigEntry.MOB_LIMITER_ENABLED.setBoolean(false);
|
||||||
}
|
}
|
||||||
else if (args[0].equalsIgnoreCase("dragon"))
|
else if (args[0].equalsIgnoreCase("dragon"))
|
||||||
{
|
{
|
||||||
TotalFreedomMod.mobLimiterDisableDragon = !TotalFreedomMod.mobLimiterDisableDragon;
|
TFM_ConfigEntry.MOB_LIMITER_DISABLE_DRAGON.setBoolean(!TFM_ConfigEntry.MOB_LIMITER_DISABLE_DRAGON.getBoolean());
|
||||||
}
|
}
|
||||||
else if (args[0].equalsIgnoreCase("giant"))
|
else if (args[0].equalsIgnoreCase("giant"))
|
||||||
{
|
{
|
||||||
TotalFreedomMod.mobLimiterDisableGiant = !TotalFreedomMod.mobLimiterDisableGiant;
|
TFM_ConfigEntry.MOB_LIMITER_DISABLE_GIANT.setBoolean(!TFM_ConfigEntry.MOB_LIMITER_DISABLE_GIANT.getBoolean());
|
||||||
}
|
}
|
||||||
else if (args[0].equalsIgnoreCase("slime"))
|
else if (args[0].equalsIgnoreCase("slime"))
|
||||||
{
|
{
|
||||||
TotalFreedomMod.mobLimiterDisableSlime = !TotalFreedomMod.mobLimiterDisableSlime;
|
TFM_ConfigEntry.MOB_LIMITER_DISABLE_SLIME.setBoolean(!TFM_ConfigEntry.MOB_LIMITER_DISABLE_SLIME.getBoolean());
|
||||||
}
|
}
|
||||||
else if (args[0].equalsIgnoreCase("ghast"))
|
else if (args[0].equalsIgnoreCase("ghast"))
|
||||||
{
|
{
|
||||||
TotalFreedomMod.mobLimiterDisableGhast = !TotalFreedomMod.mobLimiterDisableGhast;
|
TFM_ConfigEntry.MOB_LIMITER_DISABLE_GHAST.setBoolean(!TFM_ConfigEntry.MOB_LIMITER_DISABLE_GHAST.getBoolean());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -52,7 +53,7 @@ public class Command_moblimiter extends TFM_Command
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
TotalFreedomMod.mobLimiterMax = Math.max(0, Math.min(2000, Integer.parseInt(args[1])));
|
TFM_ConfigEntry.MOB_LIMITER_MAX.setInteger(Math.max(0, Math.min(2000, Integer.parseInt(args[1]))));
|
||||||
}
|
}
|
||||||
catch (NumberFormatException nfex)
|
catch (NumberFormatException nfex)
|
||||||
{
|
{
|
||||||
@ -60,20 +61,22 @@ public class Command_moblimiter extends TFM_Command
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TotalFreedomMod.mobLimiterEnabled)
|
if (TFM_ConfigEntry.MOB_LIMITER_ENABLED.getBoolean())
|
||||||
{
|
{
|
||||||
sender.sendMessage("Moblimiter enabled. Maximum mobcount set to: " + TotalFreedomMod.mobLimiterMax + ".");
|
sender.sendMessage("Moblimiter enabled. Maximum mobcount set to: " + TFM_ConfigEntry.MOB_LIMITER_MAX.getInteger() + ".");
|
||||||
|
|
||||||
playerMsg("Dragon: " + (TotalFreedomMod.mobLimiterDisableDragon ? "disabled" : "enabled") + ".");
|
playerMsg("Dragon: " + (TFM_ConfigEntry.MOB_LIMITER_DISABLE_DRAGON.getBoolean() ? "disabled" : "enabled") + ".");
|
||||||
playerMsg("Giant: " + (TotalFreedomMod.mobLimiterDisableGiant ? "disabled" : "enabled") + ".");
|
playerMsg("Giant: " + (TFM_ConfigEntry.MOB_LIMITER_DISABLE_GIANT.getBoolean() ? "disabled" : "enabled") + ".");
|
||||||
playerMsg("Slime: " + (TotalFreedomMod.mobLimiterDisableSlime ? "disabled" : "enabled") + ".");
|
playerMsg("Slime: " + (TFM_ConfigEntry.MOB_LIMITER_DISABLE_SLIME.getBoolean() ? "disabled" : "enabled") + ".");
|
||||||
playerMsg("Ghast: " + (TotalFreedomMod.mobLimiterDisableGhast ? "disabled" : "enabled") + ".");
|
playerMsg("Ghast: " + (TFM_ConfigEntry.MOB_LIMITER_DISABLE_GHAST.getBoolean() ? "disabled" : "enabled") + ".");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
playerMsg("Moblimiter is disabled. No mob restrictions are in effect.");
|
playerMsg("Moblimiter is disabled. No mob restrictions are in effect.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TFM_GameRuleHandler.setGameRule(TFM_GameRuleHandler.TFM_GameRule.DO_MOB_SPAWNING, !TFM_ConfigEntry.MOB_LIMITER_ENABLED.getBoolean());
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
@ -13,10 +13,15 @@ public class Command_mp extends TFM_Command
|
|||||||
@Override
|
@Override
|
||||||
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||||
{
|
{
|
||||||
sender.sendMessage(ChatColor.GRAY + "Purging all mobs...");
|
playerMsg("Purging all mobs...");
|
||||||
|
playerMsg(purgeMobs() + " mobs removed.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int purgeMobs()
|
||||||
|
{
|
||||||
int removed = 0;
|
int removed = 0;
|
||||||
for (World world : server.getWorlds())
|
for (World world : Bukkit.getWorlds())
|
||||||
{
|
{
|
||||||
for (Entity ent : world.getLivingEntities())
|
for (Entity ent : world.getLivingEntities())
|
||||||
{
|
{
|
||||||
@ -28,8 +33,6 @@ public class Command_mp extends TFM_Command
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
playerMsg(removed + " mobs removed.");
|
return removed;
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_PlayerData;
|
import me.StevenLawson.TotalFreedomMod.TFM_PlayerData;
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
@ -16,7 +16,7 @@ public class Command_mp44 extends TFM_Command
|
|||||||
@Override
|
@Override
|
||||||
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||||
{
|
{
|
||||||
if (!TotalFreedomMod.mp44Enabled)
|
if (!TFM_ConfigEntry.MP44_ENABLED.getBoolean())
|
||||||
{
|
{
|
||||||
playerMsg("The mp44 is currently disabled.", ChatColor.GREEN);
|
playerMsg("The mp44 is currently disabled.", ChatColor.GREEN);
|
||||||
return true;
|
return true;
|
||||||
|
125
src/me/StevenLawson/TotalFreedomMod/Commands/Command_nf.java
Normal file
125
src/me/StevenLawson/TotalFreedomMod/Commands/Command_nf.java
Normal file
@ -0,0 +1,125 @@
|
|||||||
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.regex.Matcher;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
@CommandPermissions(level = AdminLevel.OP, source = SourceType.BOTH)
|
||||||
|
@CommandParameters(description = "NickFilter: Prefix any command with this command to replace nicknames in that command with real names. Nicknames should be prefixed with a !.", usage = "/<command> <other_command> !<playernick>")
|
||||||
|
public class Command_nf extends TFM_Command
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||||
|
{
|
||||||
|
boolean nickMatched = false;
|
||||||
|
|
||||||
|
final List<String> outputCommand = new ArrayList<String>();
|
||||||
|
|
||||||
|
if (args.length >= 1)
|
||||||
|
{
|
||||||
|
final List<String> argsList = Arrays.asList(args);
|
||||||
|
for (String arg : argsList)
|
||||||
|
{
|
||||||
|
Player player = null;
|
||||||
|
|
||||||
|
Matcher matcher = Pattern.compile("^!(.+)$").matcher(arg);
|
||||||
|
if (matcher.find())
|
||||||
|
{
|
||||||
|
String displayName = matcher.group(1);
|
||||||
|
try
|
||||||
|
{
|
||||||
|
player = getPlayerByDisplayName(displayName);
|
||||||
|
}
|
||||||
|
catch (PlayerNotFoundException ex)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
if (player == null)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
player = getPlayerByDisplayNameAlt(displayName);
|
||||||
|
}
|
||||||
|
catch (PlayerNotFoundException ex)
|
||||||
|
{
|
||||||
|
sender.sendMessage(ChatColor.GRAY + "Can't find player by nickname: " + displayName);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (player == null)
|
||||||
|
{
|
||||||
|
outputCommand.add(arg);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
nickMatched = true;
|
||||||
|
outputCommand.add(player.getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!nickMatched)
|
||||||
|
{
|
||||||
|
sender.sendMessage("No nicknames replaced in command.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
String newCommand = StringUtils.join(outputCommand, " ");
|
||||||
|
sender.sendMessage("Sending command: \"" + newCommand + "\".");
|
||||||
|
server.dispatchCommand(sender, newCommand);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static Player getPlayerByDisplayName(String needle) throws PlayerNotFoundException
|
||||||
|
{
|
||||||
|
needle = needle.toLowerCase().trim();
|
||||||
|
|
||||||
|
Player[] onlinePlayers = Bukkit.getOnlinePlayers();
|
||||||
|
for (Player player : onlinePlayers)
|
||||||
|
{
|
||||||
|
if (player.getDisplayName().toLowerCase().trim().contains(needle))
|
||||||
|
{
|
||||||
|
return player;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new PlayerNotFoundException();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static Player getPlayerByDisplayNameAlt(String needle) throws PlayerNotFoundException
|
||||||
|
{
|
||||||
|
needle = needle.toLowerCase().trim();
|
||||||
|
|
||||||
|
Integer minEditDistance = null;
|
||||||
|
Player minEditMatch = null;
|
||||||
|
|
||||||
|
Player[] onlinePlayers = Bukkit.getOnlinePlayers();
|
||||||
|
for (Player player : onlinePlayers)
|
||||||
|
{
|
||||||
|
String haystack = player.getDisplayName().toLowerCase().trim();
|
||||||
|
int editDistance = StringUtils.getLevenshteinDistance(needle, haystack.toLowerCase());
|
||||||
|
if (minEditDistance == null || minEditDistance.intValue() > editDistance)
|
||||||
|
{
|
||||||
|
minEditDistance = editDistance;
|
||||||
|
minEditMatch = player;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (minEditMatch == null)
|
||||||
|
{
|
||||||
|
throw new PlayerNotFoundException();
|
||||||
|
}
|
||||||
|
|
||||||
|
return minEditMatch;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,72 @@
|
|||||||
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_EssentialsBridge;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
@CommandPermissions(level = AdminLevel.OP, source = SourceType.ONLY_IN_GAME)
|
||||||
|
@CommandParameters(description = "Essentials Interface Command - Nyanify your nickname.", usage = "/<command> <<nick> | off>")
|
||||||
|
public class Command_nicknyan extends TFM_Command
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||||
|
{
|
||||||
|
if (args.length != 1)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (TFM_Util.isStopCommand(args[0]))
|
||||||
|
{
|
||||||
|
TFM_EssentialsBridge.getInstance().setNickname(sender.getName(), null);
|
||||||
|
playerMsg("Nickname cleared.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
final String nickPlain = ChatColor.stripColor(TFM_Util.colorize(args[0].trim()));
|
||||||
|
|
||||||
|
if (!nickPlain.matches("^[a-zA-Z_0-9\u00a7]+$"))
|
||||||
|
{
|
||||||
|
playerMsg("That nickname contains invalid characters.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else if (nickPlain.length() < 4 || nickPlain.length() > 30)
|
||||||
|
{
|
||||||
|
playerMsg("Your nickname must be between 4 and 30 characters long.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
final Player[] onlinePlayers = server.getOnlinePlayers();
|
||||||
|
for (final Player player : onlinePlayers)
|
||||||
|
{
|
||||||
|
if (player == sender_p)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (player.getName().equalsIgnoreCase(nickPlain) || ChatColor.stripColor(player.getDisplayName()).trim().equalsIgnoreCase(nickPlain))
|
||||||
|
{
|
||||||
|
playerMsg("That nickname is already in use.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
final StringBuilder newNick = new StringBuilder();
|
||||||
|
|
||||||
|
final char[] chars = nickPlain.toCharArray();
|
||||||
|
for (char c : chars)
|
||||||
|
{
|
||||||
|
newNick.append(TFM_Util.randomChatColor()).append(c);
|
||||||
|
}
|
||||||
|
|
||||||
|
newNick.append(ChatColor.WHITE);
|
||||||
|
|
||||||
|
TFM_EssentialsBridge.getInstance().setNickname(sender.getName(), newNick.toString());
|
||||||
|
|
||||||
|
playerMsg("Your nickname is now: " + newNick.toString());
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
@ -1,6 +1,6 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -21,7 +21,7 @@ public class Command_nonuke extends TFM_Command
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
TotalFreedomMod.nukeMonitorRange = Math.max(1.0, Math.min(500.0, Double.parseDouble(args[1])));
|
TFM_ConfigEntry.NUKE_MONITOR_RANGE.setDouble(Math.max(1.0, Math.min(500.0, Double.parseDouble(args[1]))));
|
||||||
}
|
}
|
||||||
catch (NumberFormatException nfex)
|
catch (NumberFormatException nfex)
|
||||||
{
|
{
|
||||||
@ -32,7 +32,7 @@ public class Command_nonuke extends TFM_Command
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
TotalFreedomMod.nukeMonitorCountBreak = Math.max(1, Math.min(500, Integer.parseInt(args[2])));
|
TFM_ConfigEntry.NUKE_MONITOR_COUNT_BREAK.setInteger(Math.max(1, Math.min(500, Integer.parseInt(args[2]))));
|
||||||
}
|
}
|
||||||
catch (NumberFormatException nfex)
|
catch (NumberFormatException nfex)
|
||||||
{
|
{
|
||||||
@ -41,14 +41,14 @@ public class Command_nonuke extends TFM_Command
|
|||||||
|
|
||||||
if (args[0].equalsIgnoreCase("on"))
|
if (args[0].equalsIgnoreCase("on"))
|
||||||
{
|
{
|
||||||
TotalFreedomMod.nukeMonitor = true;
|
TFM_ConfigEntry.NUKE_MONITOR.setBoolean(true);
|
||||||
playerMsg("Nuke monitor is enabled.");
|
playerMsg("Nuke monitor is enabled.");
|
||||||
playerMsg("Anti-freecam range is set to " + TotalFreedomMod.nukeMonitorRange + " blocks.");
|
playerMsg("Anti-freecam range is set to " + TFM_ConfigEntry.NUKE_MONITOR_RANGE.getDouble() + " blocks.");
|
||||||
playerMsg("Block throttle rate is set to " + TotalFreedomMod.nukeMonitorCountBreak + " blocks destroyed per 5 seconds.");
|
playerMsg("Block throttle rate is set to " + TFM_ConfigEntry.NUKE_MONITOR_COUNT_BREAK.getInteger() + " blocks destroyed per 5 seconds.");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
TotalFreedomMod.nukeMonitor = false;
|
TFM_ConfigEntry.NUKE_MONITOR.setBoolean(false);
|
||||||
playerMsg("Nuke monitor is disabled.");
|
playerMsg("Nuke monitor is disabled.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@ package me.StevenLawson.TotalFreedomMod.Commands;
|
|||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_PlayerData;
|
import me.StevenLawson.TotalFreedomMod.TFM_PlayerData;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import org.apache.commons.lang.StringUtils;
|
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
@ -2,13 +2,15 @@ package me.StevenLawson.TotalFreedomMod.Commands;
|
|||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Log;
|
import me.StevenLawson.TotalFreedomMod.TFM_Log;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ServerInterface;
|
import me.StevenLawson.TotalFreedomMod.TFM_ServerInterface;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.ONLY_CONSOLE, block_host_console = true)
|
@CommandPermissions(level = AdminLevel.ALL, source = SourceType.BOTH)
|
||||||
@CommandParameters(description = "Switch server online-mode on and off.", usage = "/<command> <on | off>")
|
@CommandParameters(description = "Switch server online-mode on and off.", usage = "/<command> <on | off>")
|
||||||
public class Command_onlinemode extends TFM_Command
|
public class Command_onlinemode extends TFM_Command
|
||||||
{
|
{
|
||||||
@ -18,12 +20,18 @@ public class Command_onlinemode extends TFM_Command
|
|||||||
if (args.length < 1)
|
if (args.length < 1)
|
||||||
{
|
{
|
||||||
playerMsg("Server is currently running with 'online-mode=" + (server.getOnlineMode() ? "true" : "false") + "'.", ChatColor.WHITE);
|
playerMsg("Server is currently running with 'online-mode=" + (server.getOnlineMode() ? "true" : "false") + "'.", ChatColor.WHITE);
|
||||||
playerMsg("Use \"/onlinemode on\" and \"/onlinemode off\" to change online mode.", ChatColor.WHITE);
|
playerMsg("\"/onlinemode on\" and \"/onlinemode off\" can be used to change online mode from the console.", ChatColor.WHITE);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
boolean online_mode;
|
boolean online_mode;
|
||||||
|
|
||||||
|
if (sender instanceof Player && !TFM_SuperadminList.isSeniorAdmin(sender, true))
|
||||||
|
{
|
||||||
|
playerMsg(TotalFreedomMod.MSG_NO_PERMS);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
if (args[0].equalsIgnoreCase("on"))
|
if (args[0].equalsIgnoreCase("on"))
|
||||||
{
|
{
|
||||||
online_mode = true;
|
online_mode = true;
|
||||||
@ -43,9 +51,9 @@ public class Command_onlinemode extends TFM_Command
|
|||||||
|
|
||||||
if (online_mode)
|
if (online_mode)
|
||||||
{
|
{
|
||||||
for (Player p : server.getOnlinePlayers())
|
for (Player player : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
p.kickPlayer("Server is activating \"online-mode=true\". Please reconnect.");
|
player.kickPlayer("Server is activating \"online-mode=true\". Please reconnect.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,21 +26,21 @@ public class Command_op extends TFM_Command
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
OfflinePlayer p = null;
|
OfflinePlayer player = null;
|
||||||
for (Player onlinePlayer : server.getOnlinePlayers())
|
for (Player onlinePlayer : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
if (args[0].equalsIgnoreCase(onlinePlayer.getName()))
|
if (args[0].equalsIgnoreCase(onlinePlayer.getName()))
|
||||||
{
|
{
|
||||||
p = onlinePlayer;
|
player = onlinePlayer;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// if the player is not online
|
// if the player is not online
|
||||||
if (p == null)
|
if (player == null)
|
||||||
{
|
{
|
||||||
if (TFM_SuperadminList.isUserSuperadmin(sender) || senderIsConsole)
|
if (TFM_SuperadminList.isUserSuperadmin(sender) || senderIsConsole)
|
||||||
{
|
{
|
||||||
p = server.getOfflinePlayer(args[0]);
|
player = server.getOfflinePlayer(args[0]);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -50,8 +50,8 @@ public class Command_op extends TFM_Command
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
TFM_Util.adminAction(sender.getName(), "Opping " + p.getName(), false);
|
TFM_Util.adminAction(sender.getName(), "Opping " + player.getName(), false);
|
||||||
p.setOp(true);
|
player.setOp(true);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -32,14 +32,14 @@ public class Command_opall extends TFM_Command
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (Player p : server.getOnlinePlayers())
|
for (Player player : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
p.setOp(true);
|
player.setOp(true);
|
||||||
p.sendMessage(TotalFreedomMod.YOU_ARE_OP);
|
player.sendMessage(TotalFreedomMod.YOU_ARE_OP);
|
||||||
|
|
||||||
if (doSetGamemode)
|
if (doSetGamemode)
|
||||||
{
|
{
|
||||||
p.setGameMode(targetGamemode);
|
player.setGameMode(targetGamemode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -31,9 +31,9 @@ public class Command_ops extends TFM_Command
|
|||||||
int offlineOPs = 0;
|
int offlineOPs = 0;
|
||||||
int totalOPs = 0;
|
int totalOPs = 0;
|
||||||
|
|
||||||
for (OfflinePlayer p : server.getOperators())
|
for (OfflinePlayer player : server.getOperators())
|
||||||
{
|
{
|
||||||
if (p.isOnline())
|
if (player.isOnline())
|
||||||
{
|
{
|
||||||
onlineOPs++;
|
onlineOPs++;
|
||||||
}
|
}
|
||||||
@ -61,13 +61,13 @@ public class Command_ops extends TFM_Command
|
|||||||
|
|
||||||
TFM_Util.adminAction(sender.getName(), "Removing all operators", true);
|
TFM_Util.adminAction(sender.getName(), "Removing all operators", true);
|
||||||
|
|
||||||
for (OfflinePlayer p : server.getOperators())
|
for (OfflinePlayer player : server.getOperators())
|
||||||
{
|
{
|
||||||
p.setOp(false);
|
player.setOp(false);
|
||||||
|
|
||||||
if (p.isOnline())
|
if (player.isOnline())
|
||||||
{
|
{
|
||||||
p.getPlayer().sendMessage(TotalFreedomMod.YOU_ARE_NOT_OP);
|
player.getPlayer().sendMessage(TotalFreedomMod.YOU_ARE_NOT_OP);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,18 +21,18 @@ public class Command_orbit extends TFM_Command
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Player p;
|
Player player;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
p = getPlayer(args[0]);
|
player = getPlayer(args[0]);
|
||||||
}
|
}
|
||||||
catch (CantFindPlayerException ex)
|
catch (PlayerNotFoundException ex)
|
||||||
{
|
{
|
||||||
playerMsg(ex.getMessage(), ChatColor.RED);
|
playerMsg(ex.getMessage(), ChatColor.RED);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(p);
|
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
|
||||||
|
|
||||||
double strength = 10.0;
|
double strength = 10.0;
|
||||||
|
|
||||||
@ -40,7 +40,7 @@ public class Command_orbit extends TFM_Command
|
|||||||
{
|
{
|
||||||
if (TFM_Util.isStopCommand(args[1]))
|
if (TFM_Util.isStopCommand(args[1]))
|
||||||
{
|
{
|
||||||
playerMsg("Stopped orbiting " + p.getName());
|
playerMsg("Stopped orbiting " + player.getName());
|
||||||
playerdata.stopOrbiting();
|
playerdata.stopOrbiting();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -56,11 +56,11 @@ public class Command_orbit extends TFM_Command
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
p.setGameMode(GameMode.SURVIVAL);
|
player.setGameMode(GameMode.SURVIVAL);
|
||||||
playerdata.startOrbiting(strength);
|
playerdata.startOrbiting(strength);
|
||||||
|
|
||||||
p.setVelocity(new Vector(0, strength, 0));
|
player.setVelocity(new Vector(0, strength, 0));
|
||||||
TFM_Util.adminAction(sender.getName(), "Orbiting " + p.getName() + ".", false);
|
TFM_Util.adminAction(sender.getName(), "Orbiting " + player.getName() + ".", false);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
||||||
import org.apache.commons.lang.StringUtils;
|
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
@ -44,24 +44,24 @@ public class Command_permban extends TFM_Command
|
|||||||
|
|
||||||
private void dumplist(CommandSender sender)
|
private void dumplist(CommandSender sender)
|
||||||
{
|
{
|
||||||
if (TotalFreedomMod.permbanned_players.isEmpty())
|
if (TotalFreedomMod.permbannedPlayers.isEmpty())
|
||||||
{
|
{
|
||||||
playerMsg(sender, "No permanently banned player names.");
|
playerMsg(sender, "No permanently banned player names.");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
playerMsg(sender, TotalFreedomMod.permbanned_players.size() + " permanently banned players:");
|
playerMsg(sender, TotalFreedomMod.permbannedPlayers.size() + " permanently banned players:");
|
||||||
playerMsg(sender, StringUtils.join(TotalFreedomMod.permbanned_players, ", "));
|
playerMsg(sender, StringUtils.join(TotalFreedomMod.permbannedPlayers, ", "));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TotalFreedomMod.permbanned_ips.isEmpty())
|
if (TotalFreedomMod.permbannedIps.isEmpty())
|
||||||
{
|
{
|
||||||
playerMsg(sender, "No permanently banned IPs.");
|
playerMsg(sender, "No permanently banned IPs.");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
playerMsg(sender, TotalFreedomMod.permbanned_ips.size() + " permanently banned IPs:");
|
playerMsg(sender, TotalFreedomMod.permbannedIps.size() + " permanently banned IPs:");
|
||||||
playerMsg(sender, StringUtils.join(TotalFreedomMod.permbanned_ips, ", "));
|
playerMsg(sender, StringUtils.join(TotalFreedomMod.permbannedIps, ", "));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,28 @@
|
|||||||
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||||
|
@CommandParameters(description = "Enable/disable tamed pet protection.", usage = "/<command> <on | off>")
|
||||||
|
public class Command_petprotect extends TFM_Command
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||||
|
{
|
||||||
|
if (args.length != 1)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
TFM_Util.adminAction(
|
||||||
|
sender.getName(),
|
||||||
|
"Tamed pet protection is now " + (TFM_ConfigEntry.PET_PROTECT_ENABLED.setBoolean(!TFM_Util.isStopCommand(args[0])) ? "enabled" : "disabled") + ".",
|
||||||
|
false);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
@ -1,6 +1,6 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import org.apache.commons.lang.StringUtils;
|
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -58,20 +58,20 @@ public class Command_plugincontrol extends TFM_Command
|
|||||||
else if (commandMode == CommandMode.RELOAD)
|
else if (commandMode == CommandMode.RELOAD)
|
||||||
{
|
{
|
||||||
playerMsg("Disabling all plugins.");
|
playerMsg("Disabling all plugins.");
|
||||||
for (Plugin p : pluginManager.getPlugins())
|
for (Plugin targetPlugin : pluginManager.getPlugins())
|
||||||
{
|
{
|
||||||
if (!p.getName().toLowerCase().startsWith("totalfreedommod"))
|
if (!targetPlugin.getName().toLowerCase().startsWith("totalfreedommod"))
|
||||||
{
|
{
|
||||||
pluginManager.disablePlugin(p);
|
pluginManager.disablePlugin(targetPlugin);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
playerMsg("Enabling all plugins.");
|
playerMsg("Enabling all plugins.");
|
||||||
for (Plugin p : pluginManager.getPlugins())
|
for (Plugin targetPlugin : pluginManager.getPlugins())
|
||||||
{
|
{
|
||||||
if (!p.getName().toLowerCase().startsWith("totalfreedommod"))
|
if (!targetPlugin.getName().toLowerCase().startsWith("totalfreedommod"))
|
||||||
{
|
{
|
||||||
pluginManager.enablePlugin(p);
|
pluginManager.enablePlugin(targetPlugin);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -81,11 +81,11 @@ public class Command_plugincontrol extends TFM_Command
|
|||||||
|
|
||||||
Plugin targetPlugin = null;
|
Plugin targetPlugin = null;
|
||||||
|
|
||||||
for (Plugin p : pluginManager.getPlugins())
|
for (Plugin serverPlugin : pluginManager.getPlugins())
|
||||||
{
|
{
|
||||||
if (searchPluginName.equalsIgnoreCase(p.getName().toLowerCase().trim()))
|
if (searchPluginName.equalsIgnoreCase(serverPlugin.getName().toLowerCase().trim()))
|
||||||
{
|
{
|
||||||
targetPlugin = p;
|
targetPlugin = serverPlugin;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,7 @@ import java.util.List;
|
|||||||
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
|
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
||||||
import org.apache.commons.lang.StringUtils;
|
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
@ -16,7 +16,7 @@ import org.bukkit.potion.PotionEffectType;
|
|||||||
@CommandPermissions(level = AdminLevel.OP, source = SourceType.BOTH)
|
@CommandPermissions(level = AdminLevel.OP, source = SourceType.BOTH)
|
||||||
@CommandParameters(
|
@CommandParameters(
|
||||||
description = "Manipulate potion effects. Duration is measured in server ticks (~20 ticks per second).",
|
description = "Manipulate potion effects. Duration is measured in server ticks (~20 ticks per second).",
|
||||||
usage = "/<command> <list | clear [target_name] | add <type> <duration> <amplifier> [target_name]>")
|
usage = "/<command> <list | clear [target name] | add <type> <duration> <amplifier> [target name]>")
|
||||||
public class Command_potion extends TFM_Command
|
public class Command_potion extends TFM_Command
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
@ -62,7 +62,7 @@ public class Command_potion extends TFM_Command
|
|||||||
{
|
{
|
||||||
target = getPlayer(args[1]);
|
target = getPlayer(args[1]);
|
||||||
}
|
}
|
||||||
catch (CantFindPlayerException ex)
|
catch (PlayerNotFoundException ex)
|
||||||
{
|
{
|
||||||
playerMsg(ex.getMessage(), ChatColor.RED);
|
playerMsg(ex.getMessage(), ChatColor.RED);
|
||||||
return true;
|
return true;
|
||||||
@ -107,7 +107,7 @@ public class Command_potion extends TFM_Command
|
|||||||
{
|
{
|
||||||
target = getPlayer(args[4]);
|
target = getPlayer(args[4]);
|
||||||
}
|
}
|
||||||
catch (CantFindPlayerException ex)
|
catch (PlayerNotFoundException ex)
|
||||||
{
|
{
|
||||||
playerMsg(ex.getMessage(), ChatColor.RED);
|
playerMsg(ex.getMessage(), ChatColor.RED);
|
||||||
return true;
|
return true;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -21,12 +21,12 @@ public class Command_prelog extends TFM_Command
|
|||||||
|
|
||||||
if (args[0].equalsIgnoreCase("on"))
|
if (args[0].equalsIgnoreCase("on"))
|
||||||
{
|
{
|
||||||
TotalFreedomMod.preprocessLogEnabled = true;
|
TFM_ConfigEntry.PREPROCESS_LOG_ENABLED.setBoolean(true);
|
||||||
playerMsg("Command preprocess logging is now enabled. This will be spammy in the log.");
|
playerMsg("Command preprocess logging is now enabled. This will be spammy in the log.");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
TotalFreedomMod.preprocessLogEnabled = false;
|
TFM_ConfigEntry.PREPROCESS_LOG_ENABLED.setBoolean(false);
|
||||||
playerMsg("Command preprocess logging is now disabled.");
|
playerMsg("Command preprocess logging is now disabled.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -0,0 +1,71 @@
|
|||||||
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
|
import java.io.BufferedReader;
|
||||||
|
import java.io.InputStreamReader;
|
||||||
|
import java.net.URL;
|
||||||
|
import java.net.URLConnection;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_Log;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
|
|
||||||
|
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||||
|
@CommandParameters(description = "Validates if a given account is premium.", usage = "/<command> <player>", aliases = "prem")
|
||||||
|
public class Command_premium extends TFM_Command
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||||
|
{
|
||||||
|
if (args.length != 1)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
String name;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
name = getPlayer(args[0]).getName();
|
||||||
|
}
|
||||||
|
catch (PlayerNotFoundException ex)
|
||||||
|
{
|
||||||
|
name = args[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
final String playername = name;
|
||||||
|
new BukkitRunnable()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public void run()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
final URL getUrl = new URL("https://minecraft.net/haspaid.jsp?user=" + playername);
|
||||||
|
final URLConnection urlConnection = getUrl.openConnection();
|
||||||
|
// Read the response
|
||||||
|
final BufferedReader in = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
|
||||||
|
final String message = ("false".equalsIgnoreCase(in.readLine()) ? ChatColor.RED + "No" : ChatColor.DARK_GREEN + "Yes");
|
||||||
|
in.close();
|
||||||
|
|
||||||
|
new BukkitRunnable()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public void run()
|
||||||
|
{
|
||||||
|
playerMsg("Player " + playername + " is premium: " + message);
|
||||||
|
}
|
||||||
|
}.runTask(plugin);
|
||||||
|
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
TFM_Log.severe(ex);
|
||||||
|
playerMsg("There was an error querying the mojang server.", ChatColor.RED);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}.runTaskAsynchronously(plugin);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
@ -1,8 +1,9 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ProtectedArea;
|
import me.StevenLawson.TotalFreedomMod.TFM_ProtectedArea;
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import org.apache.commons.lang.StringUtils;
|
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -16,7 +17,7 @@ public class Command_protectarea extends TFM_Command
|
|||||||
@Override
|
@Override
|
||||||
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||||
{
|
{
|
||||||
if (!TotalFreedomMod.protectedAreasEnabled)
|
if (!TFM_ConfigEntry.PROTECTED_AREAS_ENABLED.getBoolean())
|
||||||
{
|
{
|
||||||
playerMsg("Protected areas are currently disabled in the TotalFreedomMod configuration.");
|
playerMsg("Protected areas are currently disabled in the TotalFreedomMod configuration.");
|
||||||
return true;
|
return true;
|
||||||
@ -43,7 +44,7 @@ public class Command_protectarea extends TFM_Command
|
|||||||
}
|
}
|
||||||
else if (args.length == 2)
|
else if (args.length == 2)
|
||||||
{
|
{
|
||||||
if (args[0].equalsIgnoreCase("remove"))
|
if (TFM_Util.isRemoveCommand(args[0]))
|
||||||
{
|
{
|
||||||
TFM_ProtectedArea.removeProtectedArea(args[1]);
|
TFM_ProtectedArea.removeProtectedArea(args[1]);
|
||||||
|
|
||||||
|
@ -1,18 +1,12 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_DisguiseCraftBridge;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_PlayerData;
|
import me.StevenLawson.TotalFreedomMod.TFM_PlayerData;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
||||||
import org.bukkit.World;
|
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Ambient;
|
|
||||||
import org.bukkit.entity.Creature;
|
|
||||||
import org.bukkit.entity.EnderDragon;
|
|
||||||
import org.bukkit.entity.Entity;
|
|
||||||
import org.bukkit.entity.Ghast;
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.entity.Slime;
|
|
||||||
import org.bukkit.potion.PotionEffect;
|
import org.bukkit.potion.PotionEffect;
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||||
@ -22,19 +16,17 @@ public class Command_purgeall extends TFM_Command
|
|||||||
@Override
|
@Override
|
||||||
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||||
{
|
{
|
||||||
|
|
||||||
TFM_Util.adminAction(sender.getName(), "Purging all player data", true);
|
TFM_Util.adminAction(sender.getName(), "Purging all player data", true);
|
||||||
|
|
||||||
// Purge entities
|
// Purge entities
|
||||||
TFM_Util.wipeEntities(true, true);
|
TFM_Util.TFM_EntityWiper.wipeEntities(true, true);
|
||||||
|
|
||||||
// Undisguise all players
|
// Undisguise all players
|
||||||
server.dispatchCommand(sender, "u *");
|
TFM_DisguiseCraftBridge.undisguiseAllPlayers();
|
||||||
|
|
||||||
|
for (Player player : server.getOnlinePlayers())
|
||||||
for (Player p : server.getOnlinePlayers())
|
|
||||||
{
|
{
|
||||||
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(p);
|
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
|
||||||
|
|
||||||
// Unmute all players
|
// Unmute all players
|
||||||
if (playerdata.isMuted())
|
if (playerdata.isMuted())
|
||||||
@ -67,36 +59,34 @@ public class Command_purgeall extends TFM_Command
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Purge potion effects
|
// Purge potion effects
|
||||||
for (PotionEffect potion_effect : p.getActivePotionEffects())
|
for (PotionEffect potion_effect : player.getActivePotionEffects())
|
||||||
{
|
{
|
||||||
p.removePotionEffect(potion_effect.getType());
|
player.removePotionEffect(potion_effect.getType());
|
||||||
|
}
|
||||||
|
|
||||||
|
// Uncage
|
||||||
|
if (playerdata.isCaged())
|
||||||
|
{
|
||||||
|
playerdata.setCaged(false);
|
||||||
|
playerdata.regenerateHistory();
|
||||||
|
playerdata.clearHistory();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Clear auto-unmute and auto-unfreeze tasks
|
// Clear auto-unmute and auto-unfreeze tasks
|
||||||
if (TotalFreedomMod.mutePurgeEventId != 0)
|
if (TotalFreedomMod.mutePurgeTask != null)
|
||||||
{
|
{
|
||||||
server.getScheduler().cancelTask(TotalFreedomMod.mutePurgeEventId);
|
TotalFreedomMod.mutePurgeTask.cancel();
|
||||||
TotalFreedomMod.mutePurgeEventId = 0;
|
|
||||||
}
|
|
||||||
if (TotalFreedomMod.freezePurgeEventId != 0)
|
|
||||||
{
|
|
||||||
server.getScheduler().cancelTask(TotalFreedomMod.freezePurgeEventId);
|
|
||||||
TotalFreedomMod.freezePurgeEventId = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TotalFreedomMod.allPlayersFrozen = false;
|
||||||
|
if (TotalFreedomMod.freezePurgeTask != null)
|
||||||
|
{
|
||||||
|
TotalFreedomMod.freezePurgeTask.cancel();
|
||||||
|
}
|
||||||
|
|
||||||
// Remove all mobs
|
// Remove all mobs
|
||||||
for (World world : server.getWorlds())
|
Command_mp.purgeMobs();
|
||||||
{
|
|
||||||
for (Entity ent : world.getLivingEntities())
|
|
||||||
{
|
|
||||||
if (ent instanceof Creature || ent instanceof Ghast || ent instanceof Slime || ent instanceof EnderDragon || ent instanceof Ambient)
|
|
||||||
{
|
|
||||||
ent.remove();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -26,20 +26,20 @@ public class Command_qdeop extends TFM_Command
|
|||||||
|
|
||||||
boolean matched_player = false;
|
boolean matched_player = false;
|
||||||
|
|
||||||
String target_name = args[0].toLowerCase();
|
String targetName = args[0].toLowerCase();
|
||||||
|
|
||||||
for (Player p : server.getOnlinePlayers())
|
for (Player player : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
if (p.getName().toLowerCase().indexOf(target_name) != -1 || p.getDisplayName().toLowerCase().indexOf(target_name) != -1)
|
if (player.getName().toLowerCase().indexOf(targetName) != -1 || player.getDisplayName().toLowerCase().indexOf(targetName) != -1)
|
||||||
{
|
{
|
||||||
matched_player = true;
|
matched_player = true;
|
||||||
|
|
||||||
if (!silent)
|
if (!silent)
|
||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "De-opping " + p.getName(), false);
|
TFM_Util.adminAction(sender.getName(), "De-opping " + player.getName(), false);
|
||||||
}
|
}
|
||||||
p.setOp(false);
|
player.setOp(false);
|
||||||
p.sendMessage(TotalFreedomMod.YOU_ARE_NOT_OP);
|
player.sendMessage(TotalFreedomMod.YOU_ARE_NOT_OP);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,20 +26,20 @@ public class Command_qop extends TFM_Command
|
|||||||
|
|
||||||
boolean matched_player = false;
|
boolean matched_player = false;
|
||||||
|
|
||||||
String target_name = args[0].toLowerCase();
|
String targetName = args[0].toLowerCase();
|
||||||
|
|
||||||
for (Player p : server.getOnlinePlayers())
|
for (Player player : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
if (p.getName().toLowerCase().indexOf(target_name) != -1 || p.getDisplayName().toLowerCase().indexOf(target_name) != -1)
|
if (player.getName().toLowerCase().indexOf(targetName) != -1 || player.getDisplayName().toLowerCase().indexOf(targetName) != -1)
|
||||||
{
|
{
|
||||||
matched_player = true;
|
matched_player = true;
|
||||||
|
|
||||||
if (!silent)
|
if (!silent)
|
||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "Opping " + p.getName(), false);
|
TFM_Util.adminAction(sender.getName(), "Opping " + player.getName(), false);
|
||||||
}
|
}
|
||||||
p.setOp(true);
|
player.setOp(true);
|
||||||
p.sendMessage(TotalFreedomMod.YOU_ARE_OP);
|
player.sendMessage(TotalFreedomMod.YOU_ARE_OP);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,8 +2,8 @@ package me.StevenLawson.TotalFreedomMod.Commands;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
import java.util.Comparator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_RadarData;
|
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
@ -21,13 +21,13 @@ public class Command_radar extends TFM_Command
|
|||||||
|
|
||||||
List<TFM_RadarData> radar_data = new ArrayList<TFM_RadarData>();
|
List<TFM_RadarData> radar_data = new ArrayList<TFM_RadarData>();
|
||||||
|
|
||||||
for (Player p : sender_pos.getWorld().getPlayers())
|
for (Player player : sender_pos.getWorld().getPlayers())
|
||||||
{
|
{
|
||||||
if (!p.equals(sender_p))
|
if (!player.equals(sender_p))
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
radar_data.add(new TFM_RadarData(p, sender_pos.distance(p.getLocation()), p.getLocation()));
|
radar_data.add(new TFM_RadarData(player, sender_pos.distance(player.getLocation()), player.getLocation()));
|
||||||
}
|
}
|
||||||
catch (IllegalArgumentException ex)
|
catch (IllegalArgumentException ex)
|
||||||
{
|
{
|
||||||
@ -71,4 +71,39 @@ public class Command_radar extends TFM_Command
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private class TFM_RadarData implements Comparator<TFM_RadarData>
|
||||||
|
{
|
||||||
|
public Player player;
|
||||||
|
public double distance;
|
||||||
|
public Location location;
|
||||||
|
|
||||||
|
public TFM_RadarData(Player player, double distance, Location location)
|
||||||
|
{
|
||||||
|
this.player = player;
|
||||||
|
this.distance = distance;
|
||||||
|
this.location = location;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TFM_RadarData()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int compare(TFM_RadarData t1, TFM_RadarData t2)
|
||||||
|
{
|
||||||
|
if (t1.distance > t2.distance)
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
else if (t1.distance < t2.distance)
|
||||||
|
{
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_PlayerRank;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
@ -15,9 +15,9 @@ public class Command_rank extends TFM_Command
|
|||||||
{
|
{
|
||||||
if (senderIsConsole && args.length < 1)
|
if (senderIsConsole && args.length < 1)
|
||||||
{
|
{
|
||||||
for (Player p : server.getOnlinePlayers())
|
for (Player player : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
playerMsg(p.getName() + " is " + TFM_Util.getRank(p));
|
playerMsg(player.getName() + " is " + TFM_PlayerRank.fromSender(player).getLoginMessage());
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -29,22 +29,22 @@ public class Command_rank extends TFM_Command
|
|||||||
|
|
||||||
if (args.length == 0)
|
if (args.length == 0)
|
||||||
{
|
{
|
||||||
playerMsg(sender.getName() + " is " + TFM_Util.getRank(sender), ChatColor.AQUA);
|
playerMsg(sender.getName() + " is " + TFM_PlayerRank.fromSender(sender).getLoginMessage(), ChatColor.AQUA);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
Player p;
|
Player player;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
p = getPlayer(args[0]);
|
player = getPlayer(args[0]);
|
||||||
}
|
}
|
||||||
catch (CantFindPlayerException ex)
|
catch (PlayerNotFoundException ex)
|
||||||
{
|
{
|
||||||
sender.sendMessage(ex.getMessage());
|
sender.sendMessage(ex.getMessage());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
playerMsg(p.getName() + " is " + TFM_Util.getRank(p), ChatColor.AQUA);
|
playerMsg(player.getName() + " is " + TFM_PlayerRank.fromSender(player).getLoginMessage(), ChatColor.AQUA);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,7 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import org.apache.commons.lang.StringUtils;
|
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -16,7 +15,7 @@ public class Command_rawsay extends TFM_Command
|
|||||||
{
|
{
|
||||||
if (args.length > 0)
|
if (args.length > 0)
|
||||||
{
|
{
|
||||||
TFM_Util.bcastMsg(ChatColor.translateAlternateColorCodes('&', StringUtils.join(args, " ")));
|
TFM_Util.bcastMsg(TFM_Util.colorize(StringUtils.join(args, " ")));
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -13,7 +13,7 @@ public class Command_rd extends TFM_Command
|
|||||||
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "Removing all server entities.", true);
|
TFM_Util.adminAction(sender.getName(), "Removing all server entities.", true);
|
||||||
playerMsg((TFM_Util.wipeEntities(true, true)) + " enties removed.");
|
playerMsg((TFM_Util.TFM_EntityWiper.wipeEntities(true, true)) + " enties removed.");
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -51,14 +51,14 @@ public class Command_ro extends TFM_Command
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Player target_player = null;
|
Player targetPlayer = null;
|
||||||
if (args.length == 3)
|
if (args.length == 3)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
target_player = getPlayer(args[2]);
|
targetPlayer = getPlayer(args[2]);
|
||||||
}
|
}
|
||||||
catch (CantFindPlayerException ex)
|
catch (PlayerNotFoundException ex)
|
||||||
{
|
{
|
||||||
playerMsg(ex.getMessage(), ChatColor.RED);
|
playerMsg(ex.getMessage(), ChatColor.RED);
|
||||||
return true;
|
return true;
|
||||||
@ -67,18 +67,18 @@ public class Command_ro extends TFM_Command
|
|||||||
|
|
||||||
int affected = 0;
|
int affected = 0;
|
||||||
|
|
||||||
if (target_player == null)
|
if (targetPlayer == null)
|
||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "Removing all " + from_material.name() + " within " + radius + " blocks of all players. Brace for lag...", senderIsConsole);
|
TFM_Util.adminAction(sender.getName(), "Removing all " + from_material.name() + " within " + radius + " blocks of all players. Brace for lag...", senderIsConsole);
|
||||||
for (Player p : server.getOnlinePlayers())
|
for (Player player : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
affected += TFM_Util.replaceBlocks(p.getLocation(), from_material, Material.AIR, radius);
|
affected += TFM_Util.replaceBlocks(player.getLocation(), from_material, Material.AIR, radius);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "Removing all " + from_material.name() + " within " + radius + " blocks of " + target_player.getName() + ".", senderIsConsole);
|
TFM_Util.adminAction(sender.getName(), "Removing all " + from_material.name() + " within " + radius + " blocks of " + targetPlayer.getName() + ".", senderIsConsole);
|
||||||
affected += TFM_Util.replaceBlocks(target_player.getLocation(), from_material, Material.AIR, radius);
|
affected += TFM_Util.replaceBlocks(targetPlayer.getLocation(), from_material, Material.AIR, radius);
|
||||||
}
|
}
|
||||||
|
|
||||||
TFM_Util.adminAction(sender.getName(), "Remove complete. " + affected + " blocks removed.", senderIsConsole);
|
TFM_Util.adminAction(sender.getName(), "Remove complete. " + affected + " blocks removed.", senderIsConsole);
|
||||||
|
@ -1,88 +1,107 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_RollbackManager;
|
import me.StevenLawson.TotalFreedomMod.TFM_RollbackManager;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_UserList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.OfflinePlayer;
|
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH, block_host_console = true)
|
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH, block_host_console = true)
|
||||||
@CommandParameters(description = "Issues a rollback on a player", usage = "/<command> <[partialname] | purge [partialname] | purgeall>", aliases = "rb")
|
@CommandParameters(description = "Issues a rollback on a player", usage = "/<command> <[partialname] | undo [partialname] purge [partialname] | purgeall>", aliases = "rb")
|
||||||
public class Command_rollback extends TFM_Command
|
public class Command_rollback extends TFM_Command
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||||
{
|
{
|
||||||
if (args.length > 2)
|
if (args.length == 1)
|
||||||
{
|
{
|
||||||
return false;
|
if ("purgeall".equalsIgnoreCase(args[0]))
|
||||||
}
|
|
||||||
|
|
||||||
if (args.length == 1 && args[0].equalsIgnoreCase("purgeall"))
|
|
||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "Puring all rollback data", false);
|
TFM_Util.adminAction(sender.getName(), "Purging all rollback history", false);
|
||||||
playerMsg("Purged entries for " + TFM_RollbackManager.purgeEntries() + " players.");
|
playerMsg("Purged all rollback history for " + TFM_RollbackManager.purgeEntries() + " players.");
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (args.length == 2 && args[0].equalsIgnoreCase("purge"))
|
|
||||||
{
|
|
||||||
OfflinePlayer p;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
p = getPlayer(args[1]);
|
|
||||||
}
|
|
||||||
catch (CantFindPlayerException ex)
|
|
||||||
{
|
|
||||||
p = server.getOfflinePlayer(args[1]);
|
|
||||||
if (!p.hasPlayedBefore())
|
|
||||||
{
|
|
||||||
playerMsg("Player is not online, or never joined the server.", ChatColor.RED);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!TFM_RollbackManager.canRollback(p.getName()))
|
|
||||||
{
|
|
||||||
playerMsg("No rollback data found for that player", ChatColor.RED);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
playerMsg("Purged " + TFM_RollbackManager.purgeEntries(p.getName()) + " entries.");
|
String playerName = getPlayerName(args[0]);
|
||||||
|
|
||||||
|
if (!TFM_RollbackManager.canRollback(playerName))
|
||||||
|
{
|
||||||
|
playerMsg("That player has no entries stored.");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (TFM_RollbackManager.canUndoRollback(playerName))
|
||||||
|
{
|
||||||
|
playerMsg("That player has just been rolled back.");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (args.length != 1)
|
TFM_Util.adminAction(sender.getName(), "Rolling back player: " + playerName, false);
|
||||||
|
playerMsg("Rolled back " + TFM_RollbackManager.rollback(playerName) + " edits for " + playerName + ".");
|
||||||
|
playerMsg("If this rollback was a mistake, use /rollback undo " + playerName + " within 20 seconds to reverse the rollback.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (args.length == 2)
|
||||||
|
{
|
||||||
|
if ("purge".equalsIgnoreCase(args[0]))
|
||||||
|
{
|
||||||
|
String playerName = getPlayerName(args[1]);
|
||||||
|
|
||||||
|
if (!TFM_RollbackManager.canRollback(playerName))
|
||||||
|
{
|
||||||
|
playerMsg("That player has no entries stored.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
playerMsg("Purged " + TFM_RollbackManager.purgeEntries(playerName) + " rollback history entries for " + playerName + ".");
|
||||||
|
}
|
||||||
|
else if ("undo".equalsIgnoreCase(args[0]))
|
||||||
|
{
|
||||||
|
String playerName = getPlayerName(args[1]);
|
||||||
|
|
||||||
|
if (!TFM_RollbackManager.canUndoRollback(playerName))
|
||||||
|
{
|
||||||
|
playerMsg("That player hasn't been rolled back recently.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
TFM_Util.adminAction(sender.getName(), "Reverting rollback for player: " + playerName, false);
|
||||||
|
playerMsg("Reverted " + TFM_RollbackManager.undoRollback(playerName) + " edits for " + playerName + ".");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
OfflinePlayer p;
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getPlayerName(String playerNameInput)
|
||||||
|
{
|
||||||
|
String playerName = null;
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
p = getPlayer(args[0]);
|
Player player = getPlayer(playerNameInput);
|
||||||
}
|
if (player != null)
|
||||||
catch (CantFindPlayerException ex)
|
|
||||||
{
|
{
|
||||||
p = server.getOfflinePlayer(args[0]);
|
playerName = player.getName();
|
||||||
if (!p.hasPlayedBefore())
|
|
||||||
{
|
|
||||||
playerMsg("Player is not online, or never joined the server.", ChatColor.RED);
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
catch (PlayerNotFoundException ex)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
if (!TFM_RollbackManager.canRollback(p.getName()))
|
if (playerName == null)
|
||||||
{
|
{
|
||||||
playerMsg("Player has no rollback data set.", ChatColor.RED);
|
playerName = TFM_UserList.getInstance(plugin).searchByPartialName(playerNameInput);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
TFM_Util.adminAction(sender.getName(), "Rolling back player: " + p.getName(), false);
|
return playerName;
|
||||||
playerMsg("Rolled back " + TFM_RollbackManager.rollback(p) + " blocks");
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Superadmin;
|
import me.StevenLawson.TotalFreedomMod.TFM_Superadmin;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
|
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_TwitterHandler;
|
import me.StevenLawson.TotalFreedomMod.TFM_TwitterHandler;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
||||||
import org.apache.commons.lang.StringUtils;
|
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
@ -26,15 +27,15 @@ public class Command_saconfig extends TFM_Command
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (!senderIsConsole)
|
if (!TFM_SuperadminList.isSeniorAdmin(sender, true))
|
||||||
{
|
{
|
||||||
playerMsg("This command may only be used from the console.");
|
playerMsg(TotalFreedomMod.MSG_NO_PERMS);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (args[0].equals("clean"))
|
if (args[0].equals("clean"))
|
||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "Cleaning superadmin list.", true);
|
TFM_Util.adminAction(sender.getName(), "Cleaning superadmin list", true);
|
||||||
TFM_SuperadminList.cleanSuperadminList(true);
|
TFM_SuperadminList.cleanSuperadminList(true);
|
||||||
playerMsg("Superadmins: " + StringUtils.join(TFM_SuperadminList.getSuperadminNames(), ", "), ChatColor.YELLOW);
|
playerMsg("Superadmins: " + StringUtils.join(TFM_SuperadminList.getSuperadminNames(), ", "), ChatColor.YELLOW);
|
||||||
}
|
}
|
||||||
@ -66,7 +67,7 @@ public class Command_saconfig extends TFM_Command
|
|||||||
{
|
{
|
||||||
superadmin = TFM_SuperadminList.getAdminEntry(getPlayer(args[1]).getName().toLowerCase());
|
superadmin = TFM_SuperadminList.getAdminEntry(getPlayer(args[1]).getName().toLowerCase());
|
||||||
}
|
}
|
||||||
catch (CantFindPlayerException ex)
|
catch (PlayerNotFoundException ex)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -77,7 +78,7 @@ public class Command_saconfig extends TFM_Command
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
playerMsg(ChatColor.stripColor(ChatColor.translateAlternateColorCodes('&', superadmin.toString())));
|
playerMsg(ChatColor.stripColor(TFM_Util.colorize(superadmin.toString())));
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@ -91,14 +92,14 @@ public class Command_saconfig extends TFM_Command
|
|||||||
|
|
||||||
if (args[0].equalsIgnoreCase("add"))
|
if (args[0].equalsIgnoreCase("add"))
|
||||||
{
|
{
|
||||||
Player p = null;
|
Player player = null;
|
||||||
String admin_name = null;
|
String admin_name = null;
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
p = getPlayer(args[1]);
|
player = getPlayer(args[1]);
|
||||||
}
|
}
|
||||||
catch (CantFindPlayerException ex)
|
catch (PlayerNotFoundException ex)
|
||||||
{
|
{
|
||||||
TFM_Superadmin superadmin = TFM_SuperadminList.getAdminEntry(args[1].toLowerCase());
|
TFM_Superadmin superadmin = TFM_SuperadminList.getAdminEntry(args[1].toLowerCase());
|
||||||
if (superadmin != null)
|
if (superadmin != null)
|
||||||
@ -112,10 +113,10 @@ public class Command_saconfig extends TFM_Command
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (p != null)
|
if (player != null)
|
||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "Adding " + p.getName() + " to the superadmin list.", true);
|
TFM_Util.adminAction(sender.getName(), "Adding " + player.getName() + " to the superadmin list.", true);
|
||||||
TFM_SuperadminList.addSuperadmin(p);
|
TFM_SuperadminList.addSuperadmin(player);
|
||||||
}
|
}
|
||||||
else if (admin_name != null)
|
else if (admin_name != null)
|
||||||
{
|
{
|
||||||
@ -123,7 +124,7 @@ public class Command_saconfig extends TFM_Command
|
|||||||
TFM_SuperadminList.addSuperadmin(admin_name);
|
TFM_SuperadminList.addSuperadmin(admin_name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (args[0].equalsIgnoreCase("delete") || args[0].equalsIgnoreCase("del") || args[0].equalsIgnoreCase("remove"))
|
else if (TFM_Util.isRemoveCommand(args[0]))
|
||||||
{
|
{
|
||||||
if (!TFM_SuperadminList.isSeniorAdmin(sender))
|
if (!TFM_SuperadminList.isSeniorAdmin(sender))
|
||||||
{
|
{
|
||||||
@ -131,62 +132,30 @@ public class Command_saconfig extends TFM_Command
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
String target_name = args[1];
|
String targetName = args[1];
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
target_name = getPlayer(target_name).getName();
|
targetName = getPlayer(targetName).getName();
|
||||||
}
|
}
|
||||||
catch (CantFindPlayerException ex)
|
catch (PlayerNotFoundException ex)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!TFM_SuperadminList.getSuperadminNames().contains(target_name.toLowerCase()))
|
if (!TFM_SuperadminList.getSuperadminNames().contains(targetName.toLowerCase()))
|
||||||
{
|
{
|
||||||
playerMsg("Superadmin not found: " + target_name);
|
playerMsg("Superadmin not found: " + targetName);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
TFM_Util.adminAction(sender.getName(), "Removing " + target_name + " from the superadmin list", true);
|
TFM_Util.adminAction(sender.getName(), "Removing " + targetName + " from the superadmin list", true);
|
||||||
TFM_SuperadminList.removeSuperadmin(target_name);
|
TFM_SuperadminList.removeSuperadmin(targetName);
|
||||||
|
|
||||||
if (!TotalFreedomMod.twitterbotEnabled)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Twitterbot
|
// Twitterbot
|
||||||
TFM_TwitterHandler twitterbot = TFM_TwitterHandler.getInstance(plugin);
|
if (TFM_ConfigEntry.TWITTERBOT_ENABLED.getBoolean())
|
||||||
String reply = twitterbot.delTwitter(target_name);
|
|
||||||
if ("ok".equals(reply))
|
|
||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "Removing " + target_name + " from TwitterBot", true);
|
TFM_TwitterHandler.getInstance().delTwitterVerbose(targetName, sender);
|
||||||
}
|
}
|
||||||
else if ("disabled".equals(reply))
|
|
||||||
{
|
|
||||||
TFM_Util.playerMsg(sender, "Warning: Could not check if player has a twitter handle!");
|
|
||||||
TFM_Util.playerMsg(sender, "TwitterBot has been temporarily disabled,, please wait until it get re-enabled", ChatColor.RED);
|
|
||||||
}
|
|
||||||
else if ("failed".equals(reply))
|
|
||||||
{
|
|
||||||
TFM_Util.playerMsg(sender, "Warning: Could not check if player has a twitter handle!");
|
|
||||||
TFM_Util.playerMsg(sender, "There was a problem querying the database, please let a developer know.", ChatColor.RED);
|
|
||||||
}
|
|
||||||
else if ("false".equals(reply))
|
|
||||||
{
|
|
||||||
TFM_Util.playerMsg(sender, "Warning: Could not check if player has a twitter handle!");
|
|
||||||
TFM_Util.playerMsg(sender, "There was a problem with the database, please let a developer know.", ChatColor.RED);
|
|
||||||
}
|
|
||||||
else if ("cannotauth".equals(reply))
|
|
||||||
{
|
|
||||||
TFM_Util.playerMsg(sender, "Warning: Could not check if player has a twitter handle!");
|
|
||||||
TFM_Util.playerMsg(sender, "The database password is incorrect, please let a developer know.", ChatColor.RED);
|
|
||||||
}
|
|
||||||
else if ("notfound".equals(reply))
|
|
||||||
{
|
|
||||||
TFM_Util.playerMsg(sender, target_name + " did not have a twitter handle registered to their name.", ChatColor.GREEN);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import org.apache.commons.lang.StringUtils;
|
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
@ -27,9 +27,9 @@ public class Command_say extends TFM_Command
|
|||||||
{
|
{
|
||||||
TFM_Util.bcastMsg("Server is going offline.", ChatColor.GRAY);
|
TFM_Util.bcastMsg("Server is going offline.", ChatColor.GRAY);
|
||||||
|
|
||||||
for (Player p : server.getOnlinePlayers())
|
for (Player player : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
p.kickPlayer("Server is going offline, come back in a few minutes.");
|
player.kickPlayer("Server is going offline, come back in about 20 seconds.");
|
||||||
}
|
}
|
||||||
|
|
||||||
server.shutdown();
|
server.shutdown();
|
||||||
|
@ -0,0 +1,28 @@
|
|||||||
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_ServiceChecker;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_ServiceChecker.ServiceStatus;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
@CommandPermissions(level = AdminLevel.ALL, source = SourceType.BOTH)
|
||||||
|
@CommandParameters(description = "Shows the status of all Mojang services", usage = "/<command>")
|
||||||
|
public class Command_services extends TFM_Command
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||||
|
{
|
||||||
|
playerMsg("Mojang Services" + ChatColor.WHITE + ":", ChatColor.BLUE);
|
||||||
|
|
||||||
|
for (ServiceStatus service : TFM_ServiceChecker.getInstance().getAllStatuses())
|
||||||
|
{
|
||||||
|
playerMsg(service.getFormattedStatus());
|
||||||
|
}
|
||||||
|
playerMsg("Version" + ChatColor.WHITE + ": " + TFM_ServiceChecker.getInstance().getVersion(), ChatColor.DARK_PURPLE);
|
||||||
|
playerMsg("Last Check" + ChatColor.WHITE + ": " + TFM_ServiceChecker.getInstance().getLastCheck(), ChatColor.DARK_PURPLE);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
@ -1,6 +1,7 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_WorldEditBridge;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -12,34 +13,12 @@ public class Command_setl extends TFM_Command
|
|||||||
@Override
|
@Override
|
||||||
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||||
{
|
{
|
||||||
//server.dispatchCommand(sender, "wildcard gcmd ? /limit 500"); - Madgeek: No, no, hell no.
|
|
||||||
|
|
||||||
TFM_Util.adminAction(sender.getName(), "Setting everyone's Worldedit block modification limit to 500.", true);
|
TFM_Util.adminAction(sender.getName(), "Setting everyone's Worldedit block modification limit to 500.", true);
|
||||||
|
TFM_WorldEditBridge web = TFM_WorldEditBridge.getInstance();
|
||||||
for (final Player p : server.getOnlinePlayers())
|
for (final Player player : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
final boolean isOp = p.isOp();
|
web.setLimit(player, 500);
|
||||||
|
|
||||||
if (!isOp)
|
|
||||||
{
|
|
||||||
p.setOp(true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
server.dispatchCommand(p, "/limit 500");
|
|
||||||
|
|
||||||
if (!isOp)
|
|
||||||
{
|
|
||||||
server.getScheduler().runTaskLater(plugin, new Runnable()
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public void run()
|
|
||||||
{
|
|
||||||
p.setOp(false);
|
|
||||||
}
|
|
||||||
}, 20L);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,76 @@
|
|||||||
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.World;
|
||||||
|
import org.bukkit.block.Block;
|
||||||
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
@CommandPermissions(level = AdminLevel.ALL, source = SourceType.BOTH)
|
||||||
|
@CommandParameters(description = "Set the on/off state of the lever at position x, y, z in world 'worldname'.", usage = "/<command> <x> <y> <z> <worldname> <on|off>")
|
||||||
|
public class Command_setlever extends TFM_Command
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||||
|
{
|
||||||
|
if (args.length != 5)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
double x, y, z;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
x = Double.parseDouble(args[0]);
|
||||||
|
y = Double.parseDouble(args[1]);
|
||||||
|
z = Double.parseDouble(args[2]);
|
||||||
|
}
|
||||||
|
catch (NumberFormatException ex)
|
||||||
|
{
|
||||||
|
playerMsg("Invalid coordinates.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
World world = null;
|
||||||
|
final String needleWorldName = args[3].trim();
|
||||||
|
final List<World> worlds = server.getWorlds();
|
||||||
|
for (final World testWorld : worlds)
|
||||||
|
{
|
||||||
|
if (testWorld.getName().trim().equalsIgnoreCase(needleWorldName))
|
||||||
|
{
|
||||||
|
world = testWorld;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (world == null)
|
||||||
|
{
|
||||||
|
playerMsg("Invalid world name.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
final Location leverLocation = new Location(world, x, y, z);
|
||||||
|
|
||||||
|
final boolean leverOn = (args[4].trim().equalsIgnoreCase("on") || args[4].trim().equalsIgnoreCase("1")) ? true : false;
|
||||||
|
|
||||||
|
final Block targetBlock = leverLocation.getBlock();
|
||||||
|
|
||||||
|
if (targetBlock.getType() == Material.LEVER)
|
||||||
|
{
|
||||||
|
org.bukkit.material.Lever lever = new org.bukkit.material.Lever(Material.LEVER, targetBlock.getData());
|
||||||
|
lever.setPowered(leverOn);
|
||||||
|
targetBlock.setData(lever.getData());
|
||||||
|
targetBlock.getState().update();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
playerMsg("Target block " + targetBlock + " is not a lever.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
@ -1,8 +1,8 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ProtectedArea;
|
import me.StevenLawson.TotalFreedomMod.TFM_ProtectedArea;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
@ -20,9 +20,9 @@ public class Command_setspawnworld extends TFM_Command
|
|||||||
|
|
||||||
playerMsg("Spawn location for this world set to: " + TFM_Util.formatLocation(sender_p.getWorld().getSpawnLocation()));
|
playerMsg("Spawn location for this world set to: " + TFM_Util.formatLocation(sender_p.getWorld().getSpawnLocation()));
|
||||||
|
|
||||||
if (TotalFreedomMod.protectedAreasEnabled && TotalFreedomMod.autoProtectSpawnpoints)
|
if (TFM_ConfigEntry.PROTECTED_AREAS_ENABLED.getBoolean() && TFM_ConfigEntry.AUTO_PROTECT_SPAWNPOINTS.getBoolean())
|
||||||
{
|
{
|
||||||
TFM_ProtectedArea.addProtectedArea("spawn_" + sender_p.getWorld().getName(), pos, TotalFreedomMod.autoProtectRadius);
|
TFM_ProtectedArea.addProtectedArea("spawn_" + sender_p.getWorld().getName(), pos, TFM_ConfigEntry.AUTO_PROTECT_RADIUS.getDouble());
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -21,43 +21,48 @@ public class Command_smite extends TFM_Command
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Player p;
|
Player player;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
p = getPlayer(args[0]);
|
player = getPlayer(args[0]);
|
||||||
}
|
}
|
||||||
catch (CantFindPlayerException ex)
|
catch (PlayerNotFoundException ex)
|
||||||
{
|
{
|
||||||
playerMsg(ex.getMessage(), ChatColor.RED);
|
playerMsg(ex.getMessage(), ChatColor.RED);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
TFM_Util.bcastMsg(p.getName() + " has been a naughty, naughty boy.", ChatColor.RED);
|
smite(player);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void smite(final Player player)
|
||||||
|
{
|
||||||
|
TFM_Util.bcastMsg(player.getName() + " has been a naughty, naughty boy.", ChatColor.RED);
|
||||||
|
|
||||||
//Deop
|
//Deop
|
||||||
p.setOp(false);
|
player.setOp(false);
|
||||||
|
|
||||||
//Set gamemode to survival:
|
//Set gamemode to survival:
|
||||||
p.setGameMode(GameMode.SURVIVAL);
|
player.setGameMode(GameMode.SURVIVAL);
|
||||||
|
|
||||||
//Clear inventory:
|
//Clear inventory:
|
||||||
p.getInventory().clear();
|
player.getInventory().clear();
|
||||||
|
|
||||||
//Strike with lightning effect:
|
//Strike with lightning effect:
|
||||||
final Location target_pos = p.getLocation();
|
final Location targetPos = player.getLocation();
|
||||||
final World world = p.getWorld();
|
final World world = player.getWorld();
|
||||||
for (int x = -1; x <= 1; x++)
|
for (int x = -1; x <= 1; x++)
|
||||||
{
|
{
|
||||||
for (int z = -1; z <= 1; z++)
|
for (int z = -1; z <= 1; z++)
|
||||||
{
|
{
|
||||||
final Location strike_pos = new Location(world, target_pos.getBlockX() + x, target_pos.getBlockY(), target_pos.getBlockZ() + z);
|
final Location strike_pos = new Location(world, targetPos.getBlockX() + x, targetPos.getBlockY(), targetPos.getBlockZ() + z);
|
||||||
world.strikeLightning(strike_pos);
|
world.strikeLightning(strike_pos);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//Kill:
|
//Kill:
|
||||||
p.setHealth(0.0);
|
player.setHealth(0.0);
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
@ -11,14 +12,24 @@ import org.bukkit.entity.Player;
|
|||||||
@CommandParameters(description = "Show misc. server info.", usage = "/<command>")
|
@CommandParameters(description = "Show misc. server info.", usage = "/<command>")
|
||||||
public class Command_status extends TFM_Command
|
public class Command_status extends TFM_Command
|
||||||
{
|
{
|
||||||
|
public static final Map<String, String> SERVICE_MAP = new HashMap<String, String>();
|
||||||
|
|
||||||
|
static
|
||||||
|
{
|
||||||
|
SERVICE_MAP.put("minecraft.net", "Minecraft.net");
|
||||||
|
SERVICE_MAP.put("login.minecraft.net", "Minecraft Logins");
|
||||||
|
SERVICE_MAP.put("session.minecraft.net", "Minecraft Multiplayer Sessions");
|
||||||
|
SERVICE_MAP.put("account.mojang.com", "Mojang Accounts Website");
|
||||||
|
SERVICE_MAP.put("auth.mojang.com", "Mojang Accounts Login");
|
||||||
|
SERVICE_MAP.put("skins.minecraft.net", "Minecraft Skins");
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean run(final CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
public boolean run(final CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||||
{
|
{
|
||||||
playerMsg(String.format("Total Freedom Mod v%s.%s, built %s.", TotalFreedomMod.pluginVersion, TotalFreedomMod.buildNumber, TotalFreedomMod.buildDate), ChatColor.GOLD);
|
playerMsg("For information about TotalFreedomMod, try /tfm", ChatColor.GREEN); // Temporary
|
||||||
playerMsg("TotalFreedomMod was created by Madgeek1450 and DarthSalamon.", ChatColor.GOLD);
|
|
||||||
|
|
||||||
playerMsg("Server is currently running with 'online-mode=" + (server.getOnlineMode() ? "true" : "false") + "'.", ChatColor.YELLOW);
|
playerMsg("Server is currently running with 'online-mode=" + (server.getOnlineMode() ? "true" : "false") + "'.", ChatColor.YELLOW);
|
||||||
|
|
||||||
playerMsg("Loaded worlds:", ChatColor.BLUE);
|
playerMsg("Loaded worlds:", ChatColor.BLUE);
|
||||||
int i = 0;
|
int i = 0;
|
||||||
for (World world : server.getWorlds())
|
for (World world : server.getWorlds())
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Log;
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_PlayerData;
|
import me.StevenLawson.TotalFreedomMod.TFM_PlayerData;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||||
@CommandParameters(description = "Mutes a player with brute force.", usage = "/<command> [<player> | list | purge | all]", aliases = "mute")
|
@CommandParameters(description = "Mutes a player with brute force.", usage = "/<command> [<player> | list | purge | all]", aliases = "mute")
|
||||||
@ -54,10 +54,9 @@ public class Command_stfu extends TFM_Command
|
|||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (TotalFreedomMod.mutePurgeEventId != 0)
|
if (TotalFreedomMod.mutePurgeTask != null)
|
||||||
{
|
{
|
||||||
server.getScheduler().cancelTask(TotalFreedomMod.mutePurgeEventId);
|
TotalFreedomMod.mutePurgeTask.cancel();
|
||||||
TotalFreedomMod.mutePurgeEventId = 0;
|
|
||||||
}
|
}
|
||||||
playerMsg("Unmuted " + count + " players.");
|
playerMsg("Unmuted " + count + " players.");
|
||||||
}
|
}
|
||||||
@ -67,69 +66,67 @@ public class Command_stfu extends TFM_Command
|
|||||||
|
|
||||||
TFM_PlayerData playerdata;
|
TFM_PlayerData playerdata;
|
||||||
int counter = 0;
|
int counter = 0;
|
||||||
for (Player p : server.getOnlinePlayers())
|
for (Player player : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
if (!TFM_SuperadminList.isUserSuperadmin(p))
|
if (!TFM_SuperadminList.isUserSuperadmin(player))
|
||||||
{
|
{
|
||||||
playerdata = TFM_PlayerData.getPlayerData(p);
|
playerdata = TFM_PlayerData.getPlayerData(player);
|
||||||
playerdata.setMuted(true);
|
playerdata.setMuted(true);
|
||||||
counter++;
|
counter++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
TotalFreedomMod.mutePurgeEventId = server.getScheduler().scheduleSyncDelayedTask(plugin, new Runnable()
|
if (TotalFreedomMod.mutePurgeTask != null)
|
||||||
|
{
|
||||||
|
TotalFreedomMod.mutePurgeTask.cancel();
|
||||||
|
}
|
||||||
|
|
||||||
|
TotalFreedomMod.mutePurgeTask = new BukkitRunnable()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public void run()
|
public void run()
|
||||||
{
|
{
|
||||||
if (TotalFreedomMod.mutePurgeEventId == 0)
|
|
||||||
{
|
|
||||||
TFM_Log.warning("Mute autopurge task was improperly cancelled!");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
TFM_Util.adminAction("MuteTimer", "Unmuting all players", false);
|
TFM_Util.adminAction("MuteTimer", "Unmuting all players", false);
|
||||||
for (Player p : server.getOnlinePlayers())
|
for (Player player : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
TFM_PlayerData.getPlayerData(p).setMuted(false);
|
TFM_PlayerData.getPlayerData(player).setMuted(false);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}.runTaskLater(plugin, 20L * 60L * 5L);
|
||||||
|
|
||||||
TotalFreedomMod.mutePurgeEventId = 0;
|
|
||||||
}
|
|
||||||
}, 6000L); // five minutes in ticks: 20*60*5
|
|
||||||
playerMsg("Muted " + counter + " players.");
|
playerMsg("Muted " + counter + " players.");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Player p;
|
Player player;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
p = getPlayer(args[0]);
|
player = getPlayer(args[0]);
|
||||||
}
|
}
|
||||||
catch (CantFindPlayerException ex)
|
catch (PlayerNotFoundException ex)
|
||||||
{
|
{
|
||||||
sender.sendMessage(ex.getMessage());
|
sender.sendMessage(ex.getMessage());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(p);
|
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
|
||||||
if (playerdata.isMuted())
|
if (playerdata.isMuted())
|
||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "Unmuting " + p.getName(), true);
|
TFM_Util.adminAction(sender.getName(), "Unmuting " + player.getName(), true);
|
||||||
playerdata.setMuted(false);
|
playerdata.setMuted(false);
|
||||||
playerMsg("Unmuted " + p.getName());
|
playerMsg("Unmuted " + player.getName());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (!TFM_SuperadminList.isUserSuperadmin(p))
|
if (!TFM_SuperadminList.isUserSuperadmin(player))
|
||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "Muting " + p.getName(), true);
|
TFM_Util.adminAction(sender.getName(), "Muting " + player.getName(), true);
|
||||||
playerdata.setMuted(true);
|
playerdata.setMuted(true);
|
||||||
playerMsg("Muted " + p.getName());
|
playerMsg("Muted " + player.getName());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
playerMsg(p.getName() + " is a superadmin, and can't be muted.");
|
playerMsg(player.getName() + " is a superadmin, and can't be muted.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -15,9 +15,9 @@ public class Command_stop extends TFM_Command
|
|||||||
{
|
{
|
||||||
TFM_Util.bcastMsg("Server is going offline!", ChatColor.LIGHT_PURPLE);
|
TFM_Util.bcastMsg("Server is going offline!", ChatColor.LIGHT_PURPLE);
|
||||||
|
|
||||||
for (Player p : server.getOnlinePlayers())
|
for (Player player : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
p.kickPlayer("Server is going offline, come back in about 20 seconds.");
|
player.kickPlayer("Server is going offline, come back in about 20 seconds.");
|
||||||
}
|
}
|
||||||
|
|
||||||
server.shutdown();
|
server.shutdown();
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user