#3156: Add kick module
This commit is contained in:
parent
9ced5ce131
commit
e151a6cf92
31
module/cmd-kick/nb-configuration.xml
Normal file
31
module/cmd-kick/nb-configuration.xml
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project-shared-configuration>
|
||||||
|
<!--
|
||||||
|
This file contains additional configuration written by modules in the NetBeans IDE.
|
||||||
|
The configuration is intended to be shared among all the users of project and
|
||||||
|
therefore it is assumed to be part of version control checkout.
|
||||||
|
Without this configuration present, some functionality in the IDE may be limited or fail altogether.
|
||||||
|
-->
|
||||||
|
<properties xmlns="http://www.netbeans.org/ns/maven-properties-data/1">
|
||||||
|
<!--
|
||||||
|
Properties that influence various parts of the IDE, especially code formatting and the like.
|
||||||
|
You can copy and paste the single properties, into the pom.xml file and the IDE will pick them up.
|
||||||
|
That way multiple projects can share the same settings (useful for formatting rules for example).
|
||||||
|
Any value defined here will override the pom.xml file value but is only applicable to the current project.
|
||||||
|
-->
|
||||||
|
<org-netbeans-modules-editor-indent.CodeStyle.usedProfile>project</org-netbeans-modules-editor-indent.CodeStyle.usedProfile>
|
||||||
|
<org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.classDeclBracePlacement>NEW_LINE</org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.classDeclBracePlacement>
|
||||||
|
<org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.otherBracePlacement>NEW_LINE</org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.otherBracePlacement>
|
||||||
|
<org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.methodDeclBracePlacement>NEW_LINE</org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.methodDeclBracePlacement>
|
||||||
|
<org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.spaceWithinMethodCallParens>true</org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.spaceWithinMethodCallParens>
|
||||||
|
<org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.spaceWithinSwitchParens>true</org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.spaceWithinSwitchParens>
|
||||||
|
<org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.spaceWithinCatchParens>true</org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.spaceWithinCatchParens>
|
||||||
|
<org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.spaceWithinTryParens>true</org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.spaceWithinTryParens>
|
||||||
|
<org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.spaceWithinSynchronizedParens>true</org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.spaceWithinSynchronizedParens>
|
||||||
|
<org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.spaceWithinArrayInitBrackets>true</org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.spaceWithinArrayInitBrackets>
|
||||||
|
<org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.spaceWithinParens>true</org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.spaceWithinParens>
|
||||||
|
<org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.spaceWithinWhileParens>true</org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.spaceWithinWhileParens>
|
||||||
|
<org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.spaceWithinIfParens>true</org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.spaceWithinIfParens>
|
||||||
|
<org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.spaceWithinForParens>true</org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.spaceWithinForParens>
|
||||||
|
</properties>
|
||||||
|
</project-shared-configuration>
|
20
module/cmd-kick/pom.xml
Normal file
20
module/cmd-kick/pom.xml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<parent>
|
||||||
|
<groupId>net.md-5</groupId>
|
||||||
|
<artifactId>bungeecord-module</artifactId>
|
||||||
|
<version>1.19-R0.1-SNAPSHOT</version>
|
||||||
|
<relativePath>../pom.xml</relativePath>
|
||||||
|
</parent>
|
||||||
|
|
||||||
|
<groupId>net.md-5</groupId>
|
||||||
|
<artifactId>bungeecord-module-cmd-kick</artifactId>
|
||||||
|
<version>1.19-R0.1-SNAPSHOT</version>
|
||||||
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
|
<name>cmd_kick</name>
|
||||||
|
<description>Provides the gkick command</description>
|
||||||
|
</project>
|
@ -0,0 +1,72 @@
|
|||||||
|
package net.md_5.bungee.module.cmd.kick;
|
||||||
|
|
||||||
|
import com.google.common.base.Joiner;
|
||||||
|
import com.google.common.collect.ImmutableSet;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Locale;
|
||||||
|
import java.util.Set;
|
||||||
|
import net.md_5.bungee.api.ChatColor;
|
||||||
|
import net.md_5.bungee.api.CommandSender;
|
||||||
|
import net.md_5.bungee.api.ProxyServer;
|
||||||
|
import net.md_5.bungee.api.chat.TextComponent;
|
||||||
|
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
||||||
|
import net.md_5.bungee.api.plugin.Command;
|
||||||
|
import net.md_5.bungee.api.plugin.TabExecutor;
|
||||||
|
|
||||||
|
public class CommandKick extends Command implements TabExecutor
|
||||||
|
{
|
||||||
|
|
||||||
|
public CommandKick()
|
||||||
|
{
|
||||||
|
super( "gkick", "bungeecord.command.kick" );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute(CommandSender sender, String[] args)
|
||||||
|
{
|
||||||
|
if ( args.length == 0 )
|
||||||
|
{
|
||||||
|
sender.sendMessage( ProxyServer.getInstance().getTranslation( "username_needed" ) );
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
ProxiedPlayer player = ProxyServer.getInstance().getPlayer( args[0] );
|
||||||
|
|
||||||
|
if ( player == null )
|
||||||
|
{
|
||||||
|
sender.sendMessage( TextComponent.fromLegacyText( ProxyServer.getInstance().getTranslation( "user_not_online" ) ) );
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( args.length == 1 )
|
||||||
|
{
|
||||||
|
player.disconnect( TextComponent.fromLegacyText( ProxyServer.getInstance().getTranslation( "kick_message" ) ) );
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
String[] reason = new String[ args.length - 1 ];
|
||||||
|
System.arraycopy( args, 1, reason, 0, reason.length );
|
||||||
|
player.disconnect( TextComponent.fromLegacyText( ChatColor.translateAlternateColorCodes( '&', Joiner.on( ' ' ).join( reason ) ) ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Iterable<String> onTabComplete(CommandSender sender, String[] args)
|
||||||
|
{
|
||||||
|
if ( args.length == 1 )
|
||||||
|
{
|
||||||
|
Set<String> matches = new HashSet<>();
|
||||||
|
String search = args[0].toLowerCase( Locale.ROOT );
|
||||||
|
for ( ProxiedPlayer player : ProxyServer.getInstance().getPlayers() )
|
||||||
|
{
|
||||||
|
if ( player.getName().toLowerCase( Locale.ROOT ).startsWith( search ) )
|
||||||
|
{
|
||||||
|
matches.add( player.getName() );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return matches;
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
return ImmutableSet.of();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,13 @@
|
|||||||
|
package net.md_5.bungee.module.cmd.kick;
|
||||||
|
|
||||||
|
import net.md_5.bungee.api.plugin.Plugin;
|
||||||
|
|
||||||
|
public class PluginKick extends Plugin
|
||||||
|
{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onEnable()
|
||||||
|
{
|
||||||
|
getProxy().getPluginManager().registerCommand( this, new CommandKick() );
|
||||||
|
}
|
||||||
|
}
|
5
module/cmd-kick/src/main/resources/plugin.yml
Normal file
5
module/cmd-kick/src/main/resources/plugin.yml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
name: ${project.name}
|
||||||
|
main: net.md_5.bungee.module.cmd.kick.PluginKick
|
||||||
|
version: ${describe}
|
||||||
|
description: ${project.description}
|
||||||
|
author: ${module.author}
|
@ -21,6 +21,7 @@
|
|||||||
<modules>
|
<modules>
|
||||||
<module>cmd-alert</module>
|
<module>cmd-alert</module>
|
||||||
<module>cmd-find</module>
|
<module>cmd-find</module>
|
||||||
|
<module>cmd-kick</module>
|
||||||
<module>cmd-list</module>
|
<module>cmd-list</module>
|
||||||
<module>cmd-send</module>
|
<module>cmd-send</module>
|
||||||
<module>cmd-server</module>
|
<module>cmd-server</module>
|
||||||
|
@ -95,7 +95,7 @@ public class YamlConfig implements ConfigurationAdapter
|
|||||||
} ) );
|
} ) );
|
||||||
set( "permissions.admin", Arrays.asList( new String[]
|
set( "permissions.admin", Arrays.asList( new String[]
|
||||||
{
|
{
|
||||||
"bungeecord.command.alert", "bungeecord.command.end", "bungeecord.command.ip", "bungeecord.command.reload"
|
"bungeecord.command.alert", "bungeecord.command.end", "bungeecord.command.ip", "bungeecord.command.reload", "bungeecord.command.kick"
|
||||||
} ) );
|
} ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -39,3 +39,4 @@ command_perms_groups=\u00a76You have the following groups: {0}
|
|||||||
command_perms_permission=\u00a79- {0}
|
command_perms_permission=\u00a79- {0}
|
||||||
command_ip=\u00a79IP of {0} is {1}
|
command_ip=\u00a79IP of {0} is {1}
|
||||||
illegal_chat_characters=\u00a7cillegal characters in chat ({0})
|
illegal_chat_characters=\u00a7cillegal characters in chat ({0})
|
||||||
|
kick_message=\u00a7cYou have been kicked off the proxy.
|
||||||
|
Loading…
Reference in New Issue
Block a user