我尝试为您连接的 Minecraft 服务器创建一个代理服务器,这样您就可以修改 Minecraft 协议和/或其他内容。
我尝试做一个像这样的 TCP 代理服务器,它将套接字重定向到给定的地址:
var net = require("net");
process.on("uncaughtException", function(error) {
console.error(error);
});
if (process.argv.length != 5) {
console.log("usage: %s <localport> <remotehost> <remoteport>", process.argv[1]);
process.exit();
}
var localport = process.argv[2];
var remotehost = process.argv[3];
var remoteport = process.argv[4];
var server = net.createServer(function (localsocket) {
var remotesocket = new net.Socket();
remotesocket.connect(remoteport, remotehost);
localsocket.on('connect', function (data) {
console.log(">>> connection #%d from %s:%d",
server.connections,
localsocket.remoteAddress,
localsocket.remotePort
);
});
localsocket.on('data', function (data) {
console.log("%s:%d - writing data to remote",
localsocket.remoteAddress, …Run Code Online (Sandbox Code Playgroud) 我一直在谷歌搜索,似乎无法找到解决方案.我在这做错了什么?我的问题在标题中.这是我得到的例外:
java.lang.IllegalStateException
at java.util.ArrayList$Itr.remove(Unknown Source)
at me.herp.derp.client.Config.updateItem(Config.java:24)
at me.herp.derp.client.Commands.parseCommand(Commands.java:23)
at me.herp.derp.client.ChatCommands.handleChatcommand(ChatCommands.java:29)
at net.minecraft.src.EntityClientPlayerMP.sendChatMessage(EntityClientPlayerMP.java:171)
at net.minecraft.src.GuiChat.keyTyped(GuiChat.java:104)
at net.minecraft.src.GuiScreen.handleKeyboardInput(GuiScreen.java:227)
at net.minecraft.src.GuiScreen.handleInput(GuiScreen.java:176)
at net.minecraft.client.Minecraft.runTick(Minecraft.java:1494)
at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:843)
at net.minecraft.client.Minecraft.run(Minecraft.java:768)
at java.lang.Thread.run(Unknown Source)
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
public static void updateItem(String item, String value)
{
if (!hasValue(item))
{
addItem(item, value);
return;
}
for (ConfigItem c : configItems)
{
if (c.ITEM.equals(item))
{
configItems.iterator().remove();
break;
}
}
ConfigFile.saveConfig();
}
Run Code Online (Sandbox Code Playgroud) 我想写一个Minecraft mod,它增加了一种新型的暴徒.那可能吗?我看到,在Bukkit中,它EntityType是一个预定义的枚举,这使我相信可能没有办法添加新类型的实体.我希望这是错的.
好的,我正在尝试将数据附加到Minecraft Bukkit ItemStack.我想它,所以它丢弃的实体也会有它,但这是可选的.如果我不能直接这样做,是否有其他方式我可以保留一个数据(java int,java string)与项目,因为它通过玩家和他们的库存插槽?谢谢!
编辑:这是一个代码示例.
package path.to.the.package;
import org.bukkit.event.*;
import org.bukkit.event.PlayerInteractEvent;
import org.bukkit.plugin.java.JavaPlugin;
public ExamplePlugin extends JavaPlugin
{
public List<ItemStack> stacks = new ArrayList<ItemStack>();
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)
{
if(cmd.getName().equalsIgnoreCase("tester123"))
{
ItemStack stack = new ItemStack(272, 0, (byte)0);
Player p = (Player)sender;
stacks.add(stack);
p.getLocation().getWorld().dropItem(player.getLocation(), stack);
}
return true;
}
@EventHandler(priority = EventPriority.HIGHEST)
public void onItemStackRightClick(PlayerInteractEvent e)
{
Player player = e.getPlayer();
for(ItemStack item : items)
{
if(player.getItemInHand() == item)
{
//What I DO …Run Code Online (Sandbox Code Playgroud) 我想要做的是运行一个简单的PHP脚本,检查游戏服务器是否在线并从中获取一些信息.我在WAMP服务器的本地机器上运行完全相同的脚本,我只是取消注释php_openssl.dll和php_sockets.dll和 - 瞧 - 它按预期工作.
但后来我们的生产环境!我通常和Debian一起工作,但是我们的主机决定在我们的专用服务器上安装CentOS,因为NIC在Debian中失败了,而且从那以后它就变成了麻烦.
我克服了一些问题,并留下了这个问题:如何修复PHP套接字?我读到我需要php-common,所以我安装了这个:
# yum install php-common
Run Code Online (Sandbox Code Playgroud)
然后我检查了phpinfo(),我得到了这个
'./configure' '--with-openssl' '--enable-sockets' ...
Run Code Online (Sandbox Code Playgroud)
所以如果你问我这个看起来不错,openssl和socket都已安装并应该正常工作,但事实并非如此.我在Stack Overflow上找到了这个脚本:
<?php
//just in case
if (!extension_loaded('sockets')) {
die('The sockets extension is not loaded.');
}
echo '<p><strong>Establishing connection...</strong></p>';
$socket = socket_create(AF_INET,SOCK_STREAM,0);
if (!socket_connect($socket, "stackoverflow.com", 80))
{
die('Socket error : '.socket_strerror(socket_last_error()));
}
echo '<p><strong>Connection successful!</strong></p>';
$request = join("\n",array(
"GET / HTTP/1.1",
"Connection: close",
"Host: stackoverflow.com",
"User-Agent: Mozilla/5.0 (Windows NT 6.1)",
"Accept: text/html,*/*;q=0.8",
""));
socket_write($socket,$request,strlen($request));
$response = socket_read($socket,2048);
echo "<p><strong>This is the received …Run Code Online (Sandbox Code Playgroud) 我运行一个 Minecraft 网站,目前在使用查询协议时,它无法处理 SRV 记录。
我只是想知道有没有办法获取 SRV 记录指向的 ip 和端口。
E.g: mc.lunarphase.co.uk => 192.198.91.238:64759
Run Code Online (Sandbox Code Playgroud) 我正在尝试向Minecraft源文件添加一个方法,但我必须弄清楚如何在不实际编辑源文件的情况下进行,因为重新分发源文件是非法的,这些源文件必须包含在我正在创建的mod中.我需要将方法添加setInPortalZub()到文件"EntityPlayer中net.minecraft.entity.player.我正在使用MCP/Minecraft Forge API.我已经尝试创建一个实例EntityPlayer,但我不确定这是如何工作的.
我正在尝试将Dye颜色应用到现有的ItemStack中,如何在不使用弃用方法和创建新堆栈的情况下执行此操作?
我尝试了以下代码,但这导致了正常的墨水袋.
ps:我只在第一行创建一个堆栈作为示例.
final ItemStack stack = new ItemStack(Material.INK_SACK);
Dye dye = new Dye();
dye.setColor(DyeColor.LIME);
stack.setData(dye);
Run Code Online (Sandbox Code Playgroud)
编辑:添加最终到堆栈变量以显示它不能被新堆栈替换.
我不知道我是不是就在这里,所以如果没有,请随时删除这个问题.
我想在用Java编写的Minecraft插件中迭代块的二维平面.因此,我想要遍历每一行中的每个街区.以下是我的代码.(显然缩短了)
package mainiterator;
public class MainIterator {
public static void main(String[] args) {
int currentX = -2;
int currentZ = -2;
for (; currentX < 2; currentX++) {
for (; currentZ < 2; currentZ++) {
//The following should normally be outputted 4*4 Times. (16)
System.out.println("currentX:" + currentX + " currentZ:" + currentZ);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
但这只输出以下内容:
currentX:-2 currentZ:-2
currentX:-2 currentZ:-1
currentX:-2 currentZ:0
currentX:-2 currentZ:1
Run Code Online (Sandbox Code Playgroud)
所以有什么问题?请随意尝试.提前致谢!
问候,
Max来自德国
我真的不明白这是如何工作的.我正在努力建立一个.jar权利.它由两个类组成:Test.class和Sayer.class.如果我Test.class直接访问或正确打包它可以正常工作Test.jar,但是我可以获得jar执行的唯一方法是使用manifest(jar cfm Test.jar manifest Test.class Sayer.class)打包它.
如果我不这样做,我在尝试运行jar时会出错:Error: Invalid or corrupt jarfile Test.jar.如果我构建"好"jar并且删除,也会发生这种情况META-INF/
这完全有道理.毕竟,你需要一些方法告诉Java在哪里寻找入口点......对吗?但是你有了Minecraft的modding社区,它通常建议删除META-INF以进行给定的mod工作.
但是,Minecraft如何在没有META-INF文件夹的情况下运行?根据我的实验,这甚至不可能.这不应该腐败 minecraft.jar我的腐败Test.jar吗?