Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法弄清楚如何正确地从配置中提取密钥

无法弄清楚如何正确地从配置中提取密钥
EN

Stack Overflow用户
提问于 2021-11-15 00:27:29
回答 2查看 53关注 0票数 0

我一直在尝试为一个非常基本的EntityDeathEvent脚本实现一个配置文件,以便能够实现一个重新加载命令,以便能够添加到我的配置中并重新加载该文件,而不是重新启动服务器。我使用的当前代码返回零个错误,因此我在这一点上完全迷失了方向。我花了5天时间对Java进行修补,所以我的代码中可能遗漏了无数的东西,但这就是我到目前为止所拥有的。

main.java:

代码语言:javascript
运行
AI代码解释
复制
package com.mk7smp.LukesMobEffects;

import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDeathEvent;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;



public class Main extends JavaPlugin implements Listener {

  @Override
  public void onEnable() {
    this.saveDefaultConfig();
    this.getServer().getPluginManager().registerEvents(this, this);
  }

  @Override
  public void onDisable() {

  }

  public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
    if (label.equalsIgnoreCase("mobeffects")) {
      if (!sender.hasPermission("mobeffects.reload")) {
        sender.sendMessage(ChatColor.RED + "Nope, big admin guys only.");
        return true;
      }
      if (args.length == 0) {
        // /mobeffects
        sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&f[&bmk7 Mob Effects&f] &aUsage: /mobeffects reload"));
        return true;
      }
      if (args.length > 0) {
        // /mobeffects reload
        if (args[0].equalsIgnoreCase("reload")) {
          for (String msg: this.getConfig().getStringList("reload.message")) {
            sender.sendMessage(ChatColor.translateAlternateColorCodes('&',
              msg));
          }
          this.reloadConfig();
        }
      }
    }
    return false;
  }

  @EventHandler
  public void mobDeath(EntityDeathEvent event) {

    Entity entity = event.getEntity();
    Player player = event.getEntity().getKiller();

    if (player == null) {
      return;
    }

    ConfigurationSection mobs = this.getConfig().getConfigurationSection("mobs"); // The "mobs" section of the config file

    for (String mobKey: mobs.getKeys(false)) { // For ONE(one bc getKeys is set to true) mob key in the set
      String mobname = (String) mobs.get(mobKey + ".name"); // use specified path to retrieve name value
      String message = (String) mobs.get(mobKey + ".message");
      if (entity.getType().toString() == mobname) {
        for (String effectString: mobs.getStringList(mobKey + ".effects")) {


          //make sure there are no whitespaces in the "effectString"
          String[] values = effectString.split(",");

          //create PotionEffectType
          PotionEffectType type;
          //set default duration to 30 seconds
          int duration = 30;
          //set default strength to 1
          int strength = 1;

          //get type
          type = PotionEffectType.getByName(values[0].toUpperCase());

          //check, if type is null
          if (type == null) {
            System.err.println(effectString + " could not be interpreted into a correct PotionEffectType.");
            continue;
          }

          //set duration
          if (values.length > 1)
            duration = Integer.parseInt(values[1]);

          //set strength
          if (values.length > 2)
            strength = Integer.parseInt(values[2]);

          //check, if player already has potiontype
          if (player.hasPotionEffect(type))
            player.removePotionEffect(type);

          //create the effect
          PotionEffect effect = type.createEffect(duration * 20, strength);
          player.addPotionEffect(effect);
          player.sendMessage(ChatColor.translateAlternateColorCodes('&', message));
        }
      }
    }
  }
  // THESE ARE THE FUNCTIONS THAT I WANT TO USE WITH DATA FROM CONFIG
  //if (entity.getType().toString() == "RABBIT") {
  //    player.sendMessage(ChatColor.translateAlternateColorCodes('&', "&f[&bmk7 Mob Effects&f] &aYou've been given &c&lLeaping: 15s &afor killing a &crabbit&a!"));
  //    player.addPotionEffect(new PotionEffect(PotionEffectType.JUMP, 300, 2));
  //    }
  //if (entity.getType().toString() == "ENDERMAN") {
  //    player.sendMessage(ChatColor.translateAlternateColorCodes('&', "&f[&bmk7 Mob Effects&f] &aYou've been given &c&lRegeneration: 10s &afor killing a &cenderman&a!"));
  //    player.addPotionEffect(new PotionEffect(PotionEffectType.REGENERATION, 200, 2));
  //}
  //if (entity.getType().toString() == "CHICKEN") {
  //    player.sendMessage(ChatColor.translateAlternateColorCodes('&', "&f[&bmk7 Mob Effects&f] &aYou've been given &c&lFeather Falling: 10s &afor killing a &c&lchicken&a!"));
  //    player.addPotionEffect(new PotionEffect(PotionEffectType.SLOW_FALLING, 200, 1));
  //}
};

config.yml

代码语言:javascript
运行
AI代码解释
复制
reload:
   message:
      - "&f[&bmk7 Mob Effects&f] &a&lReloaded config!"
      
mobs:
  rabbit:
    name: rabbit
    message: "&f[&bmk7 Mob Effects&f] &aYou've been given &c&lLeaping: 15s &afor killing a &crabbit&a!"
    effects: 
      - JUMP,15,2

请帮我指个方向好吗?

EN

回答 2

Stack Overflow用户

发布于 2021-11-15 00:34:09

请把第7行的兔子做成细绳。添加引号。

代码语言:javascript
运行
AI代码解释
复制
reload:
   message:
      - "&f[&bmk7 Mob Effects&f] &a&lReloaded config!"
      
mobs:
  rabbit:
    name: "rabbit"
    message: "&f[&bmk7 Mob Effects&f] &aYou've been given &c&lLeaping: 15s &afor killing a &crabbit&a!"
    effects: 
      - JUMP,15,2
票数 0
EN

Stack Overflow用户

发布于 2021-11-20 04:41:33

确保已删除旧的配置文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69971357

复制
相关文章
python:如何从 URL 中快速提取域名?
有时候,我们要从一段很长的 URL 里面提取出域名。例如从https://www.kingname.info/2020/10/02/copy-from-ssh/,我需要获取的是kingname.info。
王图思睿
2021/06/16
9.6K0
如何在 Linux 中配置基于密钥认证的 SSH
为方便演示,我将使用 Arch Linux 为本地系统,Ubuntu 18.04 LTS 为远程系统。
用户8989785
2021/09/09
1.7K0
提取pfx证书密钥对
其中 pfx证书包含RSA的公钥和密钥;cer证书用于提取pfx证书中密钥时允许当前电脑进行合法操作
全栈程序员站长
2022/09/02
1.3K0
Linux中配置sudo免密钥
今天周五,又是一个周中最美好的时候,因为明天不用上班啊,可以干自己想干的事情,想想就激动的不行。
AsiaYe
2019/11/06
5.2K0
Linux中配置sudo免密钥
如何从网站提取数据?
在当今时代,根据数据情况来制定业务决策是许多公司的头等大事。为了推动这些决策,公司全天候跟踪,监视和记录相关数据。幸运的是,很多网站的服务器上存储了大量公共数据,可以帮助企业在竞争激烈的市场中保持领先地位。
用户7850017
2021/01/29
3.3K0
如何从内存提取LastPass中的账号密码
简介 首先必须要说,这并不是LastPass的exp或者漏洞,这仅仅是通过取证方法提取仍旧保留在内存中数据的方法。之前我阅读《内存取证的艺术》(The Art of Memory Forensics)时,其中有一章节就有讨论从浏览器提取密码的方法。当你使用标准的用户名/密码方式登录一个网页,通常会发送一个包含了你的用户名及密码的post请求,这些都是以明文方式发送(这里不过多讨论SSL,在SSL内部也是明文发送的)。 本文描述如何找到这些post请求并提取信息,当然如果你捕获到浏览器登录,这些方法就很实用。
FB客服
2018/02/09
6.1K0
如何从内存提取LastPass中的账号密码
如何从 Debian 系统中的 DEB 包中提取文件?
DEB 包是 Debian 系统中常见的软件包格式,用于安装和管理软件。有时候,您可能需要从 DEB 包中提取特定的文件,以便查看其内容、修改或进行其他操作。本文将详细介绍如何从 Debian 系统中的 DEB 包中提取文件,并提供相应的示例。
网络技术联盟站
2023/06/08
3.9K0
如何从 Debian 系统中的 DEB 包中提取文件?
干货:如何正确地学习数据科学中的 python
大多数有抱负的数据科学家是通过学习为开发人员开设的编程课程开始认识 python 的,他们也开始解决类似 leetcode 网站上的 python 编程难题。他们认为在开始使用 python 分析数据之前,必须熟悉编程概念。
AI研习社
2019/08/15
1.1K0
干货:如何正确地学习数据科学中的 python
如何从Docker镜像中提取Dockerfile?
今天在技术群摸鱼,有朋友问个docker的问题,替换配置文件不生效,也没有原先的Dockerfile,所以就在想,有没有什么方式可以直接从容器或镜像生成Dockerfile
李俊鹏
2021/05/27
6K0
如何使用QueenSono从ICMP提取数据
QueenSono是一款针对ICMP协议的数据提取工具,该工具基于Golang开发,并且只依赖于ICMP协议不受监控这一事实实现其功能。除此之外,该工具也可以用于基本的ICMP检查,或绕过某些身份验证机制,比如说许多公共Wi-Fi在连接到Wi-Fi(如机场Wi-Fi)后用于对用户进行身份验证。
FB客服
2021/10/22
2.7K0
干货:如何正确地学习数据科学中的Python
大多数有抱负的数据科学家是通过学习为开发人员开设的编程课程开始认识 python 的,他们也开始解决类似 leetcode 网站上的 python 编程难题。他们认为在开始使用 python 分析数据之前,必须熟悉编程概念。
一墨编程学习
2019/08/07
1.4K0
干货:如何正确地学习数据科学中的Python
如何使用PXEThief从Microsoft终端配置管理器中提取密码
PXEThief是一个由多种工具构成的强大信息安全研究工具,该工具可以从Microsoft终端配置管理器(ConfigMgr,通常称为SCCM)中的操作系统部署功能中提取出密码。
FB客服
2023/02/10
8940
如何使用PXEThief从Microsoft终端配置管理器中提取密码
PHP如何正确地编写事务
我说的事务指的是一般的数据库事务,而不是什么分布式事务之类高大上的概念。听起来很简单,但是即便如此,想实现的优雅一点也不是一件容易的事情。
猿哥
2019/07/25
8370
一日一技:如何从 URL 中快速提取域名?
有时候,我们要从一段很长的 URL 里面提取出域名。例如从https://www.kingname.info/2020/10/02/copy-from-ssh/,我需要获取的是kingname.info。
青南
2020/11/03
5.1K0
一日一技:如何从 URL 中快速提取域名?
Java 程序如何正确地打日志
我们 Java 程序员在开发项目时都是依赖 Eclipse/ Idea 等开发工具的 Debug 调试功能来跟踪解决 Bug,在开发环境可以这么做,但项目发布到了测试、生产环境呢?
CSDN技术头条
2018/07/30
9120
Java 程序如何正确地打日志
Java如何正确地输出日志
日常开发日志打印需要注意哪些地方 我的博客即将同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_co
茶半香初
2021/11/26
2.1K0
Java如何正确地输出日志
Java:如何正确地使用异常详解
由于我们开发的项目可不是像写Demo一样轻松,这里可能会有很多层次结构。我们要在具体哪一层的什么位置是使用try-catch这个异常呢,还是把异常throw到上一层呢?这里,我们首先要知道一件事,那就是try-catch和throw分别会发生什么情况呢?
林老师带你学编程
2019/05/25
7420
如何从Docker镜像中提取恶意文件
首先,需要从镜像运行启动一个容器,然后,使用docker cp命令从容器中提取文件到宿主机。
Bypass
2023/09/12
3730
如何从Docker镜像中提取恶意文件
爬虫如何正确从网页中提取伪元素?
可以看到,在源代码里面没有请抓取我!这段文字。难道这个网页是异步加载?我们现在来看一下网页的请求:
崔庆才
2020/12/15
2.9K0
爬虫如何正确从网页中提取伪元素?
如何利用CDO从数据集中提取数据
之前说了如何利用CDO查看数据集信息 使用CDO查看气象数据信息。这一次说一下利用CDO从数据集中提取数据。这部分是非常使用的,尤其是当涉及到大数据集的时候,其优势就变得非常明显了。
bugsuse
2020/04/21
9K0
如何利用CDO从数据集中提取数据

相似问题

密钥披风无法从配置中识别clientAuthenticator。

111

无法从JSON响应中提取密钥

20

无法从地图中提取密钥

11

无法从密钥链- iOS中提取密码

12

无法从flutter中的jsonDecoded变量中提取密钥

118
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档