首页 > 解决方案 > 我的第一次编码,但我不知道它是否正确

问题描述

我的朋友向我展示了她为 Minecraft 插件编写的代码,您可以在其中围绕一个玩家生成 10 个爬行者。它在游戏中不起作用。所以,我决定看一些Java编码的教程并自己尝试,但是,我不知道它是否正确。有人能看一下并告诉我我至少得到了一些正确的吗?谢谢你!

import org.bukkit.command.Command;
import org.bukkit.Location;
import org.bukkit.entity.EntityType;
import org.bukkit.command.CommandSender;
import org.bukkit.plugin.java.JavaPlugin; 
public final class TestPlugin extends JavaPlugin 
{   
     @Override
        public void onEnable() {
            getLogger().info("onEnable has been invoked!");
        }
        
        @Override
        public void onDisable() {
            getLogger().info("onDisable has been invoked!");
        }

@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
    for(int = 0; i < 10; i++) {
}
    if (cmd.getName().equalsIgnoreCase("creepspawn")) { 
        return true;
    } else if (cmd.getName().equalsIgnoreCase("creepspawn2")) {
        if (!(sender instanceof Player)) {
            sender.sendMessage("This command can only run by player.");
        } else {
            Player player = (Player) sender;
            
        }
        return true;
    }
    return false;
    
    case "creepspawn";
        Location spawnLoc = player.getLocation(2,0,0);
        World world = player.getWorld();
        
        Creeper creeper = (Creeper) world.spawnenentity(spawnloc, EntityType.CREEPER); 
        
        return true; 
}

标签: javaeclipseminecraft

解决方案


有两种方法可以区分命令。代码以 usingif语句开头,然后是使用case. 也许一位老师添加了该代码片段。下面我将所有更改为switch确实更简单的。

@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {

    switch (cmd.getName().toLowerCase()) {
    case "creepspawn":
        Location spawnLoc = player.getLocation(2,0,0);
        World world = player.getWorld();
    
        Creeper creeper = (Creeper) world.spawnenentity(spawnloc, 
            EntityType.CREEPER); 
        return true;
    case "creepspawn2":
        if (!(sender instanceof Player)) {
            sender.sendMessage("This command can only run by player.");
        } else {
            Player player = (Player) sender;
        
        }
        return true;
    }
    return false;
}

代码远未完成。但现在你可以自己试一试了。


推荐阅读