use and delete items
This commit is contained in:
Binary file not shown.
@@ -99,7 +99,8 @@ func main() {
|
|||||||
e.GET("login", badreq)
|
e.GET("login", badreq)
|
||||||
e.GET("player", player_data)
|
e.GET("player", player_data)
|
||||||
e.GET("player/inv", inv_get)
|
e.GET("player/inv", inv_get)
|
||||||
e.GET("player/inv/:id", inv_del)
|
e.GET("player/inv/del/:id", inv_del)
|
||||||
|
e.GET("player/inv/use/:id", inv_use)
|
||||||
e.POST("player/update", player_updateInputs)
|
e.POST("player/update", player_updateInputs)
|
||||||
e.PATCH("player/:atb/:updown", player_update)
|
e.PATCH("player/:atb/:updown", player_update)
|
||||||
|
|
||||||
|
|||||||
@@ -399,3 +399,37 @@ func inv_del(c echo.Context) error {
|
|||||||
|
|
||||||
return jsonSuccess(c, "você item deletado")
|
return jsonSuccess(c, "você item deletado")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func inv_use(c echo.Context) error {
|
||||||
|
session, err := requireSession(c)
|
||||||
|
if err != nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
if session["playerName"] == "" {
|
||||||
|
return jsonError(c, http.StatusUnauthorized, "você precisa estar logado para usar algum item")
|
||||||
|
}
|
||||||
|
itemID := c.Param("id")
|
||||||
|
var durabilidade bool
|
||||||
|
var quantidade, menos int
|
||||||
|
var item_name string
|
||||||
|
err = db.QueryRow(fmt.Sprintf("SELECT item_durabilit, quantidade, item_nome FROM inv_%s WHERE id=?;", session["playerName"]), itemID).Scan(&durabilidade, &quantidade, &item_name)
|
||||||
|
if err != nil {
|
||||||
|
return jsonError(c, http.StatusInternalServerError, "item não foi encontrado")
|
||||||
|
}
|
||||||
|
if durabilidade == false {
|
||||||
|
return jsonSuccess(c, "você usou um item sem durabilidade")
|
||||||
|
}
|
||||||
|
menos = quantidade - 1
|
||||||
|
if menos > 1 {
|
||||||
|
err = updateField(fmt.Sprintf("UPDATE inv_%s SET quantidade=? WHERE id=?;", session["playerName"]), menos, itemID)
|
||||||
|
if err != nil {
|
||||||
|
return jsonError(c, http.StatusInternalServerError, "algo deu errado ao usar seu item")
|
||||||
|
}
|
||||||
|
return jsonSuccess(c, fmt.Sprintf("você uso 1 %s", item_name))
|
||||||
|
}
|
||||||
|
err = updateField(fmt.Sprintf("DELETE FROM inv_%s WHERE id=?", session["playerName"]), itemID)
|
||||||
|
if err != nil {
|
||||||
|
return jsonError(c, http.StatusInternalServerError, "item não foi apagado, algo deu errado")
|
||||||
|
}
|
||||||
|
return jsonSuccess(c, fmt.Sprintf("você gastou seu ultimo %s", item_name))
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,9 +1,21 @@
|
|||||||
let img;
|
let img;
|
||||||
let update;
|
let update;
|
||||||
let invUpdate;
|
|
||||||
|
|
||||||
function delitem(id) {
|
function useInv(id, type) {
|
||||||
alert(id);
|
$.ajax({
|
||||||
|
url: window.api + `player/inv/${type}/${id}`,
|
||||||
|
type: "GET",
|
||||||
|
xhrFields: { withCredentials: true },
|
||||||
|
success: function (resp) {
|
||||||
|
msg(resp.Status, resp.Message);
|
||||||
|
},
|
||||||
|
error: function (resp) {
|
||||||
|
msg(
|
||||||
|
resp.responseJSON?.Status || "Erro",
|
||||||
|
resp.responseJSON?.Message || "Algo deu errado.",
|
||||||
|
);
|
||||||
|
},
|
||||||
|
});
|
||||||
}
|
}
|
||||||
function useItem(id) {
|
function useItem(id) {
|
||||||
alert(id);
|
alert(id);
|
||||||
@@ -108,26 +120,26 @@ function invPlayer() {
|
|||||||
$("<span>").addClass("material-symbols-outlined").text("close"),
|
$("<span>").addClass("material-symbols-outlined").text("close"),
|
||||||
);
|
);
|
||||||
|
|
||||||
$li.on("click", () => useItem(item.id));
|
$li.on("click", () => useInv(item.id, "use"));
|
||||||
$delBtn.on("click", (e) => {
|
$delBtn.on("click", (e) => {
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
delitem(item.id);
|
useInv(item.id, "del");
|
||||||
});
|
});
|
||||||
|
|
||||||
$li.append($delBtn);
|
$li.append($delBtn);
|
||||||
return $li;
|
return $li;
|
||||||
};
|
};
|
||||||
|
|
||||||
if (invUpdate === undefined || resp.invPeso !== invUpdate) {
|
|
||||||
$("#inv ul").empty();
|
$("#inv ul").empty();
|
||||||
resp.InvItems.forEach((item) => {
|
resp.InvItems.forEach((item) => {
|
||||||
$("#inv ul").append(buildItem(item));
|
$("#inv ul").append(buildItem(item));
|
||||||
});
|
});
|
||||||
invUpdate = resp.invPeso;
|
|
||||||
}
|
|
||||||
|
|
||||||
$("#invPA").text(resp.invPeso);
|
$("#invPA").text(resp.invPeso);
|
||||||
},
|
},
|
||||||
|
error: function () {
|
||||||
|
$("#inv ul").empty();
|
||||||
|
$("#invPA").text(0);
|
||||||
|
},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -155,5 +167,5 @@ $(document).ready(function () {
|
|||||||
load_ficha();
|
load_ficha();
|
||||||
roll_load();
|
roll_load();
|
||||||
invPlayer();
|
invPlayer();
|
||||||
}, 500);
|
}, 1000);
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user