Solved setting Bukkit.getMaxPlayers(); in plugin in game

Discussion in 'Plugin Development' started by dekrosik, Apr 27, 2016.

Thread Status:
Not open for further replies.
  1. Offline

    dekrosik

    Hello i try to set value which be return by Bukkit.getMaxPlayers();
    f.e
    Bukkit.getMaxPlayers(); -> return: 100
    i use my fuction
    setMaxPlayers(200);
    and
    Bukkit.getMaxPlayers(); -> return: 200
    i try this method:
    Code:
        protected void setMaxPlayers(int maxPlayers)
                throws ReflectiveOperationException {
            String bukkitversion = Bukkit.getServer().getClass().getPackage()
                    .getName().substring(23);
            Object playerlist = Class.forName("org.bukkit.craftbukkit." + bukkitversion + ".CraftServer")
                    .getDeclaredMethod("getHandle", null).invoke(Bukkit.getServer(), null);
            Field maxplayers = playerlist.getClass().getSuperclass()
                    .getDeclaredField("maxPlayers");
            maxplayers.setAccessible(true);
            maxplayers.set(playerlist, maxplayers);
        }
    
    but i have this error:
    [22:08:30 WARN]: java.lang.IllegalArgumentException: Can not set int field net.minecraft.server.v1_7_R4.PlayerList.maxPlayers to java.lang.reflect.Field
    [22:08:30 WARN]: at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:167)
    [22:08:30 WARN]: at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:171)
    [22:08:30 WARN]: at sun.reflect.UnsafeIntegerFieldAccessorImpl.set(UnsafeIntegerFieldAccessorImpl.java:98)
    [22:08:30 WARN]: at java.lang.reflect.Field.set(Field.java:764)
    in this line:
    maxplayers.set(playerlist, maxplayers);
     
  2. Offline

    Zombie_Striker

    @dekrosik
    Read the error. The method "Field.set()" requires the first parameter to be the object and the second values to be the Value you want it to be equal to. Change it to:
     
  3. Offline

    elian1203

    Yeah you don't have the P in maxPlayers capitalized. You're not setting it as the right object.
     
  4. Offline

    dekrosik

    ehh
    maxPlayers should be no maxplayers xD a little mistake xD
     
Thread Status:
Not open for further replies.

Share This Page