mirror of
https://github.com/AtlasMediaGroup/TotalFreedomMod.git
synced 2025-07-01 12:36:41 +00:00
Compare commits
208 Commits
Author | SHA1 | Date | |
---|---|---|---|
4ca3593653 | |||
af52dec24a | |||
34ebb3586c | |||
eee8682959 | |||
af1dd2e9ff | |||
ade60ad611 | |||
e699ad1663 | |||
e2308ee904 | |||
d14a595ac4 | |||
5190af0a6b | |||
a11b87ec83 | |||
c7a0604afc | |||
9970277134 | |||
49f6879ccb | |||
794b76321a | |||
e5b4ae0e3e | |||
310ce4f75a | |||
cf072dc0d5 | |||
7fe0b562ee | |||
6f6fdb28bf | |||
524d4da9d8 | |||
0aa0bae0ad | |||
fcf52ba02a | |||
8a92ff132b | |||
99043a7c49 | |||
2a71be4050 | |||
b43ef812a2 | |||
7981adaf85 | |||
1bc22a817a | |||
57a6b35457 | |||
8b45482d0a | |||
af64a77268 | |||
5c50069f21 | |||
3c329667a4 | |||
1565c9643d | |||
84ef49bf65 | |||
878075c898 | |||
c74763c96a | |||
d01f9d0b2f | |||
e780c4ffec | |||
3968dbe0a2 | |||
ff9164714c | |||
72e105eb34 | |||
f4440fd262 | |||
587b84a489 | |||
107952f0ba | |||
8cae042857 | |||
d1b73592af | |||
b7175d73ab | |||
9c976b381b | |||
0c99862793 | |||
0240b65fad | |||
b6d3e5baca | |||
15650b84cf | |||
9233bcfedc | |||
b0aa4a850d | |||
af97481d11 | |||
3c6e706c98 | |||
aca62caec1 | |||
eaa23985bd | |||
e3f9452b9f | |||
755080d0a4 | |||
0f764b976b | |||
d0a435a5d6 | |||
b02764ddca | |||
b3c28d33f2 | |||
6ad1187eef | |||
1bf1267b49 | |||
d2f6f7f51a | |||
dc2c996516 | |||
f502e44764 | |||
c490a3d62e | |||
9a2dc52e87 | |||
a1c11f4e0f | |||
48fd4c590d | |||
97cde0cfd4 | |||
429269d8d2 | |||
1a50c16d9a | |||
891d8d178f | |||
fc1c487dce | |||
e2cc14370a | |||
d5d6f18fb4 | |||
00e22dc56e | |||
40b475ea0c | |||
65eabbdba4 | |||
cb4a47d812 | |||
ecbd70493b | |||
4988140268 | |||
57b0aadb9b | |||
ef9ce2a9a7 | |||
2c92b0874e | |||
927560ad75 | |||
c8dbc8a623 | |||
11eef83a65 | |||
a2439a7093 | |||
d8697590a7 | |||
6d98604cf0 | |||
3d6be1cd51 | |||
01edfed307 | |||
5e4d1d0d6d | |||
86f61f1487 | |||
461cfa7bdc | |||
75b296496e | |||
183277db21 | |||
2b597867f0 | |||
7f7312c0a2 | |||
73214165a5 | |||
54be4f7e88 | |||
3ccab5f534 | |||
f635af5f95 | |||
cc3a183cac | |||
173b686658 | |||
a0d5743232 | |||
7598d211cd | |||
6b064d0e68 | |||
8fc0673bb2 | |||
aa062a9d11 | |||
8b4b2f97e0 | |||
c4f1d0c06f | |||
20d4e886fc | |||
e36ace1671 | |||
2f055fbecb | |||
d193686c79 | |||
ba2ada569f | |||
850fd9aa4a | |||
1fb14ca1dd | |||
499472a126 | |||
28459e4702 | |||
57dda8367c | |||
cdf03b4353 | |||
5ec66e8c7e | |||
f57aeb8fb0 | |||
adb3834836 | |||
d82d6fd704 | |||
ec0683f610 | |||
2d118a44a9 | |||
64cd7f7393 | |||
9a1fc8ea36 | |||
75247af337 | |||
d20b062b70 | |||
4b36574255 | |||
bba42797d8 | |||
365e38e63a | |||
5a3106ace8 | |||
8cb4ef111c | |||
50d6cf471c | |||
e942f0bf75 | |||
f8231aeb3f | |||
eddbcf515c | |||
00ac914066 | |||
179fe9d665 | |||
67c86aea24 | |||
e4bb1ef6aa | |||
16b02e3dec | |||
70e248202b | |||
51ef752259 | |||
b3e40462e2 | |||
73a91c02c6 | |||
7b8ba0bdf5 | |||
bd9d6114ba | |||
0435174342 | |||
796ef3d359 | |||
a3f3903760 | |||
5c99aa9a44 | |||
8292eb20ae | |||
d9e0791a3b | |||
dbfec1e86d | |||
31e03d6348 | |||
46494a2c87 | |||
b11eb0f762 | |||
730b0e2c83 | |||
60a9de7e7c | |||
8a4fa946fd | |||
9bc0859fdf | |||
742450d016 | |||
ad06bea3ae | |||
68d83fa397 | |||
fe84c3a2a0 | |||
6e5e70ac90 | |||
489549a0ea | |||
56b55eb3e2 | |||
4ef5f59fb9 | |||
d31ad2e9fc | |||
8a9dfca6d3 | |||
55ddf5a30a | |||
59e890c654 | |||
b0e62add9f | |||
7cdf1abcf2 | |||
ee0ebd85fc | |||
518537413b | |||
802d02d653 | |||
f3cb57c9cd | |||
c7c2795f41 | |||
20b117a703 | |||
8522570db5 | |||
08e4a4a171 | |||
a0affddeed | |||
c82113dc22 | |||
9315227906 | |||
00e9b4ea1f | |||
22b0781020 | |||
7df24c6b86 | |||
0e9044ffc3 | |||
3371f54c06 | |||
92d7c58957 | |||
478244773b | |||
b3b182e753 | |||
49601035a5 |
3
.gitignore
vendored
3
.gitignore
vendored
@ -17,3 +17,6 @@ manifest.mf
|
|||||||
.Trashes
|
.Trashes
|
||||||
ehthumbs.db
|
ehthumbs.db
|
||||||
Thumbs.db
|
Thumbs.db
|
||||||
|
|
||||||
|
# TFM files
|
||||||
|
buildcreator.properties
|
||||||
|
106
CONTRIBUTING.md
106
CONTRIBUTING.md
@ -1,51 +1,93 @@
|
|||||||
# Contributing to TotalFreedomMod #
|
# 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 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.
|
||||||
|
|
||||||
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.
|
For those who wish to contribute, we encourage you to fork the repository and submit pull requests. Below you will find guidelines that explain this process in further detail.
|
||||||
|
|
||||||
|
## Quick Guide ##
|
||||||
|
1. Create or find an issue on our [Issue Tracker](https://github.com/TotalFreedom/TotalFreedomMod/issues).
|
||||||
|
2. Does your change fits TotalFreedomMod's goals?
|
||||||
|
3. Fork TotalFreedomMod if you haven't done so already.
|
||||||
|
4. Make a branch dedicated to your change.
|
||||||
|
5. Make your change.
|
||||||
|
6. Commit your change according to the [committing guidelines](#committing-your-changes).
|
||||||
|
7. Push your branch and submit a pull request.
|
||||||
|
|
||||||
## Getting Started ##
|
## Getting Started ##
|
||||||
* Make sure you have a [GitHub account](https://github.com/signup/free)
|
* Search the issue tracker for your bug report or feature request.
|
||||||
* If the issue is a bug, submit a ticket for it, assuming one does not already exist.
|
* If the issue does not exist already, create it.
|
||||||
* Clearly describe the issue including steps to reproduce it.
|
* Clearly describe the issue.
|
||||||
* Make sure you fill in the earliest version that you know has the issue.
|
* If your issue is a bug, describe the steps needed to reproduce it.
|
||||||
* Fork the repository on GitHub
|
* If your issue is a feature request, ensure it fits TotalFreedomMod's goals and describe your feature in detail.
|
||||||
|
* Fork the repository on GitHub.
|
||||||
|
|
||||||
|
## Does the change fit TotalFreedomMod's goals? ##
|
||||||
|
As a rough guideline, ask yourself the following questions to determine if your proposed change fits the TotalFreedomMod project's goals. Please remember that this is only a rough guideline and may or may not reflect the definitive answer to this question.
|
||||||
|
|
||||||
|
* Is the change in line with the principles of "Total Freedom"?
|
||||||
|
TotalFreedom is a freedom-based server. We don't normally make changes that restrict players unless absolutely necessary.
|
||||||
|
|
||||||
|
* Is the change directed towards the TotalFreedom server?
|
||||||
|
Changes must be directed towards the TotalFreedom server. Changes such as adding ranks, adding the name of other TotalFreedom-like servers will not likely be accepted.
|
||||||
|
|
||||||
|
* Does the change add a feature that involves micromanagement?
|
||||||
|
Pull requests that involve adding a micromanagement feature will likely not be accepted. This includes shorthands for multiple commands.
|
||||||
|
|
||||||
|
* Is a similar feature already present?
|
||||||
|
Features that have very similar alternatives will not be added. For example: A command that temporarily bans a player from the server is very similar to the _/tban_ command and thus will likely not be accepted.
|
||||||
|
|
||||||
## 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 branch.
|
* Name your branch something relevant to the change you are going to make.
|
||||||
* 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, use `git checkout master` followed by `git checkout -b <name>`. Avoid working directly on the `master` branch.
|
||||||
* Make changes and commit where necessary.
|
* Make sure your change meets our [code requirements](#code-requirements).
|
||||||
|
|
||||||
|
### Code requirements ###
|
||||||
|
* Code must be written in [Allman style](http://en.wikipedia.org/wiki/Indent_style#Allman_style), and that it follows [Java Code Conventions](http://www.oracle.com/technetwork/java/codeconventions-150003.pdf).__
|
||||||
|
* No tabs; use 4 spaces for indentation.
|
||||||
|
* No trailing whitespaces for code lines, comments or configuration files.
|
||||||
|
* No CRLF line endings, only LF is allowed.
|
||||||
|
* For Windows-based machines, you can configure Git to do this for your by running `git config --global core.autocrlf true`.
|
||||||
|
* If you're running a Linux or Mac OSX, you should run `git config --global core.autocrlf input` instead.
|
||||||
|
* For more information about line feeds. See this [this article](http://adaptivepatchwork.com/2012/03/01/mind-the-end-of-your-line/).
|
||||||
|
* No 80 character line limit or 'weird' midstatement newlines.
|
||||||
|
* Additions should be compiled, complete and tested before committing.
|
||||||
|
* Avoid using `org.bukkit.Server.dispatchCommand()`. Commits that make use of it will likely be rejected.
|
||||||
|
* Files must always end with a newline.
|
||||||
|
* Avoid nested code structures.
|
||||||
|
|
||||||
|
## Committing your changes ##
|
||||||
* 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.
|
* Describe your changes in the commit description.
|
||||||
* Make sure your changes build (<b>and work!</b>).
|
* For a prolonged description, continue on a new line.
|
||||||
|
* The first description line should be once sentence and should not exceed 10 words.
|
||||||
|
* The first description line should contain either:
|
||||||
|
* For a bug-related issue: "Resolves _#issue_".
|
||||||
|
* For a feature request: "Fixes _#issue_".
|
||||||
|
* "#issue" is the issue number number you based your work on.
|
||||||
|
|
||||||
## Tips - How To Get Your Pull Request Accepted ##
|
#### Example commit message ####
|
||||||
* See this picture for help:
|
```
|
||||||

|
Fixed bugs with /saconfig clear. Resolves #167
|
||||||
|
Admins can now use /saconfig clear [ip] to remove the designated IP (only their own IPs can be removed.
|
||||||
* Make sure your changes work and compile without difficulty.
|
They can also simply use /saconfig clear to remove all IPs but the current one. /saconfig clear is safe,
|
||||||
* Make sure your change adds something useful, do not add commands to micromanage the server. (ie: Shorthands for a collection of commands)
|
meaning you can't remove your current IP or an IP that doesn't belong to you.
|
||||||
* __Commands that make use of `org.bukkit.Server.dispatchCommand()` will probably be rejected.__
|
```
|
||||||
* Features must be in line the general idea of "Total Freedom".
|
|
||||||
* 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.
|
|
||||||
* Do not add yourself to the developer list.
|
|
||||||
* 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 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).__
|
|
||||||
* Do not increment the version number.
|
|
||||||
* 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.
|
|
||||||
* Please make sure there are no bugs in your code.
|
|
||||||
* 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 unnecessary commits.
|
|
||||||
* 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.
|
|
||||||
|
|
||||||
## Submitting Your Changes ##
|
## Submitting Your Changes ##
|
||||||
* Push your changes to a topic branch in your fork of the repository.
|
* Push your changes to the 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.
|
||||||
|
* Do not add any prefixes or tags.
|
||||||
|
|
||||||
|
## Tips - How To Get Your Pull Request Accepted ##
|
||||||
|
* Please make sure your changes are written such as other features would be. For example: Commands have their own class and extend TFM_Command.
|
||||||
|
* Do not increment the version number.
|
||||||
|
* 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.
|
||||||
|
* Please avoid having to add files in the main namespace where possible.
|
||||||
|
* Please refrain from using an excessive amount of commits. As few as possible is generally the best.
|
||||||
|
* Please do not spread your contribution over several pull-requests.
|
||||||
|
|
||||||
## Additional Resources ##
|
## Additional Resources ##
|
||||||
* [TotalFreedom information](http://totalfreedom.me)
|
* [TotalFreedom information](http://totalfreedom.me)
|
||||||
|
12
LICENSE.md
12
LICENSE.md
@ -1,13 +1,3 @@
|
|||||||
# TotalFreedomMod License #
|
# 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.
|
TotalFreedomMod is licensed under the TotalFreedom General License. It is available [here](https://github.com/TotalFreedom/License/blob/master/LICENSE.md).
|
||||||
* 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 shall not edit or remove the file Command_tfm.java
|
|
||||||
* 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.
|
|
||||||
|
@ -2,16 +2,22 @@
|
|||||||
<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" />
|
||||||
|
|
||||||
<target name="-pre-jar">
|
<target name="-pre-jar">
|
||||||
|
<copy file="buildcreator.default.properties" tofile="buildcreator.properties" overwrite="false" />
|
||||||
|
|
||||||
|
<property file="buildcreator.properties"/>
|
||||||
<buildnumber file="buildnumber.properties" />
|
<buildnumber file="buildnumber.properties" />
|
||||||
|
|
||||||
<propertyfile file="appinfo.properties">
|
<propertyfile file="appinfo.properties">
|
||||||
<entry key="program.buildnumber" value="${build.number}" />
|
<entry key="program.buildnumber" 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" />
|
||||||
|
<entry key="program.buildcreator" value="${program.buildcreator}" />
|
||||||
</propertyfile>
|
</propertyfile>
|
||||||
<copy file="appinfo.properties" todir="${build.classes.dir}" />
|
<copy file="appinfo.properties" todir="${build.classes.dir}" />
|
||||||
<delete file="appinfo.properties" />
|
<delete file="appinfo.properties" />
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="-post-jar">
|
<target name="-post-jar">
|
||||||
<!-- Cleanup -->
|
<!-- Cleanup -->
|
||||||
<delete file="${dist.dir}/README.TXT" />
|
<delete file="${dist.dir}/README.TXT" />
|
||||||
|
6
buildcreator.default.properties
Normal file
6
buildcreator.default.properties
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
#
|
||||||
|
# Build creator configuration
|
||||||
|
#
|
||||||
|
# Note: Do not edit this file! Edit the generated "buildcreator.properties" file instead.
|
||||||
|
#
|
||||||
|
program.buildcreator=Unknown
|
@ -1,3 +1,3 @@
|
|||||||
#Build Number for ANT. Do not edit!
|
#Build Number for ANT. Do not edit!
|
||||||
#Tue Apr 15 16:28:36 CEST 2014
|
#Mon Feb 16 16:40:10 CET 2015
|
||||||
build.number=762
|
build.number=982
|
||||||
|
@ -49,10 +49,9 @@ jar.compress=false
|
|||||||
jar.index=${jnlp.enabled}
|
jar.index=${jnlp.enabled}
|
||||||
javac.classpath=\
|
javac.classpath=\
|
||||||
${libs.WorldEdit.classpath}:\
|
${libs.WorldEdit.classpath}:\
|
||||||
${libs.DisguiseCraft.classpath}:\
|
|
||||||
${libs.Essentials.classpath}:\
|
${libs.Essentials.classpath}:\
|
||||||
${libs.BukkitTelnet.classpath}:\
|
${libs.BukkitTelnet.classpath}:\
|
||||||
${libs.CraftBukkit.classpath}
|
${libs.SpigotServer.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
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#
|
#
|
||||||
# TotalFreedomMod banning config
|
# TotalFreedomMod banning config
|
||||||
# Warning: modification of this file is not reccomended
|
# Warning: modification of this file is not recommended
|
||||||
#
|
#
|
||||||
# Format:
|
# Format:
|
||||||
# Ip: [IP-address / UUID]:[Last login name]:[Expiry unix timestamp (0 = never)][Banned by]:[Reason]
|
# Ip: [IP-address / UUID]:[Last login name]:[Expiry unix timestamp (0 = never)][Banned by]:[Reason]
|
||||||
|
221
src/config.yml
221
src/config.yml
@ -1,33 +1,67 @@
|
|||||||
# TotalFreedomMod v4.0 Configuration
|
#
|
||||||
# by Madgeek1450 and DarthSalamon
|
# TotalFreedomMod v4.3 Configuration
|
||||||
|
# by Madgeek1450 and Prozza
|
||||||
|
#
|
||||||
|
|
||||||
# Block placement prevention:
|
# Generic server information
|
||||||
allow_fire_place: false
|
server:
|
||||||
allow_fire_spread: false
|
# You should change this to your server's name
|
||||||
allow_lava_damage: false
|
name: TotalFreedom
|
||||||
allow_lava_place: false
|
|
||||||
allow_water_place: false
|
|
||||||
allow_fluid_spread: false
|
|
||||||
allow_tnt_minecarts: false
|
|
||||||
|
|
||||||
# Explosion management:
|
# The address your server is located at. Please do not include the port.
|
||||||
allow_explosions: false
|
address: play.totalfreedom.me
|
||||||
explosive_radius: 4.0
|
|
||||||
|
# Shown at the server list
|
||||||
|
motd: TotalFreedom &8- Minecraft %mcversion%
|
||||||
|
|
||||||
|
# Every word in the MOTD will be a different color unless prefixed by a color code
|
||||||
|
colorful_motd: true
|
||||||
|
|
||||||
|
# All players who show up as owner
|
||||||
|
owners:
|
||||||
|
- markbyron
|
||||||
|
|
||||||
|
# URL players should appeal for bans at
|
||||||
|
ban_url: http://totalfreedom.boards.net/
|
||||||
|
|
||||||
|
# URL players should appeal for permanent bans at
|
||||||
|
permban_url: http://bit.ly/TF_PermBan
|
||||||
|
|
||||||
|
# ForceIP configuration
|
||||||
|
forceip:
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
# The port players should use to connect to your server; only applies to forceip
|
||||||
|
port: 25565
|
||||||
|
|
||||||
|
# The kick message sent to players when logging in with the wrong hostname
|
||||||
|
kickmsg: You have been kicked from the server - Please connect using %address%
|
||||||
|
|
||||||
|
|
||||||
|
# Blocking certain events
|
||||||
|
allow:
|
||||||
|
fire_place: false
|
||||||
|
fire_spread: false
|
||||||
|
fluid_spread: false
|
||||||
|
lava_place: false
|
||||||
|
lava_damage: false
|
||||||
|
water_place: false
|
||||||
|
tnt_minecarts: false
|
||||||
|
explosions: false
|
||||||
|
|
||||||
# Blocked commands:
|
# Blocked commands:
|
||||||
#
|
#
|
||||||
# How blocked commands work:
|
# How blocked commands work:
|
||||||
# All sections described below are delimited by colon-characters.
|
# All sections described below are delimited by colon characters.
|
||||||
# Make sure that you block a command by it's main command name, not an alias
|
# Make sure that you block a command by its main command name, not an alias
|
||||||
# -as all aliases are blocked by default. Commands are case-insensitive ofcourse.
|
# -as all aliases are blocked by default. Commands are case-insensitive.
|
||||||
# You can block specific subcommands aswell. eg: /mail sendall
|
|
||||||
#
|
#
|
||||||
# * The first section is a letter which indicates which rank may use this command
|
# * The first section is a letter which indicates which rank may use this command
|
||||||
# Valid ranks:
|
# Valid ranks:
|
||||||
# n - Nobody (Completely disabled)
|
# n - Nobody (Completely disabled)
|
||||||
# c - Senior Admins (Console)
|
# c - Senior Admins (Console)
|
||||||
# t - Telnet Admins (Console)
|
# t - Telnet Admins (Console)
|
||||||
# s - SuperAdmins
|
# s - Super Admins (Any in-game admin)
|
||||||
# o - Ops (Non-Ops won't be able to use it)
|
# o - Ops (Non-Ops won't be able to use it)
|
||||||
#
|
#
|
||||||
# * The second section is a letter which indicates what to do when a player executes that command.
|
# * The second section is a letter which indicates what to do when a player executes that command.
|
||||||
@ -51,7 +85,6 @@ explosive_radius: 4.0
|
|||||||
blocked_commands:
|
blocked_commands:
|
||||||
# Disabled commands
|
# Disabled 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:/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:/gamerule:_'
|
||||||
- 'n:b:/ban:_'
|
- 'n:b:/ban:_'
|
||||||
@ -61,6 +94,7 @@ blocked_commands:
|
|||||||
- 'n:b:/toggledownfall:_'
|
- 'n:b:/toggledownfall:_'
|
||||||
- 'n:b:/effect:Please use /potion to set effects.'
|
- 'n:b:/effect:Please use /potion to set effects.'
|
||||||
- 'n:b:/enderchest:_'
|
- 'n:b:/enderchest:_'
|
||||||
|
- 'n:b:/spreadplayers:_'
|
||||||
|
|
||||||
# Superadmin commands
|
# Superadmin commands
|
||||||
- 's:b:/kick:_'
|
- 's:b:/kick:_'
|
||||||
@ -70,64 +104,88 @@ blocked_commands:
|
|||||||
- 's:b://:_'
|
- 's:b://:_'
|
||||||
- 's:b:/superpickaxe:_'
|
- 's:b:/superpickaxe:_'
|
||||||
- 's:b:/brush:_'
|
- 's:b:/brush:_'
|
||||||
|
- 's:b:/size:_'
|
||||||
|
- 's:b://mask:_'
|
||||||
- 's:b:/mat:_'
|
- 's:b:/mat:_'
|
||||||
- 's:b:/tool:_'
|
- 's:b:/tool:_'
|
||||||
- 's:b://butcher:_'
|
- 's:b://butcher:_'
|
||||||
- 's:b:/scoreboard:_'
|
- 's:b:/scoreboard:_'
|
||||||
|
- 's:b:/setspawn:_'
|
||||||
|
- 's:b://snow:_'
|
||||||
|
- 's:b:/tellraw:_'
|
||||||
|
- 's:b:/forestgen:_'
|
||||||
|
- 's:b:/setidletimeout:_'
|
||||||
|
- 's:b:/mail sendall:_'
|
||||||
|
- 's:b:/eco reset:_'
|
||||||
|
|
||||||
# Superadmin commands - Auto-eject
|
# Superadmin commands - Auto-eject
|
||||||
- 's:a:/stop'
|
- 's:a:/stop:_'
|
||||||
- 's:a:/reload'
|
- 's:a:/reload:_'
|
||||||
- 's:a:/save-all'
|
- 's:a:/save-all:_'
|
||||||
- 's:a:/save-on'
|
- 's:a:/save-on:_'
|
||||||
- 's:a:/save-off'
|
- 's:a:/save-off:_'
|
||||||
- 's:a:/clearhistory'
|
- 's:a:/clearhistory:_'
|
||||||
|
|
||||||
# Automatically wipe dropped objects:
|
# Spigot commands
|
||||||
|
- 's:a:/restart:_'
|
||||||
|
- 's:b:/setblock:_'
|
||||||
|
|
||||||
|
# Automatically wipe dropped objects
|
||||||
auto_wipe: true
|
auto_wipe: true
|
||||||
|
|
||||||
# Nuking prevention:
|
# Nuking prevention
|
||||||
nuke_monitor: true
|
nukemonitor:
|
||||||
nuke_monitor_count_break: 100
|
enabled: true
|
||||||
nuke_monitor_count_place: 25
|
count_break: 100
|
||||||
nuke_monitor_range: 10.0
|
count_place: 40
|
||||||
freecam_trigger_count: 10
|
range: 10.0
|
||||||
|
|
||||||
# Show all attempted commands in the log, will result in duplicate log messages:
|
freecam_trigger_count: 10
|
||||||
|
explosive_radius: 4.0
|
||||||
|
|
||||||
|
# Show all attempted commands in the log, will result in duplicate log messages
|
||||||
preprocess_log: true
|
preprocess_log: true
|
||||||
|
|
||||||
# Disable nighttime:
|
# Disable certain events
|
||||||
disable_night: true
|
disable:
|
||||||
|
night: true
|
||||||
|
weather: true
|
||||||
|
|
||||||
# Disable weather:
|
|
||||||
disable_weather: true
|
|
||||||
|
|
||||||
# Enable misc. features:
|
# Enable misc. features
|
||||||
landmines_enabled: false
|
landmines_enabled: false
|
||||||
mp44_enabled: false
|
mp44_enabled: false
|
||||||
tossmob_enabled: false
|
tossmob_enabled: false
|
||||||
|
|
||||||
# Moblimiter:
|
# Moblimiter
|
||||||
mob_limiter_enabled: true
|
moblimiter:
|
||||||
# Max per world:
|
enabled: true
|
||||||
mob_limiter_max: 50
|
max: 50
|
||||||
mob_limiter_disable_dragon: true
|
disable:
|
||||||
mob_limiter_disable_ghast: true
|
dragon: true
|
||||||
mob_limiter_disable_slime: true
|
ghast: true
|
||||||
mob_limiter_disable_giant: true
|
slime: true
|
||||||
|
giant: true
|
||||||
|
|
||||||
# Flatlands
|
# Flatlands
|
||||||
generate_flatlands: true
|
flatlands:
|
||||||
# Flatlands generation parameters, uses CleanroomGenerator syntax - http://dev.bukkit.org/server-mods/cleanroomgenerator/
|
generate: true
|
||||||
flatlands_generation_params: 16,stone,32,dirt,1,grass
|
|
||||||
|
# Flatlands generation parameters - Uses CleanroomGenerator syntax - http://dev.bukkit.org/server-mods/cleanroomgenerator/
|
||||||
|
generate_params: 16,stone,32,dirt,1,grass
|
||||||
|
|
||||||
# Admin-Only Mode
|
# Admin-Only Mode
|
||||||
admin_only_mode: false
|
admin_only_mode: false
|
||||||
|
|
||||||
# Protected Areas - Protect areas so that only superadmins can directly modify blocks in those areas. WorldEdit and other such plugins might bypass this.
|
# Protected Areas - Protect areas so that only superadmins can directly modify blocks in those areas. WorldEdit and other such plugins might bypass this.
|
||||||
protected_areas_enabled: true
|
protectarea:
|
||||||
auto_protect_spawnpoints: true
|
enabled: true
|
||||||
auto_protect_radius: 25.0
|
auto_protect_spawnpoints: true
|
||||||
|
auto_protect_radius: 25.0
|
||||||
|
|
||||||
|
# Give the default CONSOLE senior admin privileges.
|
||||||
|
# Handy in development environments.
|
||||||
|
console_is_senior: true
|
||||||
|
|
||||||
# Host Sender Names - Names that indicate automated services or host-based consoles you want to block from using some commands.
|
# Host Sender Names - Names that indicate automated services or host-based consoles you want to block from using some commands.
|
||||||
# Make sure these are all lower-case.
|
# Make sure these are all lower-case.
|
||||||
@ -135,6 +193,21 @@ host_sender_names:
|
|||||||
- rcon
|
- rcon
|
||||||
- remotebukkit
|
- remotebukkit
|
||||||
|
|
||||||
|
# Announcer
|
||||||
|
announcer:
|
||||||
|
enabled: true
|
||||||
|
|
||||||
|
# Interval between announcements, in seconds.
|
||||||
|
interval: 600
|
||||||
|
|
||||||
|
# Prefix for all announcements
|
||||||
|
prefix: '&5[&eTotalFreedom&5] &b'
|
||||||
|
|
||||||
|
announcements:
|
||||||
|
- 'Be sure to visit our forums at &6http://totalfreedom.boards.net/'
|
||||||
|
- 'You can always review the server rules here: &6http://totalfreedom.me/'
|
||||||
|
- 'If you aren''t OP, be sure to ask!'
|
||||||
|
|
||||||
# Players who cannot be banned by username
|
# Players who cannot be banned by username
|
||||||
unbannable_usernames:
|
unbannable_usernames:
|
||||||
- honeydew
|
- honeydew
|
||||||
@ -173,30 +246,42 @@ unbannable_usernames:
|
|||||||
- stampylonghead
|
- stampylonghead
|
||||||
- stampylongnose
|
- stampylongnose
|
||||||
- dantdm
|
- dantdm
|
||||||
|
- gizzy14gazza
|
||||||
|
|
||||||
|
# IPs that can not be supered
|
||||||
|
noadmin_ips:
|
||||||
|
- 127.0.0.1
|
||||||
|
|
||||||
# TwitterBot - Used to allow superadmins to verify themselves using twitter
|
# TwitterBot - Used to allow superadmins to verify themselves using twitter
|
||||||
twitterbot_enabled: false
|
twitterbot:
|
||||||
twitterbot_url: ''
|
enabled: false
|
||||||
twitterbot_secret: ''
|
url: ''
|
||||||
|
secret: ''
|
||||||
|
|
||||||
# Pet Protect - Prevent tamed pets from being killed.
|
# Pet Protect - Prevent tamed pets from being killed.
|
||||||
pet_protect_enabled: true
|
petprotect:
|
||||||
|
enabled: true
|
||||||
|
|
||||||
# Logs Registration
|
# Logviewer
|
||||||
logs_register_password: ''
|
logs:
|
||||||
logs_register_url: ''
|
url: ''
|
||||||
|
secret: ''
|
||||||
|
|
||||||
# Mojang service checker
|
# Mojang service checker
|
||||||
service_checker_url: http://status.mojang.com/check
|
service_checker_url: http://status.mojang.com/check
|
||||||
|
|
||||||
# HTTPD
|
# HTTPD server
|
||||||
httpd_enabled: true
|
httpd:
|
||||||
httpd_public_folder: ./public_html
|
enabled: true
|
||||||
httpd_port: 28966
|
port: 28966
|
||||||
|
public_folder: ./public_html
|
||||||
|
|
||||||
# Inactivity Auto-Kick (Requires Essentials)
|
# Inactivity Auto-Kick (Requires Essentials)
|
||||||
autokick_enabled: true
|
autokick:
|
||||||
# autokick_threshold - Percentage of server player capacity used at which players will be automatically kicked for being inactive. Range: 0.0 - 1.0
|
enabled: true
|
||||||
autokick_threshold: 0.9
|
|
||||||
# autokick_time - Time, in seconds, after which a player should be kicked when inactive
|
# autokick_threshold - Percentage of server player capacity used at which players will be automatically kicked for being inactive. Range: 0.0 - 1.0
|
||||||
autokick_time: 120
|
threshold: 0.9
|
||||||
|
|
||||||
|
# autokick_time - Time, in seconds, after which a player should be kicked when inactive
|
||||||
|
time: 120
|
||||||
|
@ -1,75 +0,0 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Bridge;
|
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Log;
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import pgDev.bukkit.DisguiseCraft.DisguiseCraft;
|
|
||||||
import pgDev.bukkit.DisguiseCraft.api.DisguiseCraftAPI;
|
|
||||||
|
|
||||||
public class TFM_DisguiseCraftBridge
|
|
||||||
{
|
|
||||||
private TFM_DisguiseCraftBridge()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public static boolean undisguisePlayer(Player player)
|
|
||||||
{
|
|
||||||
if (!disguiseCraftEnabled())
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
DisguiseCraftAPI api = DisguiseCraft.getAPI();
|
|
||||||
if (api != null)
|
|
||||||
{
|
|
||||||
return api.undisguisePlayer(player);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
TFM_Log.severe(ex);
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void undisguiseAllPlayers()
|
|
||||||
{
|
|
||||||
if (!disguiseCraftEnabled())
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
DisguiseCraftAPI api = DisguiseCraft.getAPI();
|
|
||||||
if (api != null)
|
|
||||||
{
|
|
||||||
Player[] players = Bukkit.getOnlinePlayers();
|
|
||||||
for (Player player : players)
|
|
||||||
{
|
|
||||||
api.undisguisePlayer(player);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
TFM_Log.severe(ex);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static boolean disguiseCraftEnabled()
|
|
||||||
{
|
|
||||||
boolean pluginEnabled = false;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
pluginEnabled = Bukkit.getPluginManager().isPluginEnabled("DisguiseCraft");
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
return pluginEnabled;
|
|
||||||
}
|
|
||||||
}
|
|
@ -9,15 +9,16 @@ import org.bukkit.plugin.Plugin;
|
|||||||
|
|
||||||
public class TFM_EssentialsBridge
|
public class TFM_EssentialsBridge
|
||||||
{
|
{
|
||||||
private Essentials essentialsPlugin = null;
|
private static Essentials essentialsPlugin = null;
|
||||||
|
|
||||||
private TFM_EssentialsBridge()
|
private TFM_EssentialsBridge()
|
||||||
{
|
{
|
||||||
|
throw new AssertionError();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Essentials getEssentialsPlugin()
|
public static Essentials getEssentialsPlugin()
|
||||||
{
|
{
|
||||||
if (this.essentialsPlugin == null)
|
if (essentialsPlugin == null)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -26,7 +27,7 @@ public class TFM_EssentialsBridge
|
|||||||
{
|
{
|
||||||
if (essentials instanceof Essentials)
|
if (essentials instanceof Essentials)
|
||||||
{
|
{
|
||||||
this.essentialsPlugin = (Essentials) essentials;
|
essentialsPlugin = (Essentials) essentials;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -35,10 +36,10 @@ public class TFM_EssentialsBridge
|
|||||||
TFM_Log.severe(ex);
|
TFM_Log.severe(ex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return this.essentialsPlugin;
|
return essentialsPlugin;
|
||||||
}
|
}
|
||||||
|
|
||||||
public User getEssentialsUser(String username)
|
public static User getEssentialsUser(String username)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -55,7 +56,7 @@ public class TFM_EssentialsBridge
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setNickname(String username, String nickname)
|
public static void setNickname(String username, String nickname)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -72,7 +73,24 @@ public class TFM_EssentialsBridge
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public long getLastActivity(String username)
|
public static String getNickname(String username)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
final User user = getEssentialsUser(username);
|
||||||
|
if (user != null)
|
||||||
|
{
|
||||||
|
return user.getNickname();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
TFM_Log.severe(ex);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static long getLastActivity(String username)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -89,7 +107,7 @@ public class TFM_EssentialsBridge
|
|||||||
return 0L;
|
return 0L;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isEssentialsEnabled()
|
public static boolean isEssentialsEnabled()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -105,14 +123,4 @@ public class TFM_EssentialsBridge
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static TFM_EssentialsBridge getInstance()
|
|
||||||
{
|
|
||||||
return TFM_EssentialsBridgeHolder.INSTANCE;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static class TFM_EssentialsBridgeHolder
|
|
||||||
{
|
|
||||||
private static final TFM_EssentialsBridge INSTANCE = new TFM_EssentialsBridge();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -2,10 +2,10 @@ package me.StevenLawson.TotalFreedomMod.Bridge;
|
|||||||
|
|
||||||
import com.sk89q.worldedit.IncompleteRegionException;
|
import com.sk89q.worldedit.IncompleteRegionException;
|
||||||
import com.sk89q.worldedit.LocalSession;
|
import com.sk89q.worldedit.LocalSession;
|
||||||
import com.sk89q.worldedit.LocalWorld;
|
|
||||||
import com.sk89q.worldedit.bukkit.BukkitPlayer;
|
import com.sk89q.worldedit.bukkit.BukkitPlayer;
|
||||||
import com.sk89q.worldedit.bukkit.WorldEditPlugin;
|
import com.sk89q.worldedit.bukkit.WorldEditPlugin;
|
||||||
import com.sk89q.worldedit.regions.Region;
|
import com.sk89q.worldedit.regions.Region;
|
||||||
|
import com.sk89q.worldedit.world.World;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Log;
|
import me.StevenLawson.TotalFreedomMod.TFM_Log;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ProtectedArea;
|
import me.StevenLawson.TotalFreedomMod.TFM_ProtectedArea;
|
||||||
@ -18,15 +18,16 @@ import org.bukkit.scheduler.BukkitRunnable;
|
|||||||
|
|
||||||
public class TFM_WorldEditBridge
|
public class TFM_WorldEditBridge
|
||||||
{
|
{
|
||||||
private WorldEditPlugin worldEditPlugin = null;
|
private static WorldEditPlugin worldEditPlugin = null;
|
||||||
|
|
||||||
private TFM_WorldEditBridge()
|
private TFM_WorldEditBridge()
|
||||||
{
|
{
|
||||||
|
throw new AssertionError();
|
||||||
}
|
}
|
||||||
|
|
||||||
public WorldEditPlugin getWorldEditPlugin()
|
public static WorldEditPlugin getWorldEditPlugin()
|
||||||
{
|
{
|
||||||
if (this.worldEditPlugin == null)
|
if (worldEditPlugin == null)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -35,7 +36,7 @@ public class TFM_WorldEditBridge
|
|||||||
{
|
{
|
||||||
if (we instanceof WorldEditPlugin)
|
if (we instanceof WorldEditPlugin)
|
||||||
{
|
{
|
||||||
this.worldEditPlugin = (WorldEditPlugin) we;
|
worldEditPlugin = (WorldEditPlugin) we;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -44,14 +45,14 @@ public class TFM_WorldEditBridge
|
|||||||
TFM_Log.severe(ex);
|
TFM_Log.severe(ex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return this.worldEditPlugin;
|
return worldEditPlugin;
|
||||||
}
|
}
|
||||||
|
|
||||||
public BukkitPlayer getBukkitPlayer(Player player)
|
public static BukkitPlayer getBukkitPlayer(Player player)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
WorldEditPlugin wep = this.getWorldEditPlugin();
|
final WorldEditPlugin wep = getWorldEditPlugin();
|
||||||
if (wep != null)
|
if (wep != null)
|
||||||
{
|
{
|
||||||
return wep.wrapPlayer(player);
|
return wep.wrapPlayer(player);
|
||||||
@ -64,11 +65,11 @@ public class TFM_WorldEditBridge
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public LocalSession getPlayerSession(Player player)
|
public static LocalSession getPlayerSession(Player player)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
WorldEditPlugin wep = this.getWorldEditPlugin();
|
final WorldEditPlugin wep = getWorldEditPlugin();
|
||||||
if (wep != null)
|
if (wep != null)
|
||||||
{
|
{
|
||||||
return wep.getSession(player);
|
return wep.getSession(player);
|
||||||
@ -81,14 +82,14 @@ public class TFM_WorldEditBridge
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void undo(Player player, int count)
|
public static void undo(Player player, int count)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
LocalSession session = getPlayerSession(player);
|
LocalSession session = getPlayerSession(player);
|
||||||
if (session != null)
|
if (session != null)
|
||||||
{
|
{
|
||||||
BukkitPlayer bukkitPlayer = this.getBukkitPlayer(player);
|
final BukkitPlayer bukkitPlayer = getBukkitPlayer(player);
|
||||||
if (bukkitPlayer != null)
|
if (bukkitPlayer != null)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < count; i++)
|
for (int i = 0; i < count; i++)
|
||||||
@ -104,11 +105,11 @@ public class TFM_WorldEditBridge
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setLimit(Player player, int limit)
|
public static void setLimit(Player player, int limit)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
LocalSession session = getPlayerSession(player);
|
final LocalSession session = getPlayerSession(player);
|
||||||
if (session != null)
|
if (session != null)
|
||||||
{
|
{
|
||||||
session.setBlockChangeLimit(limit);
|
session.setBlockChangeLimit(limit);
|
||||||
@ -120,7 +121,7 @@ public class TFM_WorldEditBridge
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void validateSelection(final Player player)
|
public static void validateSelection(final Player player)
|
||||||
{
|
{
|
||||||
if (TFM_AdminList.isSuperAdmin(player))
|
if (TFM_AdminList.isSuperAdmin(player))
|
||||||
{
|
{
|
||||||
@ -130,26 +131,31 @@ public class TFM_WorldEditBridge
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
final LocalSession session = getPlayerSession(player);
|
final LocalSession session = getPlayerSession(player);
|
||||||
if (session != null)
|
|
||||||
|
if (session == null)
|
||||||
{
|
{
|
||||||
final LocalWorld selectionWorld = session.getSelectionWorld();
|
return;
|
||||||
final Region selection = session.getSelection(selectionWorld);
|
|
||||||
if (TFM_ProtectedArea.isInProtectedArea(
|
|
||||||
getBukkitVector(selection.getMinimumPoint()),
|
|
||||||
getBukkitVector(selection.getMaximumPoint()),
|
|
||||||
selectionWorld.getName()))
|
|
||||||
{
|
|
||||||
new BukkitRunnable()
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public void run()
|
|
||||||
{
|
|
||||||
player.sendMessage(ChatColor.RED + "The region that you selected contained a protected area. Selection cleared.");
|
|
||||||
session.getRegionSelector(selectionWorld).clear();
|
|
||||||
}
|
|
||||||
}.runTaskLater(TotalFreedomMod.plugin, 1L);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final World selectionWorld = session.getSelectionWorld();
|
||||||
|
final Region selection = session.getSelection(selectionWorld);
|
||||||
|
|
||||||
|
if (TFM_ProtectedArea.isInProtectedArea(
|
||||||
|
getBukkitVector(selection.getMinimumPoint()),
|
||||||
|
getBukkitVector(selection.getMaximumPoint()),
|
||||||
|
selectionWorld.getName()))
|
||||||
|
{
|
||||||
|
new BukkitRunnable()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public void run()
|
||||||
|
{
|
||||||
|
player.sendMessage(ChatColor.RED + "The region that you selected contained a protected area. Selection cleared.");
|
||||||
|
session.getRegionSelector(selectionWorld).clear();
|
||||||
|
}
|
||||||
|
}.runTask(TotalFreedomMod.plugin);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
catch (IncompleteRegionException ex)
|
catch (IncompleteRegionException ex)
|
||||||
{
|
{
|
||||||
@ -164,14 +170,4 @@ public class TFM_WorldEditBridge
|
|||||||
{
|
{
|
||||||
return new org.bukkit.util.Vector(worldEditVector.getX(), worldEditVector.getY(), worldEditVector.getZ());
|
return new org.bukkit.util.Vector(worldEditVector.getX(), worldEditVector.getY(), worldEditVector.getZ());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static TFM_WorldEditBridge getInstance()
|
|
||||||
{
|
|
||||||
return TFM_WorldEditBridgeHolder.INSTANCE;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static class TFM_WorldEditBridgeHolder
|
|
||||||
{
|
|
||||||
private static final TFM_WorldEditBridge INSTANCE = new TFM_WorldEditBridge();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -10,5 +10,5 @@ public @interface CommandPermissions
|
|||||||
|
|
||||||
SourceType source();
|
SourceType source();
|
||||||
|
|
||||||
boolean block_host_console() default false;
|
boolean blockHostConsole() default false;
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@ 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.ONLY_CONSOLE, block_host_console = true)
|
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.ONLY_CONSOLE, blockHostConsole = true)
|
||||||
@CommandParameters(description = "Close server to non-superadmins.", usage = "/<command> [on | off]")
|
@CommandParameters(description = "Close server to non-superadmins.", usage = "/<command> [on | off]")
|
||||||
public class Command_adminmode extends TFM_Command
|
public class Command_adminmode extends TFM_Command
|
||||||
{
|
{
|
||||||
|
@ -1,9 +1,8 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.World.TFM_AdminWorld;
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
import me.StevenLawson.TotalFreedomMod.World.TFM_AdminWorld;
|
||||||
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;
|
||||||
@ -15,7 +14,7 @@ public class Command_adminworld extends TFM_Command
|
|||||||
{
|
{
|
||||||
private enum CommandMode
|
private enum CommandMode
|
||||||
{
|
{
|
||||||
TELEPORT, GUEST, TIME, WEATHER
|
TELEPORT, GUEST, TIME, WEATHER;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -113,18 +112,15 @@ public class Command_adminworld extends TFM_Command
|
|||||||
|
|
||||||
if ("add".equalsIgnoreCase(args[1]))
|
if ("add".equalsIgnoreCase(args[1]))
|
||||||
{
|
{
|
||||||
Player player;
|
final Player player = getPlayer(args[2]);
|
||||||
try
|
|
||||||
|
if (player == null)
|
||||||
{
|
{
|
||||||
player = getPlayer(args[2]);
|
sender.sendMessage(TFM_Command.PLAYER_NOT_FOUND);
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ex.getMessage());
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (player != null && TFM_AdminWorld.getInstance().addGuest(player, sender_p))
|
if (TFM_AdminWorld.getInstance().addGuest(player, sender_p))
|
||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "AdminWorld guest added: " + player.getName(), false);
|
TFM_Util.adminAction(sender.getName(), "AdminWorld guest added: " + player.getName(), false);
|
||||||
}
|
}
|
||||||
@ -133,9 +129,9 @@ public class Command_adminworld extends TFM_Command
|
|||||||
playerMsg("Could not add player to guest list.");
|
playerMsg("Could not add player to guest list.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (TFM_Util.isRemoveCommand(args[1]))
|
else if ("remove".equals(args[1]))
|
||||||
{
|
{
|
||||||
Player player = TFM_AdminWorld.getInstance().removeGuest(args[2]);
|
final Player player = TFM_AdminWorld.getInstance().removeGuest(args[2]);
|
||||||
if (player != null)
|
if (player != null)
|
||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "AdminWorld guest removed: " + player.getName(), false);
|
TFM_Util.adminAction(sender.getName(), "AdminWorld guest removed: " + player.getName(), false);
|
||||||
@ -219,13 +215,15 @@ public class Command_adminworld extends TFM_Command
|
|||||||
{
|
{
|
||||||
if (!(sender instanceof Player) || sender_p == null || !TFM_AdminList.isSuperAdmin(sender))
|
if (!(sender instanceof Player) || sender_p == null || !TFM_AdminList.isSuperAdmin(sender))
|
||||||
{
|
{
|
||||||
throw new PermissionDeniedException(TotalFreedomMod.MSG_NO_PERMS);
|
throw new PermissionDeniedException(TFM_Command.MSG_NO_PERMS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class PermissionDeniedException extends Exception
|
private class PermissionDeniedException extends Exception
|
||||||
{
|
{
|
||||||
public PermissionDeniedException(String string)
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
private PermissionDeniedException(String string)
|
||||||
{
|
{
|
||||||
super(string);
|
super(string);
|
||||||
}
|
}
|
||||||
|
@ -36,14 +36,11 @@ public class Command_blockcmd extends TFM_Command
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
Player player;
|
final Player player = getPlayer(args[0]);
|
||||||
try
|
|
||||||
|
if (player == null)
|
||||||
{
|
{
|
||||||
player = getPlayer(args[0]);
|
playerMsg(TFM_Command.PLAYER_NOT_FOUND);
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
playerMsg(ex.getMessage());
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ public class Command_cage extends TFM_Command
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TFM_Util.isStopCommand(args[0]) && sender instanceof Player)
|
if ("off".equals(args[0]) && sender instanceof Player)
|
||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "Uncaging " + sender.getName(), true);
|
TFM_Util.adminAction(sender.getName(), "Uncaging " + sender.getName(), true);
|
||||||
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(sender_p);
|
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(sender_p);
|
||||||
@ -32,9 +32,9 @@ public class Command_cage extends TFM_Command
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else if ("purge".equalsIgnoreCase(args[0]))
|
else if ("purge".equals(args[0]))
|
||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "Uncaging all players.", true);
|
TFM_Util.adminAction(sender.getName(), "Uncaging all players", true);
|
||||||
|
|
||||||
for (Player player : server.getOnlinePlayers())
|
for (Player player : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
@ -47,14 +47,11 @@ public class Command_cage extends TFM_Command
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
Player player;
|
final Player player = getPlayer(args[0]);
|
||||||
try
|
|
||||||
|
if (player == null)
|
||||||
{
|
{
|
||||||
player = getPlayer(args[0]);
|
sender.sendMessage(TFM_Command.PLAYER_NOT_FOUND);
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ex.getMessage());
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -65,7 +62,7 @@ public class Command_cage extends TFM_Command
|
|||||||
|
|
||||||
if (args.length >= 2)
|
if (args.length >= 2)
|
||||||
{
|
{
|
||||||
if (TFM_Util.isStopCommand(args[1]))
|
if ("off".equals(args[1]))
|
||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "Uncaging " + player.getName(), true);
|
TFM_Util.adminAction(sender.getName(), "Uncaging " + player.getName(), true);
|
||||||
|
|
||||||
|
@ -2,7 +2,6 @@ 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 org.bukkit.Achievement;
|
import org.bukkit.Achievement;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
@ -16,35 +15,38 @@ import org.bukkit.inventory.meta.ItemMeta;
|
|||||||
@CommandParameters(description = "For the people that are still alive.", usage = "/<command>")
|
@CommandParameters(description = "For the people that are still alive.", usage = "/<command>")
|
||||||
public class Command_cake extends TFM_Command
|
public class Command_cake extends TFM_Command
|
||||||
{
|
{
|
||||||
|
public static final String CAKE_LYRICS = "But there's no sense crying over every mistake. You just keep on trying till you run out of cake.";
|
||||||
|
private final Random random = new Random();
|
||||||
|
|
||||||
@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)
|
||||||
{
|
{
|
||||||
|
final StringBuilder output = new StringBuilder();
|
||||||
|
|
||||||
StringBuilder output = new StringBuilder();
|
final String[] words = CAKE_LYRICS.split(" ");
|
||||||
Random randomGenerator = new Random();
|
for (final String word : words)
|
||||||
|
|
||||||
String[] words = TotalFreedomMod.CAKE_LYRICS.split(" ");
|
|
||||||
for (String word : words)
|
|
||||||
{
|
{
|
||||||
String color_code = Integer.toHexString(1 + randomGenerator.nextInt(14));
|
output.append(ChatColor.COLOR_CHAR).append(Integer.toHexString(1 + random.nextInt(14))).append(word).append(" ");
|
||||||
output.append(ChatColor.COLOR_CHAR).append(color_code).append(word).append(" ");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ItemStack heldItem = new ItemStack(Material.CAKE);
|
final ItemStack heldItem = new ItemStack(Material.CAKE);
|
||||||
ItemMeta heldItemMeta = heldItem.getItemMeta();
|
final ItemMeta heldItemMeta = heldItem.getItemMeta();
|
||||||
heldItemMeta.setDisplayName((new StringBuilder()).append(ChatColor.WHITE).append("The ").append(ChatColor.BLACK).append("Lie").toString());
|
heldItemMeta.setDisplayName((new StringBuilder()).append(ChatColor.WHITE).append("The ").append(ChatColor.DARK_GRAY).append("Lie").toString());
|
||||||
heldItem.setItemMeta(heldItemMeta);
|
heldItem.setItemMeta(heldItemMeta);
|
||||||
|
|
||||||
for (Player player : server.getOnlinePlayers())
|
for (final Player player : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
player.getInventory().setItem(player.getInventory().firstEmpty(), heldItem);
|
final int firstEmpty = player.getInventory().firstEmpty();
|
||||||
player.awardAchievement(Achievement.MINE_WOOD);
|
if (firstEmpty >= 0)
|
||||||
player.awardAchievement(Achievement.BUILD_WORKBENCH);
|
{
|
||||||
player.awardAchievement(Achievement.BUILD_HOE);
|
player.getInventory().setItem(firstEmpty, heldItem);
|
||||||
|
}
|
||||||
|
|
||||||
player.awardAchievement(Achievement.BAKE_CAKE);
|
player.awardAchievement(Achievement.BAKE_CAKE);
|
||||||
}
|
}
|
||||||
|
|
||||||
TFM_Util.bcastMsg(output.toString());
|
TFM_Util.bcastMsg(output.toString());
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -17,13 +17,12 @@ public class Command_cartsit extends TFM_Command
|
|||||||
|
|
||||||
if (args.length == 1)
|
if (args.length == 1)
|
||||||
{
|
{
|
||||||
try
|
|
||||||
|
targetPlayer = getPlayer(args[0]);
|
||||||
|
|
||||||
|
if (targetPlayer == null)
|
||||||
{
|
{
|
||||||
targetPlayer = getPlayer(args[0]);
|
sender.sendMessage(TFM_Command.PLAYER_NOT_FOUND);
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ex.getMessage());
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,9 +3,11 @@ package me.StevenLawson.TotalFreedomMod.Commands;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_CommandBlocker;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_DepreciationAggregator;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Log;
|
import me.StevenLawson.TotalFreedomMod.TFM_Log;
|
||||||
import net.minecraft.util.org.apache.commons.lang3.ArrayUtils;
|
import org.apache.commons.lang3.ArrayUtils;
|
||||||
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
@ -28,7 +30,7 @@ public class Command_cbtool extends TFM_Command
|
|||||||
|
|
||||||
if ("targetblock".equalsIgnoreCase(args[0]) && sender instanceof Player)
|
if ("targetblock".equalsIgnoreCase(args[0]) && sender instanceof Player)
|
||||||
{
|
{
|
||||||
Block targetBlock = sender_p.getTargetBlock(null, 100);
|
Block targetBlock = TFM_DepreciationAggregator.getTargetBlock(sender_p, null, 100);
|
||||||
playerMsg("Your target block: " + targetBlock.getLocation().toString());
|
playerMsg("Your target block: " + targetBlock.getLocation().toString());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -44,6 +46,11 @@ public class Command_cbtool extends TFM_Command
|
|||||||
}
|
}
|
||||||
matcher.appendTail(generatedCommand);
|
matcher.appendTail(generatedCommand);
|
||||||
|
|
||||||
|
if (TFM_CommandBlocker.isCommandBlocked(generatedCommand.toString(), sender, false))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
server.dispatchCommand(sender, generatedCommand.toString());
|
server.dispatchCommand(sender, generatedCommand.toString());
|
||||||
}
|
}
|
||||||
catch (SubCommandFailureException ex)
|
catch (SubCommandFailureException ex)
|
||||||
|
@ -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 net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
import 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;
|
||||||
@ -48,4 +48,4 @@ public class Command_cmdlist extends TFM_Command
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,7 @@ import java.util.Iterator;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import me.StevenLawson.TotalFreedomMod.Bridge.TFM_EssentialsBridge;
|
import me.StevenLawson.TotalFreedomMod.Bridge.TFM_EssentialsBridge;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
import 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;
|
||||||
@ -49,7 +49,7 @@ public class Command_colorme extends TFM_Command
|
|||||||
|
|
||||||
final String newNick = color + ChatColor.stripColor(sender_p.getDisplayName()).trim() + ChatColor.WHITE;
|
final String newNick = color + ChatColor.stripColor(sender_p.getDisplayName()).trim() + ChatColor.WHITE;
|
||||||
|
|
||||||
TFM_EssentialsBridge.getInstance().setNickname(sender.getName(), newNick);
|
TFM_EssentialsBridge.setNickname(sender.getName(), newNick);
|
||||||
|
|
||||||
playerMsg("Your nickname is now: " + newNick);
|
playerMsg("Your nickname is now: " + newNick);
|
||||||
|
|
||||||
|
@ -1,70 +0,0 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.Config.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;
|
|
||||||
}
|
|
||||||
}
|
|
@ -2,14 +2,13 @@ package me.StevenLawson.TotalFreedomMod.Commands;
|
|||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
|
||||||
import org.bukkit.GameMode;
|
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;
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.OP, source = SourceType.BOTH)
|
@CommandPermissions(level = AdminLevel.OP, source = SourceType.BOTH)
|
||||||
@CommandParameters(description = "Quickly change your own gamemode to creative, or define someone's username to change theirs.", usage = "/<command> [partialname]")
|
@CommandParameters(description = "Quickly change your own gamemode to creative, or define someone's username to change theirs.", usage = "/<command> [partialname]", aliases = "gmc")
|
||||||
public class Command_creative extends TFM_Command
|
public class Command_creative extends TFM_Command
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
@ -35,7 +34,7 @@ public class Command_creative extends TFM_Command
|
|||||||
{
|
{
|
||||||
if (!TFM_AdminList.isSuperAdmin(sender))
|
if (!TFM_AdminList.isSuperAdmin(sender))
|
||||||
{
|
{
|
||||||
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
|
sender.sendMessage(TFM_Command.MSG_NO_PERMS);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -54,13 +53,11 @@ public class Command_creative extends TFM_Command
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
try
|
player = getPlayer(args[0]);
|
||||||
|
|
||||||
|
if (player == null)
|
||||||
{
|
{
|
||||||
player = getPlayer(args[0]);
|
sender.sendMessage(TFM_Command.PLAYER_NOT_FOUND);
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ex.getMessage());
|
|
||||||
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 net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
import 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;
|
||||||
|
@ -8,7 +8,7 @@ import org.bukkit.command.CommandSender;
|
|||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.scheduler.BukkitRunnable;
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.BOTH, block_host_console = true)
|
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.BOTH, blockHostConsole = true)
|
||||||
@CommandParameters(description = "Make some noise.", usage = "/<command>")
|
@CommandParameters(description = "Make some noise.", usage = "/<command>")
|
||||||
public class Command_deafen extends TFM_Command
|
public class Command_deafen extends TFM_Command
|
||||||
{
|
{
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import net.minecraft.util.org.apache.commons.lang3.ArrayUtils;
|
import org.apache.commons.lang3.ArrayUtils;
|
||||||
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
import 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;
|
||||||
|
@ -13,12 +13,11 @@ public class Command_denick 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(), "Removing all nicknames.", false);
|
TFM_Util.adminAction(sender.getName(), "Removing all nicknames", false);
|
||||||
|
|
||||||
Player[] onlinePlayers = server.getOnlinePlayers();
|
for (Player player : server.getOnlinePlayers())
|
||||||
for (Player player : onlinePlayers)
|
|
||||||
{
|
{
|
||||||
TFM_EssentialsBridge.getInstance().setNickname(player.getName(), null);
|
TFM_EssentialsBridge.setNickname(player.getName(), null);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_DepreciationAggregator;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import org.bukkit.OfflinePlayer;
|
import org.bukkit.OfflinePlayer;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
@ -31,7 +32,7 @@ public class Command_deop extends TFM_Command
|
|||||||
// if the player is not online
|
// if the player is not online
|
||||||
if (player == null)
|
if (player == null)
|
||||||
{
|
{
|
||||||
player = server.getOfflinePlayer(args[0]);
|
player = TFM_DepreciationAggregator.getOfflinePlayer(server, args[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
TFM_Util.adminAction(sender.getName(), "De-opping " + player.getName(), false);
|
TFM_Util.adminAction(sender.getName(), "De-opping " + player.getName(), false);
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
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.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;
|
||||||
@ -18,7 +17,7 @@ public class Command_deopall extends TFM_Command
|
|||||||
for (Player player : server.getOnlinePlayers())
|
for (Player player : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
player.setOp(false);
|
player.setOp(false);
|
||||||
player.sendMessage(TotalFreedomMod.YOU_ARE_NOT_OP);
|
player.sendMessage(TFM_Command.YOU_ARE_NOT_OP);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -2,8 +2,9 @@ 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_DepreciationAggregator;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
import 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;
|
||||||
@ -35,52 +36,51 @@ public class Command_dispfill extends TFM_Command
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
String[] items_raw = StringUtils.split(args[1], ",");
|
final List<ItemStack> items = new ArrayList<ItemStack>();
|
||||||
List<ItemStack> items = new ArrayList<ItemStack>();
|
|
||||||
for (String search_item : items_raw)
|
final String[] itemsRaw = StringUtils.split(args[1], ",");
|
||||||
|
for (final String searchItem : itemsRaw)
|
||||||
{
|
{
|
||||||
ItemStack is = null;
|
Material material = Material.matchMaterial(searchItem);
|
||||||
|
if (material == null)
|
||||||
is = new ItemStack(Material.matchMaterial(search_item), 64);
|
|
||||||
|
|
||||||
if (is == null)
|
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
is = new ItemStack(Integer.parseInt(search_item), 64);
|
material = TFM_DepreciationAggregator.getMaterial(Integer.parseInt(searchItem));
|
||||||
}
|
}
|
||||||
catch (NumberFormatException ex)
|
catch (NumberFormatException ex)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is != null)
|
if (material != null)
|
||||||
{
|
{
|
||||||
items.add(is);
|
items.add(new ItemStack(material, 64));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sender.sendMessage("Skipping invalid item: " + search_item);
|
sender.sendMessage("Skipping invalid item: " + searchItem);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ItemStack[] items_array = items.toArray(new ItemStack[items.size()]);
|
|
||||||
|
final ItemStack[] itemsArray = items.toArray(new ItemStack[items.size()]);
|
||||||
|
|
||||||
int affected = 0;
|
int affected = 0;
|
||||||
Location center_location = sender_p.getLocation();
|
final Location centerLocation = sender_p.getLocation();
|
||||||
Block center_block = center_location.getBlock();
|
final Block centerBlock = centerLocation.getBlock();
|
||||||
for (int x_offset = -radius; x_offset <= radius; x_offset++)
|
for (int xOffset = -radius; xOffset <= radius; xOffset++)
|
||||||
{
|
{
|
||||||
for (int y_offset = -radius; y_offset <= radius; y_offset++)
|
for (int yOffset = -radius; yOffset <= radius; yOffset++)
|
||||||
{
|
{
|
||||||
for (int z_offset = -radius; z_offset <= radius; z_offset++)
|
for (int zOffset = -radius; zOffset <= radius; zOffset++)
|
||||||
{
|
{
|
||||||
Block targetBlock = center_block.getRelative(x_offset, y_offset, z_offset);
|
final Block targetBlock = centerBlock.getRelative(xOffset, yOffset, zOffset);
|
||||||
if (targetBlock.getLocation().distanceSquared(center_location) < (radius * radius))
|
if (targetBlock.getLocation().distanceSquared(centerLocation) < (radius * radius))
|
||||||
{
|
{
|
||||||
if (targetBlock.getType().equals(Material.DISPENSER))
|
if (targetBlock.getType().equals(Material.DISPENSER))
|
||||||
{
|
{
|
||||||
sender.sendMessage("Filling dispenser @ " + TFM_Util.formatLocation(targetBlock.getLocation()));
|
sender.sendMessage("Filling dispenser @ " + TFM_Util.formatLocation(targetBlock.getLocation()));
|
||||||
setDispenserContents(targetBlock, items_array);
|
setDispenserContents(targetBlock, itemsArray);
|
||||||
affected++;
|
affected++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -98,11 +98,13 @@ public class Command_dispfill extends TFM_Command
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void setDispenserContents(Block targetBlock, ItemStack[] items)
|
private static void setDispenserContents(final Block targetBlock, final ItemStack[] items)
|
||||||
{
|
{
|
||||||
Dispenser dispenser = (Dispenser) targetBlock.getState();
|
if (targetBlock.getType() == Material.DISPENSER)
|
||||||
Inventory disp_inv = dispenser.getInventory();
|
{
|
||||||
disp_inv.clear();
|
final Inventory dispenserInv = ((Dispenser) targetBlock.getState()).getInventory();
|
||||||
disp_inv.addItem(items);
|
dispenserInv.clear();
|
||||||
|
dispenserInv.addItem(items);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ServerInterface;
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Ban;
|
import me.StevenLawson.TotalFreedomMod.TFM_Ban;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_BanManager;
|
import me.StevenLawson.TotalFreedomMod.TFM_BanManager;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_PlayerList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.GameMode;
|
import org.bukkit.GameMode;
|
||||||
@ -11,6 +11,7 @@ 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.BukkitRunnable;
|
||||||
|
import org.bukkit.util.Vector;
|
||||||
|
|
||||||
@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>")
|
||||||
@ -24,14 +25,11 @@ public class Command_doom extends TFM_Command
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
final Player player;
|
final Player player = getPlayer(args[0]);
|
||||||
try
|
|
||||||
|
if (player == null)
|
||||||
{
|
{
|
||||||
player = getPlayer(args[0]);
|
sender.sendMessage(TFM_Command.PLAYER_NOT_FOUND);
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ex.getMessage());
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -53,11 +51,14 @@ public class Command_doom extends TFM_Command
|
|||||||
// deop
|
// deop
|
||||||
player.setOp(false);
|
player.setOp(false);
|
||||||
|
|
||||||
// ban IP
|
// ban IPs
|
||||||
TFM_BanManager.getInstance().addIpBan(new TFM_Ban(ip, player.getName()));
|
for (String playerIp : TFM_PlayerList.getEntry(player).getIps())
|
||||||
|
{
|
||||||
|
TFM_BanManager.addIpBan(new TFM_Ban(playerIp, player.getName()));
|
||||||
|
}
|
||||||
|
|
||||||
// ban name
|
// ban uuid
|
||||||
TFM_BanManager.getInstance().addUuidBan(new TFM_Ban(player.getUniqueId(), player.getName()));
|
TFM_BanManager.addUuidBan(player);
|
||||||
|
|
||||||
// set gamemode to survival
|
// set gamemode to survival
|
||||||
player.setGameMode(GameMode.SURVIVAL);
|
player.setGameMode(GameMode.SURVIVAL);
|
||||||
@ -72,6 +73,9 @@ public class Command_doom extends TFM_Command
|
|||||||
// generate explosion
|
// generate explosion
|
||||||
player.getWorld().createExplosion(player.getLocation(), 4F);
|
player.getWorld().createExplosion(player.getLocation(), 4F);
|
||||||
|
|
||||||
|
// Shoot the player in the sky
|
||||||
|
player.setVelocity(player.getVelocity().clone().add(new Vector(0, 20, 0)));
|
||||||
|
|
||||||
new BukkitRunnable()
|
new BukkitRunnable()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
@ -83,7 +87,7 @@ public class Command_doom extends TFM_Command
|
|||||||
// kill (if not done already)
|
// kill (if not done already)
|
||||||
player.setHealth(0.0);
|
player.setHealth(0.0);
|
||||||
}
|
}
|
||||||
}.runTaskLater(plugin, 20L * 2L);
|
}.runTaskLater(plugin, 2L * 20L);
|
||||||
|
|
||||||
new BukkitRunnable()
|
new BukkitRunnable()
|
||||||
{
|
{
|
||||||
@ -99,7 +103,7 @@ public class Command_doom extends TFM_Command
|
|||||||
// kick player
|
// kick player
|
||||||
player.kickPlayer(ChatColor.RED + "FUCKOFF, and get your shit together!");
|
player.kickPlayer(ChatColor.RED + "FUCKOFF, and get your shit together!");
|
||||||
}
|
}
|
||||||
}.runTaskLater(plugin, 20L * 3L);
|
}.runTaskLater(plugin, 3L * 20L);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -1,25 +0,0 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.Config.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;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,42 +0,0 @@
|
|||||||
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,7 +1,6 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Log;
|
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;
|
||||||
@ -55,13 +54,6 @@ public class Command_enchant extends TFM_Command
|
|||||||
{
|
{
|
||||||
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
|
try
|
||||||
{
|
{
|
||||||
if (ench.canEnchantItem(itemInHand))
|
if (ench.canEnchantItem(itemInHand))
|
||||||
@ -122,7 +114,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 (TFM_Util.isRemoveCommand(args[0]))
|
else if (args[0].equals("remove"))
|
||||||
{
|
{
|
||||||
itemInHand.removeEnchantment(ench);
|
itemInHand.removeEnchantment(ench);
|
||||||
|
|
||||||
|
@ -5,14 +5,14 @@ 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 ender / \"The End\".", usage = "/<command>")
|
@CommandParameters(description = "Goto the ender / \"The End\".", usage = "/<command>")
|
||||||
public class Command_ender extends TFM_Command
|
public class Command_ender 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.gotoWorld(sender, server.getWorlds().get(0).getName() + "_the_end");
|
TFM_Util.gotoWorld(sender_p, server.getWorlds().get(0).getName() + "_the_end");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@ package me.StevenLawson.TotalFreedomMod.Commands;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
import 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;
|
||||||
|
@ -1,47 +0,0 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.Config.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 explosives and set effect radius.", usage = "/<command> <on | off> [radius]")
|
|
||||||
public class Command_explosives extends TFM_Command
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
|
||||||
{
|
|
||||||
if (args.length == 0)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (args.length == 2)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
TFM_ConfigEntry.EXPLOSIVE_RADIUS.setDouble(Math.max(1.0, Math.min(30.0, Double.parseDouble(args[1]))));
|
|
||||||
}
|
|
||||||
catch (NumberFormatException nfex)
|
|
||||||
{
|
|
||||||
TFM_Util.playerMsg(sender, nfex.getMessage());
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (args[0].equalsIgnoreCase("on"))
|
|
||||||
{
|
|
||||||
TFM_ConfigEntry.ALLOW_EXPLOSIONS.setBoolean(true);
|
|
||||||
playerMsg("Explosives are now enabled, radius set to " + TFM_ConfigEntry.EXPLOSIVE_RADIUS.getDouble() + " blocks.");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
TFM_ConfigEntry.ALLOW_EXPLOSIONS.setBoolean(false);
|
|
||||||
playerMsg("Explosives are now disabled.");
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,8 +1,7 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_PlayerList;
|
import me.StevenLawson.TotalFreedomMod.TFM_PlayerList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
import org.apache.commons.lang3.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;
|
||||||
@ -19,18 +18,16 @@ public class Command_findip extends TFM_Command
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
final Player player;
|
final Player player = getPlayer(args[0]);
|
||||||
try
|
|
||||||
|
if (player == null)
|
||||||
{
|
{
|
||||||
player = getPlayer(args[0]);
|
|
||||||
}
|
playerMsg(TFM_Command.PLAYER_NOT_FOUND);
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
playerMsg(ex.getMessage());
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
playerMsg("Player IPs: " + StringUtils.join(TFM_PlayerList.getInstance().getEntry(player).getIps(), ", "));
|
playerMsg("Player IPs: " + StringUtils.join(TFM_PlayerList.getEntry(player).getIps(), ", "));
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -1,33 +0,0 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
|
||||||
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 fire placement.", usage = "/<command> <on | off>")
|
|
||||||
public class Command_fireplace 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 (args[0].equalsIgnoreCase("on"))
|
|
||||||
{
|
|
||||||
TFM_ConfigEntry.ALLOW_FIRE_PLACE.setBoolean(true);
|
|
||||||
playerMsg("Fire placement is now enabled.");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
TFM_ConfigEntry.ALLOW_FIRE_PLACE.setBoolean(false);
|
|
||||||
playerMsg("Fire placement is now disabled.");
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,31 +0,0 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_GameRuleHandler;
|
|
||||||
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 fire spread.", usage = "/<command> <on | off>")
|
|
||||||
public class Command_firespread 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;
|
|
||||||
}
|
|
||||||
|
|
||||||
boolean fireSpread = !args[0].equalsIgnoreCase("off");
|
|
||||||
|
|
||||||
TFM_ConfigEntry.ALLOW_FIRE_SPREAD.setBoolean(fireSpread);
|
|
||||||
|
|
||||||
playerMsg("Fire spread is now " + (fireSpread ? "enabled" : "disabled") + ".");
|
|
||||||
|
|
||||||
TFM_GameRuleHandler.setGameRule(TFM_GameRuleHandler.TFM_GameRule.DO_FIRE_TICK, fireSpread);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
@ -13,7 +13,7 @@ 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 (TFM_ConfigEntry.GENERATE_FLATLANDS.getBoolean())
|
if (TFM_ConfigEntry.FLATLANDS_GENERATE.getBoolean())
|
||||||
{
|
{
|
||||||
TFM_Flatlands.getInstance().sendToWorld(sender_p);
|
TFM_Flatlands.getInstance().sendToWorld(sender_p);
|
||||||
}
|
}
|
||||||
|
@ -1,24 +0,0 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
|
||||||
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 fluid spread.", usage = "/<command> <on | off>")
|
|
||||||
public class Command_fluidspread 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;
|
|
||||||
}
|
|
||||||
|
|
||||||
playerMsg("Lava and water spread is now " + (TFM_ConfigEntry.ALLOW_FLUID_SPREAD.setBoolean(!args[0].equalsIgnoreCase("off")) ? "enabled" : "disabled") + ".");
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,63 +1,46 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_PlayerData;
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_PlayerData;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
|
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]")
|
||||||
public class Command_fr extends TFM_Command
|
public class Command_fr extends TFM_Command
|
||||||
{
|
{
|
||||||
|
private static boolean allFrozen = false;
|
||||||
|
|
||||||
@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 == 0)
|
if (args.length == 0)
|
||||||
{
|
{
|
||||||
TotalFreedomMod.allPlayersFrozen = !TotalFreedomMod.allPlayersFrozen;
|
allFrozen = !allFrozen;
|
||||||
|
|
||||||
if (TotalFreedomMod.allPlayersFrozen)
|
if (allFrozen)
|
||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "Freezing all players", false);
|
TFM_Util.adminAction(sender.getName(), "Freezing all players", false);
|
||||||
TotalFreedomMod.allPlayersFrozen = true;
|
|
||||||
|
|
||||||
if (TotalFreedomMod.freezePurgeTask != null)
|
|
||||||
{
|
|
||||||
TotalFreedomMod.freezePurgeTask.cancel();
|
|
||||||
}
|
|
||||||
TotalFreedomMod.freezePurgeTask = new BukkitRunnable()
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public void run()
|
|
||||||
{
|
|
||||||
TFM_Util.adminAction("FreezeTimer", "Unfreezing all players", false);
|
|
||||||
TotalFreedomMod.allPlayersFrozen = false;
|
|
||||||
}
|
|
||||||
}.runTaskLater(plugin, 20L * 60L * 5L);
|
|
||||||
|
|
||||||
|
setAllFrozen(true);
|
||||||
playerMsg("Players are now frozen.");
|
playerMsg("Players are now frozen.");
|
||||||
|
|
||||||
for (Player player : Bukkit.getOnlinePlayers())
|
for (Player player : Bukkit.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
if (!TFM_AdminList.isSuperAdmin(player))
|
if (!TFM_AdminList.isSuperAdmin(player))
|
||||||
{
|
{
|
||||||
TFM_Util.playerMsg(player, "You have been frozen due to rule breaker(s), you will be unfrozen very soon.", ChatColor.RED);
|
playerMsg(player, "You have been frozen due to rulebreakers, you will be unfrozen soon.", ChatColor.RED);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "Unfreezing all players", false);
|
TFM_Util.adminAction(sender.getName(), "Unfreezing all players", false);
|
||||||
TotalFreedomMod.allPlayersFrozen = false;
|
setAllFrozen(false);
|
||||||
if (TotalFreedomMod.freezePurgeTask != null)
|
|
||||||
{
|
|
||||||
TotalFreedomMod.freezePurgeTask.cancel();
|
|
||||||
}
|
|
||||||
playerMsg("Players are now free to move.");
|
playerMsg("Players are now free to move.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -65,34 +48,20 @@ public class Command_fr extends TFM_Command
|
|||||||
{
|
{
|
||||||
if (args[0].toLowerCase().equals("purge"))
|
if (args[0].toLowerCase().equals("purge"))
|
||||||
{
|
{
|
||||||
TotalFreedomMod.allPlayersFrozen = false;
|
setAllFrozen(false);
|
||||||
if (TotalFreedomMod.freezePurgeTask != null)
|
TFM_Util.adminAction(sender.getName(), "Unfreezing all players", false);
|
||||||
{
|
|
||||||
TotalFreedomMod.freezePurgeTask.cancel();
|
|
||||||
}
|
|
||||||
|
|
||||||
for (Player player : server.getOnlinePlayers())
|
|
||||||
{
|
|
||||||
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
|
|
||||||
playerdata.setFrozen(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
TFM_Util.adminAction(sender.getName(), "Lifting all global and player freezes", false);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Player player;
|
final Player player = getPlayer(args[0]);
|
||||||
try
|
|
||||||
|
if (player == null)
|
||||||
{
|
{
|
||||||
player = getPlayer(args[0]);
|
playerMsg(TFM_Command.PLAYER_NOT_FOUND, ChatColor.RED);
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
playerMsg(ex.getMessage(), ChatColor.RED);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
|
final TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
|
||||||
playerdata.setFrozen(!playerdata.isFrozen());
|
playerdata.setFrozen(!playerdata.isFrozen());
|
||||||
|
|
||||||
playerMsg(player.getName() + " has been " + (playerdata.isFrozen() ? "frozen" : "unfrozen") + ".");
|
playerMsg(player.getName() + " has been " + (playerdata.isFrozen() ? "frozen" : "unfrozen") + ".");
|
||||||
@ -102,4 +71,13 @@ public class Command_fr extends TFM_Command
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void setAllFrozen(boolean freeze)
|
||||||
|
{
|
||||||
|
allFrozen = freeze;
|
||||||
|
for (TFM_PlayerData data : TFM_PlayerData.PLAYER_DATA.values())
|
||||||
|
{
|
||||||
|
data.setFrozen(freeze);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,11 +1,10 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Ban;
|
import java.util.Iterator;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_BanManager;
|
import me.StevenLawson.TotalFreedomMod.TFM_BanManager;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ServerInterface;
|
|
||||||
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.TFM_UuidManager;
|
||||||
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;
|
||||||
@ -13,10 +12,47 @@ 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, fr, smite.",
|
||||||
usage = "/<command> [list | [<kick | nameban | ipban | ban | op | deop | ci | fr> <targethash>] ]")
|
usage = "/<command> [list | [<kick | nameban | ipban | ban | op | deop | ci | fr | smite> <targethash>] ]")
|
||||||
public class Command_gadmin extends TFM_Command
|
public class Command_gadmin extends TFM_Command
|
||||||
{
|
{
|
||||||
|
private enum GadminMode
|
||||||
|
{
|
||||||
|
LIST("list"),
|
||||||
|
KICK("kick"),
|
||||||
|
NAMEBAN("nameban"),
|
||||||
|
IPBAN("ipban"),
|
||||||
|
BAN("ban"),
|
||||||
|
OP("op"),
|
||||||
|
DEOP("deop"),
|
||||||
|
CI("ci"),
|
||||||
|
FR("fr"),
|
||||||
|
SMITE("smite");
|
||||||
|
private final String modeName;
|
||||||
|
|
||||||
|
private GadminMode(String command)
|
||||||
|
{
|
||||||
|
this.modeName = command;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getModeName()
|
||||||
|
{
|
||||||
|
return modeName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static GadminMode findMode(String needle)
|
||||||
|
{
|
||||||
|
for (final GadminMode mode : GadminMode.values())
|
||||||
|
{
|
||||||
|
if (needle.equalsIgnoreCase(mode.getModeName()))
|
||||||
|
{
|
||||||
|
return mode;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@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)
|
||||||
{
|
{
|
||||||
@ -25,93 +61,141 @@ public class Command_gadmin extends TFM_Command
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
String mode = args[0].toLowerCase();
|
final GadminMode mode = GadminMode.findMode(args[0].toLowerCase());
|
||||||
|
if (mode == null)
|
||||||
if (mode.equals("list"))
|
|
||||||
{
|
{
|
||||||
playerMsg("[ Real Name ] : [ Display Name ] - Hash:");
|
playerMsg("Invalid mode: " + args[0], ChatColor.RED);
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (Player player : server.getOnlinePlayers())
|
final Iterator<? extends Player> it = server.getOnlinePlayers().iterator();
|
||||||
|
|
||||||
|
if (mode == GadminMode.LIST)
|
||||||
{
|
{
|
||||||
String hash = player.getUniqueId().toString().substring(0, 4);
|
playerMsg("[ Real Name ] : [ Display Name ] - Hash:");
|
||||||
if (mode.equals("list"))
|
while (it.hasNext())
|
||||||
{
|
{
|
||||||
|
final Player player = it.next();
|
||||||
|
final String hash = TFM_UuidManager.getUniqueId(player).toString().substring(0, 4);
|
||||||
sender.sendMessage(ChatColor.GRAY + String.format("[ %s ] : [ %s ] - %s",
|
sender.sendMessage(ChatColor.GRAY + String.format("[ %s ] : [ %s ] - %s",
|
||||||
player.getName(),
|
player.getName(),
|
||||||
ChatColor.stripColor(player.getDisplayName()),
|
ChatColor.stripColor(player.getDisplayName()),
|
||||||
hash));
|
hash));
|
||||||
}
|
}
|
||||||
else if (hash.equalsIgnoreCase(args[1]))
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args.length < 2)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
Player target = null;
|
||||||
|
while (it.hasNext() && target == null)
|
||||||
|
{
|
||||||
|
final Player player = it.next();
|
||||||
|
final String hash = TFM_UuidManager.getUniqueId(player).toString().substring(0, 4);
|
||||||
|
|
||||||
|
if (hash.equalsIgnoreCase(args[1]))
|
||||||
{
|
{
|
||||||
if (mode.equals("kick"))
|
target = player;
|
||||||
{
|
|
||||||
TFM_Util.adminAction(sender.getName(), String.format("Kicking: %s.", player.getName()), false);
|
|
||||||
player.kickPlayer("Kicked by Administrator");
|
|
||||||
}
|
|
||||||
else if (mode.equals("nameban"))
|
|
||||||
{
|
|
||||||
TFM_BanManager.getInstance().addUuidBan(new TFM_Ban(player.getUniqueId(), player.getName()));
|
|
||||||
TFM_Util.adminAction(sender.getName(), String.format("Banning Name: %s.", player.getName()), true);
|
|
||||||
player.kickPlayer("Username banned by Administrator.");
|
|
||||||
}
|
|
||||||
else if (mode.equals("ipban"))
|
|
||||||
{
|
|
||||||
String ip = player.getAddress().getAddress().getHostAddress();
|
|
||||||
String[] ip_parts = ip.split("\\.");
|
|
||||||
if (ip_parts.length == 4)
|
|
||||||
{
|
|
||||||
ip = String.format("%s.%s.*.*", ip_parts[0], ip_parts[1]);
|
|
||||||
}
|
|
||||||
TFM_Util.adminAction(sender.getName(), String.format("Banning IP: %s.", player.getName(), ip), true);
|
|
||||||
TFM_BanManager.getInstance().addIpBan(new TFM_Ban(ip, player.getName()));
|
|
||||||
player.kickPlayer("IP address banned by Administrator.");
|
|
||||||
}
|
|
||||||
else if (mode.equals("ban"))
|
|
||||||
{
|
|
||||||
String ip = player.getAddress().getAddress().getHostAddress();
|
|
||||||
String[] ip_parts = ip.split("\\.");
|
|
||||||
if (ip_parts.length == 4)
|
|
||||||
{
|
|
||||||
ip = String.format("%s.%s.*.*", ip_parts[0], ip_parts[1]);
|
|
||||||
}
|
|
||||||
TFM_Util.adminAction(sender.getName(), String.format("Banning Name: %s, IP: %s.", player.getName(), ip), true);
|
|
||||||
TFM_BanManager.getInstance().addUuidBan(new TFM_Ban(player.getUniqueId(), player.getName()));
|
|
||||||
TFM_BanManager.getInstance().addIpBan(new TFM_Ban(ip, player.getName()));
|
|
||||||
player.kickPlayer("IP and username banned by Administrator.");
|
|
||||||
}
|
|
||||||
else if (mode.equals("op"))
|
|
||||||
{
|
|
||||||
TFM_Util.adminAction(sender.getName(), String.format("Opping %s.", player.getName()), false);
|
|
||||||
player.setOp(false);
|
|
||||||
player.sendMessage(TotalFreedomMod.YOU_ARE_OP);
|
|
||||||
}
|
|
||||||
else if (mode.equals("deop"))
|
|
||||||
{
|
|
||||||
TFM_Util.adminAction(sender.getName(), String.format("Deopping %s.", player.getName()), false);
|
|
||||||
player.setOp(false);
|
|
||||||
player.sendMessage(TotalFreedomMod.YOU_ARE_NOT_OP);
|
|
||||||
}
|
|
||||||
else if (mode.equals("ci"))
|
|
||||||
{
|
|
||||||
player.getInventory().clear();
|
|
||||||
}
|
|
||||||
else if (mode.equals("fr"))
|
|
||||||
{
|
|
||||||
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
|
|
||||||
playerdata.setFrozen(!playerdata.isFrozen());
|
|
||||||
|
|
||||||
playerMsg(player.getName() + " has been " + (playerdata.isFrozen() ? "frozen" : "unfrozen") + ".");
|
|
||||||
player.sendMessage(ChatColor.AQUA + "You have been " + (playerdata.isFrozen() ? "frozen" : "unfrozen") + ".");
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!mode.equals("list"))
|
if (target == null)
|
||||||
{
|
{
|
||||||
playerMsg("Invalid hash.", ChatColor.RED);
|
playerMsg("Invalid player hash: " + args[1], ChatColor.RED);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (mode)
|
||||||
|
{
|
||||||
|
case KICK:
|
||||||
|
{
|
||||||
|
TFM_Util.adminAction(sender.getName(), String.format("Kicking: %s.", target.getName()), false);
|
||||||
|
target.kickPlayer("Kicked by Administrator");
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case NAMEBAN:
|
||||||
|
{
|
||||||
|
TFM_BanManager.addUuidBan(target);
|
||||||
|
|
||||||
|
TFM_Util.adminAction(sender.getName(), String.format("Banning Name: %s.", target.getName()), true);
|
||||||
|
target.kickPlayer("Username banned by Administrator.");
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case IPBAN:
|
||||||
|
{
|
||||||
|
String ip = target.getAddress().getAddress().getHostAddress();
|
||||||
|
String[] ip_parts = ip.split("\\.");
|
||||||
|
if (ip_parts.length == 4)
|
||||||
|
{
|
||||||
|
ip = String.format("%s.%s.*.*", ip_parts[0], ip_parts[1]);
|
||||||
|
}
|
||||||
|
TFM_Util.adminAction(sender.getName(), String.format("Banning IP: %s.", ip), true);
|
||||||
|
TFM_BanManager.addIpBan(target);
|
||||||
|
|
||||||
|
target.kickPlayer("IP address banned by Administrator.");
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case BAN:
|
||||||
|
{
|
||||||
|
String ip = target.getAddress().getAddress().getHostAddress();
|
||||||
|
String[] ip_parts = ip.split("\\.");
|
||||||
|
if (ip_parts.length == 4)
|
||||||
|
{
|
||||||
|
ip = String.format("%s.%s.*.*", ip_parts[0], ip_parts[1]);
|
||||||
|
}
|
||||||
|
TFM_Util.adminAction(sender.getName(), String.format("Banning Name: %s, IP: %s.", target.getName(), ip), true);
|
||||||
|
|
||||||
|
TFM_BanManager.addUuidBan(target);
|
||||||
|
TFM_BanManager.addIpBan(target);
|
||||||
|
|
||||||
|
target.kickPlayer("IP and username banned by Administrator.");
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case OP:
|
||||||
|
{
|
||||||
|
TFM_Util.adminAction(sender.getName(), String.format("Opping %s.", target.getName()), false);
|
||||||
|
target.setOp(false);
|
||||||
|
target.sendMessage(TFM_Command.YOU_ARE_OP);
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case DEOP:
|
||||||
|
{
|
||||||
|
TFM_Util.adminAction(sender.getName(), String.format("Deopping %s.", target.getName()), false);
|
||||||
|
target.setOp(false);
|
||||||
|
target.sendMessage(TFM_Command.YOU_ARE_NOT_OP);
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case CI:
|
||||||
|
{
|
||||||
|
target.getInventory().clear();
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case FR:
|
||||||
|
{
|
||||||
|
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(target);
|
||||||
|
playerdata.setFrozen(!playerdata.isFrozen());
|
||||||
|
|
||||||
|
playerMsg(target.getName() + " has been " + (playerdata.isFrozen() ? "frozen" : "unfrozen") + ".");
|
||||||
|
target.sendMessage(ChatColor.AQUA + "You have been " + (playerdata.isFrozen() ? "frozen" : "unfrozen") + ".");
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case SMITE:
|
||||||
|
{
|
||||||
|
Command_smite.smite(target);
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -1,8 +1,7 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_CommandBlocker;
|
import me.StevenLawson.TotalFreedomMod.TFM_CommandBlocker;
|
||||||
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
import 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;
|
||||||
@ -19,20 +18,17 @@ public class Command_gcmd extends TFM_Command
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Player player;
|
final Player player = getPlayer(args[0]);
|
||||||
try
|
|
||||||
|
if (player == null)
|
||||||
{
|
{
|
||||||
player = getPlayer(args[0]);
|
sender.sendMessage(TFM_Command.PLAYER_NOT_FOUND);
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ex.getMessage());
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
final String outCommand = StringUtils.join(args, " ", 1, args.length);
|
final String outCommand = StringUtils.join(args, " ", 1, args.length);
|
||||||
|
|
||||||
if (TFM_CommandBlocker.getInstance().isCommandBlocked(outCommand, sender))
|
if (TFM_CommandBlocker.isCommandBlocked(outCommand, sender))
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -2,15 +2,14 @@ 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_ServerInterface;
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Ban;
|
import me.StevenLawson.TotalFreedomMod.TFM_Ban;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_BanManager;
|
import me.StevenLawson.TotalFreedomMod.TFM_BanManager;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_PlayerEntry;
|
import me.StevenLawson.TotalFreedomMod.TFM_Player;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_PlayerList;
|
import me.StevenLawson.TotalFreedomMod.TFM_PlayerList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
import me.StevenLawson.TotalFreedomMod.TFM_UuidManager;
|
||||||
import org.bukkit.Bukkit;
|
import 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;
|
||||||
@ -31,10 +30,10 @@ public class Command_glist extends TFM_Command
|
|||||||
{
|
{
|
||||||
if (args[0].equalsIgnoreCase("purge"))
|
if (args[0].equalsIgnoreCase("purge"))
|
||||||
{
|
{
|
||||||
//Purge does not clear the banlist! This is not for clearing bans! This is for clearing the yaml file that stores the player/IP database!
|
|
||||||
if (TFM_AdminList.isSeniorAdmin(sender))
|
if (TFM_AdminList.isSeniorAdmin(sender))
|
||||||
{
|
{
|
||||||
TFM_PlayerList.getInstance().purgeAll();
|
TFM_PlayerList.purgeAll();
|
||||||
|
playerMsg("Purged playerbase");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -50,63 +49,61 @@ public class Command_glist extends TFM_Command
|
|||||||
else if (args.length == 2)
|
else if (args.length == 2)
|
||||||
{
|
{
|
||||||
String username;
|
String username;
|
||||||
List<String> ips = new ArrayList<String>();
|
final List<String> ips = new ArrayList<String>();
|
||||||
|
|
||||||
try
|
final Player player = getPlayer(args[1]);
|
||||||
{
|
|
||||||
Player player = getPlayer(args[1]);
|
|
||||||
|
|
||||||
username = player.getName();
|
if (player == null)
|
||||||
ips.add(player.getAddress().getAddress().getHostAddress());
|
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
{
|
||||||
final TFM_PlayerEntry entry = TFM_PlayerList.getInstance().getEntry(args[1]);
|
final TFM_Player entry = TFM_PlayerList.getEntry(TFM_UuidManager.getUniqueId(args[1]));
|
||||||
|
|
||||||
if (entry == null)
|
if (entry == null)
|
||||||
{
|
{
|
||||||
TFM_Util.playerMsg(sender, "Can't find that user. If target is not logged in, make sure that you spelled the name exactly.");
|
playerMsg("Can't find that user. If target is not logged in, make sure that you spelled the name exactly.");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
username = entry.getLastJoinName();
|
username = entry.getLastLoginName();
|
||||||
ips = entry.getIps();
|
ips.addAll(entry.getIps());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
username = player.getName();
|
||||||
|
final TFM_Player entry = TFM_PlayerList.getEntry(TFM_UuidManager.getUniqueId(player));
|
||||||
|
ips.addAll(entry.getIps());
|
||||||
}
|
}
|
||||||
|
|
||||||
String mode = args[0].toLowerCase();
|
String mode = args[0].toLowerCase();
|
||||||
if (mode.equalsIgnoreCase("ban"))
|
if (mode.equalsIgnoreCase("ban"))
|
||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "Banning " + username + " and IPs: " + StringUtils.join(ips, ","), true);
|
TFM_Util.adminAction(sender.getName(), "Banning " + username + " and IPs: " + StringUtils.join(ips, ", "), true);
|
||||||
|
|
||||||
Player player = server.getPlayerExact(username);
|
final Player target = getPlayer(username, true);
|
||||||
if (player != null)
|
if (target != null)
|
||||||
{
|
{
|
||||||
TFM_BanManager.getInstance().addUuidBan(new TFM_Ban(player.getUniqueId(), player.getName()));
|
TFM_BanManager.addUuidBan(new TFM_Ban(TFM_UuidManager.getUniqueId(target), target.getName()));
|
||||||
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");
|
target.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
|
||||||
{
|
{
|
||||||
TFM_BanManager.getInstance().addUuidBan(new TFM_Ban(Bukkit.getOfflinePlayer(username).getUniqueId(), username));
|
TFM_BanManager.addUuidBan(new TFM_Ban(TFM_UuidManager.getUniqueId(username), username));
|
||||||
}
|
}
|
||||||
|
|
||||||
for (String ip : ips)
|
for (String ip : ips)
|
||||||
{
|
{
|
||||||
TFM_BanManager.getInstance().addIpBan(new TFM_Ban(ip, username));
|
TFM_BanManager.addIpBan(new TFM_Ban(ip, username));
|
||||||
String[] ip_address_parts = ip.split("\\.");
|
TFM_BanManager.addIpBan(new TFM_Ban(TFM_Util.getFuzzyIp(ip), username));
|
||||||
TFM_BanManager.getInstance().addIpBan(new TFM_Ban(ip_address_parts[0] + "." + ip_address_parts[1] + ".*.*", username));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (mode.equalsIgnoreCase("unban") || mode.equalsIgnoreCase("pardon"))
|
else if (mode.equalsIgnoreCase("unban"))
|
||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "Unbanning " + username + " and IPs: " + StringUtils.join(ips, ","), true);
|
TFM_Util.adminAction(sender.getName(), "Unbanning " + username + " and IPs: " + StringUtils.join(ips, ", "), true);
|
||||||
|
TFM_BanManager.unbanUuid(TFM_UuidManager.getUniqueId(username));
|
||||||
TFM_BanManager.getInstance().unbanUuid(Bukkit.getOfflinePlayer(username).getUniqueId());
|
|
||||||
|
|
||||||
for (String ip : ips)
|
for (String ip : ips)
|
||||||
{
|
{
|
||||||
TFM_BanManager.getInstance().unbanIp(ip);
|
|
||||||
String[] ipParts = ip.split("\\.");
|
TFM_BanManager.unbanIp(ip);
|
||||||
TFM_BanManager.getInstance().unbanIp(ipParts[0] + "." + ipParts[1] + ".*.*");
|
TFM_BanManager.unbanIp(TFM_Util.getFuzzyIp(ip));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -4,10 +4,10 @@ import me.StevenLawson.TotalFreedomMod.Bridge.TFM_WorldEditBridge;
|
|||||||
import me.StevenLawson.TotalFreedomMod.TFM_Ban;
|
import me.StevenLawson.TotalFreedomMod.TFM_Ban;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_BanManager;
|
import me.StevenLawson.TotalFreedomMod.TFM_BanManager;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_RollbackManager;
|
import me.StevenLawson.TotalFreedomMod.TFM_RollbackManager;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ServerInterface;
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import net.minecraft.util.org.apache.commons.lang3.ArrayUtils;
|
import me.StevenLawson.TotalFreedomMod.TFM_UuidManager;
|
||||||
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.ArrayUtils;
|
||||||
|
import 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;
|
||||||
@ -27,14 +27,11 @@ public class Command_gtfo extends TFM_Command
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Player player;
|
final Player player = getPlayer(args[0]);
|
||||||
try
|
|
||||||
|
if (player == null)
|
||||||
{
|
{
|
||||||
player = getPlayer(args[0]);
|
playerMsg(TFM_Command.PLAYER_NOT_FOUND, ChatColor.RED);
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
playerMsg(ex.getMessage(), ChatColor.RED);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -49,7 +46,7 @@ public class Command_gtfo extends TFM_Command
|
|||||||
// Undo WorldEdits:
|
// Undo WorldEdits:
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
TFM_WorldEditBridge.getInstance().undo(player, 15);
|
TFM_WorldEditBridge.undo(player, 15);
|
||||||
}
|
}
|
||||||
catch (NoClassDefFoundError ex)
|
catch (NoClassDefFoundError ex)
|
||||||
{
|
{
|
||||||
@ -79,18 +76,26 @@ public class Command_gtfo extends TFM_Command
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ban IP address:
|
// ban IP address:
|
||||||
String ip = player.getAddress().getAddress().getHostAddress();
|
String ip = TFM_Util.getFuzzyIp(player.getAddress().getAddress().getHostAddress());
|
||||||
String[] ipParts = ip.split("\\.");
|
|
||||||
if (ipParts.length == 4)
|
|
||||||
{
|
|
||||||
ip = String.format("%s.%s.*.*", ipParts[0], ipParts[1]);
|
|
||||||
}
|
|
||||||
TFM_Util.bcastMsg(String.format("Banning: %s, IP: %s.", player.getName(), ip), ChatColor.RED);
|
|
||||||
|
|
||||||
TFM_BanManager.getInstance().addIpBan(new TFM_Ban(ip, player.getName(), sender.getName(), null, reason));
|
final StringBuilder bcast = new StringBuilder()
|
||||||
|
.append(ChatColor.RED)
|
||||||
|
.append("Banning: ")
|
||||||
|
.append(player.getName())
|
||||||
|
.append(", IP: ")
|
||||||
|
.append(ip);
|
||||||
|
|
||||||
|
if (reason != null)
|
||||||
|
{
|
||||||
|
bcast.append(" - Reason: ").append(ChatColor.YELLOW).append(reason);
|
||||||
|
}
|
||||||
|
|
||||||
|
TFM_Util.bcastMsg(bcast.toString());
|
||||||
|
|
||||||
|
TFM_BanManager.addIpBan(new TFM_Ban(ip, player.getName(), sender.getName(), null, reason));
|
||||||
|
|
||||||
// ban username:
|
// ban username:
|
||||||
TFM_BanManager.getInstance().addUuidBan(new TFM_Ban(player.getUniqueId(), player.getName(), sender.getName(), null, reason));
|
TFM_BanManager.addUuidBan(new TFM_Ban(TFM_UuidManager.getUniqueId(player), player.getName(), sender.getName(), null, reason));
|
||||||
|
|
||||||
// kick Player:
|
// kick Player:
|
||||||
player.kickPlayer(ChatColor.RED + "GTFO" + (reason != null ? ("\nReason: " + ChatColor.YELLOW + reason) : ""));
|
player.kickPlayer(ChatColor.RED + "GTFO" + (reason != null ? ("\nReason: " + ChatColor.YELLOW + reason) : ""));
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_PlayerData;
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_PlayerData;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
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;
|
||||||
@ -63,7 +63,7 @@ public class Command_halt extends TFM_Command
|
|||||||
{
|
{
|
||||||
if (count == 0)
|
if (count == 0)
|
||||||
{
|
{
|
||||||
playerMsg(sender, "Halted players:");
|
playerMsg("Halted players:");
|
||||||
}
|
}
|
||||||
playerMsg("- " + hp.getName());
|
playerMsg("- " + hp.getName());
|
||||||
count++;
|
count++;
|
||||||
@ -76,18 +76,14 @@ public class Command_halt extends TFM_Command
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
Player player;
|
final Player player = getPlayer(args[0]);
|
||||||
try
|
|
||||||
|
if (player == null)
|
||||||
{
|
{
|
||||||
player = getPlayer(args[0]);
|
sender.sendMessage(TFM_Command.PLAYER_NOT_FOUND);
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ex.getMessage());
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
|
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
|
||||||
if (!playerdata.isHalted())
|
if (!playerdata.isHalted())
|
||||||
{
|
{
|
||||||
|
@ -4,7 +4,7 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
import 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;
|
||||||
@ -22,6 +22,7 @@ public class Command_invis extends TFM_Command
|
|||||||
{
|
{
|
||||||
if (args[0].equalsIgnoreCase("smite"))
|
if (args[0].equalsIgnoreCase("smite"))
|
||||||
{
|
{
|
||||||
|
TFM_Util.adminAction(sender.getName(), "Smiting all invisible players", true);
|
||||||
smite = true;
|
smite = true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -40,7 +41,6 @@ public class Command_invis extends TFM_Command
|
|||||||
players.add(player.getName());
|
players.add(player.getName());
|
||||||
if (smite && !TFM_AdminList.isSuperAdmin(player))
|
if (smite && !TFM_AdminList.isSuperAdmin(player))
|
||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "Smiting all invisible players", true);
|
|
||||||
player.setHealth(0.0);
|
player.setHealth(0.0);
|
||||||
smites++;
|
smites++;
|
||||||
}
|
}
|
||||||
@ -49,20 +49,19 @@ public class Command_invis extends TFM_Command
|
|||||||
|
|
||||||
if (players.isEmpty())
|
if (players.isEmpty())
|
||||||
{
|
{
|
||||||
TFM_Util.playerMsg(sender, "There are no invisible players");
|
playerMsg("There are no invisible players");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (smite)
|
if (smite)
|
||||||
{
|
{
|
||||||
TFM_Util.playerMsg(sender, "Smitten " + smites + " players");
|
playerMsg("Smitten " + smites + " players");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
TFM_Util.playerMsg(sender, "Invisble players (" + players.size() + "): " + StringUtils.join(players, ", "));
|
playerMsg("Invisble players (" + players.size() + "): " + StringUtils.join(players, ", "));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,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 = "Manage jumppads", usage = "/<command> <on | off | info |sideways <on | off> | strength <strength (1-10)>>", aliases = "launchpads,jp")
|
@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
|
public class Command_jumppads extends TFM_Command
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
@ -23,26 +23,26 @@ public class Command_jumppads extends TFM_Command
|
|||||||
{
|
{
|
||||||
if (args[0].equalsIgnoreCase("info"))
|
if (args[0].equalsIgnoreCase("info"))
|
||||||
{
|
{
|
||||||
playerMsg("Jumppads: " + (TFM_Jumppads.getInstance().getMode().isOn() ? "Enabled" : "Disabled"), ChatColor.BLUE);
|
playerMsg("Jumppads: " + (TFM_Jumppads.getMode().isOn() ? "Enabled" : "Disabled"), ChatColor.BLUE);
|
||||||
playerMsg("Sideways: " + (TFM_Jumppads.getInstance().getMode() == TFM_Jumppads.JumpPadMode.NORMAL_AND_SIDEWAYS ? "Enabled" : "Disabled"), ChatColor.BLUE);
|
playerMsg("Sideways: " + (TFM_Jumppads.getMode() == TFM_Jumppads.JumpPadMode.NORMAL_AND_SIDEWAYS ? "Enabled" : "Disabled"), ChatColor.BLUE);
|
||||||
playerMsg("Strength: " + (TFM_Jumppads.getInstance().getStrength() * 10 - 1), ChatColor.BLUE);
|
playerMsg("Strength: " + (TFM_Jumppads.getStrength() * 10 - 1), ChatColor.BLUE);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TFM_Util.isStopCommand(args[0]))
|
if ("off".equals(args[0]))
|
||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "Disabling Jumppads", false);
|
TFM_Util.adminAction(sender.getName(), "Disabling Jumppads", false);
|
||||||
TFM_Jumppads.getInstance().setMode(TFM_Jumppads.JumpPadMode.OFF);
|
TFM_Jumppads.setMode(TFM_Jumppads.JumpPadMode.OFF);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "Enabling Jumppads", false);
|
TFM_Util.adminAction(sender.getName(), "Enabling Jumppads", false);
|
||||||
TFM_Jumppads.getInstance().setMode(TFM_Jumppads.JumpPadMode.MADGEEK);
|
TFM_Jumppads.setMode(TFM_Jumppads.JumpPadMode.MADGEEK);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (TFM_Jumppads.getInstance().getMode() == TFM_Jumppads.JumpPadMode.OFF)
|
if (TFM_Jumppads.getMode() == TFM_Jumppads.JumpPadMode.OFF)
|
||||||
{
|
{
|
||||||
playerMsg("Jumppads are currently disabled, please enable them before changing jumppads settings.");
|
playerMsg("Jumppads are currently disabled, please enable them before changing jumppads settings.");
|
||||||
return true;
|
return true;
|
||||||
@ -50,15 +50,15 @@ public class Command_jumppads extends TFM_Command
|
|||||||
|
|
||||||
if (args[0].equalsIgnoreCase("sideways"))
|
if (args[0].equalsIgnoreCase("sideways"))
|
||||||
{
|
{
|
||||||
if (TFM_Util.isStopCommand(args[1]))
|
if ("off".equals(args[1]))
|
||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "Setting Jumppads mode to: Madgeek", false);
|
TFM_Util.adminAction(sender.getName(), "Setting Jumppads mode to: Madgeek", false);
|
||||||
TFM_Jumppads.getInstance().setMode(TFM_Jumppads.JumpPadMode.MADGEEK);
|
TFM_Jumppads.setMode(TFM_Jumppads.JumpPadMode.MADGEEK);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "Setting Jumppads mode to: Normal and Sideways", false);
|
TFM_Util.adminAction(sender.getName(), "Setting Jumppads mode to: Normal and Sideways", false);
|
||||||
TFM_Jumppads.getInstance().setMode(TFM_Jumppads.JumpPadMode.NORMAL_AND_SIDEWAYS);
|
TFM_Jumppads.setMode(TFM_Jumppads.JumpPadMode.NORMAL_AND_SIDEWAYS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (args[0].equalsIgnoreCase("strength"))
|
else if (args[0].equalsIgnoreCase("strength"))
|
||||||
@ -81,7 +81,7 @@ public class Command_jumppads extends TFM_Command
|
|||||||
}
|
}
|
||||||
|
|
||||||
TFM_Util.adminAction(sender.getName(), "Setting Jumppads strength to: " + String.valueOf(strength), false);
|
TFM_Util.adminAction(sender.getName(), "Setting Jumppads strength to: " + String.valueOf(strength), false);
|
||||||
TFM_Jumppads.getInstance().setStrength((strength / 10) + 0.1F);
|
TFM_Jumppads.setStrength((strength / 10) + 0.1F);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -7,7 +7,7 @@ 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.BOTH, block_host_console = true)
|
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.BOTH, blockHostConsole = true)
|
||||||
@CommandParameters(description = "Kick all non-superadmins on server.", usage = "/<command>")
|
@CommandParameters(description = "Kick all non-superadmins on server.", usage = "/<command>")
|
||||||
public class Command_kicknoob extends TFM_Command
|
public class Command_kicknoob extends TFM_Command
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
@ -22,48 +23,65 @@ public class Command_landmine extends TFM_Command
|
|||||||
if (!TFM_ConfigEntry.LANDMINES_ENABLED.getBoolean())
|
if (!TFM_ConfigEntry.LANDMINES_ENABLED.getBoolean())
|
||||||
{
|
{
|
||||||
playerMsg("The landmine is currently disabled.", ChatColor.GREEN);
|
playerMsg("The landmine is currently disabled.", ChatColor.GREEN);
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
else if (!TFM_ConfigEntry.ALLOW_EXPLOSIONS.getBoolean())
|
|
||||||
|
if (!TFM_ConfigEntry.ALLOW_EXPLOSIONS.getBoolean())
|
||||||
{
|
{
|
||||||
playerMsg("Explosions are currently disabled.", ChatColor.GREEN);
|
playerMsg("Explosions are currently disabled.", ChatColor.GREEN);
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
else if (sender.isOp())
|
|
||||||
|
double radius = 2.0;
|
||||||
|
|
||||||
|
if (args.length >= 1)
|
||||||
{
|
{
|
||||||
double radius = 2.0;
|
if ("list".equalsIgnoreCase(args[0]))
|
||||||
if (args.length >= 1)
|
|
||||||
{
|
{
|
||||||
try
|
final Iterator<TFM_LandmineData> landmines = TFM_LandmineData.landmines.iterator();
|
||||||
{
|
while (landmines.hasNext())
|
||||||
radius = Math.max(2.0, Math.min(6.0, Double.parseDouble(args[0])));
|
|
||||||
}
|
|
||||||
catch (NumberFormatException ex)
|
|
||||||
{
|
{
|
||||||
|
playerMsg(landmines.next().toString());
|
||||||
}
|
}
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
Block landmine = sender_p.getLocation().getBlock().getRelative(BlockFace.DOWN);
|
try
|
||||||
landmine.setType(Material.TNT);
|
{
|
||||||
TFM_LandmineData.landmines.add(new TFM_LandmineData(landmine.getLocation(), sender_p, radius));
|
radius = Math.max(2.0, Math.min(6.0, Double.parseDouble(args[0])));
|
||||||
|
}
|
||||||
playerMsg("Landmine planted. Radius: " + radius + " blocks.", ChatColor.GREEN);
|
catch (NumberFormatException ex)
|
||||||
|
{
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final Block landmine = sender_p.getLocation().getBlock().getRelative(BlockFace.DOWN);
|
||||||
|
landmine.setType(Material.TNT);
|
||||||
|
TFM_LandmineData.landmines.add(new TFM_LandmineData(landmine.getLocation(), sender_p, radius));
|
||||||
|
|
||||||
|
playerMsg("Landmine planted - Radius = " + radius + " blocks.", ChatColor.GREEN);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class TFM_LandmineData
|
public static class TFM_LandmineData
|
||||||
{
|
{
|
||||||
public static List<TFM_LandmineData> landmines = new ArrayList<TFM_LandmineData>();
|
public static final List<TFM_LandmineData> landmines = new ArrayList<TFM_LandmineData>();
|
||||||
public Location location;
|
public final Location location;
|
||||||
public Player player;
|
public final Player player;
|
||||||
public double radius;
|
public final double radius;
|
||||||
|
|
||||||
public TFM_LandmineData(Location landmine_pos, Player player, double radius)
|
public TFM_LandmineData(Location location, Player player, double radius)
|
||||||
{
|
{
|
||||||
super();
|
this.location = location;
|
||||||
this.location = landmine_pos;
|
|
||||||
this.player = player;
|
this.player = player;
|
||||||
this.radius = radius;
|
this.radius = radius;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString()
|
||||||
|
{
|
||||||
|
return this.location.toString() + ", " + this.radius + ", " + this.player.getName();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,27 +18,24 @@ public class Command_lastcmd extends TFM_Command
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Player player;
|
final Player player = getPlayer(args[0]);
|
||||||
try
|
|
||||||
|
if (player == null)
|
||||||
{
|
{
|
||||||
player = getPlayer(args[0]);
|
playerMsg(TFM_Command.PLAYER_NOT_FOUND);
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
playerMsg(ex.getMessage(), ChatColor.RED);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
|
final TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
|
||||||
|
|
||||||
if (playerdata != null)
|
if (playerdata != null)
|
||||||
{
|
{
|
||||||
String last_command = playerdata.getLastCommand();
|
String lastCommand = playerdata.getLastCommand();
|
||||||
if (last_command.isEmpty())
|
if (lastCommand.isEmpty())
|
||||||
{
|
{
|
||||||
last_command = "(none)";
|
lastCommand = "(none)";
|
||||||
}
|
}
|
||||||
playerMsg(player.getName() + " - Last Command: " + last_command, ChatColor.GRAY);
|
playerMsg(player.getName() + " - Last Command: " + lastCommand, ChatColor.GRAY);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -1,24 +0,0 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
|
||||||
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 lava damage.", usage = "/<command> <on | off>")
|
|
||||||
public class Command_lavadmg 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;
|
|
||||||
}
|
|
||||||
|
|
||||||
playerMsg("Lava damage is now " + (TFM_ConfigEntry.ALLOW_LAVA_DAMAGE.setBoolean(!args[0].equalsIgnoreCase("off")) ? "enabled" : "disabled") + ".");
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,24 +0,0 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
|
||||||
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 lava placement.", usage = "/<command> <on | off>")
|
|
||||||
public class Command_lavaplace 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;
|
|
||||||
}
|
|
||||||
|
|
||||||
playerMsg("Lava placement is now " + (TFM_ConfigEntry.ALLOW_LAVA_PLACE.setBoolean(!args[0].equalsIgnoreCase("off")) ? "enabled" : "disabled") + ".");
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
@ -2,26 +2,24 @@ 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_Admin;
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_PlayerRank;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import org.apache.commons.lang.StringUtils;
|
import 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;
|
||||||
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> [-a]", aliases = "who")
|
@CommandParameters(description = "Lists the real names of all online players.", usage = "/<command> [-a | -i]", aliases = "who")
|
||||||
public class Command_list extends TFM_Command
|
public class Command_list extends TFM_Command
|
||||||
{
|
{
|
||||||
private static enum ListFilter
|
private static enum ListFilter
|
||||||
{
|
{
|
||||||
ALL,
|
ALL,
|
||||||
ADMINS;
|
ADMINS,
|
||||||
|
IMPOSTORS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -43,21 +41,43 @@ public class Command_list extends TFM_Command
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
final Command_list.ListFilter listFilter = (args.length == 1 && args[0].equals("-a") ? Command_list.ListFilter.ADMINS : Command_list.ListFilter.ALL);
|
final ListFilter listFilter;
|
||||||
|
if (args.length == 1)
|
||||||
|
{
|
||||||
|
if ("-a".equals(args[0]))
|
||||||
|
{
|
||||||
|
listFilter = ListFilter.ADMINS;
|
||||||
|
}
|
||||||
|
else if ("-i".equals(args[0]))
|
||||||
|
{
|
||||||
|
listFilter = ListFilter.IMPOSTORS;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
listFilter = ListFilter.ALL;
|
||||||
|
}
|
||||||
|
|
||||||
final StringBuilder onlineStats = new StringBuilder();
|
final StringBuilder onlineStats = new StringBuilder();
|
||||||
final 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().size());
|
||||||
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.");
|
||||||
|
|
||||||
final List<String> names = new ArrayList<String>();
|
final List<String> names = new ArrayList<String>();
|
||||||
for (Player player : server.getOnlinePlayers())
|
for (Player player : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
final boolean userSuperadmin = TFM_AdminList.isSuperAdmin(player);
|
if (listFilter == ListFilter.ADMINS && !TFM_AdminList.isSuperAdmin(player))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if (listFilter == Command_list.ListFilter.ADMINS && !userSuperadmin)
|
if (listFilter == ListFilter.IMPOSTORS && !TFM_AdminList.isAdminImpostor(player))
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -1,44 +0,0 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Log;
|
|
||||||
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.SENIOR, source = SourceType.ONLY_CONSOLE, block_host_console = true)
|
|
||||||
@CommandParameters(description = "Download the superadmin and permban lists from the main TotalFreedom server.", usage = "/<command>")
|
|
||||||
public class Command_listsync 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(), "Downloading superadmin and permban lists from primary TotalFreedom server.", false);
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
TFM_Util.downloadFile("http://madgeekonline.com/apps/get_superadmins_raw.php", new File(TotalFreedomMod.plugin.getDataFolder(), TotalFreedomMod.SUPERADMIN_FILE));
|
|
||||||
TotalFreedomMod.loadSuperadminConfig();
|
|
||||||
TFM_Util.adminAction(sender.getName(), TotalFreedomMod.SUPERADMIN_FILE + " downloaded.", false);
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
TFM_Log.severe(ex);
|
|
||||||
}
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
TFM_Util.downloadFile("http://madgeekonline.com/apps/get_permbans_raw.php", new File(TotalFreedomMod.plugin.getDataFolder(), TotalFreedomMod.PERMBAN_FILE));
|
|
||||||
TotalFreedomMod.loadPermbanConfig();
|
|
||||||
TFM_Util.adminAction(sender.getName(), TotalFreedomMod.PERMBAN_FILE + " downloaded.", false);
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
TFM_Log.severe(ex);
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,34 +0,0 @@
|
|||||||
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;
|
|
||||||
}
|
|
||||||
}
|
|
@ -8,7 +8,7 @@ import org.bukkit.entity.Player;
|
|||||||
import org.bukkit.scheduler.BukkitRunnable;
|
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, blockHostConsole = true)
|
||||||
@CommandParameters(description = "Block target's minecraft input. This is evil, and I never should have wrote it.", usage = "/<command> <all | purge | <<partialname> on | off>>")
|
@CommandParameters(description = "Block target's minecraft input. This is evil, and I never should have wrote it.", usage = "/<command> <all | purge | <<partialname> on | off>>")
|
||||||
public class Command_lockup extends TFM_Command
|
public class Command_lockup extends TFM_Command
|
||||||
{
|
{
|
||||||
@ -46,14 +46,11 @@ public class Command_lockup extends TFM_Command
|
|||||||
{
|
{
|
||||||
if (args[1].equalsIgnoreCase("on"))
|
if (args[1].equalsIgnoreCase("on"))
|
||||||
{
|
{
|
||||||
final Player player;
|
final Player player = getPlayer(args[0]);
|
||||||
try
|
|
||||||
|
if (player == null)
|
||||||
{
|
{
|
||||||
player = getPlayer(args[0]);
|
sender.sendMessage(TFM_Command.PLAYER_NOT_FOUND);
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ex.getMessage());
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -61,16 +58,13 @@ public class Command_lockup extends TFM_Command
|
|||||||
startLockup(player);
|
startLockup(player);
|
||||||
playerMsg("Locked up " + player.getName() + ".");
|
playerMsg("Locked up " + player.getName() + ".");
|
||||||
}
|
}
|
||||||
else if (TFM_Util.isStopCommand(args[1]))
|
else if ("off".equals(args[1]))
|
||||||
{
|
{
|
||||||
final Player player;
|
final Player player = getPlayer(args[0]);
|
||||||
try
|
|
||||||
|
if (player == null)
|
||||||
{
|
{
|
||||||
player = getPlayer(args[0]);
|
sender.sendMessage(TFM_Command.PLAYER_NOT_FOUND);
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ex.getMessage());
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10,11 +10,10 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Log;
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Admin;
|
import me.StevenLawson.TotalFreedomMod.TFM_Admin;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Log;
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
||||||
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
import 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;
|
||||||
@ -32,7 +31,7 @@ public class Command_logs extends TFM_Command
|
|||||||
|
|
||||||
if (args.length == 1)
|
if (args.length == 1)
|
||||||
{
|
{
|
||||||
mode = (TFM_Util.isStopCommand(args[0]) ? LogsRegistrationMode.DELETE : LogsRegistrationMode.UPDATE);
|
mode = ("off".equals(args[0]) ? LogsRegistrationMode.DELETE : LogsRegistrationMode.UPDATE);
|
||||||
}
|
}
|
||||||
|
|
||||||
updateLogsRegistration(sender, sender_p, mode);
|
updateLogsRegistration(sender, sender_p, mode);
|
||||||
@ -47,8 +46,8 @@ public class Command_logs extends TFM_Command
|
|||||||
|
|
||||||
public static void updateLogsRegistration(final CommandSender sender, final String targetName, final String targetIP, final LogsRegistrationMode 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 logsRegisterURL = TFM_ConfigEntry.LOGS_URL.getString();
|
||||||
final String logsRegisterPassword = TFM_ConfigEntry.LOGS_REGISTER_PASSWORD.getString();
|
final String logsRegisterPassword = TFM_ConfigEntry.LOGS_SECRET.getString();
|
||||||
|
|
||||||
if (logsRegisterURL == null || logsRegisterPassword == null || logsRegisterURL.isEmpty() || logsRegisterPassword.isEmpty())
|
if (logsRegisterURL == null || logsRegisterPassword == null || logsRegisterURL.isEmpty() || logsRegisterPassword.isEmpty())
|
||||||
{
|
{
|
||||||
|
@ -4,7 +4,13 @@ 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;
|
||||||
import org.bukkit.entity.*;
|
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.Slime;
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||||
@CommandParameters(description = "Purge all mobs in all worlds.", usage = "/<command>")
|
@CommandParameters(description = "Purge all mobs in all worlds.", usage = "/<command>")
|
||||||
|
@ -5,14 +5,14 @@ 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 nether.", usage = "/<command>")
|
@CommandParameters(description = "Goto the nether.", usage = "/<command>")
|
||||||
public class Command_nether extends TFM_Command
|
public class Command_nether 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.gotoWorld(sender, server.getWorlds().get(0).getName() + "_nether");
|
TFM_Util.gotoWorld(sender_p, server.getWorlds().get(0).getName() + "_nether");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,8 @@ import java.util.Arrays;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
import me.StevenLawson.TotalFreedomMod.TFM_CommandBlocker;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
@ -34,20 +35,14 @@ public class Command_nf extends TFM_Command
|
|||||||
if (matcher.find())
|
if (matcher.find())
|
||||||
{
|
{
|
||||||
String displayName = matcher.group(1);
|
String displayName = matcher.group(1);
|
||||||
try
|
|
||||||
{
|
player = getPlayerByDisplayName(displayName);
|
||||||
player = getPlayerByDisplayName(displayName);
|
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
if (player == null)
|
if (player == null)
|
||||||
{
|
{
|
||||||
try
|
player = getPlayerByDisplayNameAlt(displayName);
|
||||||
{
|
|
||||||
player = getPlayerByDisplayNameAlt(displayName);
|
if (player == null)
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
{
|
||||||
sender.sendMessage(ChatColor.GRAY + "Can't find player by nickname: " + displayName);
|
sender.sendMessage(ChatColor.GRAY + "Can't find player by nickname: " + displayName);
|
||||||
return true;
|
return true;
|
||||||
@ -74,18 +69,24 @@ public class Command_nf extends TFM_Command
|
|||||||
}
|
}
|
||||||
|
|
||||||
String newCommand = StringUtils.join(outputCommand, " ");
|
String newCommand = StringUtils.join(outputCommand, " ");
|
||||||
|
|
||||||
|
if (TFM_CommandBlocker.isCommandBlocked(newCommand, sender))
|
||||||
|
{
|
||||||
|
// CommandBlocker handles messages and broadcasts
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
sender.sendMessage("Sending command: \"" + newCommand + "\".");
|
sender.sendMessage("Sending command: \"" + newCommand + "\".");
|
||||||
server.dispatchCommand(sender, newCommand);
|
server.dispatchCommand(sender, newCommand);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Player getPlayerByDisplayName(String needle) throws PlayerNotFoundException
|
private static Player getPlayerByDisplayName(String needle)
|
||||||
{
|
{
|
||||||
needle = needle.toLowerCase().trim();
|
needle = needle.toLowerCase().trim();
|
||||||
|
|
||||||
Player[] onlinePlayers = Bukkit.getOnlinePlayers();
|
for (Player player : Bukkit.getOnlinePlayers())
|
||||||
for (Player player : onlinePlayers)
|
|
||||||
{
|
{
|
||||||
if (player.getDisplayName().toLowerCase().trim().contains(needle))
|
if (player.getDisplayName().toLowerCase().trim().contains(needle))
|
||||||
{
|
{
|
||||||
@ -93,18 +94,17 @@ public class Command_nf extends TFM_Command
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
throw new PlayerNotFoundException();
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Player getPlayerByDisplayNameAlt(String needle) throws PlayerNotFoundException
|
private static Player getPlayerByDisplayNameAlt(String needle)
|
||||||
{
|
{
|
||||||
needle = needle.toLowerCase().trim();
|
needle = needle.toLowerCase().trim();
|
||||||
|
|
||||||
Integer minEditDistance = null;
|
Integer minEditDistance = null;
|
||||||
Player minEditMatch = null;
|
Player minEditMatch = null;
|
||||||
|
|
||||||
Player[] onlinePlayers = Bukkit.getOnlinePlayers();
|
for (Player player : Bukkit.getOnlinePlayers())
|
||||||
for (Player player : onlinePlayers)
|
|
||||||
{
|
{
|
||||||
String haystack = player.getDisplayName().toLowerCase().trim();
|
String haystack = player.getDisplayName().toLowerCase().trim();
|
||||||
int editDistance = StringUtils.getLevenshteinDistance(needle, haystack.toLowerCase());
|
int editDistance = StringUtils.getLevenshteinDistance(needle, haystack.toLowerCase());
|
||||||
@ -115,11 +115,6 @@ public class Command_nf extends TFM_Command
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (minEditMatch == null)
|
|
||||||
{
|
|
||||||
throw new PlayerNotFoundException();
|
|
||||||
}
|
|
||||||
|
|
||||||
return minEditMatch;
|
return minEditMatch;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,50 @@
|
|||||||
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
|
import java.util.regex.Matcher;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.Bridge.TFM_EssentialsBridge;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
|
import 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.SUPER, source = SourceType.BOTH)
|
||||||
|
@CommandParameters(description = "Essentials Interface Command - Remove distracting things from nicknames of all players on server.", usage = "/<command>", aliases = "nc")
|
||||||
|
public class Command_nickclean extends TFM_Command
|
||||||
|
{
|
||||||
|
private static final ChatColor[] BLOCKED = new ChatColor[]
|
||||||
|
{
|
||||||
|
ChatColor.MAGIC,
|
||||||
|
ChatColor.STRIKETHROUGH,
|
||||||
|
ChatColor.ITALIC,
|
||||||
|
ChatColor.UNDERLINE,
|
||||||
|
ChatColor.BLACK
|
||||||
|
};
|
||||||
|
private static final Pattern REGEX = Pattern.compile("\\u00A7[" + StringUtils.join(BLOCKED, "") + "]");
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||||
|
{
|
||||||
|
TFM_Util.adminAction(sender.getName(), "Cleaning all nicknames.", false);
|
||||||
|
|
||||||
|
for (final Player player : server.getOnlinePlayers())
|
||||||
|
{
|
||||||
|
final String playerName = player.getName();
|
||||||
|
final String nickName = TFM_EssentialsBridge.getNickname(playerName);
|
||||||
|
if (nickName != null && !nickName.isEmpty() && !nickName.equalsIgnoreCase(playerName))
|
||||||
|
{
|
||||||
|
final Matcher matcher = REGEX.matcher(nickName);
|
||||||
|
if (matcher.find())
|
||||||
|
{
|
||||||
|
final String newNickName = matcher.replaceAll("");
|
||||||
|
playerMsg(ChatColor.RESET + playerName + ": \"" + nickName + ChatColor.RESET + "\" -> \"" + newNickName + ChatColor.RESET + "\".");
|
||||||
|
TFM_EssentialsBridge.setNickname(playerName, newNickName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
@ -2,6 +2,7 @@ package me.StevenLawson.TotalFreedomMod.Commands;
|
|||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.Bridge.TFM_EssentialsBridge;
|
import me.StevenLawson.TotalFreedomMod.Bridge.TFM_EssentialsBridge;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
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;
|
||||||
@ -19,9 +20,9 @@ public class Command_nicknyan extends TFM_Command
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TFM_Util.isStopCommand(args[0]))
|
if ("off".equals(args[0]))
|
||||||
{
|
{
|
||||||
TFM_EssentialsBridge.getInstance().setNickname(sender.getName(), null);
|
TFM_EssentialsBridge.setNickname(sender.getName(), null);
|
||||||
playerMsg("Nickname cleared.");
|
playerMsg("Nickname cleared.");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -39,8 +40,7 @@ public class Command_nicknyan extends TFM_Command
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
final Player[] onlinePlayers = server.getOnlinePlayers();
|
for (Player player : Bukkit.getOnlinePlayers())
|
||||||
for (final Player player : onlinePlayers)
|
|
||||||
{
|
{
|
||||||
if (player == sender_p)
|
if (player == sender_p)
|
||||||
{
|
{
|
||||||
@ -63,7 +63,7 @@ public class Command_nicknyan extends TFM_Command
|
|||||||
|
|
||||||
newNick.append(ChatColor.WHITE);
|
newNick.append(ChatColor.WHITE);
|
||||||
|
|
||||||
TFM_EssentialsBridge.getInstance().setNickname(sender.getName(), newNick.toString());
|
TFM_EssentialsBridge.setNickname(sender.getName(), newNick.toString());
|
||||||
|
|
||||||
playerMsg("Your nickname is now: " + newNick.toString());
|
playerMsg("Your nickname is now: " + newNick.toString());
|
||||||
|
|
||||||
|
@ -1,57 +0,0 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.Config.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, block_host_console = true)
|
|
||||||
@CommandParameters(description = "Attempt to detect \"invisible griefers\" and \"nukers\".", usage = "/<command> <on | off> [range] [blockrate]")
|
|
||||||
public class Command_nonuke 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 (args.length >= 2)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
TFM_ConfigEntry.NUKE_MONITOR_RANGE.setDouble(Math.max(1.0, Math.min(500.0, Double.parseDouble(args[1]))));
|
|
||||||
}
|
|
||||||
catch (NumberFormatException nfex)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (args.length >= 3)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
TFM_ConfigEntry.NUKE_MONITOR_COUNT_BREAK.setInteger(Math.max(1, Math.min(500, Integer.parseInt(args[2]))));
|
|
||||||
}
|
|
||||||
catch (NumberFormatException nfex)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (args[0].equalsIgnoreCase("on"))
|
|
||||||
{
|
|
||||||
TFM_ConfigEntry.NUKE_MONITOR.setBoolean(true);
|
|
||||||
playerMsg("Nuke monitor is enabled.");
|
|
||||||
playerMsg("Anti-freecam range is set to " + TFM_ConfigEntry.NUKE_MONITOR_RANGE.getDouble() + " blocks.");
|
|
||||||
playerMsg("Block throttle rate is set to " + TFM_ConfigEntry.NUKE_MONITOR_COUNT_BREAK.getInteger() + " blocks destroyed per 5 seconds.");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
TFM_ConfigEntry.NUKE_MONITOR.setBoolean(false);
|
|
||||||
playerMsg("Nuke monitor is disabled.");
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
@ -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 net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
import 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;
|
||||||
|
@ -1,10 +1,9 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
||||||
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_AdminList;
|
|
||||||
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;
|
||||||
@ -28,7 +27,7 @@ public class Command_onlinemode extends TFM_Command
|
|||||||
|
|
||||||
if (sender instanceof Player && !TFM_AdminList.isSeniorAdmin(sender, true))
|
if (sender instanceof Player && !TFM_AdminList.isSeniorAdmin(sender, true))
|
||||||
{
|
{
|
||||||
playerMsg(TotalFreedomMod.MSG_NO_PERMS);
|
playerMsg(TFM_Command.MSG_NO_PERMS);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_DepreciationAggregator;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.OfflinePlayer;
|
import org.bukkit.OfflinePlayer;
|
||||||
@ -40,7 +41,7 @@ public class Command_op extends TFM_Command
|
|||||||
{
|
{
|
||||||
if (TFM_AdminList.isSuperAdmin(sender) || senderIsConsole)
|
if (TFM_AdminList.isSuperAdmin(sender) || senderIsConsole)
|
||||||
{
|
{
|
||||||
player = server.getOfflinePlayer(args[0]);
|
player = TFM_DepreciationAggregator.getOfflinePlayer(server, args[0]);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
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.TotalFreedomMod;
|
|
||||||
import org.bukkit.GameMode;
|
import org.bukkit.GameMode;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
@ -35,7 +34,7 @@ public class Command_opall extends TFM_Command
|
|||||||
for (Player player : server.getOnlinePlayers())
|
for (Player player : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
player.setOp(true);
|
player.setOp(true);
|
||||||
player.sendMessage(TotalFreedomMod.YOU_ARE_OP);
|
player.sendMessage(TFM_Command.YOU_ARE_OP);
|
||||||
|
|
||||||
if (doSetGamemode)
|
if (doSetGamemode)
|
||||||
{
|
{
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
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.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;
|
||||||
@ -15,7 +14,7 @@ public class Command_opme extends TFM_Command
|
|||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "Opping " + sender.getName(), false);
|
TFM_Util.adminAction(sender.getName(), "Opping " + sender.getName(), false);
|
||||||
sender.setOp(true);
|
sender.setOp(true);
|
||||||
sender.sendMessage(TotalFreedomMod.YOU_ARE_OP);
|
sender.sendMessage(TFM_Command.YOU_ARE_OP);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import org.bukkit.OfflinePlayer;
|
import org.bukkit.OfflinePlayer;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
@ -7,49 +8,58 @@ import org.bukkit.command.CommandSender;
|
|||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.OP, source = SourceType.BOTH)
|
@CommandPermissions(level = AdminLevel.OP, source = SourceType.BOTH)
|
||||||
@CommandParameters(description = "Manage operators", usage = "/<command> <count | list>")
|
@CommandParameters(description = "Manager operators", usage = "/<command> <count | purge>")
|
||||||
public class Command_ops extends TFM_Command
|
public class Command_ops 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 || args.length > 1)
|
if (args.length != 1)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (args[0].equalsIgnoreCase("list"))
|
if (args[0].equals("count"))
|
||||||
{
|
{
|
||||||
TFM_Util.playerMsg(sender, "Operators: " + TFM_Util.playerListToNames(server.getOperators()));
|
int totalOps = server.getOperators().size();
|
||||||
|
int onlineOps = 0;
|
||||||
|
|
||||||
|
for (Player player : server.getOnlinePlayers())
|
||||||
|
{
|
||||||
|
if (player.isOp())
|
||||||
|
{
|
||||||
|
onlineOps++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
playerMsg("Online OPs: " + onlineOps);
|
||||||
|
playerMsg("Offline OPs: " + (totalOps - onlineOps));
|
||||||
|
playerMsg("Total OPs: " + totalOps);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (args[0].equalsIgnoreCase("count"))
|
if (args[0].equals("purge"))
|
||||||
{
|
{
|
||||||
int onlineOPs = 0;
|
if (!TFM_AdminList.isSuperAdmin(sender))
|
||||||
int offlineOPs = 0;
|
{
|
||||||
int totalOPs = 0;
|
playerMsg(TFM_Command.MSG_NO_PERMS);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
TFM_Util.adminAction(sender.getName(), "Purging all operators", true);
|
||||||
|
|
||||||
for (OfflinePlayer player : server.getOperators())
|
for (OfflinePlayer player : server.getOperators())
|
||||||
{
|
{
|
||||||
|
player.setOp(false);
|
||||||
if (player.isOnline())
|
if (player.isOnline())
|
||||||
{
|
{
|
||||||
onlineOPs++;
|
playerMsg(player.getPlayer(), TFM_Command.YOU_ARE_NOT_OP);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
offlineOPs++;
|
|
||||||
}
|
|
||||||
totalOPs++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
playerMsg("Online OPs: " + onlineOPs);
|
|
||||||
playerMsg("Offline OPs: " + offlineOPs);
|
|
||||||
playerMsg("Total OPs: " + totalOPs);
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,7 +10,8 @@ import org.bukkit.entity.Player;
|
|||||||
import org.bukkit.util.Vector;
|
import org.bukkit.util.Vector;
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||||
@CommandParameters(description = "POW!!! Right in the kisser! One of these days Alice, straight to the Moon!", usage = "/<command> <target> [power]")
|
@CommandParameters(description = "POW!!! Right in the kisser! One of these days Alice, straight to the Moon!",
|
||||||
|
usage = "/<command> <target> [<<power> | stop>]")
|
||||||
public class Command_orbit extends TFM_Command
|
public class Command_orbit extends TFM_Command
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
@ -21,14 +22,11 @@ public class Command_orbit extends TFM_Command
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Player player;
|
Player player = getPlayer(args[0]);
|
||||||
try
|
|
||||||
|
if (player == null)
|
||||||
{
|
{
|
||||||
player = getPlayer(args[0]);
|
playerMsg(TFM_Command.PLAYER_NOT_FOUND, ChatColor.RED);
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
playerMsg(ex.getMessage(), ChatColor.RED);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -38,7 +36,7 @@ public class Command_orbit extends TFM_Command
|
|||||||
|
|
||||||
if (args.length >= 2)
|
if (args.length >= 2)
|
||||||
{
|
{
|
||||||
if (TFM_Util.isStopCommand(args[1]))
|
if (args[1].equals("stop"))
|
||||||
{
|
{
|
||||||
playerMsg("Stopped orbiting " + player.getName());
|
playerMsg("Stopped orbiting " + player.getName());
|
||||||
playerdata.stopOrbiting();
|
playerdata.stopOrbiting();
|
||||||
@ -60,7 +58,7 @@ public class Command_orbit extends TFM_Command
|
|||||||
playerdata.startOrbiting(strength);
|
playerdata.startOrbiting(strength);
|
||||||
|
|
||||||
player.setVelocity(new Vector(0, strength, 0));
|
player.setVelocity(new Vector(0, strength, 0));
|
||||||
TFM_Util.adminAction(sender.getName(), "Orbiting " + player.getName() + ".", false);
|
TFM_Util.adminAction(sender.getName(), "Orbiting " + player.getName(), false);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
import me.StevenLawson.TotalFreedomMod.TFM_PermbanList;
|
||||||
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
import 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;
|
||||||
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, blockHostConsole = true)
|
||||||
@CommandParameters(description = "Manage permanently banned players and IPs.", usage = "/<command> <list | reload>")
|
@CommandParameters(description = "Manage permanently banned players and IPs.", usage = "/<command> <list | reload>")
|
||||||
public class Command_permban extends TFM_Command
|
public class Command_permban extends TFM_Command
|
||||||
{
|
{
|
||||||
@ -27,11 +27,11 @@ public class Command_permban extends TFM_Command
|
|||||||
{
|
{
|
||||||
if (!senderIsConsole)
|
if (!senderIsConsole)
|
||||||
{
|
{
|
||||||
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
|
sender.sendMessage(TFM_Command.MSG_NO_PERMS);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
playerMsg("Reloading permban list...", ChatColor.RED);
|
playerMsg("Reloading permban list...", ChatColor.RED);
|
||||||
TotalFreedomMod.loadPermbanConfig();
|
TFM_PermbanList.load();
|
||||||
dumplist(sender);
|
dumplist(sender);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -44,24 +44,24 @@ public class Command_permban extends TFM_Command
|
|||||||
|
|
||||||
private void dumplist(CommandSender sender)
|
private void dumplist(CommandSender sender)
|
||||||
{
|
{
|
||||||
if (TotalFreedomMod.permbannedPlayers.isEmpty())
|
if (TFM_PermbanList.getPermbannedPlayers().isEmpty())
|
||||||
{
|
{
|
||||||
playerMsg(sender, "No permanently banned player names.");
|
playerMsg("No permanently banned player names.");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
playerMsg(sender, TotalFreedomMod.permbannedPlayers.size() + " permanently banned players:");
|
playerMsg(TFM_PermbanList.getPermbannedPlayers().size() + " permanently banned players:");
|
||||||
playerMsg(sender, StringUtils.join(TotalFreedomMod.permbannedPlayers, ", "));
|
playerMsg(StringUtils.join(TFM_PermbanList.getPermbannedPlayers(), ", "));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TotalFreedomMod.permbannedIps.isEmpty())
|
if (TFM_PermbanList.getPermbannedIps().isEmpty())
|
||||||
{
|
{
|
||||||
playerMsg(sender, "No permanently banned IPs.");
|
playerMsg("No permanently banned IPs.");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
playerMsg(sender, TotalFreedomMod.permbannedIps.size() + " permanently banned IPs:");
|
playerMsg(TFM_PermbanList.getPermbannedIps().size() + " permanently banned IPs:");
|
||||||
playerMsg(sender, StringUtils.join(TotalFreedomMod.permbannedIps, ", "));
|
playerMsg(StringUtils.join(TFM_PermbanList.getPermbannedIps(), ", "));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,28 +0,0 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.Config.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,7 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
import 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;
|
||||||
@ -8,122 +9,142 @@ import org.bukkit.plugin.Plugin;
|
|||||||
import org.bukkit.plugin.PluginManager;
|
import org.bukkit.plugin.PluginManager;
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.BOTH)
|
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.BOTH)
|
||||||
@CommandParameters(description = "Enable / disable plugins.", usage = "/<command> < <enable | disable> <pluginname> | list >", aliases = "plc")
|
@CommandParameters(description = "Manage plugins", usage = "/<command> <<enable | disable | reload> <pluginname>> | list>", aliases = "plc")
|
||||||
public class Command_plugincontrol extends TFM_Command
|
public class Command_plugincontrol extends TFM_Command
|
||||||
{
|
{
|
||||||
private enum CommandMode
|
|
||||||
{
|
|
||||||
ENABLE, DISABLE, LIST, RELOAD
|
|
||||||
}
|
|
||||||
|
|
||||||
@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)
|
||||||
{
|
{
|
||||||
CommandMode commandMode = null;
|
if (args.length == 0 || args.length > 2)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
final PluginManager pm = server.getPluginManager();
|
||||||
|
|
||||||
if (args.length == 1)
|
if (args.length == 1)
|
||||||
{
|
{
|
||||||
if (args[0].equalsIgnoreCase("list"))
|
if (args[0].equalsIgnoreCase("list"))
|
||||||
{
|
{
|
||||||
commandMode = CommandMode.LIST;
|
for (Plugin serverPlugin : pm.getPlugins())
|
||||||
}
|
{
|
||||||
else if (args[0].equalsIgnoreCase("reload"))
|
final String version = serverPlugin.getDescription().getVersion();
|
||||||
{
|
playerMsg(ChatColor.GRAY + "- " + (serverPlugin.isEnabled() ? ChatColor.GREEN : ChatColor.RED) + serverPlugin.getName()
|
||||||
commandMode = CommandMode.RELOAD;
|
+ ChatColor.GOLD + (version != null && !version.isEmpty() ? " v" + version : "") + " by "
|
||||||
}
|
+ StringUtils.join(serverPlugin.getDescription().getAuthors(), ", "));
|
||||||
}
|
}
|
||||||
else if (args.length >= 2)
|
|
||||||
{
|
return true;
|
||||||
if (args[0].equalsIgnoreCase("enable"))
|
}
|
||||||
{
|
|
||||||
commandMode = CommandMode.ENABLE;
|
|
||||||
}
|
|
||||||
else if (args[0].equalsIgnoreCase("disable"))
|
|
||||||
{
|
|
||||||
commandMode = CommandMode.DISABLE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (commandMode == null)
|
|
||||||
{
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
PluginManager pluginManager = plugin.getServer().getPluginManager();
|
if ("enable".equals(args[0]))
|
||||||
|
|
||||||
if (commandMode == CommandMode.LIST)
|
|
||||||
{
|
{
|
||||||
playerMsg("Plugins: " + StringUtils.join(pluginManager.getPlugins(), ", "));
|
final Plugin target = getPlugin(args[1]);
|
||||||
}
|
if (target == null)
|
||||||
else if (commandMode == CommandMode.RELOAD)
|
|
||||||
{
|
|
||||||
playerMsg("Disabling all plugins.");
|
|
||||||
for (Plugin targetPlugin : pluginManager.getPlugins())
|
|
||||||
{
|
{
|
||||||
if (!targetPlugin.getName().toLowerCase().startsWith("totalfreedommod"))
|
playerMsg("Plugin not found!");
|
||||||
{
|
|
||||||
pluginManager.disablePlugin(targetPlugin);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
playerMsg("Enabling all plugins.");
|
|
||||||
for (Plugin targetPlugin : pluginManager.getPlugins())
|
|
||||||
{
|
|
||||||
if (!targetPlugin.getName().toLowerCase().startsWith("totalfreedommod"))
|
|
||||||
{
|
|
||||||
pluginManager.enablePlugin(targetPlugin);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
final String searchPluginName = args[1].toLowerCase().trim();
|
|
||||||
|
|
||||||
Plugin targetPlugin = null;
|
|
||||||
|
|
||||||
for (Plugin serverPlugin : pluginManager.getPlugins())
|
|
||||||
{
|
|
||||||
if (searchPluginName.equalsIgnoreCase(serverPlugin.getName().toLowerCase().trim()))
|
|
||||||
{
|
|
||||||
targetPlugin = serverPlugin;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (targetPlugin == null)
|
|
||||||
{
|
|
||||||
playerMsg("Plugin \"" + searchPluginName + "\" is not installed.");
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
|
if (target.isEnabled())
|
||||||
{
|
{
|
||||||
if (commandMode == CommandMode.ENABLE)
|
playerMsg("Plugin is already enabled.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
pm.enablePlugin(target);
|
||||||
|
|
||||||
|
if (!pm.isPluginEnabled(target))
|
||||||
|
{
|
||||||
|
playerMsg("Error enabling plugin " + target.getName());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
playerMsg(target.getName() + " is now enabled.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ("disable".equals(args[0]))
|
||||||
|
{
|
||||||
|
final Plugin target = getPlugin(args[1]);
|
||||||
|
if (target == null)
|
||||||
|
{
|
||||||
|
playerMsg("Plugin not found!");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!target.isEnabled())
|
||||||
|
{
|
||||||
|
playerMsg("Plugin is already disabled.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (target.getName().equals(plugin.getName()))
|
||||||
|
{
|
||||||
|
playerMsg("You cannot disable " + plugin.getName());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
pm.disablePlugin(target);
|
||||||
|
|
||||||
|
if (pm.isPluginEnabled(target))
|
||||||
|
{
|
||||||
|
playerMsg("Error disabling plugin " + target.getName());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
playerMsg(target.getName() + " is now disabled.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ("reload".equals(args[0]))
|
||||||
|
{
|
||||||
|
final Plugin target = getPlugin(args[1]);
|
||||||
|
if (target == null)
|
||||||
|
{
|
||||||
|
playerMsg("Plugin not found!");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (target.getName().equals(plugin.getName()))
|
||||||
|
{
|
||||||
|
playerMsg("Use /tfm reload to reload instead.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
pm.disablePlugin(target);
|
||||||
|
pm.enablePlugin(target);
|
||||||
|
playerMsg(target.getName() + " reloaded.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Plugin getPlugin(String name)
|
||||||
|
{
|
||||||
|
for (Plugin serverPlugin : server.getPluginManager().getPlugins())
|
||||||
|
{
|
||||||
|
if (serverPlugin.getName().equalsIgnoreCase(name))
|
||||||
|
{
|
||||||
|
return serverPlugin;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (name.length() >= 3)
|
||||||
|
{
|
||||||
|
for (Plugin serverPlugin : server.getPluginManager().getPlugins())
|
||||||
|
{
|
||||||
|
if (serverPlugin.getName().toLowerCase().contains(name.toLowerCase()))
|
||||||
{
|
{
|
||||||
pluginManager.enablePlugin(targetPlugin);
|
return serverPlugin;
|
||||||
if (targetPlugin.isEnabled())
|
|
||||||
{
|
|
||||||
playerMsg("Plugin \"" + targetPlugin.getName() + "\" enabled.");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
playerMsg("Error enabling plugin \"" + targetPlugin.getName() + "\".");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
pluginManager.disablePlugin(targetPlugin);
|
|
||||||
if (!targetPlugin.isEnabled())
|
|
||||||
{
|
|
||||||
playerMsg("Plugin \"" + targetPlugin.getName() + "\" disabled.");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
playerMsg("Error disabling plugin \"" + targetPlugin.getName() + "\".");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,8 +4,7 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
import org.apache.commons.lang3.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;
|
||||||
@ -40,7 +39,7 @@ public class Command_potion extends TFM_Command
|
|||||||
{
|
{
|
||||||
if (!(TFM_AdminList.isSuperAdmin(sender) || senderIsConsole))
|
if (!(TFM_AdminList.isSuperAdmin(sender) || senderIsConsole))
|
||||||
{
|
{
|
||||||
playerMsg(TotalFreedomMod.MSG_NO_PERMS);
|
playerMsg(TFM_Command.MSG_NO_PERMS);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
TFM_Util.adminAction(sender.getName(), "Cleared all potion effects from all players", true);
|
TFM_Util.adminAction(sender.getName(), "Cleared all potion effects from all players", true);
|
||||||
@ -58,13 +57,11 @@ public class Command_potion extends TFM_Command
|
|||||||
|
|
||||||
if (args.length == 2)
|
if (args.length == 2)
|
||||||
{
|
{
|
||||||
try
|
target = getPlayer(args[1]);
|
||||||
|
|
||||||
|
if (target == null)
|
||||||
{
|
{
|
||||||
target = getPlayer(args[1]);
|
playerMsg(TFM_Command.PLAYER_NOT_FOUND, ChatColor.RED);
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
playerMsg(ex.getMessage(), ChatColor.RED);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -103,13 +100,12 @@ public class Command_potion extends TFM_Command
|
|||||||
|
|
||||||
if (args.length == 5)
|
if (args.length == 5)
|
||||||
{
|
{
|
||||||
try
|
|
||||||
|
target = getPlayer(args[4]);
|
||||||
|
|
||||||
|
if (target == null)
|
||||||
{
|
{
|
||||||
target = getPlayer(args[4]);
|
playerMsg(TFM_Command.PLAYER_NOT_FOUND, ChatColor.RED);
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
playerMsg(ex.getMessage(), ChatColor.RED);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -139,6 +135,7 @@ public class Command_potion extends TFM_Command
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
duration = Integer.parseInt(args[2]);
|
duration = Integer.parseInt(args[2]);
|
||||||
|
duration = Math.min(duration, 100000);
|
||||||
}
|
}
|
||||||
catch (NumberFormatException ex)
|
catch (NumberFormatException ex)
|
||||||
{
|
{
|
||||||
@ -150,6 +147,7 @@ public class Command_potion extends TFM_Command
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
amplifier = Integer.parseInt(args[3]);
|
amplifier = Integer.parseInt(args[3]);
|
||||||
|
amplifier = Math.min(amplifier, 100000);
|
||||||
}
|
}
|
||||||
catch (NumberFormatException ex)
|
catch (NumberFormatException ex)
|
||||||
{
|
{
|
||||||
|
@ -1,35 +0,0 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.Config.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, block_host_console = true)
|
|
||||||
@CommandParameters(
|
|
||||||
description = "Enable/disable the command prelogger. When this is on, logs will be filled with many duplicate messages.",
|
|
||||||
usage = "/<command> <on | off>")
|
|
||||||
public class Command_prelog 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 (args[0].equalsIgnoreCase("on"))
|
|
||||||
{
|
|
||||||
TFM_ConfigEntry.PREPROCESS_LOG_ENABLED.setBoolean(true);
|
|
||||||
playerMsg("Command preprocess logging is now enabled. This will be spammy in the log.");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
TFM_ConfigEntry.PREPROCESS_LOG_ENABLED.setBoolean(false);
|
|
||||||
playerMsg("Command preprocess logging is now disabled.");
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
@ -23,17 +23,18 @@ public class Command_premium extends TFM_Command
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
String name;
|
final Player player = getPlayer(args[0]);
|
||||||
try
|
final String name;
|
||||||
|
|
||||||
|
if (player != null)
|
||||||
{
|
{
|
||||||
name = getPlayer(args[0]).getName();
|
name = player.getName();
|
||||||
}
|
}
|
||||||
catch (PlayerNotFoundException ex)
|
else
|
||||||
{
|
{
|
||||||
name = args[0];
|
name = args[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
final String playername = name;
|
|
||||||
new BukkitRunnable()
|
new BukkitRunnable()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
@ -41,7 +42,7 @@ public class Command_premium extends TFM_Command
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
final URL getUrl = new URL("https://minecraft.net/haspaid.jsp?user=" + playername);
|
final URL getUrl = new URL("https://minecraft.net/haspaid.jsp?user=" + name);
|
||||||
final URLConnection urlConnection = getUrl.openConnection();
|
final URLConnection urlConnection = getUrl.openConnection();
|
||||||
// Read the response
|
// Read the response
|
||||||
final BufferedReader in = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
|
final BufferedReader in = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
|
||||||
@ -53,7 +54,7 @@ public class Command_premium extends TFM_Command
|
|||||||
@Override
|
@Override
|
||||||
public void run()
|
public void run()
|
||||||
{
|
{
|
||||||
playerMsg("Player " + playername + " is premium: " + message);
|
playerMsg("Player " + name + " is premium: " + message);
|
||||||
}
|
}
|
||||||
}.runTask(plugin);
|
}.runTask(plugin);
|
||||||
|
|
||||||
|
@ -2,8 +2,7 @@ package me.StevenLawson.TotalFreedomMod.Commands;
|
|||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_ProtectedArea;
|
import me.StevenLawson.TotalFreedomMod.TFM_ProtectedArea;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import org.apache.commons.lang3.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;
|
||||||
@ -14,10 +13,11 @@ import org.bukkit.entity.Player;
|
|||||||
usage = "/<command> <list | clear | remove <label> | add <label> <radius>>")
|
usage = "/<command> <list | clear | remove <label> | add <label> <radius>>")
|
||||||
public class Command_protectarea extends TFM_Command
|
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 (!TFM_ConfigEntry.PROTECTED_AREAS_ENABLED.getBoolean())
|
if (!TFM_ConfigEntry.PROTECTAREA_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;
|
||||||
@ -44,7 +44,7 @@ public class Command_protectarea extends TFM_Command
|
|||||||
}
|
}
|
||||||
else if (args.length == 2)
|
else if (args.length == 2)
|
||||||
{
|
{
|
||||||
if (TFM_Util.isRemoveCommand(args[0]))
|
if ("remove".equals(args[0]))
|
||||||
{
|
{
|
||||||
TFM_ProtectedArea.removeProtectedArea(args[1]);
|
TFM_ProtectedArea.removeProtectedArea(args[1]);
|
||||||
|
|
||||||
|
@ -1,9 +1,7 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.Bridge.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 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,9 +19,6 @@ public class Command_purgeall extends TFM_Command
|
|||||||
// Purge entities
|
// Purge entities
|
||||||
TFM_Util.TFM_EntityWiper.wipeEntities(true, true);
|
TFM_Util.TFM_EntityWiper.wipeEntities(true, true);
|
||||||
|
|
||||||
// Undisguise all players
|
|
||||||
TFM_DisguiseCraftBridge.undisguiseAllPlayers();
|
|
||||||
|
|
||||||
for (Player player : server.getOnlinePlayers())
|
for (Player player : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
|
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
|
||||||
@ -73,17 +68,8 @@ public class Command_purgeall extends TFM_Command
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Clear auto-unmute and auto-unfreeze tasks
|
// Unfreeze all players
|
||||||
if (TotalFreedomMod.mutePurgeTask != null)
|
Command_fr.setAllFrozen(false);
|
||||||
{
|
|
||||||
TotalFreedomMod.mutePurgeTask.cancel();
|
|
||||||
}
|
|
||||||
|
|
||||||
TotalFreedomMod.allPlayersFrozen = false;
|
|
||||||
if (TotalFreedomMod.freezePurgeTask != null)
|
|
||||||
{
|
|
||||||
TotalFreedomMod.freezePurgeTask.cancel();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Remove all mobs
|
// Remove all mobs
|
||||||
Command_mp.purgeMobs();
|
Command_mp.purgeMobs();
|
||||||
|
@ -1,7 +1,9 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
import 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;
|
||||||
@ -24,26 +26,30 @@ public class Command_qdeop extends TFM_Command
|
|||||||
silent = args[1].equalsIgnoreCase("-s");
|
silent = args[1].equalsIgnoreCase("-s");
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean matched_player = false;
|
final String targetName = args[0].toLowerCase();
|
||||||
|
|
||||||
String targetName = args[0].toLowerCase();
|
final List<String> matchedPlayerNames = new ArrayList<String>();
|
||||||
|
for (final Player player : server.getOnlinePlayers())
|
||||||
for (Player player : server.getOnlinePlayers())
|
|
||||||
{
|
{
|
||||||
if (player.getName().toLowerCase().indexOf(targetName) != -1 || player.getDisplayName().toLowerCase().indexOf(targetName) != -1)
|
if (player.getName().toLowerCase().contains(targetName) || player.getDisplayName().toLowerCase().contains(targetName))
|
||||||
{
|
{
|
||||||
matched_player = true;
|
if (player.isOp())
|
||||||
|
|
||||||
if (!silent)
|
|
||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "De-opping " + player.getName(), false);
|
matchedPlayerNames.add(player.getName());
|
||||||
|
player.setOp(false);
|
||||||
|
player.sendMessage(TFM_Command.YOU_ARE_NOT_OP);
|
||||||
}
|
}
|
||||||
player.setOp(false);
|
|
||||||
player.sendMessage(TotalFreedomMod.YOU_ARE_NOT_OP);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!matched_player)
|
if (!matchedPlayerNames.isEmpty())
|
||||||
|
{
|
||||||
|
if (!silent)
|
||||||
|
{
|
||||||
|
TFM_Util.adminAction(sender.getName(), "De-opping " + StringUtils.join(matchedPlayerNames, ", "), false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
playerMsg("No targets matched.");
|
playerMsg("No targets matched.");
|
||||||
}
|
}
|
||||||
|
@ -1,12 +1,14 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
import 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;
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
@CommandPermissions(level = AdminLevel.OP, source = SourceType.BOTH)
|
||||||
@CommandParameters(description = "Quick Op - op someone based on a partial name.", usage = "/<command> <partialname>")
|
@CommandParameters(description = "Quick Op - op someone based on a partial name.", usage = "/<command> <partialname>")
|
||||||
public class Command_qop extends TFM_Command
|
public class Command_qop extends TFM_Command
|
||||||
{
|
{
|
||||||
@ -24,26 +26,30 @@ public class Command_qop extends TFM_Command
|
|||||||
silent = args[1].equalsIgnoreCase("-s");
|
silent = args[1].equalsIgnoreCase("-s");
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean matched_player = false;
|
final String targetName = args[0].toLowerCase();
|
||||||
|
|
||||||
String targetName = args[0].toLowerCase();
|
final List<String> matchedPlayerNames = new ArrayList<String>();
|
||||||
|
for (final Player player : server.getOnlinePlayers())
|
||||||
for (Player player : server.getOnlinePlayers())
|
|
||||||
{
|
{
|
||||||
if (player.getName().toLowerCase().indexOf(targetName) != -1 || player.getDisplayName().toLowerCase().indexOf(targetName) != -1)
|
if (player.getName().toLowerCase().contains(targetName) || player.getDisplayName().toLowerCase().contains(targetName))
|
||||||
{
|
{
|
||||||
matched_player = true;
|
if (!player.isOp())
|
||||||
|
|
||||||
if (!silent)
|
|
||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "Opping " + player.getName(), false);
|
matchedPlayerNames.add(player.getName());
|
||||||
|
player.setOp(true);
|
||||||
|
player.sendMessage(TFM_Command.YOU_ARE_OP);
|
||||||
}
|
}
|
||||||
player.setOp(true);
|
|
||||||
player.sendMessage(TotalFreedomMod.YOU_ARE_OP);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!matched_player)
|
if (!matchedPlayerNames.isEmpty())
|
||||||
|
{
|
||||||
|
if (!silent)
|
||||||
|
{
|
||||||
|
TFM_Util.adminAction(sender.getName(), "Opping " + StringUtils.join(matchedPlayerNames, ", "), false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
playerMsg("No targets matched.");
|
playerMsg("No targets matched.");
|
||||||
}
|
}
|
||||||
|
@ -33,14 +33,11 @@ public class Command_rank extends TFM_Command
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
Player player;
|
final Player player = getPlayer(args[0]);
|
||||||
try
|
|
||||||
|
if (player == null)
|
||||||
{
|
{
|
||||||
player = getPlayer(args[0]);
|
sender.sendMessage(TFM_Command.PLAYER_NOT_FOUND);
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ex.getMessage());
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
import 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;
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.ONLY_CONSOLE, block_host_console = true)
|
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.ONLY_CONSOLE, blockHostConsole = true)
|
||||||
@CommandParameters(description = "Broadcasts the given message. Supports colors.", usage = "/<command> <message>")
|
@CommandParameters(description = "Broadcasts the given message. Supports colors.", usage = "/<command> <message>")
|
||||||
public class Command_rawsay extends TFM_Command
|
public class Command_rawsay extends TFM_Command
|
||||||
{
|
{
|
||||||
|
@ -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.TFM_EntityWiper.wipeEntities(true, true)) + " enties removed.");
|
playerMsg((TFM_Util.TFM_EntityWiper.wipeEntities(true, true)) + " entities removed.");
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,54 @@
|
|||||||
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
|
import org.apache.commons.lang3.ArrayUtils;
|
||||||
|
import 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, blockHostConsole = true)
|
||||||
|
@CommandParameters(description = "Report a player for admins to see.", usage = "/<command> <player> <reason>")
|
||||||
|
public class Command_report 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
Player player = getPlayer(args[0]);
|
||||||
|
|
||||||
|
if (player == null)
|
||||||
|
{
|
||||||
|
playerMsg(PLAYER_NOT_FOUND);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (sender instanceof Player)
|
||||||
|
{
|
||||||
|
if (player.equals(sender_p))
|
||||||
|
{
|
||||||
|
playerMsg(ChatColor.RED + "Please, don't try to report yourself.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (TFM_AdminList.isSuperAdmin(player))
|
||||||
|
{
|
||||||
|
playerMsg(ChatColor.RED + "You can not report an admin.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
String report = StringUtils.join(ArrayUtils.subarray(args, 1, args.length), " ");
|
||||||
|
TFM_Util.reportAction(sender_p, player, report);
|
||||||
|
|
||||||
|
playerMsg(ChatColor.GREEN + "Thank you, your report has been successfully logged.");
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
@ -1,13 +1,19 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_DepreciationAggregator;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.World.TFM_AdminWorld;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
|
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.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH, block_host_console = false)
|
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH, blockHostConsole = false)
|
||||||
@CommandParameters(description = "Remove all blocks of a certain type in the radius of certain players.", usage = "/<command> <block> [radius (default=50)] [player]")
|
@CommandParameters(description = "Remove all blocks of a certain type in the radius of certain players.", usage = "/<command> <block> [radius (default=50)] [player]")
|
||||||
public class Command_ro extends TFM_Command
|
public class Command_ro extends TFM_Command
|
||||||
{
|
{
|
||||||
@ -19,22 +25,29 @@ public class Command_ro extends TFM_Command
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Material from_material = Material.matchMaterial(args[0]);
|
final List<Material> materials = new ArrayList<Material>();
|
||||||
if (from_material == null)
|
|
||||||
|
for (String materialName : StringUtils.split(args[0], ","))
|
||||||
{
|
{
|
||||||
try
|
Material fromMaterial = Material.matchMaterial(materialName);
|
||||||
{
|
if (fromMaterial == null)
|
||||||
from_material = Material.getMaterial(Integer.parseInt(args[0]));
|
|
||||||
}
|
|
||||||
catch (NumberFormatException ex)
|
|
||||||
{
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
fromMaterial = TFM_DepreciationAggregator.getMaterial(Integer.parseInt(materialName));
|
||||||
|
}
|
||||||
|
catch (NumberFormatException ex)
|
||||||
|
{
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (from_material == null)
|
if (fromMaterial == null)
|
||||||
{
|
{
|
||||||
playerMsg("Invalid block: " + args[0], ChatColor.RED);
|
playerMsg("Invalid block: " + materialName, ChatColor.RED);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
materials.add(fromMaterial);
|
||||||
}
|
}
|
||||||
|
|
||||||
int radius = 20;
|
int radius = 20;
|
||||||
@ -51,37 +64,63 @@ public class Command_ro extends TFM_Command
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Player targetPlayer = null;
|
final Player targetPlayer;
|
||||||
if (args.length == 3)
|
if (args.length == 3)
|
||||||
{
|
{
|
||||||
try
|
targetPlayer = getPlayer(args[2]);
|
||||||
|
if (targetPlayer == null)
|
||||||
{
|
{
|
||||||
targetPlayer = getPlayer(args[2]);
|
playerMsg(TFM_Command.PLAYER_NOT_FOUND);
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
playerMsg(ex.getMessage(), ChatColor.RED);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int affected = 0;
|
|
||||||
|
|
||||||
if (targetPlayer == null)
|
|
||||||
{
|
|
||||||
TFM_Util.adminAction(sender.getName(), "Removing all " + from_material.name() + " within " + radius + " blocks of all players. Brace for lag...", senderIsConsole);
|
|
||||||
for (Player player : server.getOnlinePlayers())
|
|
||||||
{
|
|
||||||
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 " + targetPlayer.getName() + ".", senderIsConsole);
|
targetPlayer = null;
|
||||||
affected += TFM_Util.replaceBlocks(targetPlayer.getLocation(), from_material, Material.AIR, radius);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
TFM_Util.adminAction(sender.getName(), "Remove complete. " + affected + " blocks removed.", senderIsConsole);
|
final String names = StringUtils.join(materials, ", ");
|
||||||
|
|
||||||
|
World adminWorld = null;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
adminWorld = TFM_AdminWorld.getInstance().getWorld();
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
int affected = 0;
|
||||||
|
if (targetPlayer == null)
|
||||||
|
{
|
||||||
|
TFM_Util.adminAction(sender.getName(), "Removing all " + names + " within " + radius + " blocks of all players... Brace for lag!", false);
|
||||||
|
|
||||||
|
for (final Player player : server.getOnlinePlayers())
|
||||||
|
{
|
||||||
|
if (player.getWorld() == adminWorld)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (final Material material : materials)
|
||||||
|
{
|
||||||
|
affected += TFM_Util.replaceBlocks(player.getLocation(), material, Material.AIR, radius);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (targetPlayer.getWorld() != adminWorld)
|
||||||
|
{
|
||||||
|
for (Material material : materials)
|
||||||
|
{
|
||||||
|
TFM_Util.adminAction(sender.getName(), "Removing all " + names + " within " + radius + " blocks of " + targetPlayer.getName(), false);
|
||||||
|
affected += TFM_Util.replaceBlocks(targetPlayer.getLocation(), material, Material.AIR, radius);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
TFM_Util.adminAction(sender.getName(), "Remove complete! " + affected + " blocks removed.", false);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -1,31 +1,35 @@
|
|||||||
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_PlayerList;
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
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.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, blockHostConsole = true)
|
||||||
@CommandParameters(description = "Issues a rollback on a player", usage = "/<command> <[partialname] | undo [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 == 0 || args.length > 2)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if (args.length == 1)
|
if (args.length == 1)
|
||||||
{
|
{
|
||||||
if ("purgeall".equalsIgnoreCase(args[0]))
|
if ("purgeall".equals(args[0]))
|
||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "Purging all rollback history", false);
|
TFM_Util.adminAction(sender.getName(), "Purging all rollback history", false);
|
||||||
playerMsg("Purged all rollback history for " + TFM_RollbackManager.purgeEntries() + " players.");
|
playerMsg("Purged all rollback history for " + TFM_RollbackManager.purgeEntries() + " players.");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
String playerName = getPlayerName(args[0]);
|
final String playerName = TFM_RollbackManager.findPlayer(args[0]);
|
||||||
|
|
||||||
if (!TFM_RollbackManager.canRollback(playerName))
|
if (playerName == null)
|
||||||
{
|
{
|
||||||
playerMsg("That player has no entries stored.");
|
playerMsg("That player has no entries stored.");
|
||||||
return true;
|
return true;
|
||||||
@ -38,28 +42,32 @@ public class Command_rollback extends TFM_Command
|
|||||||
|
|
||||||
TFM_Util.adminAction(sender.getName(), "Rolling back player: " + playerName, false);
|
TFM_Util.adminAction(sender.getName(), "Rolling back player: " + playerName, false);
|
||||||
playerMsg("Rolled back " + TFM_RollbackManager.rollback(playerName) + " edits for " + playerName + ".");
|
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.");
|
playerMsg("If this rollback was a mistake, use /rollback undo " + playerName + " within 40 seconds to reverse the rollback.");
|
||||||
}
|
}
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
else if (args.length == 2)
|
|
||||||
|
if (args.length == 2)
|
||||||
{
|
{
|
||||||
if ("purge".equalsIgnoreCase(args[0]))
|
if ("purge".equalsIgnoreCase(args[0]))
|
||||||
{
|
{
|
||||||
String playerName = getPlayerName(args[1]);
|
final String playerName = TFM_RollbackManager.findPlayer(args[1]);
|
||||||
|
|
||||||
if (!TFM_RollbackManager.canRollback(playerName))
|
if (playerName == null)
|
||||||
{
|
{
|
||||||
playerMsg("That player has no entries stored.");
|
playerMsg("That player has no entries stored.");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
playerMsg("Purged " + TFM_RollbackManager.purgeEntries(playerName) + " rollback history entries for " + playerName + ".");
|
playerMsg("Purged " + TFM_RollbackManager.purgeEntries(playerName) + " rollback history entries for " + playerName + ".");
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
else if ("undo".equalsIgnoreCase(args[0]))
|
|
||||||
{
|
|
||||||
String playerName = getPlayerName(args[1]);
|
|
||||||
|
|
||||||
if (!TFM_RollbackManager.canUndoRollback(playerName))
|
if ("undo".equalsIgnoreCase(args[0]))
|
||||||
|
{
|
||||||
|
final String playerName = TFM_RollbackManager.findPlayer(args[1]);
|
||||||
|
|
||||||
|
if (playerName == null)
|
||||||
{
|
{
|
||||||
playerMsg("That player hasn't been rolled back recently.");
|
playerMsg("That player hasn't been rolled back recently.");
|
||||||
return true;
|
return true;
|
||||||
@ -67,41 +75,10 @@ public class Command_rollback extends TFM_Command
|
|||||||
|
|
||||||
TFM_Util.adminAction(sender.getName(), "Reverting rollback for player: " + playerName, false);
|
TFM_Util.adminAction(sender.getName(), "Reverting rollback for player: " + playerName, false);
|
||||||
playerMsg("Reverted " + TFM_RollbackManager.undoRollback(playerName) + " edits for " + playerName + ".");
|
playerMsg("Reverted " + TFM_RollbackManager.undoRollback(playerName) + " edits for " + playerName + ".");
|
||||||
}
|
return true;
|
||||||
else
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
return false;
|
||||||
}
|
|
||||||
|
|
||||||
private String getPlayerName(String playerNameInput)
|
|
||||||
{
|
|
||||||
String playerName = null;
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
Player player = getPlayer(playerNameInput);
|
|
||||||
if (player != null)
|
|
||||||
{
|
|
||||||
playerName = player.getName();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
if (playerName == null)
|
|
||||||
{
|
|
||||||
playerName = TFM_PlayerList.getInstance().getEntry(playerNameInput).getLastJoinName();
|
|
||||||
}
|
|
||||||
|
|
||||||
return playerName;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,163 +3,285 @@ package me.StevenLawson.TotalFreedomMod.Commands;
|
|||||||
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Admin;
|
import me.StevenLawson.TotalFreedomMod.TFM_Admin;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_DepreciationAggregator;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_PlayerData;
|
||||||
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 org.apache.commons.lang3.StringUtils;
|
||||||
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.ChatColor;
|
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.OP, source = SourceType.BOTH)
|
@CommandPermissions(level = AdminLevel.OP, source = SourceType.BOTH)
|
||||||
@CommandParameters(description = "Manage superadmins.", usage = "/<command> <list | clean | <add|delete|info> <username>>")
|
@CommandParameters(description = "Manage superadmins.", usage = "/<command> <list | clean | clearme [ip] | <add | delete | info> <username>>")
|
||||||
public class Command_saconfig extends TFM_Command
|
public class Command_saconfig 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 == 0 || args.length > 2)
|
final SAConfigMode mode;
|
||||||
|
try
|
||||||
{
|
{
|
||||||
|
mode = SAConfigMode.findMode(args, sender, senderIsConsole);
|
||||||
|
}
|
||||||
|
catch (final PermissionsException ex)
|
||||||
|
{
|
||||||
|
playerMsg(ex.getMessage());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
catch (final FormatException ex)
|
||||||
|
{
|
||||||
|
playerMsg(ex.getMessage());
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (args.length == 1)
|
|
||||||
|
switch (mode)
|
||||||
{
|
{
|
||||||
if (args[0].equals("list"))
|
case LIST:
|
||||||
{
|
{
|
||||||
playerMsg("Superadmins: " + StringUtils.join(TFM_AdminList.getSuperadminNames(), ", "), ChatColor.GOLD);
|
playerMsg("Superadmins: " + StringUtils.join(TFM_AdminList.getSuperNames(), ", "), ChatColor.GOLD);
|
||||||
return true;
|
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
case CLEAN:
|
||||||
if (args[0].equals("clean"))
|
|
||||||
{
|
{
|
||||||
|
|
||||||
if (!TFM_AdminList.isSeniorAdmin(sender, true))
|
|
||||||
{
|
|
||||||
playerMsg(TotalFreedomMod.MSG_NO_PERMS);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
TFM_Util.adminAction(sender.getName(), "Cleaning superadmin list", true);
|
TFM_Util.adminAction(sender.getName(), "Cleaning superadmin list", true);
|
||||||
TFM_AdminList.cleanSuperadminList(true);
|
TFM_AdminList.cleanSuperadminList(true);
|
||||||
playerMsg("Superadmins: " + StringUtils.join(TFM_AdminList.getSuperadminUUIDs(), ", "), ChatColor.YELLOW);
|
playerMsg("Superadmins: " + StringUtils.join(TFM_AdminList.getSuperNames(), ", "), ChatColor.YELLOW);
|
||||||
return true;
|
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
case CLEARME:
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (args[0].equalsIgnoreCase("info"))
|
|
||||||
{
|
|
||||||
if (!TFM_AdminList.isSuperAdmin(sender))
|
|
||||||
{
|
{
|
||||||
playerMsg(TotalFreedomMod.MSG_NO_PERMS);
|
final TFM_Admin admin = TFM_AdminList.getEntry(sender_p);
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
TFM_Admin superadmin = TFM_AdminList.getEntry(args[1].toLowerCase());
|
final String ip = TFM_Util.getIp(sender_p);
|
||||||
|
|
||||||
if (superadmin == null)
|
if (args.length == 1)
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
{
|
||||||
superadmin = TFM_AdminList.getEntry(getPlayer(args[1]).getName().toLowerCase());
|
TFM_Util.adminAction(sender.getName(), "Cleaning my supered IPs", true);
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (superadmin == null)
|
int counter = admin.getIps().size() - 1;
|
||||||
{
|
admin.clearIPs();
|
||||||
playerMsg("Superadmin not found: " + args[1]);
|
admin.addIp(ip);
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
playerMsg(superadmin.toString());
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
TFM_AdminList.saveAll();
|
||||||
}
|
|
||||||
|
|
||||||
if (!senderIsConsole)
|
playerMsg(counter + " IPs removed.");
|
||||||
{
|
playerMsg(admin.getIps().get(0) + " is now your only IP address");
|
||||||
playerMsg("This command may only be used from the console.");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (args[0].equalsIgnoreCase("add"))
|
|
||||||
{
|
|
||||||
Player player = null;
|
|
||||||
String playername = null;
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
player = getPlayer(args[1]);
|
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
final TFM_Admin superadmin = TFM_AdminList.getEntry(args[1]);
|
|
||||||
if (superadmin != null)
|
|
||||||
{
|
|
||||||
playername = superadmin.getLastLoginName();
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
playerMsg(ex.getMessage(), ChatColor.RED);
|
if (!admin.getIps().contains(args[1]))
|
||||||
|
{
|
||||||
|
playerMsg("That IP is not registered to you.");
|
||||||
|
}
|
||||||
|
else if (ip.equals(args[1]))
|
||||||
|
{
|
||||||
|
playerMsg("You cannot remove your current IP.");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TFM_Util.adminAction(sender.getName(), "Removing a supered IP", true);
|
||||||
|
|
||||||
|
admin.removeIp(args[1]);
|
||||||
|
|
||||||
|
TFM_AdminList.saveAll();
|
||||||
|
|
||||||
|
playerMsg("Removed IP " + args[1]);
|
||||||
|
playerMsg("Current IPs: " + StringUtils.join(admin.getIps(), ", "));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case INFO:
|
||||||
|
{
|
||||||
|
TFM_Admin superadmin = TFM_AdminList.getEntry(args[1].toLowerCase());
|
||||||
|
|
||||||
|
if (superadmin == null)
|
||||||
|
{
|
||||||
|
final Player player = getPlayer(args[1]);
|
||||||
|
if (player != null)
|
||||||
|
{
|
||||||
|
superadmin = TFM_AdminList.getEntry(player.getName().toLowerCase());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (superadmin == null)
|
||||||
|
{
|
||||||
|
playerMsg("Superadmin not found: " + args[1]);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
playerMsg(superadmin.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case ADD:
|
||||||
|
{
|
||||||
|
OfflinePlayer player = getPlayer(args[1], true); // Exact case-insensitive match.
|
||||||
|
|
||||||
|
if (player == null)
|
||||||
|
{
|
||||||
|
final TFM_Admin superadmin = TFM_AdminList.getEntry(args[1]);
|
||||||
|
|
||||||
|
if (superadmin == null)
|
||||||
|
{
|
||||||
|
playerMsg(TFM_Command.PLAYER_NOT_FOUND);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
player = TFM_DepreciationAggregator.getOfflinePlayer(server, superadmin.getLastLoginName());
|
||||||
|
}
|
||||||
|
|
||||||
|
TFM_Util.adminAction(sender.getName(), "Adding " + player.getName() + " to the superadmin list", true);
|
||||||
|
TFM_AdminList.addSuperadmin(player);
|
||||||
|
|
||||||
|
if (player.isOnline())
|
||||||
|
{
|
||||||
|
final TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player.getPlayer());
|
||||||
|
|
||||||
|
if (playerdata.isFrozen())
|
||||||
|
{
|
||||||
|
playerdata.setFrozen(false);
|
||||||
|
playerMsg(player.getPlayer(), "You have been unfrozen.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case DELETE:
|
||||||
|
{
|
||||||
|
String targetName = args[1];
|
||||||
|
|
||||||
|
final Player player = getPlayer(targetName, true); // Exact case-insensitive match.
|
||||||
|
|
||||||
|
if (player != null)
|
||||||
|
{
|
||||||
|
targetName = player.getName();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!TFM_AdminList.getLowercaseSuperNames().contains(targetName.toLowerCase()))
|
||||||
|
{
|
||||||
|
playerMsg("Superadmin not found: " + targetName);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TFM_Util.adminAction(sender.getName(), "Removing " + targetName + " from the superadmin list", true);
|
||||||
|
TFM_AdminList.removeSuperadmin(TFM_DepreciationAggregator.getOfflinePlayer(server, targetName));
|
||||||
|
|
||||||
|
// Twitterbot
|
||||||
|
if (TFM_ConfigEntry.TWITTERBOT_ENABLED.getBoolean())
|
||||||
|
{
|
||||||
|
TFM_TwitterHandler.delTwitterVerbose(targetName, sender);
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static enum SAConfigMode
|
||||||
|
{
|
||||||
|
LIST("list", AdminLevel.OP, SourceType.BOTH, 1, 1),
|
||||||
|
CLEAN("clean", AdminLevel.SENIOR, SourceType.BOTH, 1, 1),
|
||||||
|
CLEARME("clearme", AdminLevel.SUPER, SourceType.ONLY_IN_GAME, 1, 2),
|
||||||
|
INFO("info", AdminLevel.SUPER, SourceType.BOTH, 2, 2),
|
||||||
|
ADD("add", AdminLevel.SUPER, SourceType.ONLY_CONSOLE, 2, 2),
|
||||||
|
DELETE("delete", AdminLevel.SENIOR, SourceType.ONLY_CONSOLE, 2, 2);
|
||||||
|
private final String modeName;
|
||||||
|
private final AdminLevel adminLevel;
|
||||||
|
private final SourceType sourceType;
|
||||||
|
private final int minArgs;
|
||||||
|
private final int maxArgs;
|
||||||
|
|
||||||
|
private SAConfigMode(String modeName, AdminLevel adminLevel, SourceType sourceType, int minArgs, int maxArgs)
|
||||||
|
{
|
||||||
|
this.modeName = modeName;
|
||||||
|
this.adminLevel = adminLevel;
|
||||||
|
this.sourceType = sourceType;
|
||||||
|
this.minArgs = minArgs;
|
||||||
|
this.maxArgs = maxArgs;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static SAConfigMode findMode(final String[] args, final CommandSender sender, final boolean senderIsConsole) throws PermissionsException, FormatException
|
||||||
|
{
|
||||||
|
if (args.length == 0)
|
||||||
|
{
|
||||||
|
throw new FormatException("Invalid number of arguments.");
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean isSuperAdmin = TFM_AdminList.isSuperAdmin(sender);
|
||||||
|
boolean isSeniorAdmin = isSuperAdmin ? TFM_AdminList.isSeniorAdmin(sender, false) : false;
|
||||||
|
|
||||||
|
for (final SAConfigMode mode : values())
|
||||||
|
{
|
||||||
|
if (mode.modeName.equalsIgnoreCase(args[0]))
|
||||||
|
{
|
||||||
|
if (mode.adminLevel == AdminLevel.SUPER)
|
||||||
|
{
|
||||||
|
if (!isSuperAdmin)
|
||||||
|
{
|
||||||
|
throw new PermissionsException(TFM_Command.MSG_NO_PERMS);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (mode.adminLevel == AdminLevel.SENIOR)
|
||||||
|
{
|
||||||
|
if (!isSeniorAdmin)
|
||||||
|
{
|
||||||
|
throw new PermissionsException(TFM_Command.MSG_NO_PERMS);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mode.sourceType == SourceType.ONLY_IN_GAME)
|
||||||
|
{
|
||||||
|
if (senderIsConsole)
|
||||||
|
{
|
||||||
|
throw new PermissionsException("This command may only be used in-game.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (mode.sourceType == SourceType.ONLY_CONSOLE)
|
||||||
|
{
|
||||||
|
if (!senderIsConsole)
|
||||||
|
{
|
||||||
|
throw new PermissionsException("This command may only be used from the console.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args.length >= mode.minArgs && args.length <= mode.maxArgs)
|
||||||
|
{
|
||||||
|
return mode;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
throw new FormatException("Invalid number of arguments for mode: " + mode.modeName);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (player != null)
|
throw new FormatException("Invalid mode.");
|
||||||
{
|
|
||||||
TFM_Util.adminAction(sender.getName(), "Adding " + player.getName() + " to the superadmin list.", true);
|
|
||||||
TFM_AdminList.addSuperadmin(player);
|
|
||||||
}
|
|
||||||
else if (playername != null)
|
|
||||||
{
|
|
||||||
TFM_Util.adminAction(sender.getName(), "Adding " + playername + " to the superadmin list.", true);
|
|
||||||
TFM_AdminList.addSuperadmin(player);
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (TFM_Util.isRemoveCommand(args[0]))
|
private static class PermissionsException extends Exception
|
||||||
|
{
|
||||||
|
public PermissionsException(final String message)
|
||||||
{
|
{
|
||||||
if (!TFM_AdminList.isSeniorAdmin(sender))
|
super(message);
|
||||||
{
|
|
||||||
playerMsg(TotalFreedomMod.MSG_NO_PERMS);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
String targetName = args[1];
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
targetName = getPlayer(targetName).getName();
|
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!TFM_AdminList.getLowerSuperadminNames().contains(targetName.toLowerCase()))
|
|
||||||
{
|
|
||||||
playerMsg("Superadmin not found: " + targetName);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
TFM_Util.adminAction(sender.getName(), "Removing " + targetName + " from the superadmin list", true);
|
|
||||||
TFM_AdminList.removeSuperadmin(Bukkit.getOfflinePlayer(targetName));
|
|
||||||
|
|
||||||
// Twitterbot
|
|
||||||
if (TFM_ConfigEntry.TWITTERBOT_ENABLED.getBoolean())
|
|
||||||
{
|
|
||||||
TFM_TwitterHandler.getInstance().delTwitterVerbose(targetName, sender);
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
return false;
|
}
|
||||||
|
|
||||||
|
private static class FormatException extends Exception
|
||||||
|
{
|
||||||
|
public FormatException(final String message)
|
||||||
|
{
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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 net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
import 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;
|
||||||
|
@ -11,17 +11,18 @@ import org.bukkit.entity.Player;
|
|||||||
@CommandParameters(description = "Shows the status of all Mojang services", usage = "/<command>")
|
@CommandParameters(description = "Shows the status of all Mojang services", usage = "/<command>")
|
||||||
public class Command_services extends TFM_Command
|
public class Command_services 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)
|
||||||
{
|
{
|
||||||
playerMsg("Mojang Services" + ChatColor.WHITE + ":", ChatColor.BLUE);
|
playerMsg("Mojang Services" + ChatColor.WHITE + ":", ChatColor.BLUE);
|
||||||
|
|
||||||
for (ServiceStatus service : TFM_ServiceChecker.getInstance().getAllStatuses())
|
for (ServiceStatus service : TFM_ServiceChecker.getAllStatuses())
|
||||||
{
|
{
|
||||||
playerMsg(service.getFormattedStatus());
|
playerMsg(service.getFormattedStatus());
|
||||||
}
|
}
|
||||||
playerMsg("Version" + ChatColor.WHITE + ": " + TFM_ServiceChecker.getInstance().getVersion(), ChatColor.DARK_PURPLE);
|
playerMsg("Version" + ChatColor.WHITE + ": " + TFM_ServiceChecker.getVersion(), ChatColor.DARK_PURPLE);
|
||||||
playerMsg("Last Check" + ChatColor.WHITE + ": " + TFM_ServiceChecker.getInstance().getLastCheck(), ChatColor.DARK_PURPLE);
|
playerMsg("Last Check" + ChatColor.WHITE + ": " + TFM_ServiceChecker.getLastCheck(), ChatColor.DARK_PURPLE);
|
||||||
|
|
||||||
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.Bridge.TFM_WorldEditBridge;
|
import me.StevenLawson.TotalFreedomMod.Bridge.TFM_WorldEditBridge;
|
||||||
|
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.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -14,10 +14,9 @@ public class Command_setl 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(), "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 player : server.getOnlinePlayers())
|
for (final Player player : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
web.setLimit(player, 500);
|
TFM_WorldEditBridge.setLimit(player, 500);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_DepreciationAggregator;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
@ -54,15 +55,15 @@ public class Command_setlever extends TFM_Command
|
|||||||
|
|
||||||
final Location leverLocation = new Location(world, x, y, z);
|
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 boolean leverOn = (args[4].trim().equalsIgnoreCase("on") || args[4].trim().equalsIgnoreCase("1"));
|
||||||
|
|
||||||
final Block targetBlock = leverLocation.getBlock();
|
final Block targetBlock = leverLocation.getBlock();
|
||||||
|
|
||||||
if (targetBlock.getType() == Material.LEVER)
|
if (targetBlock.getType() == Material.LEVER)
|
||||||
{
|
{
|
||||||
org.bukkit.material.Lever lever = new org.bukkit.material.Lever(Material.LEVER, targetBlock.getData());
|
org.bukkit.material.Lever lever = TFM_DepreciationAggregator.makeLeverWithData(TFM_DepreciationAggregator.getData_Block(targetBlock));
|
||||||
lever.setPowered(leverOn);
|
lever.setPowered(leverOn);
|
||||||
targetBlock.setData(lever.getData());
|
TFM_DepreciationAggregator.setData_Block(targetBlock, TFM_DepreciationAggregator.getData_MaterialData(lever));
|
||||||
targetBlock.getState().update();
|
targetBlock.getState().update();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -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 (TFM_ConfigEntry.PROTECTED_AREAS_ENABLED.getBoolean() && TFM_ConfigEntry.AUTO_PROTECT_SPAWNPOINTS.getBoolean())
|
if (TFM_ConfigEntry.PROTECTAREA_ENABLED.getBoolean() && TFM_ConfigEntry.PROTECTAREA_SPAWNPOINTS.getBoolean())
|
||||||
{
|
{
|
||||||
TFM_ProtectedArea.addProtectedArea("spawn_" + sender_p.getWorld().getName(), pos, TFM_ConfigEntry.AUTO_PROTECT_RADIUS.getDouble());
|
TFM_ProtectedArea.addProtectedArea("spawn_" + sender_p.getWorld().getName(), pos, TFM_ConfigEntry.PROTECTAREA_RADIUS.getDouble());
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -21,14 +21,11 @@ public class Command_smite extends TFM_Command
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Player player;
|
final Player player = getPlayer(args[0]);
|
||||||
try
|
|
||||||
|
if (player == null)
|
||||||
{
|
{
|
||||||
player = getPlayer(args[0]);
|
playerMsg(TFM_Command.PLAYER_NOT_FOUND);
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
playerMsg(ex.getMessage(), ChatColor.RED);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,22 +1,20 @@
|
|||||||
package me.StevenLawson.TotalFreedomMod.Commands;
|
package me.StevenLawson.TotalFreedomMod.Commands;
|
||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_PlayerData;
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_PlayerData;
|
||||||
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;
|
||||||
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> [-s] | list | purge | all]", aliases = "mute")
|
||||||
public class Command_stfu extends TFM_Command
|
public class Command_stfu 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 || args.length > 2)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -54,10 +52,6 @@ public class Command_stfu extends TFM_Command
|
|||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (TotalFreedomMod.mutePurgeTask != null)
|
|
||||||
{
|
|
||||||
TotalFreedomMod.mutePurgeTask.cancel();
|
|
||||||
}
|
|
||||||
playerMsg("Unmuted " + count + " players.");
|
playerMsg("Unmuted " + count + " players.");
|
||||||
}
|
}
|
||||||
else if (args[0].equalsIgnoreCase("all"))
|
else if (args[0].equalsIgnoreCase("all"))
|
||||||
@ -76,36 +70,15 @@ public class Command_stfu extends TFM_Command
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TotalFreedomMod.mutePurgeTask != null)
|
|
||||||
{
|
|
||||||
TotalFreedomMod.mutePurgeTask.cancel();
|
|
||||||
}
|
|
||||||
|
|
||||||
TotalFreedomMod.mutePurgeTask = new BukkitRunnable()
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public void run()
|
|
||||||
{
|
|
||||||
TFM_Util.adminAction("MuteTimer", "Unmuting all players", false);
|
|
||||||
for (Player player : server.getOnlinePlayers())
|
|
||||||
{
|
|
||||||
TFM_PlayerData.getPlayerData(player).setMuted(false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}.runTaskLater(plugin, 20L * 60L * 5L);
|
|
||||||
|
|
||||||
playerMsg("Muted " + counter + " players.");
|
playerMsg("Muted " + counter + " players.");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Player player;
|
final Player player = getPlayer(args[0]);
|
||||||
try
|
|
||||||
|
if (player == null)
|
||||||
{
|
{
|
||||||
player = getPlayer(args[0]);
|
sender.sendMessage(TFM_Command.PLAYER_NOT_FOUND);
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ex.getMessage());
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -122,6 +95,12 @@ public class Command_stfu extends TFM_Command
|
|||||||
{
|
{
|
||||||
TFM_Util.adminAction(sender.getName(), "Muting " + player.getName(), true);
|
TFM_Util.adminAction(sender.getName(), "Muting " + player.getName(), true);
|
||||||
playerdata.setMuted(true);
|
playerdata.setMuted(true);
|
||||||
|
|
||||||
|
if (args.length == 2 && args[1].equalsIgnoreCase("-s"))
|
||||||
|
{
|
||||||
|
Command_smite.smite(player);
|
||||||
|
}
|
||||||
|
|
||||||
playerMsg("Muted " + player.getName());
|
playerMsg("Muted " + player.getName());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -2,15 +2,13 @@ package me.StevenLawson.TotalFreedomMod.Commands;
|
|||||||
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.GameMode;
|
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;
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.OP, source = SourceType.BOTH)
|
@CommandPermissions(level = AdminLevel.OP, source = SourceType.BOTH)
|
||||||
@CommandParameters(description = "Quickly change your own gamemode to survival, or define someone's username to change theirs.", usage = "/<command> <[partialname] | -a>")
|
@CommandParameters(description = "Quickly change your own gamemode to survival, or define someone's username to change theirs.", usage = "/<command> <[partialname] | -a>", aliases = "gms")
|
||||||
public class Command_survival extends TFM_Command
|
public class Command_survival extends TFM_Command
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
@ -37,7 +35,7 @@ public class Command_survival extends TFM_Command
|
|||||||
{
|
{
|
||||||
if (!TFM_AdminList.isSuperAdmin(sender) || senderIsConsole)
|
if (!TFM_AdminList.isSuperAdmin(sender) || senderIsConsole)
|
||||||
{
|
{
|
||||||
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
|
sender.sendMessage(TFM_Command.MSG_NO_PERMS);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -52,13 +50,11 @@ public class Command_survival extends TFM_Command
|
|||||||
|
|
||||||
if (senderIsConsole || TFM_AdminList.isSuperAdmin(sender))
|
if (senderIsConsole || TFM_AdminList.isSuperAdmin(sender))
|
||||||
{
|
{
|
||||||
try
|
player = getPlayer(args[0]);
|
||||||
|
|
||||||
|
if (player == null)
|
||||||
{
|
{
|
||||||
player = getPlayer(args[0]);
|
playerMsg(TFM_Command.PLAYER_NOT_FOUND);
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
playerMsg(ex.getMessage(), ChatColor.RED);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,22 +2,22 @@ package me.StevenLawson.TotalFreedomMod.Commands;
|
|||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_PlayerData;
|
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
|
||||||
|
import me.StevenLawson.TotalFreedomMod.TFM_PlayerData;
|
||||||
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
import me.StevenLawson.TotalFreedomMod.TFM_Util;
|
||||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
import 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;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
@CommandPermissions(level = AdminLevel.OP, source = SourceType.BOTH)
|
@CommandPermissions(level = AdminLevel.OP, source = SourceType.BOTH)
|
||||||
@CommandParameters(description = "Sets yourself a prefix", usage = "/<command> <<prefix> | off | clear <player> | clearall>")
|
@CommandParameters(description = "Sets yourself a prefix", usage = "/<command> <set <tag..> | off | clear <player> | clearall>")
|
||||||
public class Command_tag extends TFM_Command
|
public class Command_tag extends TFM_Command
|
||||||
{
|
{
|
||||||
public static final List<String> FORBIDDEN_WORDS = Arrays.asList(new String[]
|
public static final List<String> FORBIDDEN_WORDS = Arrays.asList(new String[]
|
||||||
{
|
{
|
||||||
"admin", "owner", "moderator", "developer", "&k"
|
"admin", "owner", "moderator", "developer", "console"
|
||||||
});
|
});
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -25,104 +25,134 @@ public class Command_tag extends TFM_Command
|
|||||||
{
|
{
|
||||||
if (args.length == 1)
|
if (args.length == 1)
|
||||||
{
|
{
|
||||||
if ("clearall".equals(args[0]))
|
if ("list".equalsIgnoreCase(args[0]))
|
||||||
|
{
|
||||||
|
playerMsg("Tags for all online players:");
|
||||||
|
|
||||||
|
for (final Player player : server.getOnlinePlayers())
|
||||||
|
{
|
||||||
|
final TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
|
||||||
|
if (playerdata.getTag() != null)
|
||||||
|
{
|
||||||
|
playerMsg(player.getName() + ": " + playerdata.getTag());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else if ("clearall".equalsIgnoreCase(args[0]))
|
||||||
{
|
{
|
||||||
if (!TFM_AdminList.isSuperAdmin(sender))
|
if (!TFM_AdminList.isSuperAdmin(sender))
|
||||||
{
|
{
|
||||||
playerMsg(TotalFreedomMod.MSG_NO_PERMS);
|
playerMsg(TFM_Command.MSG_NO_PERMS);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
TFM_Util.adminAction(sender.getName(), "Removing all tags", false);
|
TFM_Util.adminAction(sender.getName(), "Removing all tags", false);
|
||||||
int count = 0;
|
|
||||||
for (Player player : server.getOnlinePlayers())
|
|
||||||
{
|
|
||||||
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
|
|
||||||
|
|
||||||
|
int count = 0;
|
||||||
|
for (final Player player : server.getOnlinePlayers())
|
||||||
|
{
|
||||||
|
final TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
|
||||||
if (playerdata.getTag() != null)
|
if (playerdata.getTag() != null)
|
||||||
{
|
{
|
||||||
count++;
|
count++;
|
||||||
TFM_PlayerData.getPlayerData(player).setTag(null);
|
playerdata.setTag(null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
playerMsg(count + " tag(s) removed.");
|
playerMsg(count + " tag(s) removed.");
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
else if ("off".equalsIgnoreCase(args[0]))
|
||||||
if (senderIsConsole)
|
|
||||||
{
|
{
|
||||||
playerMsg("Only in-game players can set tags. Use \"/tag clearall\" to reset all tags.");
|
if (senderIsConsole)
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (TFM_Util.isStopCommand(args[0]))
|
|
||||||
{
|
|
||||||
TFM_PlayerData.getPlayerData(sender_p).setTag(null);
|
|
||||||
playerMsg("Your tag has been removed.");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ChatColor.stripColor(TFM_Util.colorize(args[0])).length() > 20)
|
|
||||||
{
|
|
||||||
playerMsg("That tag is too long [Max = 20 characters, not including color codes].");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!TFM_AdminList.isSuperAdmin(sender))
|
|
||||||
{
|
|
||||||
for (String word : FORBIDDEN_WORDS)
|
|
||||||
{
|
{
|
||||||
if (args[0].toLowerCase().contains(word.toLowerCase()))
|
playerMsg("\"/tag off\" can't be used from the console. Use \"/tag clear <player>\" or \"/tag clearall\" instead.");
|
||||||
{
|
}
|
||||||
if (word.contains(String.valueOf(ChatColor.COLOR_CHAR)))
|
else
|
||||||
{
|
{
|
||||||
playerMsg("That tag contains a forbidden color-code.");
|
TFM_PlayerData.getPlayerData(sender_p).setTag(null);
|
||||||
}
|
playerMsg("Your tag has been removed.");
|
||||||
else
|
|
||||||
{
|
|
||||||
playerMsg("That tag contains a forbidden word.");
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
TFM_PlayerData.getPlayerData(sender_p).setTag(args[0]);
|
|
||||||
playerMsg("Tag set.");
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
else if (args.length == 2)
|
else if (args.length >= 2)
|
||||||
{
|
{
|
||||||
if ("clear".equals(args[0]))
|
if ("clear".equalsIgnoreCase(args[0]))
|
||||||
{
|
{
|
||||||
if (!TFM_AdminList.isSuperAdmin(sender))
|
if (!TFM_AdminList.isSuperAdmin(sender))
|
||||||
{
|
{
|
||||||
playerMsg(TotalFreedomMod.MSG_NO_PERMS);
|
playerMsg(TFM_Command.MSG_NO_PERMS);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
final Player player;
|
final Player player = getPlayer(args[1]);
|
||||||
try
|
|
||||||
|
if (player == null)
|
||||||
{
|
{
|
||||||
player = getPlayer(args[1]);
|
playerMsg(TFM_Command.PLAYER_NOT_FOUND);
|
||||||
}
|
|
||||||
catch (PlayerNotFoundException ex)
|
|
||||||
{
|
|
||||||
playerMsg(ex.getMessage());
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
TFM_PlayerData.getPlayerData(player).setTag(null);
|
TFM_PlayerData.getPlayerData(player).setTag(null);
|
||||||
playerMsg("Removed " + player.getName() + "'s tag.");
|
playerMsg("Removed " + player.getName() + "'s tag.");
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
else if ("set".equalsIgnoreCase(args[0]))
|
||||||
|
{
|
||||||
|
final String inputTag = StringUtils.join(args, " ", 1, args.length);
|
||||||
|
final String outputTag = TFM_Util.colorize(StringUtils.replaceEachRepeatedly(StringUtils.strip(inputTag),
|
||||||
|
new String[]
|
||||||
|
{
|
||||||
|
"" + ChatColor.COLOR_CHAR, "&k"
|
||||||
|
},
|
||||||
|
new String[]
|
||||||
|
{
|
||||||
|
"", ""
|
||||||
|
})) + ChatColor.RESET;
|
||||||
|
|
||||||
|
if (!TFM_AdminList.isSuperAdmin(sender))
|
||||||
|
{
|
||||||
|
final String rawTag = ChatColor.stripColor(outputTag).toLowerCase();
|
||||||
|
|
||||||
|
if (rawTag.length() > 20)
|
||||||
|
{
|
||||||
|
playerMsg("That tag is too long (Max is 20 characters).");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (String word : FORBIDDEN_WORDS)
|
||||||
|
{
|
||||||
|
if (rawTag.contains(word))
|
||||||
|
{
|
||||||
|
playerMsg("That tag contains a forbidden word.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
TFM_PlayerData.getPlayerData(sender_p).setTag(outputTag);
|
||||||
|
playerMsg("Tag set to '" + outputTag + "'.");
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user