Ir ao conteúdo
  • Cadastre-se

F1rmeza

Membro Pleno
  • Posts

    44
  • Cadastrado em

  • Última visita

Tudo que F1rmeza postou

  1. Olá! Estou tentando criar uma tabela no banco de dados com uso das anotações jpa, mas não está funcionando quando coloco elas nos atributos, apenas nos métodos. Existem métodos que não acessam os atributos da classe, mas retornam um dado de um serviço e o jpa está criando essa coluna no banco de dados. package br.firmacore.controllers.house.DAO.models; import br.firmacore.Main; import br.firmacore.controllers.house.exceptions.HouseMembersLimitException; import br.firmacore.controllers.house.exceptions.HouseSizeLimitException; import br.firmacore.controllers.house.exceptions.HouseWorldException; import br.firmacore.enums.AreaTypeEnum; import br.firmacore.enums.PermissionsEnum; import br.firmacore.hooks.VaultHook; import br.firmacore.hooks.exceptions.PlayerHasNoMoneyException; import br.firmacore.services.WEService; import br.firmacore.services.WGService; import br.firmacore.services.exceptions.*; import br.firmacore.utils.MessageUtils; import br.firmacore.utils.SpigotUtils; import com.sk89q.worldguard.protection.flags.Flags; import com.sk89q.worldguard.protection.flags.RegionGroup; import com.sk89q.worldguard.protection.flags.StateFlag; import com.sk89q.worldguard.protection.regions.ProtectedRegion; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.World; import org.bukkit.entity.Player; import javax.persistence.*; import java.util.*; @Table(name = "house") public class House { @Transient public static final long BLOCK_VALUE = 1000; @Transient public static final long PVP_VALUE = 10000; @Transient public static final int MAX_TAXES = 6; @Transient public static final AreaTypeEnum AREA_TYPE = AreaTypeEnum.CASA; @Transient private List<Tribute> tributes = new ArrayList<>(); @Transient private ProtectedRegion region; @Transient private Player player; @Id private String uuid; @Column(name = "world") private String world; @Column(name = "x") private double x; @Column(name = "y") private double y; @Column(name = "z") private double z; @Column(name = "size") private int size; @Column(name = "dayBuy") private int dayBuy; @Column(name = "hourBuy") private int hourBuy; public House(Player owner, int size) throws ProtectionAlreadyExistsException, HouseWorldException, HouseSizeLimitException, PlayerHasNoMoneyException { if(!worldIsCorrect(owner)) throw new HouseWorldException(); if(sizeInLimit(owner, size)) throw new HouseSizeLimitException(); if(!playerHasMoney(owner, size)) throw new PlayerHasNoMoneyException(); this.uuid = owner.getUniqueId().toString(); this.world = owner.getWorld().getName(); this.x = owner.getLocation().getX(); this.y = owner.getLocation().getY(); this.z = owner.getLocation().getZ(); this.player = owner; this.size = size; this.dayBuy = Calendar.getInstance().get(Calendar.DAY_OF_WEEK); this.hourBuy = Calendar.getInstance().get(Calendar.HOUR_OF_DAY); createHouse(size); } // [#] Funcionalidades public void infoHouse(){ MessageUtils.messageToPlayer(this.player, ""); MessageUtils.messageToPlayerWithTag(this.player, "&6Informações da Casa"); MessageUtils.messageToPlayer(this.player, ""); MessageUtils.messageToPlayer(this.player, " &6● &7Proprietário: &3" + this.player.getName().toUpperCase()); MessageUtils.messageToPlayer(this.player, " &6● &7Tamanho: &8" + this.size); MessageUtils.messageToPlayer( this.player, " &6● &7Tributos: &8" + this.tributes.size() + " &7(&c-" + VaultHook.getEconomy().format(calculateTotalTributesValue()) + "&7)" ); MessageUtils.messageToPlayer(this.player, ""); } public void removeProtection() throws ProtectionNotFoundException { WGService.removeProtection(this.player.getName(), AreaTypeEnum.CASA); } public void addFriend(String target) throws ProtectionNotFoundException, HouseMembersLimitException, MemberAlreadyExistsException { if(membersInLimit()) throw new HouseMembersLimitException(); WGService.addMember(this.player.getName(), target, AREA_TYPE); } public void deleteFriend(String target) throws MemberNotExistsException, ProtectionNotFoundException { WGService.removeMember(this.player.getName(), target, AREA_TYPE); } public void updateHome(Location location) throws PlayerIsntInRegion, ProtectionNotFoundException { if(WGService.playerIsInRegion(location, this.player.getName(), AREA_TYPE)){ this.x = location.getX(); this.y = location.getY(); this.z = location.getZ(); } } public void updatePVP(){ region.setFlag( Flags.GREET_MESSAGE, setGreetMessage(isPvp()) ); region.setFlag(Flags.PVP, isPvp() ? StateFlag.State.DENY : StateFlag.State.ALLOW); } public void expandSize(int size) throws HouseSizeLimitException, ProtectionNotFoundException { if(sizeInLimit(this.player,this.size + size)) throw new HouseSizeLimitException(); this.region = WGService.expandProtection( this.player.getName(), AREA_TYPE, region.getMaximumPoint().getX(), region.getMaximumPoint().getZ(), region.getMinimumPoint().getX(), region.getMinimumPoint().getZ(), size ); this.defineHouseFlags(isPvp()); this.region.getOwners().addPlayer(this.player.getName()); this.region.setPriority(100); this.size += size; this.removeProtection(); WGService.getRegionManager().addRegion(this.region); WEService.createBorder( region.getMaximumPoint().getX(), region.getMinimumPoint().getX(), region.getMaximumPoint().getZ(), region.getMinimumPoint().getZ(), this.player.getWorld() ); } public void teleport(Main plugin, Player player){ SpigotUtils.teleportPlayer( plugin, player, new Location(Bukkit.getWorld(this.world), this.x, this.y, this.z) ); } // [#] House Configurations private String setGreetMessage(boolean pvp){ String pvpTAG = pvp ? " &7[&a&lPVP OFF&7] " : " &7[&c&lPVP ON&7] "; return pvpTAG + "&8&l>> &6Olá, bem-vindo(a) à &8" + AREA_TYPE + " &6de &8" + this.player.getName() + "&6!"; } private void createHouse(int size) throws ProtectionAlreadyExistsException { ProtectedRegion region = WGService.createProtection( this.player.getName(), AREA_TYPE, this.player.getLocation().getBlockX(), this.player.getLocation().getBlockZ(), size ); this.defineHouseFlags(false); region.getOwners().addPlayer(this.player.getName()); region.setPriority(100); WGService.getRegionManager().addRegion(region); WEService.createBorder( region.getMaximumPoint().getX(), region.getMinimumPoint().getX(), region.getMaximumPoint().getZ(), region.getMinimumPoint().getZ(), this.player.getWorld() ); } private void defineHouseFlags(boolean pvp) { region.setFlag(Flags.GREET_MESSAGE, setGreetMessage(pvp)); updatePVP(); region.setFlag(Flags.OTHER_EXPLOSION, StateFlag.State.DENY); region.setFlag(Flags.ENDER_BUILD, StateFlag.State.DENY); region.setFlag(Flags.BLOCK_BREAK.getRegionGroupFlag(), RegionGroup.MEMBERS); region.setFlag(Flags.BLOCK_PLACE.getRegionGroupFlag(), RegionGroup.MEMBERS); } // [#] Regras de Negócio private boolean playerHasMoney(Player owner, int size){ return (VaultHook.getEconomy().getBalance(owner) >= calculateHouseValue(size)); } private boolean sizeInLimit(Player owner, int size){ return ((size < 10) || (size > 50 && !owner.hasPermission(PermissionsEnum.VIP.getPermission()))); } private boolean worldIsCorrect(Player owner){ World world = owner.getWorld(); return !world.getEnvironment().equals(World.Environment.NETHER) || world.getEnvironment().equals(World.Environment.THE_END); } private boolean membersInLimit() throws ProtectionNotFoundException { int amountMembers = WGService.getAmountMembers(this.player.getName(), AREA_TYPE); return ( amountMembers == 3 || (this.player.hasPermission(PermissionsEnum.VIP.getPermission()) && amountMembers == 6 ) ); } // [#] Matematica public static double calculateHouseValue(int size){ return (BLOCK_VALUE * size); } public double calculateTotalTributesValue(){ return this.tributes.stream().mapToDouble(Tribute::getValue).sum(); } // [#] Tributos public void addTribute(Tribute tribute){ this.tributes.add(tribute); } public double payTributes() throws PlayerHasNoMoneyException { double total = calculateTotalTributesValue(); if(VaultHook.getEconomy().getBalance(this.player) >= total){ VaultHook.getEconomy().withdrawPlayer(this.player, total); this.tributes.clear(); return total; } throw new PlayerHasNoMoneyException(); } // [#] Getters and Setters @Transient public boolean isPvp() { return region.getFlag(Flags.PVP) == StateFlag.State.ALLOW; } @Transient public Set<String> getMembers() throws ProtectionNotFoundException, MembersEmptyException { return WGService.getMembers(this.player.getName(), AREA_TYPE); } @Transient public List<Tribute> getTributes() { return tributes; } @Transient public Player getOwner() { return player; } public String getUuid() { return uuid; } public String getWorld() { return world; } public double getX() { return x; } public double getY() { return y; } public double getZ() { return z; } public int getSize() { return size; } public int getDayBuy() { return dayBuy; } public int getHourBuy() { return hourBuy; } } foi necessário eu adicionar @ Transient nesse métodos que nem sequer tem atributo. Foi preciso também criar métodos getters para todos os atributos que eu desejo persistir, sendo que algum deles eu nem uso. Se eu definir " @ Column(name = “world”) private String world; " e não adicionar um método getter, a coluna não é criada no banco de dados. " @ Id private String uuid; " está gerando por causa do getter, mas não como chave primária, talvez eu tenha que adicionar @ Id no método getter do uuid para funcionar. Alguém sabe a solução?
  2. A fonte bluecase de 500W generica suporte uma placa de vídeo EVGA GTX 660TI SC? Especificações: https://www.evga.com/products/specs/gpu.aspx?pn=5c293ec3-c729-4a91-a80d-2add1f459407
  3. Sabe se uma fonte generica de 500W aguenta essa placa de vídeo? Aqui se encontra as especificações da placa: https://www.evga.com/products/specs/gpu.aspx?pn=5c293ec3-c729-4a91-a80d-2add1f459407 Eles falam o seguinte: Fonte de alimentação de 450 Watt ou maior com um mínimo de 24 Amp no barramento de +12 V.
  4. Em questão do processador i7 3770k você acha que aguenta até que placa de vídeo? 1060+ ?
  5. Eu estou vendendo essa placa. O cliente não terá problemas de gargalo, certo? Creio que ele esteja interessado em jogar GTA V, CSGO, Rainbow Six, etc. Essa placa usada você recomendaria vender por quanto?
  6. Na verdade só estava querendo tirar essa dúvida, pois estou vendendo uma placa de vídeo e a pessoa me perguntou se teria esse problema, mas eu não soube responder.
  7. Boa noite, Alguém sabe informar se a combinação de uma (CPU) AMD FX-6300 com (GPU) GeForce GTX 660TI ocasionaria problemas de gargalo? Posso fazer essa combinação?
  8. Tem uma galera falando que após fazer isso, eles não conseguem fazer a instalação posterior do DRIVER. Sabe qual o motivo? Sabe o por que de acontecer isso? Se eu fizer, quais as chances de acontecer e como?
  9. Boa noite, Hoje recebi uma placa de vídeo do modelo citado no título, porém estou tendo quedas de FPS (pouco frequente) durante partidas de CS:GO e notei algo estranho. Abri o GTA V e o FPS não passava de 50/60, porém também não apresentou nenhum tipo de lag/lentidão, algo que apresentava com minha antiga placa de vídeo GTX 660 TI que não passava também dos 50/60 FPS. Ainda não testei o GTA V em uma qualidade Ultra, mas irei testar e relatar aqui as experiências. OBS: Estou utilizando um adaptador de VGA para HDMI. Nesse caso não é necessário, pois meu monitor tem entrada DVI-D. Foi um vacilo que dei, mas manhã estarei comprando um cabo DVI-D para fazer mais testes. Monitor: SAMSUNG SyncMaster SA300 Processador: Core i7 3770k Fonte: Thermaltake 700W placa-mãe: ASUS P8B75V RAM: G.SKILL Sniper 4GB (2x) Gostaria de saber também qual software eu posso estar utilizando para fazer testes (stress ou qualquer outro tipo de teste) com a placa de vídeo.
  10. Boa noite, gostaria de saber se a placa-mãe ASUS P8B75-V tem entrada para um SSD M.2, no caso SSD Kingston A1000, 240GB, M.2 NVMe. Especificações da placa: https://www.asus.com/br/Motherboards/P8B75V/
  11. @Lucas Lipski @Erso Galera, ceis nem vão acreditar KKKKKKKKKKKKKK o cabo que liga a fonte na placa-mãe tava desconectado tinha tirado ele e acabei encaixando de mal jeito.
  12. Minha fonte é thermaltake de 700W e creio que esteja em bom estado. Quanto a temperatura, nunca tive problemas.
  13. Galera, esses dias abri o PC pra dar uma olhada e depois fechei e ligue normalmente. Estava tudo normal ate hoje. Tinha colocado o cabo usb da impressora na parte de trás do PC e dps pedi pro meu irmão tirar, quando ele tirou o PC simplesmente desligou. Quando tento iniciar os Leds ligam, ele meio q liga só q quando solto o botão ele desliga. A placa-mãe tem um led dizendo se está recebendo energia ou n, E ela está normal, acesa. Alguém sabe porque pode ser? Carga estática?
  14. Cara, acho que isso seria meio complicado. Não sei o que está tentando fazer, mas tem outras formas de armazenar dados em um arquivo e atribui-los a uma certa variável. Explique seu objetivo
  15. Fala, rapeize! Estou com dificuldades em ler uma palavra em uma certa linha de um arquivo. if(categoria==1){ if((arq=fopen("Categorias\\estados.txt", "r"))==NULL){ //Abre o arquivo estados.txt para pode pegar uma palavra aleatorio, armazenar em uma variavel e poder iniciar o jogo da forca puts("ERRO ESTADOS"); }else{ random=rand()%qtdePalavras; //Escolhe uma linha aleatória } } Não consigo pensar em nenhuma forma para navegar dentro do arquivo e ler a linha aleatória definida na variável random. @EDIT1: Também gostaria de saber como faço para ler quantas linhas existem no arquivo.
  16. Eu primeiro faço o cadastro para depois fazer o armazenamento. Segue o código: #include <stdio.h> struct dados{ char nome[25]; int idade; }; typedef struct dados DADOS; DADOS cadastrar(){ DADOS novo; system("cls"); fflush(stdin); puts("Nome: "); gets(novo.nome); fflush(stdin); puts("Idade: "); scanf("%i", &novo.idade); return novo; } void main(){ //Declarações int op; DADOS d; //Instruções do{ puts("1 - cadastrar"); puts("2 - listar"); scanf("%i", &op); switch(op){ case 1: d=cadastrar(); armazenar(d); break; case 2: listar(d); break; } }while(1); } void armazenar(DADOS a){ FILE *arq; if((arq=fopen("dados.txt", "ab"))==0){ puts("ERRO"); }else{ fwrite(&a, sizeof(DADOS), 1, arq); fclose(arq); } } Função para listar: void listar(DADOS l){ FILE *arq; if((arq=fopen("dados.txt", "rb"))==0){ puts("ERRO"); }else{ while(fread(&l, sizeof(DADOS), 1, arq)){ printf("%s %i", l.nome, l.idade); } } }
  17. Menu Selecionável Neste tutorial você vai aprender a criar um menu selecionável no CMD. Utilizando as setas direcionais para cima e para baixo, o usuário irá poder escolher a opção desejada teclando ENTER. Requisitos: Biblioteca <conio2.h> ↳ Caso não queira fazer a utilização dessa biblioteca, irei mostrar outra forma de usar a função para criar o menu. Código: #include <conio2.h> #include <locale.h> void main(){ setlocale(LC_ALL, "portuguese"); //Declarações int x=42, y=15, tecla=0; //Já atribui o valor x e y de onde a seta irá começar //Instruções gotoxy(44,15);printf("ANIVERSARIANTES"); gotoxy(47,17);printf("PESQUISAR"); gotoxy(47,21);printf("ADICIONAR"); gotoxy(48,23);printf("REMOVER"); selecao(x, y, tecla); } void selecao(int x, int y, int tecla){ while(tecla!=13){ //Enquanto o usuario não pressionar ENTER(ASCII: 13) ele vai permanecer nas instruções abaixo textcolor(WHITE);gotoxy(x,y);printf("»"); //Essa seta irá se movimentar, pois em gotoxy está definido x e y que irão receber os valores quando as teclas forem pressionadas. Função textcolor pertence a biblioteca conio2.h tecla=getch(); //variavel tecla irá receber a tecla pressionada. if(tecla==72){ //Se a tecla for a seta para cima (ASCII: 72) gotoxy(x,y);printf(" "); //Aqui irá limpar a seta da opção anterior y=y-2; //A seta irá pular duas linhas, pois coloquei as opções de 2 em 2 } if(tecla==80){ //Se a tecla for a seta para baixo (ASCII: 80) gotoxy(x,y);printf(" "); //Aqui irá limpar a seta da opção anterior y=y+2; //A seta irá pular duas linhas, pois coloquei as opções de 2 em 2 } //Aqui faz com que a seta não passe pelo meio das 4 opções, tive que verificar qual seta está sendo clicado para adicionar ou remover 2 valores de y if(y==19 && tecla==72){ y=y-2; } if(y==19 && tecla==80){ y=y+2; } //Aqui fará com que a seta não saia do menu, indo de aniversario para remover e de remover para aniversario if(y==13 && tecla==72){ y=23; } if(y==25 && tecla==80){ y=15; } //Agora vamos tornar isso melhor, vamos fazer com que quando a seta estiver na opção, a mesma mude de cor if(y==15){ textcolor(LIGHTCYAN);gotoxy(44,15);printf("ANIVERSARIANTES"); }else{ textcolor(WHITE);gotoxy(44,15);printf("ANIVERSARIANTES"); } if(y==17){ textcolor(LIGHTCYAN);gotoxy(47,17);printf("PESQUISAR"); }else{ textcolor(WHITE);gotoxy(47,17);printf("PESQUISAR"); } if(y==21){ textcolor(LIGHTCYAN);gotoxy(47,21);printf("ADICIONAR"); }else{ textcolor(WHITE);gotoxy(47,21);printf("ADICIONAR"); } if(y==23){ textcolor(LIGHTCYAN);gotoxy(48,23);printf("REMOVER"); }else{ textcolor(WHITE);gotoxy(48,23);printf("REMOVER"); } } } Imagens: Obs: Caso não queira fazer a utilização da biblioteca <conio2.h>, basta criar a função gotoxy da seguinte forma #include <windows.h> void gotoxy(int x, int y) { COORD c; c.X = x; c.Y = y; SetConsoleCursorPosition (GetStdHandle(STD_OUTPUT_HANDLE), c); }
  18. @underscore_case Tinha visto isso quando procurei sobre menu selecionável. Muito interessante, obrigado!
  19. @giu_d Obrigado por complementar!
  20. ASCII-ART Venho trazer uma dica muito útil para a galera que mexe com o CMD e gostaria de fazer ascii-art. Não tem ideia do que seja ascii-art? Bom, já viu aqueles desenhos feitos no CMD? Então, isso é definido como ascii-art! Exemplo: Passo a passo: Abra o gerador de ascii-art, coloque seu texto e escolha uma arte; Copie e cole em um bloco de notas junto com seu projeto; Crie uma função no seu programa para ler as strings no bloco de notas e imprimir no CMD. Função para ler arquivo e imprimir a arte: void ascii-art(){ FILE *arq; char txt[128]; int contador=0; if((arq=fopen("nome_bloco_notas.txt", "r"))==0){ puts("Erro"); }else{ while(fgets(txt, sizeof(txt), arq)!=NULL){ contador++; gotoxy(14,contador);printf("%s", txt); //gotoxy: Função da biblioteca <conio2.h>. Foi utilizada para centralizar a arte. } } }
  21. UP! Também tenho essa dúvida.
  22. Galera, alguém sabe como eu posso comparar uma letra inserida pelo usuário com outra STRING? Vamos supor: frase="Pato"; printf("Digite uma letra: "); gets(letra); Queria verificar se essa letra está presente na var "frase"
  23. Olá, Estou aprendendo a mexer com HEADERS agora e estou tendo algumas dúvidas cruéis. Tenho a "main.c", a "acoes.c" (Onde fica as funções do programa) e o "acoes.h" (Cabeçalho onde as funções são declaradas e comentadas), mas não estou conseguindo manipular arquivos em "acoes.c". Segue o erro abaixo: SCREENSHOT Como eu poderia manipular os arquivos no arquivo "acoes.c"?
  24. Olá, Estou aprendendo a mexer com STRUCT agora e estou com dúvidas relacionadas a elas na hora de trabalhar com funções, etc. //Declarações (Funções e Procedimentos) void menu(); void adm(); void listarMercadoria(); void verificarEstoque(); void calculaRenda(); //Bibliotecas #include<locale.h> #include<stdio.h> #include<conio2.h> #include<windows.h> #define MAX_REG 50 #define MAX_PROD 500 //Código Principal int main(){ setlocale(LC_ALL, "portuguese"); //Declarações struct Contas{ int cpf[MAX_REG]; char nome[MAX_REG]; int ativo; }; struct Contas c; struct Produtos{ int id[MAX_PROD], qtde[MAX_PROD]; float valor[MAX_PROD]; char nome[MAX_PROD], cat[MAX_PROD]; }; struct Produtos p; //Instruções menu(); return(0); } //Funções e Procedimentos void menu(){ char opcao; system("cls"); printf("\n #---------------- PAINEIS DA LOJA ----------------#"); printf("\n | 1 – Painel Administrativo |"); printf("\n | 2 – Painel Usuário |"); printf("\n | 0 – Sair |"); printf("\n\n > Escolha uma opção: "); opcao=getch(); if(opcao=='1'){ adm(); } } void adm(){ char opcao; char nome[MAX_PROD]; system("cls"); printf("\n #---------------- PAINEL ADMINISTRATIVO ----------------#"); printf("\n | 1 – Listar Mercadorias |"); printf("\n | 2 – Verificar Estoque |"); printf("\n | 3 – Calcular Renda |"); printf("\n | 0 – Sair |"); printf("\n\n > Escolha uma opção: "); opcao=getch(); if(opcao=='1'){ int indice=0; system("cls"); printf("\n #---------------- PAINEL ADMINISTRATIVO ----------------#"); printf("\n | 1 – %s ", p.nome[i]); printf("\n | 2 – Verificar Estoque "); printf("\n | 3 – Calcular Renda "); printf("\n | 0 – Sair "); printf("\n\n > Informe o nome do item: "); fgets(p.nome[i], sizeof(p.nome[i]), stdin); } else if(opcao=='2'){ system("cls"); //Instruções } else if(opcao=='3'){ system("cls"); //Instruções } else if(opcao=='0'){ menu(); } } void listarMercadoria(){ } void verificarEstoque(){ } void calculaRenda(){ } Quero entender como trabalhar com as variáveis da struct nas funções. Alguém poderia me dar uma explicação bem completa sobre esse assunto?

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...