首页
\
问答
\
带有2个参数的静音命令(ArrayIndexOutOfBoundsException)(Mute command with 2 arguments (ArrayIndexOutOfBoundsException))
带有2个参数的静音命令(ArrayIndexOutOfBoundsException)(Mute command with 2 arguments (ArrayIndexOutOfBoundsException))
出于某种原因,我在第41行有一个ArrayIndexOutOfBoundsException。我已经尝试了至少一个小时来弄清楚我的代码有什么问题。 我正在尝试创建一个静音命令,所以命令应该是:/ mute [player] [enable / disable]。
你的帮助非常有用。
package me.parat26.cmds; import me.parat26.admingui.MessageManager; import me.parat26.admingui.SettingsManager; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; public class Mute implements CommandExecutor { SettingsManager config = SettingsManager.getInstance(); MessageManager send = MessageManager.getInstance(); public static boolean chatDisabled = false; @SuppressWarnings("deprecation") public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { if ( sender.hasPermission((String) config.getConfig().get("permissions.mute")) ) { if (args.length == 0) { send.message(sender, "Error", "Please provide enough arguments."); } if (args.length == 1) { Player offender = Bukkit.getServer().getPlayer(args[0]); String s = sender.getName(); if (offender == null) { send.message(sender, "Error", "Player " + ChatColor.YELLOW + args[0] + ChatColor.WHITE + " could not be found."); return true; } // Line 41 if (args[0] != null && args[1] != null && offender != null && offender.isOnline()) { if (args[1].equalsIgnoreCase("enable")) { send.message(sender, "Yes", "Enabled..."); } else if (args[1].equalsIgnoreCase("disabled")) { send.message(sender, "Yes", "Disabled..."); } } else { send.message(sender, "Error", "Please provide enough arguments."); return true; } } } return true; } }
For some reason I am having an ArrayIndexOutOfBoundsException on line 41. I have been trying for at least an hour to figure out what's wrong with my code. I am trying to create a mute command, so the command should be: /mute [player] [enable/disable].
Your help is much apprechiated.
package me.parat26.cmds; import me.parat26.admingui.MessageManager; import me.parat26.admingui.SettingsManager; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; public class Mute implements CommandExecutor { SettingsManager config = SettingsManager.getInstance(); MessageManager send = MessageManager.getInstance(); public static boolean chatDisabled = false; @SuppressWarnings("deprecation") public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { if ( sender.hasPermission((String) config.getConfig().get("permissions.mute")) ) { if (args.length == 0) { send.message(sender, "Error", "Please provide enough arguments."); } if (args.length == 1) { Player offender = Bukkit.getServer().getPlayer(args[0]); String s = sender.getName(); if (offender == null) { send.message(sender, "Error", "Player " + ChatColor.YELLOW + args[0] + ChatColor.WHITE + " could not be found."); return true; } // Line 41 if (args[0] != null && args[1] != null && offender != null && offender.isOnline()) { if (args[1].equalsIgnoreCase("enable")) { send.message(sender, "Yes", "Enabled..."); } else if (args[1].equalsIgnoreCase("disabled")) { send.message(sender, "Yes", "Disabled..."); } } else { send.message(sender, "Error", "Please provide enough arguments."); return true; } } } return true; } }
原文:
更新时间:2022-03-08 18:03
最满意答案
目前,您将徽标(
<li>
所有内容) 附加到$items
字符串。 您应该改为将它添加到前面 ,如下所示:if( $args->theme_location == 'primary') { $items = "<li>\\ template is skipped for readability \\</li>" . $items; } return $items;
您可以考虑将徽标模板生成提取到单独的函数中。
Currently you append logo (all the stuff inside
<li>
) to$items
string. What you should instead is prepend it, like this:if( $args->theme_location == 'primary') { $items = "<li>\\ template is skipped for readability \\</li>" . $items; } return $items;
You might consider extracting logo template generation into a separate function.
相关问答
更多-
有没有通过在WP论坛上的一些不错的朋友找到想法。 需要创建一个walker,这是一个习惯导航结构: // nav menu walker class My_Walker extends Walker_Nav_Menu { function start_el(&$output, $item, $depth, $args) { global $wp_query; $indent = ( $depth ) ? str_repeat( "\t", $depth ) : ''; ...
-
好的,我找到了答案。 我使用一个函数来扩展菜单内容,我在这一点上做了结构性错误。 我在这里写的是那些可能遇到类似问题的人: add_filter( 'wp_nav_menu_items', 'my_extend_menu_content', 10, 2 ); function my_extend_menu_content($items, $args){ switch .... for menus other than mobile. // After the switch block: ...
-
替换班级 'primary-menu', 'menu' => '', 'container' => '', 'container_class' => '', 'container_id' => '', 'menu_class' => '', 'menu_id' => 'primary-m ...
-
Wordpress wp_nav_menu walker:内容之前的动态(Wordpress wp_nav_menu walker: dynamic before content)[2023-02-01]
1.首先在您的functions.php中添加以下代码。 class Nav_Walker_Nav_Menu extends Walker_Nav_Menu { function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) { global $wp_query; $indent = ( $depth ) ? str_repeat( "\t", $depth ) : ''; ... -
wp_nav_menu()默认为echo。 这发生在我的$ items变量返回之前,所以我把wp_nav_menu()返回而不是回声。 https://developer.wordpress.org/reference/functions/wp_nav_menu/ wp_nav_menu() defaults to echo. This was happening before my $items variable was returned, so I turned wp_nav_menu() to ret ...
-
基于结束标记是并且您的代码输出class="...">and your code outputs
- 这一事实,我怀疑只是改变你的代码是
class="..."> ... -
这个函数的参数几乎都是字符串,所以据我所知你不能一次调用两个菜单。 我会做的是这样的:您可以使用wp_nav_menu_items挂钩实现此目的。 让我们来看看下面这段代码,它显示了标题菜单位置上的登录/注销链接。 add_filter( 'wp_nav_menu_items', 'pd_logout_menu_link', 10, 2 ); function pd_logout_menu_link( $menu_items, $args ) { if ($args->theme_location == 'header-menu') { if (is_user_logge ...您应该尝试阅读文档以解决此类问题,因为WordPress文档非常广泛且非常好。 https://developer.wordpress.org/reference/functions/wp_nav_menu/ 为了解决这个问题,在'theme_location' => 'top'添加'menu_class' => 'menu vertical medium-horizontal expanded medium-text-center' 。 所以你的最终代码是:目前,您将徽标(
- 所有内容) 附加到$items字符串。 您应该改为将它添加到前面 ,如下所示: if( $args->theme_location == 'primary') { $items = "
- \\ template is skipped for readability \\
" . $items; } return $items; 您可以考虑将徽标模板生成提取到单独的函数中。 Currently you append logo (all the stuff insid ...相关文章
更多- storm client command
- 《Windows 命令行详解手册(第2版)》(Windows Command-Line Administrator's Pocket Consultant, 2nd Edition)扫描版[PDF]
- bash: scp: command not found的解决方法
- solr 建立索引 命令
- Memcached gets 命令获取带有 CAS 令牌存 的 value
- Shell命令格式
- Solr 主从操作命令参考
- Hadoop命令手册
- linux命令 Curl
- CISCO ROUTER 中的隐含命令
最新问答
更多- 您如何使用git diff文件,并将其应用于同一存储库的副本的本地分支?(How do you take a git diff file, and apply it to a local branch that is a copy of the same repository?)
- 将长浮点值剪切为2个小数点并复制到字符数组(Cut Long Float Value to 2 decimal points and copy to Character Array)
- OctoberCMS侧边栏不呈现(OctoberCMS Sidebar not rendering)
- 页面加载后对象是否有资格进行垃圾回收?(Are objects eligible for garbage collection after the page loads?)
- codeigniter中的语言不能按预期工作(language in codeigniter doesn' t work as expected)
- 在计算机拍照在哪里进入
- 使用cin.get()从c ++中的输入流中丢弃不需要的字符(Using cin.get() to discard unwanted characters from the input stream in c++)
- No for循环将在for循环中运行。(No for loop will run inside for loop. Testing for primes)
- 单页应用程序:页面重新加载(Single Page Application: page reload)
- 在循环中选择具有相似模式的列名称(Selecting Column Name With Similar Pattern in a Loop)
- System.StackOverflow错误(System.StackOverflow error)
- KnockoutJS未在嵌套模板上应用beforeRemove和afterAdd(KnockoutJS not applying beforeRemove and afterAdd on nested templates)
- 散列包括方法和/或嵌套属性(Hash include methods and/or nested attributes)
- android - 如何避免使用Samsung RFS文件系统延迟/冻结?(android - how to avoid lag/freezes with Samsung RFS filesystem?)
- TensorFlow:基于索引列表创建新张量(TensorFlow: Create a new tensor based on list of indices)
- 企业安全培训的各项内容
- 错误:RPC失败;(error: RPC failed; curl transfer closed with outstanding read data remaining)
- C#类名中允许哪些字符?(What characters are allowed in C# class name?)
- NumPy:将int64值存储在np.array中并使用dtype float64并将其转换回整数是否安全?(NumPy: Is it safe to store an int64 value in an np.array with dtype float64 and later convert it back to integer?)
- 注销后如何隐藏导航portlet?(How to hide navigation portlet after logout?)
- 将多个行和可变行移动到列(moving multiple and variable rows to columns)
- 提交表单时忽略基础href,而不使用Javascript(ignore base href when submitting form, without using Javascript)
- 对setOnInfoWindowClickListener的意图(Intent on setOnInfoWindowClickListener)
- Angular $资源不会改变方法(Angular $resource doesn't change method)
- 在Angular 5中不是一个函数(is not a function in Angular 5)
- 如何配置Composite C1以将.m和桌面作为同一站点提供服务(How to configure Composite C1 to serve .m and desktop as the same site)
- 不适用:悬停在悬停时:在元素之前[复制](Don't apply :hover when hovering on :before element [duplicate])
- 常见的python rpc和cli接口(Common python rpc and cli interface)
- Mysql DB单个字段匹配多个其他字段(Mysql DB single field matching to multiple other fields)
- 产品页面上的Magento Up出售对齐问题(Magento Up sell alignment issue on the products page)