无法从类型minecraft bukkit plugin静态引用非静态方法

yftpprvb  于 2021-07-12  发布在  Java
关注(0)|答案(1)|浏览(307)

这个问题在这里已经有答案了

无法对非静态方法进行静态引用(7个答案)
昨天关门了。
我知道有很多类似的帖子来自于人们试图在他们的静态类中发现他们的问题,我读过,但是没有用。我正在尝试为bedwars和尝试使用world制作一个minecraft bukkit插件。--我经常会遇到这些错误(无法静态引用类型world中的非静态方法getplayers),并且找不到静态类的来源。这是我的密码:

  1. package me.fitch.bedwars.timers;
  2. import java.util.List;
  3. import org.bukkit.Bukkit;
  4. import org.bukkit.event.EventHandler;
  5. import org.bukkit.event.Listener;
  6. import org.bukkit.event.player.PlayerJoinEvent;
  7. import org.bukkit.World;
  8. import org.bukkit.entity.Player;
  9. import me.fitch.bedwars.main;
  10. public class starttimer implements Listener {
  11. private main plugin;
  12. public starttimer(main plugin) {
  13. this.plugin = plugin;
  14. Bukkit.getPluginManager().registerEvents(this, plugin);
  15. }
  16. @EventHandler
  17. public void startjoin(PlayerJoinEvent e)
  18. {
  19. Object [] players = World.getPlayers().toArray(); //error here
  20. if(players.length == 8)
  21. {
  22. //start countdown
  23. }
  24. }
  25. }

希望你能帮忙,我不是瞎子,谢谢:)
编辑:示例化后 World server = new World(); 我现在得到了“无法示例化类型世界”的错误,感谢大家迄今为止的帮助,希望大家能对此有所帮助:)
编辑2:所以 e.getPlayer().getWorld() 现在可以工作了,谢谢,但我现在在我的主课上遇到了问题,e不是一个东西

  1. package me.fitch.bedwars;
  2. import org.bukkit.Bukkit;
  3. import org.bukkit.Location;
  4. import org.bukkit.World;
  5. import org.bukkit.plugin.java.JavaPlugin;
  6. import me.fitch.bedwars.listeners.beddestroy;
  7. public class main extends JavaPlugin {
  8. private main plugin;
  9. public main(main plugin) {
  10. this.plugin = plugin;
  11. }
  12. @Override
  13. public void onEnable()
  14. {
  15. World.setSpawnLocation(Integer.parseInt( plugin.getConfig().getString("respawn_pointx")), Integer.parseInt( plugin.getConfig().getString("respawn_pointx")) + 1,Integer.parseInt( plugin.getConfig().getString("respawn_pointz")));
  16. new beddestroy(this);
  17. }
  18. }
hwazgwia

hwazgwia1#

地雷世界已经存在了。你应该获取现有的,而不是试图创建一个新的。做 e.getPlayer().getWorld() 为了得到它。

相关问题