Çözüldü Oyuna girildiğinde sohbette yer alan oyuncu kafası

M

Merhan

Ziyaretçi
1638013847789.png


Bu kafayı nasıl yapabilirim her kullanıcı için girdiğinde kendi kafası gözükecek
 
Eklentisi var mı bilemiyorum. Uzun zamandır eklentilere göz atmıyorum. Ama şöyle yapılabilir:

1- mc-heads.net sitesinin sağlamış olduğu API'ı kullanarak 8x8'lik bir görsel alabilirsin. Bu görseli ise şu kod ile indirebilirsin:

Java:
public void downloadImage(String url, String file) throws IOException {

        InputStream inputStream = null;


        OutputStream outputStream = null;

        try {
            URL image = new URL(url);

            String USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36";

            URLConnection con = image.openConnection();

            con.setRequestProperty("User-Agent", USER_AGENT);

            int contentLength = con.getContentLength();
            System.out.println("File contentLength = " + contentLength + " bytes");

            inputStream = con.getInputStream();

            outputStream = new FileOutputStream(file);

            byte[] buffer = new byte[2048];

            int length;
            int downloaded = 0;

            while ((length = inputStream.read(buffer)) != -1)
            {

                outputStream.write(buffer, 0, length);
                downloaded+=length;
                //System.out.println("Downlad Status: " + (downloaded * 100) / (contentLength * 1.0) + "%");


            }
        } catch (Exception ex) {
            Logger.getLogger(Bot.class.getName()).log(Level.SEVERE, null, ex);
        }


        outputStream.close();
        inputStream.close();


    }

2 - İndirdiğin resmin pixellerini iki boyutlu bir array'e atayabilirsin. Tek boyutlu düz bir array'e de atayabilirsin ancak kafanın karışmaması için 8x8'lik bir array oluşturabilirsin. Bu array sırasıyla bir rengi tutacak. Bunu da şu şekilde yapabilirsin:


Java:
   public int[][] convertToRGB(BufferedImage image) { //8x8'lik bir array oluşturmadım artık resmin boyutuna bağlı olarak sınırı belirlenecek
      int width = image.getWidth();
      int height = image.getHeight();
      int[][] data = new int[height][width];

      for (int a = 0; a < height; a++) {
         for (int b= 0; b < width; b++) {
            data[a][b] = image.getRGB(a, b);
         }
      }

      return data;
   }

3 - Sonunda iki tane "for" döngüsü oluşturarak resmi bastırabilirsin. RGB desteği hangi sürümde geldiyse onu kullanmalısın ama. Çünkü RGB datası aldın. Sonra artık kendi algoritmanı yapıp resmi oluşturman gerekiyor.

Resmi indirmeden "BufferedImage" olarak almak var mı bilmiyorum (URL üzerinden). Eğer bilen varsa kodu düzenleyebilir.

İndireceğin resmi formatlamak için:

1638027260959.png
(/avatar/username_or_uuid/size)

Size burada şu şekilde oluyor: 8 olarak belirlendiği için 8x8'lik bir görsel oluşturuyor.

Kolay gelsin, iyi forumlar <3
 

Hala Discord sunucumuza katılmadın mı?

Büyük bir topluluğun parçası ol, etkinliklere katıl ve özel hediyeler kazanma şansı yakala!

Şimdi Katıl
Üst