Java Devs dostlar tekrar bir sorun var :)

notaldo

If you want this, dream it!
Mesajlar
286
En iyi cevaplar
1
Beğeniler
105
Puanları
670
Ruh hali
Merhabalar arkadaşlar ben bir plugin yazmaya çalışıyordum ama schulder bilgim olmadığı için size danışmak istedim...

Pluginin özelliği adam oyunda en az 10 dk oynamadan konuşamayacak :)

evet benim yazdığım kod:


PHP:
package com.speedyg.toantireklam;

import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.AsyncPlayerChatEvent;
import org.bukkit.plugin.java.JavaPlugin;

public class AntiReklam extends JavaPlugin implements Listener{
   
    @Override
    public void onEnable(){
        Bukkit.getServer().getPluginManager().registerEvents(this, this);
        getLogger().info("TO-AntiReklam Aktif!");
    }
   
    @Override
    public void onDisable(){
        }

    @EventHandler
    public void anti10dk(AsyncPlayerChatEvent e){
        if(!e.getPlayer().hasPlayedBefore()){
            e.setCancelled(true);
           
        }
    }
}

@Krumb069 @IRFN @Speaw @VitesMahmut @Minecraftplayerr @Dpelqpleq @veunuttuklarımk :)
 


Krumb069

Nether Yerlisi
Mesajlar
2,151
En iyi cevaplar
1
Beğeniler
506
Puanları
1,250
Buna benzer bir konuda (vip pluginindi sanırım) kod atmıştım konu linkini bulamadım ordaki kodu buna uyarlayabilirsin
 

notaldo

If you want this, dream it!
Mesajlar
286
En iyi cevaplar
1
Beğeniler
105
Puanları
670
Ruh hali
Buna benzer bir konuda (vip pluginindi sanırım) kod atmıştım konu linkini bulamadım ordaki kodu buna uyarlayabilirsin
bulursan atarmısın bende arayacağım :)

https://bukkit.org/threads/muting-a-player.165765/
Mantık bu şekilde sanırım. Acil işim olduğundan anlatamıyorum. Haftasonu mesaj atarsan anlatabilirim.
Teşekkür ederim ama malesef bu değil benim dediğim oyuncu girdiğinde 10 dk mesaj atamayacak :) ordan birkaç alıntı yapmaya çalışıcam ama teşekkür ederim yinede :)

Buna benzer bir konuda (vip pluginindi sanırım) kod atmıştım konu linkini bulamadım ordaki kodu buna uyarlayabilirsin
Aradım ama sanırım bulamadım yok konu başlığından falan hatırladığın varmı ? Ya da mesajlardan bakarmısın bi ?
 

Dantero

Elmas Madencisi
Mesajlar
881
En iyi cevaplar
0
Beğeniler
514
Puanları
1,310
Ruh hali
Bir hashmap oluştur oyuncu girdiğinde oyuncuyu hashmap e ekle ve delayed task kullanıp 10 dakika sonra oyuncuyu ordan sil konuşma eventi oluştur oraya oyuncunun hashmap in içinde olup
olmadığını kontrol et içindeyse eventi iptal et :)
Yapamadıysan söyle kodu atayım(pc geçince).
 

notaldo

If you want this, dream it!
Mesajlar
286
En iyi cevaplar
1
Beğeniler
105
Puanları
670
Ruh hali
Bir hashmap oluştur oyuncu girdiğinde oyuncuyu hashmap e ekle ve delayed task kullanıp 10 dakika sonra oyuncuyu ordan sil konuşma eventi oluştur oraya oyuncunun hashmap in içinde olup
olmadığını kontrol et içindeyse eventi iptal et :)
Yapamadıysan söyle kodu atayım(pc geçince).
Atarsan sevinirim :) çunku bildiğiniz üzere daha yeni başladım sadece olan eventlerle olay yapabiliyorum yeni bir task oluşturup ordan uygulama gibi şeyler yapamıyorum inşallah en yakın zamanda öğrenicem :)
 

Dantero

Elmas Madencisi
Mesajlar
881
En iyi cevaplar
0
Beğeniler
514
Puanları
1,310
Ruh hali
Aslında hashmap yerine arraylist oluşturabilirsin oluşturmak için:
Kod:
ArrayList<Player> sohbet = new ArrayList<Player>();
Bu kodu onEnable metodunun üstüne yaz. Task oluşturmak için vereceğim kodu oyuncu giriş yapma eventine yapıştır
Kod:
sohbet.add(event.getPlayer());
Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
  public void run() {
  sohbet.remove(event.getPlayer());// böyle bir şey olması lazım teldeyim.
  }
}, 60*10);//burası süredir 60*10 demek 600 saniye oda 10 dakikaya denk geliyor.

Konuşma eventinede :
Kod:
if (sohbet.contains(event.getPlayer())){
[TAB]event.setCancelled(true);
[TAB]event.getPlayer().sendMessage("10 dakika sonra konuşabilirsin!");
Bunları yaz çalışacaktır çalışmıyorsa parantez veya boşluk hatası vb olabilir. Telefondayım anca bu kadar oluyor :):)

Edit: Kodda bir eksiklik fark ettim. Oyuncunun giriş yaptığında sohbet listesine eklemeyi unuttum. Güncelledim.
 
Son düzenleme:

notaldo

If you want this, dream it!
Mesajlar
286
En iyi cevaplar
1
Beğeniler
105
Puanları
670
Ruh hali
PHP:
package com.speedyg.tomuc;

import java.util.ArrayList;

import net.md_5.bungee.api.ChatColor;

import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.AsyncPlayerChatEvent;
import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin implements Listener{
    ArrayList<Player> sohbet = new ArrayList<Player>();
  
    @Override
    public void onEnable(){
        Bukkit.getServer().getPluginManager().registerEvents(this, this);
        getLogger().info("TO-AntiReklam Aktif!");
    }
  
    @Override
    public void onDisable(){
        }

    @EventHandler
    public void anti10dk(AsyncPlayerChatEvent event){
        sohbet.add(event.getPlayer());
        Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable(){
        
           
            public void run() {
          sohbet.remove(event.getPlayer());
          if (sohbet.contains(event.getPlayer())){
              event.setCancelled(true);
              event.getPlayer().sendMessage(ChatColor.RED  + "Sanirim sunucuya ilk girisin! Malesef 10 dakika oyun oynamadan konusamassin!");
          }
        }, 60*10);
          
        }
    }
}

Böyle yaptım ama hatav veriyor sanırım body de hata var kontrol edermisiniz bi ?
 

Dantero

Elmas Madencisi
Mesajlar
881
En iyi cevaplar
0
Beğeniler
514
Puanları
1,310
Ruh hali
Nerede hata veriyor?
 

notaldo

If you want this, dream it!
Mesajlar
286
En iyi cevaplar
1
Beğeniler
105
Puanları
670
Ruh hali
PHP:
            public void run() {
          sohbet.remove(event.getPlayer());
          if (sohbet.contains(event.getPlayer())){
              event.setCancelled(true);
              event.getPlayer().sendMessage(ChatColor.RED  + "Sanirim sunucuya ilk girisin! Malesef 10 dakika oyun oynamadan konusamassin!");
          }
        }, 60*10);
         
        }
    }
}

dediğim gibi şu body parantezlerinde sıkıntı var :(
 

Dantero

Elmas Madencisi
Mesajlar
881
En iyi cevaplar
0
Beğeniler
514
Puanları
1,310
Ruh hali
PHP:
            public void run() {
          sohbet.remove(event.getPlayer());
          if (sohbet.contains(event.getPlayer())){
              event.setCancelled(true);
              event.getPlayer().sendMessage(ChatColor.RED  + "Sanirim sunucuya ilk girisin! Malesef 10 dakika oyun oynamadan konusamassin!");
          }
        }, 60*10);
        
        }
    }
}

dediğim gibi şu body parantezlerinde sıkıntı var :(
Şuanda bir hata göremiyorum pc geçince eclipse üzerine koyup kodu atarım.

Buyur:
Kod:
package com.speedyg.tomuc;

import java.util.ArrayList;

import net.md_5.bungee.api.ChatColor;

import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.AsyncPlayerChatEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin implements Listener{
    ArrayList<Player> sohbet = new ArrayList<Player>();

    @Override
    public void onEnable(){
        Bukkit.getServer().getPluginManager().registerEvents(this, this);
        getLogger().info("TO-AntiReklam Aktif!");
    }

    @Override
    public void onDisable(){
    }
    @EventHandler
    public void girdiginde(final PlayerJoinEvent e){
        if (!e.getPlayer().hasPlayedBefore()){
            sohbet.add(e.getPlayer());
            Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable(){
                @Override
                public void run() {
                    sohbet.remove(e.getPlayer());
                    e.getPlayer().sendMessage("§a10 Dakika Doldu! Artık Konuşabilirsin!");
                }
            }, 60*10);
        }
    }

    @EventHandler
    public void anti10dk(final AsyncPlayerChatEvent event){
        if (sohbet.contains(event.getPlayer())){
            event.setCancelled(true);
            event.getPlayer().sendMessage(ChatColor.RED  + "Sanirim sunucuya ilk girisin! Malesef 10 dakika oyun oynamadan konusamassin!");
        }
    }
}
 

notaldo

If you want this, dream it!
Mesajlar
286
En iyi cevaplar
1
Beğeniler
105
Puanları
670
Ruh hali
Şuanda bir hata göremiyorum pc geçince eclipse üzerine koyup kodu atarım.

Buyur:
Kod:
package com.speedyg.tomuc;

import java.util.ArrayList;

import net.md_5.bungee.api.ChatColor;

import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.AsyncPlayerChatEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin implements Listener{
    ArrayList<Player> sohbet = new ArrayList<Player>();

    @Override
    public void onEnable(){
        Bukkit.getServer().getPluginManager().registerEvents(this, this);
        getLogger().info("TO-AntiReklam Aktif!");
    }

    @Override
    public void onDisable(){
    }
    @EventHandler
    public void girdiginde(final PlayerJoinEvent e){
        if (!e.getPlayer().hasPlayedBefore()){
            sohbet.add(e.getPlayer());
            Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable(){
                @Override
                public void run() {
                    sohbet.remove(e.getPlayer());
                    e.getPlayer().sendMessage("§a10 Dakika Doldu! Artık Konuşabilirsin!");
                }
            }, 60*10);
        }
    }

    @EventHandler
    public void anti10dk(final AsyncPlayerChatEvent event){
        if (sohbet.contains(event.getPlayer())){
            event.setCancelled(true);
            event.getPlayer().sendMessage(ChatColor.RED  + "Sanirim sunucuya ilk girisin! Malesef 10 dakika oyun oynamadan konusamassin!");
        }
    }
}

Teşekkürler :)
 

WhisperB

Whisper NETWORK
Mesajlar
202
En iyi cevaplar
0
Beğeniler
67
Puanları
0
Javadan hiç anlamıyorum. Özelden veya burdan paylaşma ihtimalin var mı?
 

Üst