我不知道这是否是正确的网站(我也在论坛上问过),但我从头开始创建了一个Minecraft启动器(不是用Java).一切正常,我可以启动Minecraft,但它每次都以离线模式启动.我使用批处理代码启动.minecraft-Folder中的minecraft.jar.我知道有与使用的Minecraft,发射参数推出的Minecraft的方式,但这种方式我不能改变我的世界目录(从.minecraft到.minecraft2).有没有办法连接到Minecraft.net并使用批处理或Visual Basic登录和启动Minecraft?非常感谢!
这是我的新库存代码Bukkit.
package com;
import org.bukkit.craftbukkit.v1_6_R2.inventory.CraftInventoryCustom;
import org.bukkit.inventory.*;
public class Server_Doc extends CraftInventoryCustom implements CraftingInventory, Inventory {
InventoryHolder IH;
public Server_Doc(InventoryHolder owner, int size) {
super(owner, size);
ItemStack items = new ItemStack(278);
((Inventory) owner).addItem(items);
// TODO Auto-generated constructor stub
}
@Override
public ItemStack[] getMatrix() {
// TODO Auto-generated method stub
return null;
}
@Override
public Recipe getRecipe() {
// TODO Auto-generated method stub
return null;
}
@Override
public ItemStack getResult() {
// TODO Auto-generated method stub
return null;
} …Run Code Online (Sandbox Code Playgroud) 好吧,这可能是一个愚蠢的问题.我知道minecraft是用Java编写的,Java不能改成exe文件.然而,当我下载minecraft时,它说minecraft.exe并作为exe文件运行,而不是CLASS文件.有人可以向我解释一下吗?
我正在使用Minecraft插件来保护一个区域.我有一个区域类,它是在玩家选择3个区块后创建的,这个区域类有一个名为" tooBig" 的方法,它用于检测区域是否大于" block^3".问题是这个方法总是返回false.
public boolean tooBig(int i) {
boolean bo1, bo2, bo3;
bo1 = Math.abs(b1.getX() - b2.getX()) > i;
bo2 = Math.abs(b1.getZ() - b2.getZ()) > i;
bo3 = Math.abs(b1.getY() - b3.getY()) > i;
return bo1 && bo2 && bo3;
}
Run Code Online (Sandbox Code Playgroud)
b1,b2和b3是Block对象.
我编写了一个没有错误的Bukkit插件,但在游戏中它有一个问题.
每当使用该命令时,它都不会执行它应该执行的操作.相反,它向我发送了一条大胆的信息,说明我打字的内容/leaving.
这是我的代码:
public class SeeYouSoon extends JavaPlugin{
// Start
@Override
public void onEnable(){
}
@Override
public void onDisable() {
}
//Commands
public boolean onCommand(CommandSender sender, Command cmd, String[] args){
if(cmd.getName().equalsIgnoreCase("leaving")){
Player player = (Player) sender;
Bukkit.broadcastMessage(ChatColor.RED + player.getName() + ChatColor.LIGHT_PURPLE + ChatColor.ITALIC + " is about to leave the server. Please say your goodbyes!");
Bukkit.getScheduler().runTaskLater(this, new Runnable() {
public void run() {
//Run your function or change stuff here.
player.kickPlayer(ChatColor.RED + "Kicked:" + ChatColor.WHITE + " You …Run Code Online (Sandbox Code Playgroud) 我想知道如何选择我的TNT所在的区块.这是我的代码.
ItemStack tnt = new ItemStack(Material.TNT, 1);
Run Code Online (Sandbox Code Playgroud)
如在give @p tnt 1 0 {PlaceOn:emerald_block}.
我正在使用Spigot for Minecraft 1.12和Eclipse.
好吧,我正在尝试为Bukkit/Spigot编译一个java插件,但是我收到以下错误:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project Websend: Compilation failure
[ERROR] /home/bruno/spigot/Websend/src/main/java/com/github/websend/WebsendPlayerCommandSender.java:[24,7] error: WebsendPlayerCommandSender is not abstract and does not override abstract method sendTitle(String,String,int,int,int) in Player
Run Code Online (Sandbox Code Playgroud)
文件的各个部分是错误(我的意思):
public class WebsendPlayerCommandSender implements Player {
/* This class allows tapping into command output from plugins
* if the output is sent through the commandsender.
* Note to anyone having compilation problems: Compile against Bukkit, not CraftBukkit.
*
* Tap this method(1.6.4): sendRawMessage, sendMessage(String), sendMessage(String[])
*/
private final Player baseObject; …Run Code Online (Sandbox Code Playgroud) 通过阅读现有文章,我了解到“断言”不应在生产代码中使用,但是IntelliJ给我的第一个技巧是,当我使用一种我知道不会为NULL的方法时,但在其他方面还是可以为Null的,是要告诉我应该使用“断言”

在上面的代码中,创建新的ItemStack时ItemMeta不会为null,但是如果ItemStack也为null,则可以为null,这就是为什么它没有@NotNull批注的原因。
知道这一点,处理此警告的最正确方法是什么?是因为我知道它永远不会为空而忽略它,还是仍然进行空检查。如果要执行null检查哪种类型,请断言或我已经做过的方式是
if(fillerMeta != null)
Run Code Online (Sandbox Code Playgroud) 我正在尝试在 python3 中读取 mca 文件,但是当出现问题时,Mca 文件不是 base64 和 gzip,因为使用 nbt 库不起作用,并且在您说之前:anvil-parser 库存在问题:
Traceback (most recent call last):
File "/Applications/nbt-editor/nbt-editor.py", line 141, in main
chunk = anvil.Chunk.from_region(region, 19, 22)
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/anvil/chunk.py", line 382, in from_region
return cls(nbt_data)
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/anvil/chunk.py", line 55, in __init__
self.data = nbt_data['Level']
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/nbt/nbt.py", line 543, in __getitem__
raise KeyError("Tag %s does not exist" % key)
KeyError: 'Tag Level does not exist'
Run Code Online (Sandbox Code Playgroud)
anvil-parser 模块也将其吐出,而不是脚本
我希望如果玩家受到伤害并且玩家永久失去那颗心。
import org.bukkit.entity.Player;
import org.bukkit.entity.Entity;
import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.event.EventHandler;
@EventHandler
public void EntityDamage(EntityDamageEvent event) {
Entity e = event.getEntity();
if (e instanceof Player) {
Player player = (Player) e;
double newhealth = player.getHealth();
player.setMaxHealth(newhealth);
}
}
Run Code Online (Sandbox Code Playgroud)
我使用这个代码,但这只会在第二次损坏事件后减少红心
minecraft ×10
java ×9
bukkit ×6
batch-file ×1
login ×1
plugins ×1
python ×1
python-3.x ×1
spigot ×1