• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Spigot Blöcke in einer Cuboid Region nach Chancen setzen

Tomekk.

Minecrafter
Registriert
3 März 2018
Beiträge
13
Alter
26
Diamanten
307
Minecraft
Tomekk
Moooin,

Ich bin ein wenig zu doof um die Blöcke in einer Cuboid Region nach einer gewissen Chance zu setzen. Die Blöcke und deren SpawnChance werden in einer Config als Liste abgespeichert:

- STONE:60
- COAL_ORE:25
...

So eben.

Könnte mir jemand vielleicht zeigen was ich da falsch mache? Denn aktuell ist es so, dass selbst wenn Iron Ore's nur eine Chance von 1 haben, diese trotzdem so oft spawnen wie ein Coal Ore welches sagen wir mal 30 hätte. Oder noch besser, es kam hin und wieder auch vor, dass einfach nur Stein und Iron(oder ein x-beliebiges anderes Erz) generiert wurden.

Java:
public void setBlockPopulation( Location firstLoc, Location secondLoc, Mines assignedMine, Player player ) {

        this.cuboid = new Cuboid( firstLoc, secondLoc );

        for ( Block block : this.cuboid ) {

            int i = (int) (Math.random() * (100 - 1)) + 1;

            for ( Map.Entry< Material, Integer > entry : getBlocks( ).entrySet( ) ) {

                if ( i <= entry.getValue( ) ) {

                    block.setType( entry.getKey( ) );
                    break;

                } else if(i > getBlocks().entrySet().stream().filter(e -> e.getValue().equals(Collections.max(getBlocks().values()))).findFirst().get().getValue()) {
                    block.setType( entry.getKey( ) );
                    break;
                }

                
            }

        }

        player.sendMessage( Storage.getStorage( ).prefix + "§7Successfully populated the §c" + assignedMine.name( ) + "§7 with the selected blocks!" );

        if ( this.fileHandler.getObject( "firstLoc" ) == null && this.fileHandler.getObject( "secondLoc" ) == null ) {
            saveLocation( firstLoc, secondLoc );
        }

    }

Und Danke, aber ich möchte die WorldEditAPI wirklich nicht nutzen.

Danke im Vorraus.
 
Oben